blob: 0f072bff59a28ee05f9699e8ae6ddd0f83b26d84 [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#* EMI_MPIinfo.pm
40#*
41#* Project:
42#* --------
43#*
44#*
45#* Description:
46#* ------------
47#* This script is used to get linker symbol for setting EMI RMPU
48#*
49#*
50#* Author:
51#* -------
52#* KC Tsai (mtk06471)
53#*
54#*------------------------------------------------------------------------------
55#* Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
56#*------------------------------------------------------------------------------
57#* $Revision: $
58#* $Modtime: $
59#* $Log: $
60#*
61#* 12 06 2019 yao.liu
62#* [MOLY00462117] [VMOLY] Extend DRDI set to 64.
63#* [VMOLY] Extend DRDI set to 64.
64#*
65#* 12 27 2017 carl.kao
66#* [MOLY00294629] [Gen93] [SystemService] [Auto-Gen] [MT6763] [ZION] [AMMS] [DRDI] AMMS-DRDI and Security Boot can be enabled simultaneously
67#* .
68#*
69#* 12 27 2017 carl.kao
70#* [MOLY00294629] [Gen93] [SystemService] [Auto-Gen] [MT6763] [ZION] [AMMS] [DRDI] AMMS-DRDI and Security Boot can be enabled simultaneously
71#* .
72#*
73#* 12 27 2017 carl.kao
74#* [MOLY00294629] [Gen93] [SystemService] [Auto-Gen] [MT6763] [ZION] [AMMS] [DRDI] AMMS-DRDI and Security Boot can be enabled simultaneously
75#* .
76#*
77#* 12 27 2017 carl.kao
78#* [MOLY00294629] [Gen93] [SystemService] [Auto-Gen] [MT6763] [ZION] [AMMS] [DRDI] AMMS-DRDI and Security Boot can be enabled simultaneously
79#* .
80#*
81#* 12 27 2017 carl.kao
82#* [MOLY00294629] [Gen93] [SystemService] [Auto-Gen] [MT6763] [ZION] [AMMS] [DRDI] AMMS-DRDI and Security Boot can be enabled simultaneously
83#* .
84#*
85#* 12 27 2017 carl.kao
86#* [MOLY00294629] [Gen93] [SystemService] [Auto-Gen] [MT6763] [ZION] [AMMS] [DRDI] AMMS-DRDI and Security Boot can be enabled simultaneously
87#* .
88#*
89#* 12 27 2017 carl.kao
90#* [MOLY00294629] [Gen93] [SystemService] [Auto-Gen] [MT6763] [ZION] [AMMS] [DRDI] AMMS-DRDI and Security Boot can be enabled simultaneously
91#* .
92#*
93#*
94#****************************************************************************/
95
96
97use strict;
98BEGIN { push @INC, './common/tools/MemoryUtility/' } # add additional library path
99use LinkerOutputParser;
100use CommonUtility;
101use FileInfoParser;
102
103package drdi_info;
104return 1;
105sub GetDRDIInfo
106 {
107 my ($g_sym_file) = @_;
108 my $g_area_begin = 0;
109 my $g_area_end = 0;
110 my $g_area_length = 0;
111 my @drdi_info = (0xCDCDCDAA,0,0xCDCDCDAA,0);
112 LinkerOutputParser::FileParse($g_sym_file) if(-e $g_sym_file) or die("Can't open symbol file: $g_sym_file\n");
113
114 # LOAD VIEW
115 $g_area_begin = hex(LinkerOutputParser::GetLinkerSymbolAddress("CACHED_EXTSRAM_MCURO_HWRW_DRDI_2G_00", LinkerSymPostfix::Base, LinkerSymPrefix::Load));
116 $g_area_end = hex(LinkerOutputParser::GetLinkerSymbolAddress("CACHED_EXTSRAM_MCURO_HWRW_DRDI_NR_63", LinkerSymPostfix::Base, LinkerSymPrefix::Load))
117 + hex(LinkerOutputParser::GetLinkerSymbolAddress("CACHED_EXTSRAM_MCURO_HWRW_DRDI_NR_63", LinkerSymPostfix::Length, LinkerSymPrefix::Image));
118 $g_area_length = $g_area_end - $g_area_begin;
119 if ($g_area_length > 0)
120 {
121 # (0) load base
122 $drdi_info[0] = $g_area_begin & 0x0fffffff;
123 # (1) load length
124 $drdi_info[1] = $g_area_length;
125
126 # EXEC VIEW
127 # (2) exec base
128 $g_area_begin = hex(LinkerOutputParser::GetLinkerSymbolAddress("CACHED_EXTSRAM_MCURO_HWRW_DRDI_2G_00", LinkerSymPostfix::Base, LinkerSymPrefix::Image));
129 $drdi_info[2] = $g_area_begin & 0x0fffffff;
130 # (3) exec length
131 $drdi_info[3]=0;
132 for (my $i=0; $i < 64; $i++) {
133 my $str_section_name = "CACHED_EXTSRAM_MCURO_HWRW_DRDI_LTE_";
134 $str_section_name = $str_section_name."0" if ($i<10);
135 my $n_tmp_len = hex(LinkerOutputParser::GetLinkerSymbolAddress($str_section_name.$i, LinkerSymPostfix::Length, LinkerSymPrefix::Image));
136 $drdi_info[3] = $n_tmp_len if ($drdi_info[3]<$n_tmp_len);
137 }
138 $drdi_info[3] += hex(LinkerOutputParser::GetLinkerSymbolAddress("CACHED_EXTSRAM_MCURO_HWRW_DRDI_LTE_00", LinkerSymPostfix::Base, LinkerSymPrefix::Image));
139 $drdi_info[3] -= $g_area_begin;
140 }
141 return @drdi_info;
142 }