Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Menu
Open sidebar
adam.huang
Arm Trusted Firmware
Commits
7c72beae
Commit
7c72beae
authored
Feb 26, 2020
by
Sandrine Bailleux
Committed by
TrustedFirmware Code Review
Feb 26, 2020
Browse files
Merge "tools: Small improvement to print_memory_map script" into integration
parents
8d48810f
b890b36d
Changes
3
Hide whitespace changes
Inline
Side-by-side
Makefile
View file @
7c72beae
...
...
@@ -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"
...
...
docs/getting_started/build-options.rst
View file @
7c72beae
...
...
@@ -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
...
...
tools/memory/print_memory_map.py
View file @
7c72beae
#!/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
))
# Invert list for lower address at bottom
if
inverted_print
:
address_list
=
reversed
(
address_list
)
# Generate memory view
print
(
'{:-^
87
}'
.
format
(
'Memory Map from: '
+
build_dir
))
for
address
in
reversed
(
address_list
)
:
print
(
'{:-^
93
}'
.
format
(
'Memory Map from: '
+
build_dir
))
for
address
in
address_list
:
if
"bl1"
in
address
[
2
]:
print
(
address
[
0
],
'+{:-^2
0
}+ |{:^2
0
}| |{:^2
0
}|'
.
format
(
address
[
1
],
''
,
''
))
print
(
address
[
0
],
'+{:-^2
2
}+ |{:^2
2
}| |{:^2
2
}|'
.
format
(
address
[
1
],
''
,
''
))
elif
"bl2"
in
address
[
2
]:
print
(
address
[
0
],
'|{:^2
0
}| +{:-^2
0
}+ |{:^2
0
}|'
.
format
(
''
,
address
[
1
],
''
))
print
(
address
[
0
],
'|{:^2
2
}| +{:-^2
2
}+ |{:^2
2
}|'
.
format
(
''
,
address
[
1
],
''
))
elif
"bl31"
in
address
[
2
]:
print
(
address
[
0
],
'|{:^2
0
}| |{:^2
0
}| +{:-^2
0
}+'
.
format
(
''
,
''
,
address
[
1
]))
print
(
address
[
0
],
'|{:^2
2
}| |{:^2
2
}| +{:-^2
2
}+'
.
format
(
''
,
''
,
address
[
1
]))
else
:
print
(
address
[
0
],
'|{:^2
0
}| |{:^2
0
}| +{:-^2
0
}+'
.
format
(
''
,
''
,
address
[
1
]))
print
(
address
[
0
],
'|{:^2
2
}| |{:^2
2
}| +{:-^2
2
}+'
.
format
(
''
,
''
,
address
[
1
]))
print
(
'{:^20}{:_^2
0
} {:_^2
0
} {:_^2
0
}'
.
format
(
''
,
''
,
''
,
''
))
print
(
'{:^20}{:^2
0
} {:^2
0
} {:^2
0
}'
.
format
(
'address'
,
'bl1'
,
'bl2'
,
'bl31'
))
print
(
'{:^20}{:_^2
2
} {:_^2
2
} {:_^2
2
}'
.
format
(
''
,
''
,
''
,
''
))
print
(
'{:^20}{:^2
2
} {:^2
2
} {:^2
2
}'
.
format
(
'address'
,
'bl1'
,
'bl2'
,
'bl31'
))
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment