| #!/usr/bin/perl | |
| # | |
| # Copyright Statement: | |
| # -------------------- | |
| # This software is protected by Copyright and the information contained | |
| # herein is confidential. The software may not be copied and the information | |
| # contained herein may not be used or disclosed except with the written | |
| # permission of MediaTek Inc. (C) 2006 | |
| # | |
| # BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES | |
| # THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE") | |
| # RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON | |
| # AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES, | |
| # EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF | |
| # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT. | |
| # NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE | |
| # SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR | |
| # SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH | |
| # THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO | |
| # NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S | |
| # SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM. | |
| # | |
| # BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE | |
| # LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE, | |
| # AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE, | |
| # OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO | |
| # MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE. | |
| # | |
| # THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE | |
| # WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF | |
| # LAWS PRINCIPLES. ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND | |
| # RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER | |
| # THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC). | |
| # | |
| #***************************************************************************** | |
| #* | |
| #* Filename: | |
| #* --------- | |
| #* ckMemLayout.pl | |
| #* | |
| #* Project: | |
| #* -------- | |
| #* | |
| #* | |
| #* Description: | |
| #* ------------ | |
| #* This script is to check memory layout | |
| #* | |
| #* Author: | |
| #* ------- | |
| #* Qmei Yang (mtk03726) | |
| #* | |
| #****************************************************************************/ | |
| #**************************************************************************** | |
| # Included Modules | |
| #**************************************************************************** | |
| BEGIN { push @INC , './tools/' } # add additional library path | |
| use sysGenUtility; #pm file name without case sensitivity | |
| use strict; | |
| use FileInfoParser; | |
| #**************************************************************************** | |
| # Constants | |
| #**************************************************************************** | |
| my $CKMEMLAYOUT_VERNO = " m0.04"; | |
| # m0.04 by Tero, ckregion added | |
| # m0.03 by mei, Support infomake.log input | |
| # m0.02 by mei, support ckLDS | |
| # m0.01 by mei, Fix error message | |
| # v0.02 by mei, Support path and filename case sensitive on Linux | |
| # v0.01 by mei, initial version | |
| #**************************************************************************** | |
| # Global Variables | |
| #**************************************************************************** | |
| my $g_exit = 0; | |
| my %g_MAKEFILE_OPTIONS; | |
| my $b_debug = 0; | |
| #**************************************************************************** | |
| # Input Parameters | |
| #**************************************************************************** | |
| my $phase = $ARGV[0]; | |
| my $stop_build = $ARGV[1]; | |
| my $IMAGELAYOUT = $ARGV[2]; | |
| my $LIS_TEMP = $ARGV[3]; | |
| my $FLASH_CFG_TMP = $ARGV[4]; | |
| my $themf = $ARGV[5]; | |
| my $BB_FOLDER = $ARGV[6]; | |
| my $DUMMY_IMAGELAYOUT_ALLOW = $ARGV[7]; | |
| my $INFOMAKE_PATH = $ARGV[8]; | |
| print "[ckMemLayout.pl][Input]\nPhase=".$ARGV[0]. | |
| "\nstop_build=".$ARGV[1]. | |
| "\nIMAGELAYOUT=".$ARGV[2]. | |
| "\nMap=".$ARGV[3]. | |
| "\nFLASH_CFG_TMP=".$ARGV[4]. | |
| "\nMakeFile=".$ARGV[5]. | |
| "\nBBFolder=".$ARGV[6]. | |
| "\nDUMMY_IMAGELAYOUT_ALLOW=".$ARGV[7]. | |
| "\nINFOMAKE_PATH=".$ARGV[8]. | |
| "\n\n\n" if($b_debug); | |
| #**************************************************************************** | |
| # 1 >>> ParseMakeFile to get GCC/RVCT | |
| #**************************************************************************** | |
| if(1!= &FileInfo::Parse_MAKEFILE($themf, \%g_MAKEFILE_OPTIONS)) | |
| { | |
| &sysUtil::sysgen_die("Parse MakeFile failed"); | |
| } | |
| #**************************************************************************** | |
| # 2 >>> Run tool | |
| #**************************************************************************** | |
| my $strCompiler = &FileInfo::GetCompiler(); | |
| if("GCC" eq $strCompiler) | |
| { | |
| $g_exit |= &SendCommand("perl tools/ckLDS.pl $ARGV[0] $ARGV[1] $ARGV[2] $ARGV[3] $ARGV[4] \"$ARGV[5]\" $ARGV[6] $ARGV[7] $ARGV[8]"); | |
| if ($ARGV[0] == 2) { | |
| my $sym_file = $ARGV[3]; | |
| $sym_file =~ s/map/sym/; | |
| $g_exit |= &SendCommand("perl tools/AutoGen/postBuild/ckRegion.pl $sym_file") if -e $sym_file or die "No $sym_file found\n"; | |
| my ($tempdir) = ($IMAGELAYOUT =~ /^(.*)custom/); | |
| $tempdir .= "tmp/"; | |
| $g_exit |= &SendCommand("perl tools/AutoGen/postBuild/ckL2CacheSection.pl $ARGV[3] $tempdir"); | |
| } | |
| } | |
| elsif("RVCT" eq $strCompiler) | |
| { | |
| $g_exit = &SendCommand("perl tools/ckScatter.pl $ARGV[0] $ARGV[1] $ARGV[2] $ARGV[3] $ARGV[4] \"$ARGV[5]\" $ARGV[6] $ARGV[7] $ARGV[8]"); | |
| } | |
| #**************************************************************************** | |
| # 3 >>> exit - no error: 0, error code: > 0 | |
| #**************************************************************************** | |
| exit $g_exit; | |
| #**************************************************************************** | |
| # subroutines | |
| #**************************************************************************** | |
| sub SendCommand | |
| { | |
| my ($strCommand) = @_; | |
| my $nRet; | |
| print "cmd=$strCommand\n"; | |
| print "======================================================================\n"; | |
| $nRet = system($strCommand); | |
| print "==============================$nRet=====================================\n"; | |
| return ($nRet>>8); | |
| } |