mirror of
https://github.com/u-boot/u-boot.git
synced 2025-04-11 07:24:46 +00:00
bootstash: Do not provide a default address for all
A valid memory location to stash bootstage information at will be architecture dependent. Move the existing defaults to the main Kconfig file for this option and set 0x0 as the default only for sandbox. Signed-off-by: Simon Glass <sjg@chromium.org> Signed-off-by: Tom Rini <trini@konsulko.com>
This commit is contained in:
parent
6b8df6055a
commit
b81e31a1e6
9 changed files with 18 additions and 21 deletions
|
@ -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;
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
);
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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)
|
||||
{
|
||||
|
|
Loading…
Add table
Reference in a new issue