diff options
author | Leo Ruan <tingquan.ruan@cn.bosch.com> | 2019-02-08 10:51:35 +0100 |
---|---|---|
committer | Anatolij Gustschin <agust@denx.de> | 2019-05-20 11:55:42 +0200 |
commit | 3d92f31762d8744e9b905b631dc267276adc50d4 (patch) | |
tree | 5e73a970226b79c98863529fa6029f01f7b27345 | |
parent | 98b3156b0df4b0df9cb3a0bbfc240d0c4edd2638 (diff) | |
download | u-boot-3d92f31762d8744e9b905b631dc267276adc50d4.zip u-boot-3d92f31762d8744e9b905b631dc267276adc50d4.tar.gz u-boot-3d92f31762d8744e9b905b631dc267276adc50d4.tar.bz2 |
splash: Use splashfile instead of location->name
The splash image could be loaded from different sources (e.g. sf, mmc)
with different formats (e.g. raw, file-system). These sources are
structured by a board dependent object 'splash_location'. To decide
where is the splash image loaded, following environment variables are
used to select the splash source and file:
- 'splashsource' is used to select the splash source by setting its
value to specified name of splash location.
- 'splashfile' specify the name of splash image file
But, when loads the splash image from FIT, the name of splash image
within FIT is specified by splash location name. Due to the splash
location name is already used for the splash source, its name may
conflicts with the name of splash image.
To solve the conflict, the environment variable 'splashfile' is used
to specify the splash image in FIT, and keeps the splash location
name for the splash source.
Signed-off-by: Leo Ruan <tingquan.ruan@cn.bosch.com>
Signed-off-by: Mark Jonas <mark.jonas@de.bosch.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Stefano Babic <sbabic@denx.de>
Reviewed-by: Tomas Melin <tomas.melin@vaisala.com>
-rw-r--r-- | common/splash_source.c | 10 | ||||
-rw-r--r-- | doc/README.splashprepare | 9 |
2 files changed, 14 insertions, 5 deletions
diff --git a/common/splash_source.c b/common/splash_source.c index 62763b9..e1e73db 100644 --- a/common/splash_source.c +++ b/common/splash_source.c @@ -303,6 +303,7 @@ static int splash_load_fit(struct splash_location *location, u32 bmp_load_addr) { int res; int node_offset; + const char *splash_file; int splash_offset; int splash_size; struct image_header *img_header; @@ -335,10 +336,15 @@ static int splash_load_fit(struct splash_location *location, u32 bmp_load_addr) return -EINVAL; } - node_offset = fit_image_get_node(fit_header, location->name); + /* Get the splash image node */ + splash_file = env_get("splashfile"); + if (!splash_file) + splash_file = SPLASH_SOURCE_DEFAULT_FILE_NAME; + + node_offset = fit_image_get_node(fit_header, splash_file); if (node_offset < 0) { debug("Could not find splash image '%s' in FIT\n", - location->name); + splash_file); return -ENOENT; } diff --git a/doc/README.splashprepare b/doc/README.splashprepare index f1418de..3cb5b5a 100644 --- a/doc/README.splashprepare +++ b/doc/README.splashprepare @@ -26,6 +26,9 @@ screen data is loaded as a file. The name of the splash screen file can be controlled with the environment variable "splashfile". To enable loading the splash image from a FIT image, CONFIG_FIT must be -enabled. Struct splash_location field 'name' should match the splash image -name within the FIT and the FIT should start at the 'offset' field address in -the specified storage. +enabled. The FIT image has to start at the 'offset' field address in the +selected splash location. The name of splash image within the FIT shall be +specified by the environment variable "splashfile". + +In case the environment variable "splashfile" is not defined the default name +'splash.bmp' will be used. |