diff mbox series

[v2] bootstage: Add SPL support

Message ID 20211023010603.197091-1-marex@denx.de
State Accepted
Commit b55881ddb455af31b64038cf3b67f781909971cc
Delegated to: Simon Glass
Headers show
Series [v2] bootstage: Add SPL support | expand

Commit Message

Marek Vasut Oct. 23, 2021, 1:06 a.m. UTC
Allow usage of the bootstage facilities in SPL.

Signed-off-by: Marek Vasut <marex@denx.de>
Cc: Simon Glass <sjg@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(-)

Comments

Simon Glass Oct. 24, 2021, 7:54 p.m. UTC | #1
On Fri, 22 Oct 2021 at 19:06, Marek Vasut <marex@denx.de> wrote:
>
> Allow usage of the bootstage facilities in SPL.
>
> Signed-off-by: Marek Vasut <marex@denx.de>
> Cc: Simon Glass <sjg@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(-)

Reviewed-by: Simon Glass <sjg@chromium.org>

Can you enable this for sandbox_spl so we get build coverage?
Marek Vasut Oct. 24, 2021, 8:44 p.m. UTC | #2
On 10/24/21 9:54 PM, Simon Glass wrote:
> On Fri, 22 Oct 2021 at 19:06, Marek Vasut <marex@denx.de> wrote:
>>
>> Allow usage of the bootstage facilities in SPL.
>>
>> Signed-off-by: Marek Vasut <marex@denx.de>
>> Cc: Simon Glass <sjg@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(-)
> 
> Reviewed-by: Simon Glass <sjg@chromium.org>
> 
> Can you enable this for sandbox_spl so we get build coverage?

Isn't that the case already ? I recall sandbox was one of the machines 
which failed to build and where I found these board issues. If not, then 
please send a separate patch.
Simon Glass Oct. 25, 2021, 3:18 p.m. UTC | #3
Hi Marek,

On Sun, 24 Oct 2021 at 14:44, Marek Vasut <marex@denx.de> wrote:
>
> On 10/24/21 9:54 PM, Simon Glass wrote:
> > On Fri, 22 Oct 2021 at 19:06, Marek Vasut <marex@denx.de> wrote:
> >>
> >> Allow usage of the bootstage facilities in SPL.
> >>
> >> Signed-off-by: Marek Vasut <marex@denx.de>
> >> Cc: Simon Glass <sjg@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(-)
> >
> > Reviewed-by: Simon Glass <sjg@chromium.org>
> >
> > Can you enable this for sandbox_spl so we get build coverage?
>
> Isn't that the case already ? I recall sandbox was one of the machines
> which failed to build and where I found these board issues. If not, then
> please send a separate patch.

Apparently it is not enabled for sandbox_spl

Regards,
Simon
Simon Glass Oct. 31, 2021, 12:56 p.m. UTC | #4
Hi Marek,

On Sun, 24 Oct 2021 at 14:44, Marek Vasut <marex@denx.de> wrote:
>
> On 10/24/21 9:54 PM, Simon Glass wrote:
> > On Fri, 22 Oct 2021 at 19:06, Marek Vasut <marex@denx.de> wrote:
> >>
> >> Allow usage of the bootstage facilities in SPL.
> >>
> >> Signed-off-by: Marek Vasut <marex@denx.de>
> >> Cc: Simon Glass <sjg@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(-)
> >
> > Reviewed-by: Simon Glass <sjg@chromium.org>
> >
> > Can you enable this for sandbox_spl so we get build coverage?
>
> Isn't that the case already ? I recall sandbox was one of the machines
> which failed to build and where I found these board issues. If not, then
> please send a separate patch.

Apparently it is not enabled for sandbox_spl

Regards,
Simon

Applied to u-boot-dm, thanks!
Jan Kiszka Nov. 3, 2021, 11:59 a.m. UTC | #5
On 23.10.21 03:06, Marek Vasut wrote:
> Allow usage of the bootstage facilities in SPL.
> 
> Signed-off-by: Marek Vasut <marex@denx.de>
> Cc: Simon Glass <sjg@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)
>  /*
>   * 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 Kiszka Nov. 3, 2021, 12:38 p.m. UTC | #6
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@denx.de>
>> Cc: Simon Glass <sjg@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
Michael Walle Nov. 3, 2021, 1:32 p.m. UTC | #7
> Please CC board maintainers on changes to their code.

btw. I _think_ this one is because of a broken get_maintainer.pl. See [1].

-michael

[1] https://lore.kernel.org/u-boot/20211031223812.634361-1-michael@walle.cc/
diff mbox series

Patch

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)
 /*
  * 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"
+	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
 /**