Hi Bin,

On 12 June 2017 at 09:13, Bin Meng <bmeng...@gmail.com> wrote:
> Hi Simon,
>
> On Sun, Jun 11, 2017 at 1:59 AM, Simon Glass <s...@chromium.org> wrote:
>> At present the U-Boot banner is only displayed on the serial console. If
>> this is not visible to the user, the banner does not show. Some devices
>> have a video display which can usefully display this information.
>>
>> Add a banner which is printed after relocation only on non-serial devices
>> if CONFIG_DISPLAY_BOARDINFO_LATE is defined.
>>
>> Signed-off-by: Simon Glass <s...@chromium.org>
>> ---
>>
>> Changes in v2:
>> - Reword function comment for console_announce_r() slighty
>>
>>  common/board_r.c  |  1 +
>>  common/console.c  | 15 +++++++++++----
>>  include/console.h | 12 ++++++++++++
>>  3 files changed, 24 insertions(+), 4 deletions(-)
>>
>> diff --git a/common/board_r.c b/common/board_r.c
>> index 15977e4bca..ff11eba5d3 100644
>> --- a/common/board_r.c
>> +++ b/common/board_r.c
>> @@ -846,6 +846,7 @@ static init_fnc_t init_sequence_r[] = {
>>  #endif
>>         console_init_r,         /* fully init console as a device */
>>  #ifdef CONFIG_DISPLAY_BOARDINFO_LATE
>> +       console_announce_r,
>>         show_board_info,
>>  #endif
>>  #ifdef CONFIG_ARCH_MISC_INIT
>> diff --git a/common/console.c b/common/console.c
>> index 1232808df5..3fcd7ce66b 100644
>> --- a/common/console.c
>> +++ b/common/console.c
>> @@ -202,7 +202,6 @@ static void console_putc(int file, const char c)
>>         }
>>  }
>>
>> -#if CONFIG_IS_ENABLED(PRE_CONSOLE_BUFFER)
>
> Why removing this? Without PRE_CONSOLE_BUFFER, I doubt it works.

I want to be able to call the function below. It seems to work OK and
it doesn't rely on that option.

>
>>  static void console_puts_noserial(int file, const char *s)
>>  {
>>         int i;
>> @@ -214,7 +213,6 @@ static void console_puts_noserial(int file, const char 
>> *s)
>>                         dev->puts(dev, s);
>>         }
>>  }
>> -#endif
>>
>>  static void console_puts(int file, const char *s)
>>  {
>> @@ -248,13 +246,11 @@ static inline void console_putc(int file, const char c)
>>         stdio_devices[file]->putc(stdio_devices[file], c);
>>  }
>>
>> -#if CONFIG_IS_ENABLED(PRE_CONSOLE_BUFFER)
>>  static inline void console_puts_noserial(int file, const char *s)
>>  {
>>         if (strcmp(stdio_devices[file]->name, "serial") != 0)
>>                 stdio_devices[file]->puts(stdio_devices[file], s);
>>  }
>> -#endif
>>
>>  static inline void console_puts(int file, const char *s)
>>  {
>> @@ -699,6 +695,17 @@ static void console_update_silent(void)
>>  #endif
>>  }
>>
>> +int console_announce_r(void)
>> +{
>> +       char buf[DISPLAY_OPTIONS_BANNER_LENGTH];
>> +
>> +       display_options_get_banner(false, buf, sizeof(buf));
>> +
>> +       console_puts_noserial(stdout, buf);
>> +
>> +       return 0;
>> +}
>> +
>>  /* Called before relocation - use serial functions */
>>  int console_init_f(void)
>>  {
>> diff --git a/include/console.h b/include/console.h
>> index 3d37f6a53b..cea29ed6dc 100644
>> --- a/include/console.h
>> +++ b/include/console.h
>> @@ -42,6 +42,18 @@ void console_record_reset(void);
>>   */
>>  void console_record_reset_enable(void);
>>
>> +/**
>> + * console_announce_r() - print a U-Boot console on non-serial consoles
>> + *
>> + * When U-Boot starts up with a display it generally does not announce 
>> itself
>> + * on the display. The banner is instead emitted on the UART before 
>> relocation.
>> + * This function prints a banner on devices which (we assume) did not 
>> receive
>> + * it before relocation.
>> + *
>> + * @return 0 (meaning no errors)
>> + */
>> +int console_announce_r(void);
>> +
>>  /*
>>   * CONSOLE multiplexing.
>>   */
>> --
>
> And I see another (same) patch @
> https://patchwork.ozlabs.org/patch/769426/ which got applied, but this
> one was sent later than the applied one. I am confused..

Another patch in this series caused a breakage using a long BUILD_TAG
due to a bug in how the snprintf() calls were done. So I dropped two
patches from that series and sent this series instead.

It wasn't noticed since I don't use BUILD_TAG and no tests were in
place. It just happened that Stephen Warren has automated testing that
caught it before it was pulled to mainline.

Regards,
Simon
_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
https://lists.denx.de/listinfo/u-boot

Reply via email to