diff options
-rw-r--r-- | README | 3 | ||||
-rw-r--r-- | common/splash.c | 30 | ||||
-rw-r--r-- | common/splash_source.c | 6 | ||||
-rw-r--r-- | drivers/video/cfb_console.c | 4 | ||||
-rw-r--r-- | include/splash.h | 9 |
5 files changed, 49 insertions, 3 deletions
@@ -840,6 +840,9 @@ The following options need to be configured: CONFIG_CONSOLE_EXTRA_INFO additional board info beside the logo + CONFIG_HIDE_LOGO_VERSION + do not display bootloader + version string When CONFIG_CFB_CONSOLE_ANSI is defined, console will support a limited number of ANSI escape sequences (cursor control, diff --git a/common/splash.c b/common/splash.c index 561d35b4e4..89af437f2c 100644 --- a/common/splash.c +++ b/common/splash.c @@ -24,9 +24,37 @@ #include <splash.h> #include <lcd.h> +static struct splash_location default_splash_locations[] = { + { + .name = "sf", + .storage = SPLASH_STORAGE_SF, + .flags = SPLASH_STORAGE_RAW, + .offset = 0x0, + }, + { + .name = "mmc_fs", + .storage = SPLASH_STORAGE_MMC, + .flags = SPLASH_STORAGE_FS, + .devpart = "0:1", + }, + { + .name = "usb_fs", + .storage = SPLASH_STORAGE_USB, + .flags = SPLASH_STORAGE_FS, + .devpart = "0:1", + }, + { + .name = "sata_fs", + .storage = SPLASH_STORAGE_SATA, + .flags = SPLASH_STORAGE_FS, + .devpart = "0:1", + }, +}; + __weak int splash_screen_prepare(void) { - return 0; + return splash_source_load(default_splash_locations, + ARRAY_SIZE(default_splash_locations)); } #ifdef CONFIG_SPLASH_SCREEN_ALIGN diff --git a/common/splash_source.c b/common/splash_source.c index 914f12f4cb..230b2db4d5 100644 --- a/common/splash_source.c +++ b/common/splash_source.c @@ -146,7 +146,11 @@ static int splash_init_usb(void) if (err) return err; - return usb_stor_scan(1) < 0 ? -ENODEV : 0; +#ifndef CONFIG_DM_USB + err = usb_stor_scan(1) < 0 ? -ENODEV : 0; +#endif + + return err; } #else static inline int splash_init_usb(void) diff --git a/drivers/video/cfb_console.c b/drivers/video/cfb_console.c index ef4984becb..30b53dbb80 100644 --- a/drivers/video/cfb_console.c +++ b/drivers/video/cfb_console.c @@ -1929,10 +1929,10 @@ static void plot_logo_or_black(void *screen, int x, int y, int black) static void *video_logo(void) { char info[128]; - int space, len; __maybe_unused int y_off = 0; __maybe_unused ulong addr; __maybe_unused char *s; + __maybe_unused int len, space; splash_get_pos(&video_logo_xpos, &video_logo_ypos); @@ -1978,6 +1978,7 @@ static void *video_logo(void) sprintf(info, " %s", version_string); +#ifndef CONFIG_HIDE_LOGO_VERSION space = (VIDEO_LINE_LEN / 2 - VIDEO_INFO_X) / VIDEO_FONT_WIDTH; len = strlen(info); @@ -2027,6 +2028,7 @@ static void *video_logo(void) } } #endif +#endif return (video_fb_address + video_logo_height * VIDEO_LINE_LEN); } diff --git a/include/splash.h b/include/splash.h index 25df1cf5ad..136eac7402 100644 --- a/include/splash.h +++ b/include/splash.h @@ -47,7 +47,16 @@ struct splash_location { char *ubivol; /* UBI volume-name for ubifsmount */ }; +#ifdef CONFIG_SPLASH_SOURCE int splash_source_load(struct splash_location *locations, uint size); +#else +static inline int splash_source_load(struct splash_location *locations, + uint size) +{ + return 0; +} +#endif + int splash_screen_prepare(void); #ifdef CONFIG_SPLASH_SCREEN_ALIGN |