aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon Glass2023-07-15 21:38:46 -0600
committerBin Meng2023-07-17 17:12:03 +0800
commitb279f5170a807a87a5726bcbeb0bc98937102eee (patch)
tree7cced0108fed34ef7cc7f7b85ef44b2c393f5b04
parent297184143ab788b7e591604475760c1794532c99 (diff)
bdinfo: Show the RAM top and approximate stack pointer
These are useful pieces of information when debugging. The RAM top shows where U-Boot started allocating memory from, before it relocated. The stack pointer can be checked to ensure it is in the correct region. Signed-off-by: Simon Glass <sjg@chromium.org> Reviewed-by: Nikhil M Jain <n-jain1@ti.com> Reviewed-by: Bin Meng <bmeng.cn@gmail.com> Tested-by: Nikhil M Jain <n-jain1@ti.com>
-rw-r--r--cmd/Kconfig8
-rw-r--r--cmd/bdinfo.c5
-rw-r--r--test/cmd/bdinfo.c7
3 files changed, 20 insertions, 0 deletions
diff --git a/cmd/Kconfig b/cmd/Kconfig
index fd76972eaa3..ecfd5752377 100644
--- a/cmd/Kconfig
+++ b/cmd/Kconfig
@@ -135,6 +135,14 @@ config CMD_BDI
help
Print board info
+config CMD_BDINFO_EXTRA
+ bool "bdinfo extra features"
+ default y if SANDBOX || X86
+ help
+ Show additional information about the board. This uses a little more
+ code space but provides more options, particularly those useful for
+ bringup, development and debugging.
+
config CMD_CONFIG
bool "config"
default SANDBOX
diff --git a/cmd/bdinfo.c b/cmd/bdinfo.c
index dab73f1d93c..44e6d6a972e 100644
--- a/cmd/bdinfo.c
+++ b/cmd/bdinfo.c
@@ -173,6 +173,11 @@ int do_bdinfo(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[])
}
print_serial(gd->cur_serial_dev);
+ if (IS_ENABLED(CONFIG_CMD_BDINFO_EXTRA)) {
+ bdinfo_print_num_ll("stack ptr", (ulong)&bd);
+ bdinfo_print_num_ll("ram_top ptr", (ulong)gd->ram_top);
+ }
+
arch_print_bdinfo();
return 0;
diff --git a/test/cmd/bdinfo.c b/test/cmd/bdinfo.c
index 6480393fd5d..8c09281cac0 100644
--- a/test/cmd/bdinfo.c
+++ b/test/cmd/bdinfo.c
@@ -205,6 +205,13 @@ static int bdinfo_test_move(struct unit_test_state *uts)
ut_assertok(test_num_l(uts, " clock", info.clock));
}
+ if (IS_ENABLED(CONFIG_CMD_BDINFO_EXTRA)) {
+ ut_assert_nextlinen("stack ptr");
+ ut_assertok(test_num_ll(uts, "ram_top ptr",
+ (unsigned long long)gd->ram_top));
+ ut_assertok(test_num_l(uts, "malloc base", gd_malloc_start()));
+ }
+
ut_assertok(ut_check_console_end(uts));
return 0;