mirror of
https://github.com/Fishwaldo/u-boot.git
synced 2025-06-27 09:02:20 +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
|
#endif
|
||||||
console_init_r, /* fully init console as a device */
|
console_init_r, /* fully init console as a device */
|
||||||
#ifdef CONFIG_DISPLAY_BOARDINFO_LATE
|
#ifdef CONFIG_DISPLAY_BOARDINFO_LATE
|
||||||
|
console_announce_r,
|
||||||
show_board_info,
|
show_board_info,
|
||||||
#endif
|
#endif
|
||||||
#ifdef CONFIG_ARCH_MISC_INIT
|
#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)
|
static void console_puts_noserial(int file, const char *s)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
|
@ -214,7 +213,6 @@ static void console_puts_noserial(int file, const char *s)
|
||||||
dev->puts(dev, s);
|
dev->puts(dev, s);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
static void console_puts(int file, const char *s)
|
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);
|
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)
|
static inline void console_puts_noserial(int file, const char *s)
|
||||||
{
|
{
|
||||||
if (strcmp(stdio_devices[file]->name, "serial") != 0)
|
if (strcmp(stdio_devices[file]->name, "serial") != 0)
|
||||||
stdio_devices[file]->puts(stdio_devices[file], s);
|
stdio_devices[file]->puts(stdio_devices[file], s);
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
static inline void console_puts(int file, const char *s)
|
static inline void console_puts(int file, const char *s)
|
||||||
{
|
{
|
||||||
|
@ -699,6 +695,19 @@ static void console_update_silent(void)
|
||||||
#endif
|
#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 */
|
/* Called before relocation - use serial functions */
|
||||||
int console_init_f(void)
|
int console_init_f(void)
|
||||||
{
|
{
|
||||||
|
|
|
@ -42,6 +42,18 @@ void console_record_reset(void);
|
||||||
*/
|
*/
|
||||||
void console_record_reset_enable(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.
|
* CONSOLE multiplexing.
|
||||||
*/
|
*/
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue