summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--arch/arm/mach-rockchip/tpl.c6
-rw-r--r--arch/arm/mach-stm32mp/Kconfig.13x3
-rw-r--r--arch/arm/mach-stm32mp/Kconfig.15x3
-rw-r--r--arch/arm/mach-stm32mp/Kconfig.25x3
-rw-r--r--arch/x86/cpu/cpu.c3
-rw-r--r--boot/Kconfig6
-rw-r--r--cmd/bootstage.c8
-rw-r--r--common/board_f.c5
-rw-r--r--common/bootstage.c2
9 files changed, 18 insertions, 21 deletions
diff --git a/arch/arm/mach-rockchip/tpl.c b/arch/arm/mach-rockchip/tpl.c
index 50f04f9474a..597a5caa84b 100644
--- a/arch/arm/mach-rockchip/tpl.c
+++ b/arch/arm/mach-rockchip/tpl.c
@@ -92,15 +92,13 @@ void board_init_f(ulong dummy)
int board_return_to_bootrom(struct spl_image_info *spl_image,
struct spl_boot_device *bootdev)
{
-#ifdef CONFIG_BOOTSTAGE_STASH
int ret;
bootstage_mark_name(BOOTSTAGE_ID_END_TPL, "end tpl");
- ret = bootstage_stash((void *)CONFIG_BOOTSTAGE_STASH_ADDR,
- CONFIG_BOOTSTAGE_STASH_SIZE);
+ ret = bootstage_stash_default();
if (ret)
debug("Failed to stash bootstage: err=%d\n", ret);
-#endif
+
back_to_bootrom(BROM_BOOT_NEXTSTAGE);
return 0;
diff --git a/arch/arm/mach-stm32mp/Kconfig.13x b/arch/arm/mach-stm32mp/Kconfig.13x
index 4d74b35055b..bc8b3f8cf77 100644
--- a/arch/arm/mach-stm32mp/Kconfig.13x
+++ b/arch/arm/mach-stm32mp/Kconfig.13x
@@ -28,9 +28,6 @@ config PRE_CON_BUF_ADDR
config PRE_CON_BUF_SZ
default 4096
-config BOOTSTAGE_STASH_ADDR
- default 0xC3000000
-
if BOOTCOUNT_GENERIC
config SYS_BOOTCOUNT_SINGLEWORD
default y
diff --git a/arch/arm/mach-stm32mp/Kconfig.15x b/arch/arm/mach-stm32mp/Kconfig.15x
index d99aa9fd694..42da36a73e8 100644
--- a/arch/arm/mach-stm32mp/Kconfig.15x
+++ b/arch/arm/mach-stm32mp/Kconfig.15x
@@ -86,9 +86,6 @@ config PRE_CON_BUF_ADDR
config PRE_CON_BUF_SZ
default 4096
-config BOOTSTAGE_STASH_ADDR
- default 0xC3000000
-
if BOOTCOUNT_GENERIC
config SYS_BOOTCOUNT_SINGLEWORD
default y
diff --git a/arch/arm/mach-stm32mp/Kconfig.25x b/arch/arm/mach-stm32mp/Kconfig.25x
index 2c0f691f8b5..7d2d8171845 100644
--- a/arch/arm/mach-stm32mp/Kconfig.25x
+++ b/arch/arm/mach-stm32mp/Kconfig.25x
@@ -24,9 +24,6 @@ config PRE_CON_BUF_ADDR
config PRE_CON_BUF_SZ
default 4096
-config BOOTSTAGE_STASH_ADDR
- default 0x87000000
-
if DEBUG_UART
config DEBUG_UART_BOARD_INIT
diff --git a/arch/x86/cpu/cpu.c b/arch/x86/cpu/cpu.c
index c8433360f28..ad21fdb457a 100644
--- a/arch/x86/cpu/cpu.c
+++ b/arch/x86/cpu/cpu.c
@@ -75,8 +75,7 @@ int __weak x86_cleanup_before_linux(void)
ret = mp_park_aps();
if (ret)
return log_msg_ret("park", ret);
- bootstage_stash((void *)CONFIG_BOOTSTAGE_STASH_ADDR,
- CONFIG_BOOTSTAGE_STASH_SIZE);
+ bootstage_stash_default();
return 0;
}
diff --git a/boot/Kconfig b/boot/Kconfig
index def483a41f1..30d10cb59c2 100644
--- a/boot/Kconfig
+++ b/boot/Kconfig
@@ -1019,13 +1019,17 @@ config BOOTSTAGE_STASH
config BOOTSTAGE_STASH_ADDR
hex "Address to stash boot timing information"
- default 0x0
+ depends on BOOTSTAGE_STASH
+ default 0xC3000000 if STM32MP13X || STM32MP15X
+ default 0x87000000 if STM32MP25X
+ default 0x0 if SANDBOX
help
Provide an address which will not be overwritten by the OS when it
starts, so that it can read this information when ready.
config BOOTSTAGE_STASH_SIZE
hex "Size of boot timing stash region"
+ depends on BOOTSTAGE_STASH
default 0x1000
help
This should be large enough to hold the bootstage stash. A value of
diff --git a/cmd/bootstage.c b/cmd/bootstage.c
index c47679d69d6..8248c41ca82 100644
--- a/cmd/bootstage.c
+++ b/cmd/bootstage.c
@@ -15,6 +15,7 @@ static int do_bootstage_report(struct cmd_tbl *cmdtp, int flag, int argc,
return 0;
}
+#if IS_ENABLED(CONFIG_BOOTSTAGE_STASH)
static int get_base_size(int argc, char *const argv[], ulong *basep,
ulong *sizep)
{
@@ -58,11 +59,14 @@ static int do_bootstage_stash(struct cmd_tbl *cmdtp, int flag, int argc,
return 0;
}
+#endif
static struct cmd_tbl cmd_bootstage_sub[] = {
U_BOOT_CMD_MKENT(report, 2, 1, do_bootstage_report, "", ""),
+#if IS_ENABLED(CONFIG_BOOTSTAGE_STASH)
U_BOOT_CMD_MKENT(stash, 4, 0, do_bootstage_stash, "", ""),
U_BOOT_CMD_MKENT(unstash, 4, 0, do_bootstage_stash, "", ""),
+#endif
};
/*
@@ -90,6 +94,8 @@ U_BOOT_CMD(bootstage, 4, 1, do_boostage,
"Boot stage command",
" - check boot progress and timing\n"
"report - Print a report\n"
+#if IS_ENABLED(CONFIG_BOOTSTAGE_STASH)
"stash [<start> [<size>]] - Stash data into memory\n"
- "unstash [<start> [<size>]] - Unstash data from memory"
+ "unstash [<start> [<size>]] - Unstash data from memory\n"
+#endif
);
diff --git a/common/board_f.c b/common/board_f.c
index 22c180b2187..29e185137ad 100644
--- a/common/board_f.c
+++ b/common/board_f.c
@@ -810,10 +810,7 @@ static int initf_bootstage(void)
if (ret)
return ret;
if (from_spl) {
- const void *stash = map_sysmem(CONFIG_BOOTSTAGE_STASH_ADDR,
- CONFIG_BOOTSTAGE_STASH_SIZE);
-
- ret = bootstage_unstash(stash, CONFIG_BOOTSTAGE_STASH_SIZE);
+ ret = bootstage_stash_default();
if (ret && ret != -ENOENT) {
debug("Failed to unstash bootstage: err=%d\n", ret);
return ret;
diff --git a/common/bootstage.c b/common/bootstage.c
index df83eb684c0..b6c268d9f47 100644
--- a/common/bootstage.c
+++ b/common/bootstage.c
@@ -500,6 +500,7 @@ int bootstage_unstash(const void *base, int size)
return 0;
}
+#if IS_ENABLED(CONFIG_BOOTSTAGE_STASH)
int _bootstage_stash_default(void)
{
return bootstage_stash(map_sysmem(CONFIG_BOOTSTAGE_STASH_ADDR, 0),
@@ -513,6 +514,7 @@ int _bootstage_unstash_default(void)
return bootstage_unstash(stash, CONFIG_BOOTSTAGE_STASH_SIZE);
}
+#endif
int bootstage_get_size(void)
{