
-----Original Message----- From: U-Boot u-boot-bounces@lists.denx.de On Behalf Of Bin Meng Sent: Thursday, February 25, 2021 2:53 PM To: Simon Glass sjg@chromium.org; Alexander Graf agraf@csgraf.de; Priyanka Jain priyanka.jain@nxp.com Cc: U-Boot Mailing List u-boot@lists.denx.de; Tom Rini trini@konsulko.com; Marek Szyprowski m.szyprowski@samsung.com; Matthias Brugger mbrugger@suse.com Subject: [PATCH v3 13/38] cmd: Add a command to display the address map
This adds a new command 'addrmap' to display the address map for non- identity virtual-physical memory mappings.
Signed-off-by: Bin Meng bmeng.cn@gmail.com Reviewed-by: Simon Glass sjg@chromium.org Reviewed-by: Priyanka Jain priyanka.jain@nxp.com
(no changes since v2)
Changes in v2:
- add doc/usage/addrmap.rst
cmd/Kconfig | 7 +++++++ cmd/Makefile | 1 + cmd/addrmap.c | 35 +++++++++++++++++++++++++++++++++++ doc/usage/addrmap.rst | 41 +++++++++++++++++++++++++++++++++++++++++ doc/usage/index.rst | 1 + 5 files changed, 85 insertions(+) create mode 100644 cmd/addrmap.c create mode 100644 doc/usage/addrmap.rst
diff --git a/cmd/Kconfig b/cmd/Kconfig index 928a2a0..2021939 100644 --- a/cmd/Kconfig +++ b/cmd/Kconfig @@ -97,6 +97,13 @@ config CMD_ACPI between the firmware and OS, and is particularly useful when you want to make hardware changes without the OS needing to be adjusted.
+config CMD_ADDRMAP
- bool "addrmap"
- depends on ADDR_MAP
- default y
- help
List non-identity virtual-physical memory mappings for 32-bit CPUs.
config CMD_BDI bool "bdinfo" default y diff --git a/cmd/Makefile b/cmd/Makefile index 176bf92..567e2b7 100644 --- a/cmd/Makefile +++ b/cmd/Makefile @@ -13,6 +13,7 @@ obj-y += version.o
# command obj-$(CONFIG_CMD_ACPI) += acpi.o +obj-$(CONFIG_CMD_ADDRMAP) += addrmap.o obj-$(CONFIG_CMD_AES) += aes.o obj-$(CONFIG_CMD_AB_SELECT) += ab_select.o obj-$(CONFIG_CMD_ADC) += adc.o diff --git a/cmd/addrmap.c b/cmd/addrmap.c new file mode 100644 index 0000000..bd23549 --- /dev/null +++ b/cmd/addrmap.c @@ -0,0 +1,35 @@ +// SPDX-License-Identifier: GPL-2.0+ +/*
- Copyright (C) 2021, Bin Meng bmeng.cn@gmail.com */
+#include <common.h> +#include <command.h> +#include <addr_map.h>
+static int do_addrmap(struct cmd_tbl *cmdtp, int flag, int argc,
char *const argv[])
+{
- int i;
- printf(" vaddr paddr size\n");
- printf("================ ================
================\n");
- for (i = 0; i < CONFIG_SYS_NUM_ADDR_MAP; i++) {
if (address_map[i].size == 0)
continue;
printf("%16.8lx %16.8llx %16.8llx\n",
address_map[i].vaddr,
(unsigned long long)address_map[i].paddr,
(unsigned long long)address_map[i].size);
- }
- return 0;
+}
+U_BOOT_CMD(
- addrmap, 1, 1, do_addrmap,
- "List non-identity virtual-physical memory mappings for 32-bit CPUs",
- ""
+); diff --git a/doc/usage/addrmap.rst b/doc/usage/addrmap.rst new file mode 100644 index 0000000..472fd54 --- /dev/null +++ b/doc/usage/addrmap.rst @@ -0,0 +1,41 @@ +.. SPDX-License-Identifier: GPL-2.0+
+addrmap command +===============
+Synopsis +--------
+::
- addrmap
+Description +-----------
+The addrmap command is used to display non-identity virtual-physical +memory mappings for 32-bit CPUs.
+The output may look like:
+::
- => addrmap
vaddr paddr size
- ================ ================ ================
e0000000 fe0000000 00100000
00000000 00000000 04000000
04000000 04000000 04000000
80000000 c00000000 10000000
90000000 c10000000 10000000
a0000000 fe1000000 00010000
+The first column indicates the virtual address. +The second column indicates the physical address. +The third column indicates the mapped size.
+Configuration +-------------
+To use the addrmap command you must specify CONFIG_CMD_ADDRMAP=y. +It is automatically turned on when CONFIG_ADDR_MAP is set. diff --git a/doc/usage/index.rst b/doc/usage/index.rst index a8842bf..f962246 100644 --- a/doc/usage/index.rst +++ b/doc/usage/index.rst @@ -13,6 +13,7 @@ Shell commands .. toctree:: :maxdepth: 1
- addrmap base bootefi booti
-- 2.7.4
Kindly fix below checkpatch warnings
ARNING: please write a paragraph that describes the config symbol fully #30: FILE: cmd/Kconfig:100: +config CMD_ADDRMAP
WARNING: added, moved or deleted file(s), does MAINTAINERS need updating? #53: new file mode 100644
WARNING: Possible new command - make sure you add a test #67: FILE: cmd/addrmap.c:10: +static int do_addrmap(struct cmd_tbl *cmdtp, int flag, int argc,
CHECK: Lines should not end with a '(' #88: FILE: cmd/addrmap.c:31: +U_BOOT_CMD(
total: 0 errors, 3 warnings, 1 checks, 103 lines checked
Regards Priyanka