blob: e4b984936ca4690cc0ea720febceaf31384cb293 [file] [log] [blame]
rjw6c1fd8f2022-11-30 14:33:01 +08001#!/usr/bin/perl
2#
3# Copyright Statement:
4# --------------------
5# This software is protected by Copyright and the information contained
6# herein is confidential. The software may not be copied and the information
7# contained herein may not be used or disclosed except with the written
8# permission of MediaTek Inc. (C) 2006
9#
10# BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
11# THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
12# RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
13# AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
14# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
15# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
16# NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
17# SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
18# SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
19# THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
20# NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
21# SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
22#
23# BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
24# LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
25# AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
26# OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
27# MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
28#
29# THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
30# WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
31# LAWS PRINCIPLES. ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
32# RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
33# THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
34#
35#*****************************************************************************
36#*
37#* Filename:
38#* ---------
39#* Parsing_Ramidisk_Info.pm
40#*
41#* Project:
42#* --------
43#*
44#*
45#* Description:
46#* ------------
47#* This module return base address and length of ramdisk section. User: Append2.pl
48#*
49#*
50#* Author:
51#* -------
52#* Carl Kao (mtk08237)
53#*
54#****************************************************************************/
55use strict;
56BEGIN { push @INC, './pcore/tools/', './common/tools/MemoryUtility/' } # add additional library path
57use SymFileParser;
58use sysGenUtility;
59
60package Parsing_Ramdisk_Info;
61
62my $VERNO = " LR12_0.01";
63 # LR12_0.01 , 2016/06/03, Carl, Initial revision. Provide ramdisk space information for MD header
64
65sub getRamdisksymbol{
66
67 my $MAIN_SYM_FILE = shift;
68 my $INFO_MAKE_FILE = shift;
69
70 my ($hexRamdisk_Base, $hexRamdisk_End) = (0,0 );
71 my ($nRamdisk_Base, $nRamdisk_Length) = (0xCDCDCDAA, 0x0);
72
73 my %CmplOption;
74 my %relOption;
75
76 BuildInfo::Parse_InfoMakeLog($INFO_MAKE_FILE,\%CmplOption,\%relOption);
77 if(!BuildInfo::exist(BuildOPT::CMPL, "__FS_RAMDISK__"))
78 {
79 print "no ramdisk in this flavor!\n";
80 return ($nRamdisk_Base, $nRamdisk_Length);
81 }
82
83 SymFileParser::ParseSYM($MAIN_SYM_FILE);
84
85 $hexRamdisk_Base = SymFileParser::GetLinkerSymbolAddress("EXTSRAM_FS_ZI", LinkerSymPostfix::Base, LinkerSymPrefix::Image);
86 $hexRamdisk_End = SymFileParser::GetLinkerSymbolAddress("EXTSRAM_FS_ZI", LinkerSymPostfix::ZILimit, LinkerSymPrefix::Image);
87
88 #print " hexRamdisk_Base = $hexRamdisk_Base, hexRamdisk_End = $hexRamdisk_End\n";
89
90 if( 0 != hex($hexRamdisk_Base) )
91 {
92 $nRamdisk_Base = hex($hexRamdisk_Base);
93 $nRamdisk_Length = hex($hexRamdisk_End) - $nRamdisk_Base;
94
95 $nRamdisk_Base -= (&sysUtil::GetCacheablePrefix()) if ($nRamdisk_Base >= &sysUtil::GetCacheablePrefix());
96 }
97
98 return ($nRamdisk_Base, $nRamdisk_Length);
99}