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
"vscode:/vscode.git/clone" did not exist on "e0ee79f2bc985456f302349457fdf30587fb2dad"
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
Show 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