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>
This commit is contained in:
Bin Meng 2021-02-25 17:22:34 +08:00 committed by Priyanka Jain
parent b561563316
commit 56d0635f18
5 changed files with 85 additions and 0 deletions

View File

@ -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

View File

@ -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

35
cmd/addrmap.c Normal file
View File

@ -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",
""
);

41
doc/usage/addrmap.rst Normal file
View File

@ -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.

View File

@ -14,6 +14,7 @@ Shell commands
.. toctree::
:maxdepth: 1
addrmap
base
bootefi
booti