mirror of
https://github.com/CTCaer/switch-l4t-atf.git
synced 2025-03-03 07:57:22 +00:00
Merge "tools: Small improvement to print_memory_map script" into integration
This commit is contained in:
commit
7c72beae11
3
Makefile
3
Makefile
@ -779,6 +779,7 @@ $(eval $(call assert_boolean,GENERATE_COT))
|
||||
$(eval $(call assert_boolean,GICV2_G0_FOR_EL3))
|
||||
$(eval $(call assert_boolean,HANDLE_EA_EL3_FIRST))
|
||||
$(eval $(call assert_boolean,HW_ASSISTED_COHERENCY))
|
||||
$(eval $(call assert_boolean,INVERTED_MEMMAP))
|
||||
$(eval $(call assert_boolean,MEASURED_BOOT))
|
||||
$(eval $(call assert_boolean,NS_TIMER_SWITCH))
|
||||
$(eval $(call assert_boolean,OVERRIDE_LIBC))
|
||||
@ -1120,7 +1121,7 @@ romlib.bin: libraries
|
||||
|
||||
# Call print_memory_map tool
|
||||
memmap: all
|
||||
${Q}${PYTHON} $(PRINT_MEMORY_MAP) $(BUILD_PLAT)
|
||||
${Q}${PYTHON} ${PRINT_MEMORY_MAP} ${BUILD_PLAT} ${INVERTED_MEMMAP}
|
||||
|
||||
doc:
|
||||
@echo " BUILD DOCUMENTATION"
|
||||
|
@ -340,6 +340,11 @@ Common build options
|
||||
translation library (xlat tables v2) must be used; version 1 of translation
|
||||
library is not supported.
|
||||
|
||||
- ``INVERTED_MEMMAP``: memmap tool print by default lower addresses at the
|
||||
bottom, higher addresses at the top. This buid flag can be set to '1' to
|
||||
invert this behavior. Lower addresses will be printed at the top and higher
|
||||
addresses at the bottom.
|
||||
|
||||
- ``JUNO_AARCH32_EL3_RUNTIME``: This build flag enables you to execute EL3
|
||||
runtime software in AArch32 mode, which is required to run AArch32 on Juno.
|
||||
By default this flag is set to '0'. Enabling this flag builds BL1 and BL2 in
|
||||
|
@ -1,6 +1,6 @@
|
||||
#!/usr/bin/env python3
|
||||
#
|
||||
# Copyright (c) 2019, Arm Limited. All rights reserved.
|
||||
# Copyright (c) 2019-2020, Arm Limited. All rights reserved.
|
||||
#
|
||||
# SPDX-License-Identifier: BSD-3-Clause
|
||||
#
|
||||
@ -22,6 +22,7 @@ blx_symbols = ['__BL1_RAM_START__', '__BL1_RAM_END__',
|
||||
'__DATA_START__', '__DATA_END__',
|
||||
'__STACKS_START__', '__STACKS_END__',
|
||||
'__BSS_END',
|
||||
'__COHERENT_RAM_START__', '__COHERENT_RAM_END__',
|
||||
]
|
||||
|
||||
# Regex to extract address from map file
|
||||
@ -31,8 +32,11 @@ address_pattern = re.compile(r"\b0x\w*")
|
||||
address_list = []
|
||||
|
||||
# Get the directory from command line or use a default one
|
||||
inverted_print = True
|
||||
if len(sys.argv) >= 2:
|
||||
build_dir = sys.argv[1]
|
||||
if len(sys.argv) >= 3:
|
||||
inverted_print = sys.argv[2] == '0'
|
||||
else:
|
||||
build_dir = 'build/fvp/debug'
|
||||
|
||||
@ -43,7 +47,10 @@ for image in bl_images:
|
||||
with open (file_path, 'rt') as mapfile:
|
||||
for line in mapfile:
|
||||
for symbol in blx_symbols:
|
||||
if line.find(symbol) > 0 and line.find("ASSERT") < 0:
|
||||
# Regex to find symbol definition
|
||||
line_pattern = re.compile(r"\b0x\w*\s*" + symbol + "\s= .")
|
||||
match = line_pattern.search(line)
|
||||
if match:
|
||||
# Extract address from line
|
||||
match = address_pattern.search(line)
|
||||
if match:
|
||||
@ -52,17 +59,21 @@ for image in bl_images:
|
||||
# Sort by address
|
||||
address_list.sort(key=operator.itemgetter(0))
|
||||
|
||||
# Generate memory view
|
||||
print('{:-^87}'.format('Memory Map from: ' + build_dir))
|
||||
for address in reversed(address_list):
|
||||
if "bl1" in address[2]:
|
||||
print(address[0], '+{:-^20}+ |{:^20}| |{:^20}|'.format(address[1], '', ''))
|
||||
elif "bl2" in address[2]:
|
||||
print(address[0], '|{:^20}| +{:-^20}+ |{:^20}|'.format('', address[1], ''))
|
||||
elif "bl31" in address[2]:
|
||||
print(address[0], '|{:^20}| |{:^20}| +{:-^20}+'.format('', '', address[1]))
|
||||
else:
|
||||
print(address[0], '|{:^20}| |{:^20}| +{:-^20}+'.format('', '', address[1]))
|
||||
# Invert list for lower address at bottom
|
||||
if inverted_print:
|
||||
address_list = reversed(address_list)
|
||||
|
||||
print('{:^20}{:_^20} {:_^20} {:_^20}'.format('', '', '', ''))
|
||||
print('{:^20}{:^20} {:^20} {:^20}'.format('address', 'bl1', 'bl2', 'bl31'))
|
||||
# Generate memory view
|
||||
print('{:-^93}'.format('Memory Map from: ' + build_dir))
|
||||
for address in address_list:
|
||||
if "bl1" in address[2]:
|
||||
print(address[0], '+{:-^22}+ |{:^22}| |{:^22}|'.format(address[1], '', ''))
|
||||
elif "bl2" in address[2]:
|
||||
print(address[0], '|{:^22}| +{:-^22}+ |{:^22}|'.format('', address[1], ''))
|
||||
elif "bl31" in address[2]:
|
||||
print(address[0], '|{:^22}| |{:^22}| +{:-^22}+'.format('', '', address[1]))
|
||||
else:
|
||||
print(address[0], '|{:^22}| |{:^22}| +{:-^22}+'.format('', '', address[1]))
|
||||
|
||||
print('{:^20}{:_^22} {:_^22} {:_^22}'.format('', '', '', ''))
|
||||
print('{:^20}{:^22} {:^22} {:^22}'.format('address', 'bl1', 'bl2', 'bl31'))
|
||||
|
Loading…
x
Reference in New Issue
Block a user