mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-10 15:14:43 +00:00
Allow displaying the U-Boot banner on a video display
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 <sjg@chromium.org> Reviewed-by: Bin Meng <bmeng.cn@gmail.com> Tested-by: Bin Meng <bmeng.cn@gmail.com> Tested-by: Stephen Warren <swarren@nvidia.com>
This commit is contained in:
parent
6c519f2dc4
commit
b0895384be
3 changed files with 26 additions and 4 deletions
|
@ -829,6 +829,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
|
||||
|
|
|
@ -202,7 +202,6 @@ static void console_putc(int file, const char c)
|
|||
}
|
||||
}
|
||||
|
||||
#if CONFIG_IS_ENABLED(PRE_CONSOLE_BUFFER)
|
||||
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,19 @@ static void console_update_silent(void)
|
|||
#endif
|
||||
}
|
||||
|
||||
int console_announce_r(void)
|
||||
{
|
||||
#if !CONFIG_IS_ENABLED(PRE_CONSOLE_BUFFER)
|
||||
char buf[DISPLAY_OPTIONS_BANNER_LENGTH];
|
||||
|
||||
display_options_get_banner(false, buf, sizeof(buf));
|
||||
|
||||
console_puts_noserial(stdout, buf);
|
||||
#endif
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* Called before relocation - use serial functions */
|
||||
int console_init_f(void)
|
||||
{
|
||||
|
|
|
@ -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.
|
||||
*/
|
||||
|
|
Loading…
Reference in a new issue