[PATCH v2] bootstage: Add SPL support
Jan Kiszka
jan.kiszka at siemens.com
Wed Nov 3 13:38:54 CET 2021
On 03.11.21 12:59, Jan Kiszka wrote:
> On 23.10.21 03:06, Marek Vasut wrote:
>> Allow usage of the bootstage facilities in SPL.
>>
>> Signed-off-by: Marek Vasut <marex at denx.de>
>> Cc: Simon Glass <sjg at chromium.org>
>> ---
>> V2: Fix multiple misuses of BOOTSTAGE vs SHOW_BOOT_PROGRESS
>> ---
>> arch/x86/cpu/cpu.c | 2 +-
>> board/siemens/iot2050/board.c | 2 +-
>> common/Kconfig.boot | 9 +++++++++
>> common/init/board_init.c | 2 +-
>> common/spl/spl.c | 2 +-
>> include/bootstage.h | 2 +-
>> 6 files changed, 14 insertions(+), 5 deletions(-)
>>
>> diff --git a/arch/x86/cpu/cpu.c b/arch/x86/cpu/cpu.c
>> index 01dece5769c..86f53e78d24 100644
>> --- a/arch/x86/cpu/cpu.c
>> +++ b/arch/x86/cpu/cpu.c
>> @@ -178,7 +178,7 @@ int default_print_cpuinfo(void)
>> return 0;
>> }
>>
>> -#if CONFIG_IS_ENABLED(BOOTSTAGE)
>> +#if CONFIG_IS_ENABLED(SHOW_BOOT_PROGRESS)
>> void show_boot_progress(int val)
>> {
>> outb(val, POST_PORT);
>> diff --git a/board/siemens/iot2050/board.c b/board/siemens/iot2050/board.c
>> index b2110978ae0..16ae2ffc174 100644
>> --- a/board/siemens/iot2050/board.c
>> +++ b/board/siemens/iot2050/board.c
>> @@ -250,7 +250,7 @@ void spl_board_init(void)
>> {
>> }
>>
>> -#if CONFIG_IS_ENABLED(LED) && CONFIG_IS_ENABLED(BOOTSTAGE)
>> +#if CONFIG_IS_ENABLED(LED) && CONFIG_IS_ENABLED(SHOW_BOOT_PROGRESS)
And while this change is correct, it lacked a related update of our
defconfig to keep this feature enabled.
Please CC board maintainers on changes to their code.
>> /*
>> * Indicate any error or (accidental?) entering of CLI via the red status LED.
>> */
>> diff --git a/common/Kconfig.boot b/common/Kconfig.boot
>> index 9b84a8d005f..d0d0dbd09a3 100644
>> --- a/common/Kconfig.boot
>> +++ b/common/Kconfig.boot
>> @@ -696,6 +696,15 @@ config SHOW_BOOT_PROGRESS
>> -150 common/cmd_nand.c Incorrect FIT image format
>> 151 common/cmd_nand.c FIT image format OK
>>
>> +config SPL_SHOW_BOOT_PROGRESS
>> + bool "Show boot progress in a board-specific manner"
>
> "... in SPL", our you end up with an apparently duplicated line in kconfig.
>
> Jan
>
>> + depends on SPL
>> + help
>> + Defining this option allows to add some board-specific code (calling
>> + a user-provided function show_boot_progress(int) that enables you to
>> + show the system's boot progress on some display (for example, some
>> + LEDs) on your board. For details see SHOW_BOOT_PROGRESS.
>> +
>> endmenu
>>
>> menu "Boot media"
>> diff --git a/common/init/board_init.c b/common/init/board_init.c
>> index 0965b96fa3a..eab5ee13953 100644
>> --- a/common/init/board_init.c
>> +++ b/common/init/board_init.c
>> @@ -166,7 +166,7 @@ void board_init_f_init_reserve(ulong base)
>> board_init_f_init_stack_protection();
>> }
>>
>> -#if CONFIG_IS_ENABLED(BOOTSTAGE)
>> +#if CONFIG_IS_ENABLED(SHOW_BOOT_PROGRESS)
>> /*
>> * Board-specific Platform code can reimplement show_boot_progress () if needed
>> */
>> diff --git a/common/spl/spl.c b/common/spl/spl.c
>> index be09c19351a..d95a29b3655 100644
>> --- a/common/spl/spl.c
>> +++ b/common/spl/spl.c
>> @@ -61,7 +61,7 @@ binman_sym_declare(ulong, spl, size);
>> /* Define board data structure */
>> static struct bd_info bdata __attribute__ ((section(".data")));
>>
>> -#if CONFIG_IS_ENABLED(BOOTSTAGE)
>> +#if CONFIG_IS_ENABLED(SHOW_BOOT_PROGRESS)
>> /*
>> * Board-specific Platform code can reimplement show_boot_progress () if needed
>> */
>> diff --git a/include/bootstage.h b/include/bootstage.h
>> index f837a387c8c..8d1989ac0e5 100644
>> --- a/include/bootstage.h
>> +++ b/include/bootstage.h
>> @@ -220,7 +220,7 @@ enum bootstage_id {
>> */
>> ulong timer_get_boot_us(void);
>>
>> -#if defined(USE_HOSTCC) || !CONFIG_IS_ENABLED(BOOTSTAGE)
>> +#if defined(USE_HOSTCC) || !CONFIG_IS_ENABLED(SHOW_BOOT_PROGRESS)
>> #define show_boot_progress(val) do {} while (0)
>> #else
>> /**
>>
>
Jan
--
Siemens AG, T RDA IOT
Corporate Competence Center Embedded Linux
More information about the U-Boot
mailing list