aboutsummaryrefslogtreecommitdiff
path: root/common/splash_source.c
AgeCommit message (Collapse)Author
2024-01-29common: splash_source: Don't compile ubifs splash cmd for SPL buildDevarsh Thakkar
Don't compile ubifs splash mount command for SPL build as this command is not supported (and also not enabled) during SPL stage. This fixes below compilation error, when CONFIG_CMD_UBIFS is enabled in defconfig along with splash screen enabled at SPL stage: "aarch64-none-linux-gnu-ld.bfd: common/cli.o: in function `run_command': u-boot-next/u-boot/common/cli.c:51: undefined reference to `parse_string_outer' u-boot-next/u-boot/common/cli.c:51:(.text.run_command+0x10): relocation truncated to fit: R_AARCH64_JUMP26 against undefined symbol `parse_string_outer' make[2]: *** [u-boot-next/u-boot/scripts/Makefile.spl:527: spl/u-boot-spl] Error 1 make[1]: *** [u-boot-next/u-boot/Makefile:2053: spl/u-boot-spl] Error 2 make[1]: Leaving directory 'u-boot-next/u-boot/out/a53' make: *** [Makefile:177: sub-make] Error 2" Fixes: eb9217dc03 ("common: Enable splash functions at SPL") Signed-off-by: Devarsh Thakkar <devarsht@ti.com> Reviewed-by: Nikhil M Jain <n-jain1@ti.com>
2023-07-21common: splash_source: Fix type casting errorsNikhil M Jain
During compilation splash_source puts out below warning for type conversion in splash_load_fit for bmp_load_addr and fit_header. Change their type to uintptr_t to fix the warnings. common/splash_source.c: In function ‘splash_load_fit’: common/splash_source.c:366:22: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] 366 | img_header = (struct legacy_img_hdr *)bmp_load_addr; | ^ common/splash_source.c:376:49: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast] 376 | res = splash_storage_read_raw(location, (u32)fit_header, fit_size); | ^ common/splash_source.c:401:25: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] 401 | memmove((void *)bmp_load_addr, internal_splash_data, internal_splash_size); The above warnings are generated if CONFIG_FIT is enabled. Signed-off-by: Nikhil M Jain <n-jain1@ti.com>
2022-10-30splash: get devpart from environment variableJulien Masson
By default several types of splash locations are supported and the user can select one of them through environment var (splashsource). However the devpart is still hardcoded and we cannot change it from the environment. This patch add the support of "splashdevpart" which allow the user to set the devpart though this environment variable. Example: image located in splashscreen partition (MMC as raw) ``` splashsource=mmc_raw splashdevpart=0#splashscreen ``` Signed-off-by: Julien Masson <jmasson@baylibre.com> Reviewed-by: Simon Glass <sjg@chromium.org>
2022-10-30splash: support raw image from MMCJulien Masson
The user has now the choice to specify the splash location in the MMC as a raw storage. Signed-off-by: Julien Masson <jmasson@baylibre.com> Reviewed-by: Simon Glass <sjg@chromium.org>
2022-09-29treewide: Drop image_header_t typedefSimon Glass
This is not needed and we should avoid typedefs. Use the struct instead and rename it to indicate that it really is a legacy struct. Signed-off-by: Simon Glass <sjg@chromium.org>
2021-12-26video: Support virtio devices with the splash screenSimon Glass
This is useful for showing a logo when booting from qemu. Signed-off-by: Simon Glass <sjg@chromium.org>
2021-08-02global: Convert simple_strtoul() with hex to hextoul()Simon Glass
It is a pain to have to specify the value 16 in each call. Add a new hextoul() function and update the code to use it. Add a proper comment to simple_strtoul() while we are here. Signed-off-by: Simon Glass <sjg@chromium.org>
2021-02-19common: splash_source: fix -Wint-to-pointer-cast warningJaehoon Chung
Fix -Wint-to-pointer-cast warning common/splash_source.c: In function 'splash_load_raw': common/splash_source.c:100:12: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] 100 | bmp_hdr = (struct bmp_header *)bmp_load_addr; | ^ common/splash_source.c: In function 'splash_sf_read_raw': common/splash_source.c:39:47: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] 39 | return spi_flash_read(sf, offset, read_size, (void *)bmp_load_addr); | ^ Signed-off-by: Jaehoon Chung <jh80.chung@samsung.com> Reviewed-by: Simon Glass <sjg@chromium.org>
2021-02-15image: Adjust the workings of fit_check_format()Simon Glass
At present this function does not accept a size for the FIT. This means that it must be read from the FIT itself, introducing potential security risk. Update the function to include a size parameter, which can be invalid, in which case fit_check_format() calculates it. For now no callers pass the size, but this can be updated later. Also adjust the return value to an error code so that all the different types of problems can be distinguished by the user. Signed-off-by: Simon Glass <sjg@chromium.org> Reported-by: Bruce Monroe <bruce.monroe@intel.com> Reported-by: Arie Haenel <arie.haenel@intel.com> Reported-by: Julien Lenoir <julien.lenoir@intel.com>
2021-02-02common: Drop asm/global_data.h from common headerSimon Glass
Move this out of the common header and include it only where needed. In a number of cases this requires adding "struct udevice;" to avoid adding another large header or in other cases replacing / adding missing header files that had been pulled in, very indirectly. Finally, we have a few cases where we did not need to include <asm/global_data.h> at all, so remove that include. Signed-off-by: Simon Glass <sjg@chromium.org> Signed-off-by: Tom Rini <trini@konsulko.com>
2020-05-18common: Drop log.h from common headerSimon Glass
Move this header out of the common header. Signed-off-by: Simon Glass <sjg@chromium.org>
2019-12-02common: Move command functions out of common.hSimon Glass
Move these functions into the command.h header file which is a better fit. Signed-off-by: Simon Glass <sjg@chromium.org> Reviewed-by: Tom Rini <trini@konsulko.com>
2019-08-11env: Move env_get() to env.hSimon Glass
Move env_get() over to the new header file. Acked-by: Joe Hershberger <joe.hershberger@ni.com> Signed-off-by: Simon Glass <sjg@chromium.org>
2019-05-20splash: Load internal and external data from FITLeo Ruan
The FIT image could contain the splash data in 3 different structure: - The splash data is embedded in FIT image (internal) In this case, the property 'data' presents in FIT image header. And internal information 'start' and 'end' represent the location and size of splash data inside of FIT image. - The splash data is external with absolute position in FIT image This case is made by 'mkimage -p [pos]'. The splash data is stored at the absolute position. Instead the property 'data', the properties 'data-position' and 'data-size' are used to specify the location and size of the splash data. - the splash data is external with relative offset in FIT image This case is made by 'mkimage -E'. The splash data is placed after the FIT image header with 4 byte alignment. Instead the property 'data', the properties 'data-offset' and 'data-size' are used to specify the location and size of the splash data. Currently, the splash only support to load external data with relative offset from FIT image. This commit make it possible to load the splash data embedded in FIT image or the external data with absolute position This inspiration comes from Simon Glass <sjg@chromium.org>, see common/spl_fit.c 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>
2019-05-20splash: Use splashfile instead of location->nameLeo Ruan
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>
2018-05-07SPDX: Convert all of our single license tags to Linux Kernel styleTom Rini
When U-Boot started using SPDX tags we were among the early adopters and there weren't a lot of other examples to borrow from. So we picked the area of the file that usually had a full license text and replaced it with an appropriate SPDX-License-Identifier: entry. Since then, the Linux Kernel has adopted SPDX tags and they place it as the very first line in a file (except where shebangs are used, then it's second line) and with slightly different comment styles than us. In part due to community overlap, in part due to better tag visibility and in part for other minor reasons, switch over to that style. This commit changes all instances where we have a single declared license in the tag as both the before and after are identical in tag contents. There's also a few places where I found we did not have a tag and have introduced one. Signed-off-by: Tom Rini <trini@konsulko.com>
2017-09-04splash_source: Verify FIT magicNiko Mauno
Before reading entire FIT image, add sanity check by testing image header against FDT_MAGIC. This should help avoid problems in situations where FIT is not yet available from storage device, for example when performing initial programming of device. Cc: Anatolij Gustschin <agust@denx.de> Acked-by: Tomas Melin <tomas.melin@vaisala.com>
2017-09-01Revert "Merge git://git.denx.de/u-boot-video"Tom Rini
This reverts commit 1d20170467b079642be96996dcd71db64c3c365c, reversing changes made to 6aee2ab68c362ace5a59f89a63abed82e0bf19e5. The mxc_ipuv3_fb.c changes introduce build failures on some targets. Signed-off-by: Tom Rini <trini@konsulko.com>
2017-08-29splash_source: Verify FIT magicNiko Mauno
Before reading entire FIT image, add sanity check by testing image header against FDT_MAGIC. This should help avoid problems in situations where FIT is not yet available from storage device, for example when performing initial programming of device. Cc: Anatolij Gustschin <agust@denx.de> Acked-by: Tomas Melin <tomas.melin@vaisala.com>
2017-08-18Merge branch 'master' of git://git.denx.de/u-boot-mmcTom Rini
2017-08-17dm: sata: Support driver model with the 'sata' commandSimon Glass
Update this command to support driver model. This has a different way of starting and stopping SATA. Signed-off-by: Simon Glass <sjg@chromium.org>
2017-08-16env: Rename getenv/_f() to env_get()Simon Glass
We are now using an env_ prefix for environment functions. Rename these two functions for consistency. Also add function comments in common.h. Quite a few places use getenv() in a condition context, provoking a warning from checkpatch. These are fixed up in this patch also. Suggested-by: Wolfgang Denk <wd@denx.de> Signed-off-by: Simon Glass <sjg@chromium.org>
2017-07-11common: use get_nand_dev_by_index()Grygorii Strashko
As part of preparation for nand DM conversion the new API has been introduced to remove direct access to nand_info array. So, use it here instead of accessing to nand_info array directly. Signed-off-by: Grygorii Strashko <grygorii.strashko@ti.com>
2017-07-11Kconfig: Add CONFIG_SATA to enable SATASimon Glass
At present CONFIG_CMD_SATA enables the 'sata' command which also brings in SATA support. Some boards may wish to enable SATA without the command. Add a separate CONFIG to permit this. Signed-off-by: Simon Glass <sjg@chromium.org> Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
2017-02-27splash: Prevent splash_load_fs from writing to 0x0Jonathan Golder
Passing NULL to fs_read() for actread value results in hanging U-Boot at least on our ARM plattform (TI AM335x). Since fs_read() and following functions do not catch nullpointers, writing to 0x0 occurs. Passing a local dummy var instead of NULL solves this issue. Signed-off-by: Jonathan Golder <jonathan.golder@kurz-elektronik.de> Cc: Anatolij Gustschin <agust@denx.de>
2017-01-13splash: fix splash source flags checktomas.melin@vaisala.com
SPLASH_STORAGE_RAW is defined as 0, so a check against & will never be true. These flags are never combined so do a check against == instead. Signed-off-by: Tomas Melin <tomas.melin@vaisala.com> Reviewed-by: Tom Rini <trini@konsulko.com>
2017-01-13splash: add support for loading splash from a FIT imagetomas.melin@vaisala.com
Enable support for loading a splash image from within a FIT image. The image is assumed to be generated with mkimage -E flag to hold the data external to the FIT. Signed-off-by: Tomas Melin <tomas.melin@vaisala.com> Acked-by: Igor Grinberg <grinberg@compulab.co.il>
2017-01-13splash: sort include filestomas.melin@vaisala.com
Sort include files in accordance to U-Boot coding style. Signed-off-by: Tomas Melin <tomas.melin@vaisala.com>
2016-07-25splash: Accommodate DM_USB in splash_init_usb()Alexey Brodkin
Current implementation of splash_init_usb() requires usb_stor_scan() which doesn't exist in case of DM_USB simply because real probing happens right in usb_init(). So disable usage of usb_stor_scan() in case of DM_USB. Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com> Cc: Nikita Kiryanov <nikita@compulab.co.il> Cc: Simon Glass <sjg@chromium.org> Cc: Jeroen Hofstee <jeroen@myspectrum.nl> Cc: Anatolij Gustschin <agust@denx.de> Cc: Robert Winkler <robert.winkler@boundarydevices.com> Reviewed-by: Simon Glass <sjg@chromium.org>
2016-06-14splash_source: add support for ubifs formatted nandEran Matityahu
Add support for loading splash image from NAND Flash formatted with a (UBI) filesystem. Signed-off-by: Eran Matityahu <eran.m@variscite.com> Cc: Heiko Schocher <hs@denx.de> Cc: Igor Grinberg <grinberg@compulab.co.il> Cc: Tom Rini <trini@konsulko.com> Cc: Nikita Kiryanov <nikita@compulab.co.il> Cc: Stefano Babic <sbabic@denx.de> Acked-by: Nikita Kiryanov <nikita@compulab.co.il>
2016-06-03nand: Embed mtd_info in struct nand_chipScott Wood
nand_info[] is now an array of pointers, with the actual mtd_info instance embedded in struct nand_chip. This is in preparation for syncing the NAND code with Linux 4.6, which makes the same change to struct nand_chip. It's in a separate commit due to the large amount of changes required to accommodate the change to nand_info[]. Signed-off-by: Scott Wood <oss@buserror.net>
2015-11-16splash_source: add support for filesystem formatted sataNikita Kiryanov
Add support for loading splashimage from filesystem formatted sata storage. Cc: Igor Grinberg <grinberg@compulab.co.il> Cc: Tom Rini <trini@konsulko.com> Signed-off-by: Nikita Kiryanov <nikita@compulab.co.il>
2015-11-16splash_source: add support for filesystem formatted usbNikita Kiryanov
Add support for loading splash image from USB drive formatted with a filesystem. Cc: Igor Grinberg <grinberg@compulab.co.il> Cc: Tom Rini <trini@konsulko.com> Signed-off-by: Nikita Kiryanov <nikita@compulab.co.il>
2015-11-16splash_source: add support for filesystem formatted mmcNikita Kiryanov
Add support for loading splash image from an SD card formatted with a filesystem. Update boards to maintain original behavior where needed. Cc: Igor Grinberg <grinberg@compulab.co.il> Cc: Tom Rini <trini@konsulko.com> Signed-off-by: Nikita Kiryanov <nikita@compulab.co.il>
2015-11-16splash_source: rename *_read() to *_read_raw()Nikita Kiryanov
Rename raw read functions to *_read_raw() in preparation for supporting read_fs() feature. Cc: Igor Grinberg <grinberg@compulab.co.il> Cc: Tom Rini <trini@konsulko.com> Signed-off-by: Nikita Kiryanov <nikita@compulab.co.il> Acked-by: Igor Grinberg <grinberg@compulab.co.il>
2015-01-29common: convert compulab splash load code to common codeNikita Kiryanov
Move board/compulab/common/splash.c code to common/splash_source.c to make it available for everybody. This move renames cl_splash_screen_prepare() to splash_source_load(), and the compilation of this code is conditional on CONFIG_SPLASH_SOURCE. splash_source features: * Provide a standardized way for declaring board specific splash screen locations * Provide existing routines for auto loading the splash image from the locations as declared by the board * Introduce the "splashsource" environment variable, which makes it possible to select the splash image source. cm-t35 and cm-fx6 are updated to use the modified version. Signed-off-by: Nikita Kiryanov <nikita@compulab.co.il> Cc: Stefano Babic <sbabic@denx.de> Cc: Tom Rini <trini@ti.com> Cc: Igor Grinberg <grinberg@compulab.co.il> Cc: Anatolij Gustschin <agust@denx.de> Reviewed-by: Tom Rini <trini@ti.com> Acked-by: Igor Grinberg <grinberg@compulab.co.il>