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