
Hi Simon
This seems completely unrelated to the series.
Please send it as a separate patch
Thanks /Ilias
On Mon, 28 Oct 2024 at 14:48, Simon Glass sjg@chromium.org wrote:
This is mostly hidden in the background, but it is sometimes useful to look at it. Add a function to allow this.
Signed-off-by: Simon Glass sjg@chromium.org
arch/sandbox/cpu/cpu.c | 13 +++++++++++++ arch/sandbox/include/asm/cpu.h | 3 +++ cmd/sb.c | 11 +++++++++++ doc/usage/cmd/sb.rst | 25 +++++++++++++++++++++++++ 4 files changed, 52 insertions(+)
diff --git a/arch/sandbox/cpu/cpu.c b/arch/sandbox/cpu/cpu.c index 06f8c13fab9..d1c4dcf0764 100644 --- a/arch/sandbox/cpu/cpu.c +++ b/arch/sandbox/cpu/cpu.c @@ -253,6 +253,19 @@ phys_addr_t map_to_sysmem(const void *ptr) return mentry->tag; }
+void sandbox_map_list(void) +{
struct sandbox_mapmem_entry *mentry;
struct sandbox_state *state = state_get_current();
printf("Sandbox memory-mapping\n");
printf("%8s %16s %6s\n", "Addr", "Mapping", "Refcnt");
list_for_each_entry(mentry, &state->mapmem_head, sibling_node) {
printf("%8lx %p %6d\n", mentry->tag, mentry->ptr,
mentry->refcnt);
}
+}
unsigned long sandbox_read(const void *addr, enum sandboxio_size_t size) { struct sandbox_state *state = state_get_current(); diff --git a/arch/sandbox/include/asm/cpu.h b/arch/sandbox/include/asm/cpu.h index c97ac7ba95b..682bb3376d1 100644 --- a/arch/sandbox/include/asm/cpu.h +++ b/arch/sandbox/include/asm/cpu.h @@ -8,4 +8,7 @@
void cpu_sandbox_set_current(const char *name);
+/* show the mapping of sandbox addresses to pointers */ +void sandbox_map_list(void);
#endif /* __SANDBOX_CPU_H */ diff --git a/cmd/sb.c b/cmd/sb.c index 9dbb53275b3..9245052492e 100644 --- a/cmd/sb.c +++ b/cmd/sb.c @@ -7,6 +7,7 @@ #include <command.h> #include <dm.h> #include <spl.h> +#include <asm/cpu.h> #include <asm/global_data.h> #include <asm/state.h>
@@ -29,6 +30,14 @@ static int do_sb_handoff(struct cmd_tbl *cmdtp, int flag, int argc, #endif }
+static int do_sb_map(struct cmd_tbl *cmdtp, int flag, int argc,
char *const argv[])
+{
sandbox_map_list();
return 0;
+}
static int do_sb_state(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[]) { @@ -42,8 +51,10 @@ static int do_sb_state(struct cmd_tbl *cmdtp, int flag, int argc,
U_BOOT_LONGHELP(sb, "handoff - Show handoff data received from SPL\n"
"sb map - Show mapped memory\n" "sb state - Show sandbox state");
U_BOOT_CMD_WITH_SUBCMDS(sb, "Sandbox status commands", sb_help_text, U_BOOT_SUBCMD_MKENT(handoff, 1, 1, do_sb_handoff),
U_BOOT_SUBCMD_MKENT(map, 1, 1, do_sb_map), U_BOOT_SUBCMD_MKENT(state, 1, 1, do_sb_state));
diff --git a/doc/usage/cmd/sb.rst b/doc/usage/cmd/sb.rst index 6f54f9d9eb7..37431aff7c8 100644 --- a/doc/usage/cmd/sb.rst +++ b/doc/usage/cmd/sb.rst @@ -12,6 +12,7 @@ Synopsis ::
sb handoff
- sb map sb state
Description @@ -26,6 +27,24 @@ sb handoff This shows information about any handoff information received from SPL. If U-Boot is started from an SPL build, it shows a valid magic number.
+sb map +~~~~~~
+This shows any mappings between sandbox's emulated RAM and the underlying host +address-space.
+Fields shown are:
+Addr
- Address in emulated RAM
+Mapping
- Equivalent address in the host address-space. While sandbox requests address
- ``0x10000000`` from the OS, this is not always available.
+Refcnt
- Shows the number of references to this mapping.
sb state
@@ -42,6 +61,12 @@ as ``sandbox_spl``:: => sb handoff SPL handoff magic 14f93c7b +This shows output from the *sb map* subcommand, with a single mapping:: + + Sandbox memory-mapping + Addr Mapping Refcnt + ff000000 000056185b46d6d0 2 + This shows output from the *sb state* subcommand:: => sb state -- 2.43.0