Add support for additional splash screen locations
v2 cover Add support for additional splash screen locations
This series adds the following functionality to the splash_source library:
- load splash image from filesystem formatted usb storage
- load splash image from filesystem formatted mmc storage
- load splash image from filesystem formatted sata storage
Finally, use the new features on cm-fx6.
Changes in V2:
- Rebased over current mainline.
- Added "splashfile" env variable to select splash file name dynamically. Also available: default value "splash.bmp"
- Added documentation for the feature.
- Refactored device initialization code so that #ifdefs are outside of the functions. This affects patches 3 and 4.
Nikita Kiryanov (5):
splash_source: rename *_read() to *_read_raw()
splash_source: add support for filesystem formatted mmc
splash_source: add support for filesystem formatted usb
splash_source: add support for filesystem formatted sata
arm: mx6: cm-fx6: add splash locations to cm-fx6
board/compulab/cm_fx6/cm_fx6.c | 19 +++++++ board/compulab/cm_t35/cm_t35.c | 1 + common/splash_source.c | 125 +++++++++++++++++++++++++++++++++++++---- doc/README.splashprepare | 5 ++ include/splash.h | 10 ++++ 5 files changed, 150 insertions(+), 10 deletions(-)
Signature · 1 line
1.9.1
PATCH v2 1/5 splash_source: rename *_read() to *_read_raw()
Rename raw read functions to *_read_raw() in preparation for supporting read_fs() feature.
---
Changes in V2:
- No changes.
common/splash_source.c | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-)
common/splash_source.c +9 -9
@@ -18,7 +18,7 @@ DECLARE_GLOBAL_DATA_PTR;#ifdef CONFIG_SPI_FLASH static struct spi_flash *sf; -static int splash_sf_read (u32 bmp_load_addr,int offset,size_t read_size) +static int splash_sf_read_raw (u32 bmp_load_addr,int offset,size_t read_size) {if (!sf) { sf = spi_flash_probe(CONFIG_SF_DEFAULT_BUS,
@@ -32,7 +32,7 @@ static int splash_sf_read(u32 bmp_load_addr, int offset, size_t read_size) return spi_flash_read(sf, offset, read_size, (void *)bmp_load_addr); }#else -static int splash_sf_read (u32 bmp_load_addr,int offset,size_t read_size) +static int splash_sf_read_raw (u32 bmp_load_addr,int offset,size_t read_size) {debug ("%s: sf support not available\n" , __func__);return -ENOSYS ;
@@ -40,7 +40,7 @@ static int splash_sf_read(u32 bmp_load_addr, int offset, size_t read_size)#endif #ifdef CONFIG_CMD_NAND -static int splash_nand_read (u32 bmp_load_addr,int offset,size_t read_size) +static int splash_nand_read_raw (u32 bmp_load_addr,int offset,size_t read_size) { return nand_read_skip_bad(&nand_info[nand_curr_device], offset, &read_size, NULL,
@@ -48,14 +48,14 @@ static int splash_nand_read(u32 bmp_load_addr, int offset, size_t read_size) (u_char *)bmp_load_addr); }#else -static int splash_nand_read (u32 bmp_load_addr,int offset,size_t read_size) +static int splash_nand_read_raw (u32 bmp_load_addr,int offset,size_t read_size) {debug ("%s: nand support not available\n" , __func__);return -ENOSYS ; }#endif -static int splash_storage_read (struct splash_location *location, +static int splash_storage_read_raw (struct splash_location *location,u32 bmp_load_addr,size_t read_size) {u32 offset;
@@ -66,9 +66,9 @@ static int splash_storage_read(struct splash_location *location, offset = location->offset;switch (location->storage) {case SPLASH_STORAGE_NAND : -return splash_nand_read (bmp_load_addr, offset, read_size); +return splash_nand_read_raw (bmp_load_addr, offset, read_size);case SPLASH_STORAGE_SF : -return splash_sf_read (bmp_load_addr, offset, read_size); +return splash_sf_read_raw (bmp_load_addr, offset, read_size);default :printf ("Unknown splash location\n" ); }
@@ -85,7 +85,7 @@ static int splash_load_raw(struct splash_location *location, u32 bmp_load_addr)if (bmp_load_addr + bmp_header_size >= gd->start_addr_sp) goto splash_address_too_high; - res =splash_storage_read (location, bmp_load_addr, bmp_header_size); + res =splash_storage_read_raw (location, bmp_load_addr, bmp_header_size);if (res <0 )return res;
@@ -95,7 +95,7 @@ static int splash_load_raw(struct splash_location *location, u32 bmp_load_addr)if (bmp_load_addr + bmp_size >= gd->start_addr_sp) goto splash_address_too_high; -return splash_storage_read (location, bmp_load_addr, bmp_size); +return splash_storage_read_raw (location, bmp_load_addr, bmp_size); splash_address_too_high:printf ("Error: splashimage address too high. Data overwrites U-Boot and/or placed beyond DRAM boundaries.\n" );
Signature · 1 line
1.9.1
PATCH v2 2/5 splash_source: add support for filesystem formatted mmc
In reply to Nikita KiryanovAdd support for loading splash image from an SD card formatted with a filesystem. Update boards to maintain original behavior where needed.
---
Changes in V2:
- Added "splashfile" env variable to select splash file name dynamically. Also available: default value "splash.bmp"
- Added documentation for the feature.
board/compulab/cm_fx6/cm_fx6.c | 1 + board/compulab/cm_t35/cm_t35.c | 1 + common/splash_source.c | 58 +++++++++++++++++++++++++++++++++++++++++- doc/README.splashprepare | 5 ++++ include/splash.h | 8 ++++++ 5 files changed, 72 insertions(+), 1 deletion(-)
board/compulab/cm_fx6/cm_fx6.c +1 -0
@@ -39,6 +39,7 @@ static struct splash_location cm_fx6_splash_locations[] = { { .name = "sf", .storage = SPLASH_STORAGE_SF, + .flags = SPLASH_STORAGE_RAW, .offset = 0x100000, }, };
board/compulab/cm_t35/cm_t35.c +1 -0
@@ -64,6 +64,7 @@ struct splash_location splash_locations[] = { { .name = "nand", .storage = SPLASH_STORAGE_NAND, + .flags = SPLASH_STORAGE_RAW, .offset = 0x100000, }, };
common/splash_source.c +57 -1
74 lines not on this page · raw message
doc/README.splashprepare +5 -0
@@ -19,3 +19,8 @@ splashsource works as follows: use that splash location. - If splashsource is undefined, use the first splash location as default. - If splashsource is set to an unsupported value, do not load a splash screen. + +A splash source location can describe either storage with raw data, or storage +formatted with a file system. In case of a filesystem, the splash screen data is +loaded as a file. The name of the splash screen file can be controlled with the +environment variable "splashfile".
include/splash.h +8 -0
@@ -27,12 +27,20 @@enum splash_storage {SPLASH_STORAGE_NAND ,SPLASH_STORAGE_SF , +SPLASH_STORAGE_MMC , +}; + +enum splash_flags { +SPLASH_STORAGE_RAW , +SPLASH_STORAGE_FS , };struct splash_location {char *name;enum splash_storage storage; +enum splash_flags flags;u32 offset;/* offset from start of storage */ +char *devpart;/* Use the load command dev:part conventions */ };int splash_source_load (struct splash_location *locations,uint size);
Signature · 1 line
1.9.1
PATCH v2 3/5 splash_source: add support for filesystem formatted usb
In reply to Nikita KiryanovAdd support for loading splash image from USB drive formatted with a filesystem.
---
Changes in V2:
- Refactored device initialization code so that #ifdefs are outside of the functions. This affects patches 3 and 4.
common/splash_source.c | 31 ++++++++++++++++++++++++++++++- include/splash.h | 1 + 2 files changed, 31 insertions(+), 1 deletion(-)
common/splash_source.c +30 -1
@@ -12,6 +12,7 @@#include <splash.h> #include <spi_flash.h> #include <spi.h> +#include <usb.h> #include <bmp_layout.h> #include <fs.h>
@@ -112,6 +113,9 @@ static int splash_select_fs_dev(struct splash_location *location)case SPLASH_STORAGE_MMC : res =fs_set_blk_dev ("mmc" , location->devpart,FS_TYPE_ANY );break ; +case SPLASH_STORAGE_USB : + res =fs_set_blk_dev ("usb" , location->devpart,FS_TYPE_ANY ); +break ;default :printf ("Error: unsupported location storage.\n" );return -ENODEV ;
@@ -123,11 +127,30 @@ static int splash_select_fs_dev(struct splash_location *location)return res; } +#ifdef CONFIG_USB_STORAGE +static int splash_init_usb (void ) +{ +int err; + + err =usb_init (); +if (err) +return err; + +return usb_stor_scan (1 ) <0 ? -ENODEV :0 ; +} +#else +static inline int splash_init_usb (void ) +{ +printf ("Cannot load splash image: no USB support\n" ); +return -ENOSYS ; +} +#endif +#define SPLASH_SOURCE_DEFAULT_FILE_NAME "splash.bmp"static int splash_load_fs (struct splash_location *location,u32 bmp_load_addr) { -int res; +int res =0 ;loff_t bmp_size;char *splash_file;
@@ -135,6 +158,12 @@ static int splash_load_fs(struct splash_location *location, u32 bmp_load_addr)if (!splash_file) splash_file =SPLASH_SOURCE_DEFAULT_FILE_NAME ; +if (location->storage ==SPLASH_STORAGE_USB ) + res =splash_init_usb (); + +if (res) +return res; + res =splash_select_fs_dev (location);if (res)return res;
include/splash.h +1 -0
@@ -28,6 +28,7 @@ enum splash_storage {SPLASH_STORAGE_NAND ,SPLASH_STORAGE_SF ,SPLASH_STORAGE_MMC , + SPLASH_STORAGE_USB, }; enum splash_flags {
Signature · 1 line
1.9.1
PATCH v2 4/5 splash_source: add support for filesystem formatted sata
In reply to Nikita KiryanovAdd support for loading splashimage from filesystem formatted sata storage.
---
Changes in V2:
- Refactored device initialization code so that #ifdefs are outside of the functions.
common/splash_source.c | 20 ++++++++++++++++++++ include/splash.h | 1 + 2 files changed, 21 insertions(+)
common/splash_source.c +20 -0
@@ -13,6 +13,7 @@#include <spi_flash.h> #include <spi.h> #include <usb.h> +#include <sata.h> #include <bmp_layout.h> #include <fs.h>
@@ -116,6 +117,9 @@ static int splash_select_fs_dev(struct splash_location *location)case SPLASH_STORAGE_USB : res =fs_set_blk_dev ("usb" , location->devpart,FS_TYPE_ANY );break ; +case SPLASH_STORAGE_SATA : + res =fs_set_blk_dev ("sata" , location->devpart,FS_TYPE_ANY ); +break ;default :printf ("Error: unsupported location storage.\n" );return -ENODEV ;
@@ -146,6 +150,19 @@ static inline int splash_init_usb(void) }#endif +#ifdef CONFIG_CMD_SATA +static int splash_init_sata (void ) +{ +return sata_initialize (); +} +#else +static inline int splash_init_sata (void ) +{ +printf ("Cannot load splash image: no SATA support\n" ); +return -ENOSYS ; +} +#endif +#define SPLASH_SOURCE_DEFAULT_FILE_NAME "splash.bmp"static int splash_load_fs (struct splash_location *location,u32 bmp_load_addr)
@@ -161,6 +178,9 @@ static int splash_load_fs(struct splash_location *location, u32 bmp_load_addr)if (location->storage ==SPLASH_STORAGE_USB ) res =splash_init_usb (); +if (location->storage ==SPLASH_STORAGE_SATA ) + res =splash_init_sata (); +if (res)return res;
include/splash.h +1 -0
@@ -29,6 +29,7 @@ enum splash_storage {SPLASH_STORAGE_SF ,SPLASH_STORAGE_MMC ,SPLASH_STORAGE_USB , + SPLASH_STORAGE_SATA, }; enum splash_flags {
Signature · 1 line
1.9.1
PATCH v2 5/5 arm: mx6: cm-fx6: add splash locations to cm-fx6
In reply to Nikita KiryanovAdd the following splash locations to cm-fx6:
* filesystem formatted mmc
* filesystem formatted usb
* filesystem formatted sata
---
Changes in V2:
- No changes.
board/compulab/cm_fx6/cm_fx6.c | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+)
board/compulab/cm_fx6/cm_fx6.c +18 -0
@@ -42,6 +42,24 @@ static struct splash_location cm_fx6_splash_locations[] = { .flags = SPLASH_STORAGE_RAW, .offset = 0x100000, }, + { + .name = "mmc_fs", + .storage = SPLASH_STORAGE_MMC, + .flags = SPLASH_STORAGE_FS, + .devpart = "2: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", + }, }; int splash_screen_prepare(void)
Signature · 1 line
1.9.1
v2 cover Add support for additional splash screen locations
In reply to Nikita KiryanovPing!
Quoted 35 lines · Nikita Kiryanov
This series adds the following functionality to the
splash_sourcelibrary:
- load splash image from filesystem formatted usb storage
- load splash image from filesystem formatted mmc storage
- load splash image from filesystem formatted sata storageFinally, use the new features on cm-fx6.
Changes in V2:
- Rebased over current mainline.
- Added "splashfile" env variable to select splash file name dynamically. Also available: default value "splash.bmp"
- Added documentation for the feature.
- Refactored device initialization code so that #ifdefs are outside of the functions. This affects patches 3 and 4.Cc Igor Grinberg <[email protected]>Cc Tom Rini <[email protected]>Nikita Kiryanov (5):
splash_source: rename*_read()to*_read_raw()
splash_source: add support for filesystem formatted mmc
splash_source: add support for filesystem formatted usb
splash_source: add support for filesystem formatted sata
arm: mx6: cm-fx6: add splash locations to cm-fx6board/compulab/cm_fx6/cm_fx6.c | 19 +++++++ board/compulab/cm_t35/cm_t35.c | 1 + common/splash_source.c | 125 +++++++++++++++++++++++++++++++++++++---- doc/README.splashprepare | 5 ++ include/splash.h | 10 ++++ 5 files changed, 150 insertions(+), 10 deletions(-)Signature · 1 line
1.9.1
v2 cover Add support for additional splash screen locations
Ping^2!
Quoted 43 lines · Nikita Kiryanov
Ping!
Quoted 25 lines · Nikita Kiryanov
This series adds the following functionality to the
splash_sourcelibrary:
- load splash image from filesystem formatted usb storage
- load splash image from filesystem formatted mmc storage
- load splash image from filesystem formatted sata storageFinally, use the new features on cm-fx6.
Changes in V2:
- Rebased over current mainline.
- Added "splashfile" env variable to select splash file name dynamically. Also available: default value "splash.bmp"
- Added documentation for the feature.
- Refactored device initialization code so that #ifdefs are outside of the functions. This affects patches 3 and 4.Cc Igor Grinberg <[email protected]>Cc Tom Rini <[email protected]>Nikita Kiryanov (5):
splash_source: rename*_read()to*_read_raw()
splash_source: add support for filesystem formatted mmc
splash_source: add support for filesystem formatted usb
splash_source: add support for filesystem formatted sata
arm: mx6: cm-fx6: add splash locations to cm-fx6Quoted 10 lines
board/compulab/cm_fx6/cm_fx6.c | 19 +++++++ board/compulab/cm_t35/cm_t35.c | 1 + common/splash_source.c | 125 +++++++++++++++++++++++++++++++++++++---- doc/README.splashprepare | 5 ++ include/splash.h | 10 ++++ 5 files changed, 150 insertions(+), 10 deletions(-)Signature · 1 line
1.9.1_______________________________________________
U-Boot mailing list
U-Boot at lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot
v2 cover Add support for additional splash screen locations
Adding Stefano to CC.
Quoted 51 lines · Nikita Kiryanov
Ping^2!
Quoted 35 lines · Nikita Kiryanov
Ping!
Quoted 32 lines · Nikita Kiryanov
This series adds the following functionality to the
splash_sourcelibrary:
- load splash image from filesystem formatted usb storage
- load splash image from filesystem formatted mmc storage
- load splash image from filesystem formatted sata storageFinally, use the new features on cm-fx6.
Changes in V2:
- Rebased over current mainline.
- Added "splashfile" env variable to select splash file name dynamically. Also available: default value "splash.bmp"
- Added documentation for the feature.
- Refactored device initialization code so that #ifdefs are outside of the functions. This affects patches 3 and 4.Cc Igor Grinberg <[email protected]>Cc Tom Rini <[email protected]>Nikita Kiryanov (5):
splash_source: rename*_read()to*_read_raw()
splash_source: add support for filesystem formatted mmc
splash_source: add support for filesystem formatted usb
splash_source: add support for filesystem formatted sata
arm: mx6: cm-fx6: add splash locations to cm-fx6board/compulab/cm_fx6/cm_fx6.c | 19 +++++++ board/compulab/cm_t35/cm_t35.c | 1 + common/splash_source.c | 125 +++++++++++++++++++++++++++++++++++++---- doc/README.splashprepare | 5 ++ include/splash.h | 10 ++++ 5 files changed, 150 insertions(+), 10 deletions(-)Quoted 8 lines
Quoted 3 lines
Signature · 1 line
1.9.1_______________________________________________
U-Boot mailing list
U-Boot at lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot_______________________________________________
U-Boot mailing list
U-Boot at lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot
v2 cover Add support for additional splash screen locations
Hi Nikita,
Quoted 4 lines · Nikita Kiryanov
Adding Stefano to CC.
Quoted 2 lines · Nikita Kiryanov
Ping^2!
Do not worry, I will merge the series today.
Best regards,
Stefano
Quoted 49 lines
Quoted 49 lines · Nikita Kiryanov
Quoted 35 lines
Ping!
Quoted 32 lines · Nikita Kiryanov
This series adds the following functionality to the
splash_sourcelibrary:
- load splash image from filesystem formatted usb storage
- load splash image from filesystem formatted mmc storage
- load splash image from filesystem formatted sata storageFinally, use the new features on cm-fx6.
Changes in V2:
- Rebased over current mainline.
- Added "splashfile" env variable to select splash file name dynamically. Also available: default value "splash.bmp"
- Added documentation for the feature.
- Refactored device initialization code so that #ifdefs are outside of the functions. This affects patches 3 and 4.Cc Igor Grinberg <[email protected]>Cc Tom Rini <[email protected]>Nikita Kiryanov (5):
splash_source: rename*_read()to*_read_raw()
splash_source: add support for filesystem formatted mmc
splash_source: add support for filesystem formatted usb
splash_source: add support for filesystem formatted sata
arm: mx6: cm-fx6: add splash locations to cm-fx6board/compulab/cm_fx6/cm_fx6.c | 19 +++++++ board/compulab/cm_t35/cm_t35.c | 1 + common/splash_source.c | 125 +++++++++++++++++++++++++++++++++++++---- doc/README.splashprepare | 5 ++ include/splash.h | 10 ++++ 5 files changed, 150 insertions(+), 10 deletions(-)Quoted 8 lines
Quoted 3 lines
Signature · 1 line
1.9.1_______________________________________________
U-Boot mailing list
U-Boot at lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot_______________________________________________
U-Boot mailing list
U-Boot at lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot
Signature · 5 lines
===================================================================== DENX Software Engineering GmbH, Managing Director: Wolfgang Denk HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: +49-8142-66989-53 Fax: +49-8142-66989-80 Email: sbabic at denx.de =====================================================================
v2 cover Add support for additional splash screen locations
In reply to Nikita KiryanovHi Nikita,
Quoted 2 lines · Nikita Kiryanov
Ping^2!
Applied (whole series) to u-boot-imx, thanks !
Best regards,
Stefano Babic
Signature · 5 lines
===================================================================== DENX Software Engineering GmbH, Managing Director: Wolfgang Denk HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: +49-8142-66989-53 Fax: +49-8142-66989-80 Email: sbabic at denx.de =====================================================================