[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