Displaying Static Splash Image Immediately After Reboot Print

 

This application note explains how to show a static splash image on the display immediately after power-on / reboot. This feature can be used to indicate to the user that the device is alive and running, while the system still continues to boot up.


Understanding Static Splash Image Implementation

U-Boot Display Driver

Graphics facility in U-Boot for the IMXRT1050-EVK BSP is provided by the framebuffer drivers drivers/video/mxsfb.c with using eLCDIF controller of the i.MXRT1050 SoC. LCD screen resolution is 480x272, 16-bit RGB565 color mode is used by the framebuffer driver. User can issue the bmp command to draw an image from a bmp file. 8-, 16- and 24-bits bmp images are supported. Here is the example on how to draw image from the splash-rt1050-series_24.bmp file from the FAT FS partition on the SD Card:

=> fatload mmc 0 $loadaddr splash-rt1050-series_24.bmp
391736 bytes read in 88 ms (4.2 MiB/s)
=> bmp info $loadaddr
Image size : 480 x 272
Bits per pixel: 24
Compression : 0
=> bmp display $loadaddr
=>


U-Boot Splash Image

Displaying static splash image on boot is the standard U-Boot feature. This is enabled by the CONFIG_SPLASH_SCREEN and CONFIG_SPLASH_SOURCE options.

By default, the file with the splash image is looked up by U-Boot in the first partition of SD Card with the FAT File System. This is configured by the spashsource environment variable which is set to mmc_fs. Refer to u‑boot/doc/README.splashprepare and the splash_screen_prepare() function in u‑boot/common/splash.c for details for other possible locations for the splash image file. The default filename for the splash image is splash.bmp, This can be changed by defining the splashfile environment variable. The splashimage environment variable is used to specify the address in RAM where the splash screen will be prepared prior to passing to the framebuffer, by default it is defined to 0x80007fc0 similarly as the loadaddr variable is defined. User can unset the splashimage variable to disable displaying the splash screen on boot.


Installing Splash Image

The following instruction can be used to install the splash‑rt1050‑series_24.bmp file (refer to
u-boot/tools/logos/splash-rt1050-series_24.bmp in the U-Boot sources) as a static splash screen:

  1. Prepare bootable SD Card as described in Installing U-Boot to the NXP i.MX RT1050 EVK Board.
  2. On the development host mount the first partition of the SD Card, and save the splash‑rt1050‑series_24.bmp file as splash.bmp:
  3. $ sudo mount /dev/sdX1 /mnt
    $ cp ${INSTALL_ROOT}/u-boot/tools/logos/splash-rt1050-series_24.bmp /mnt/splash.bmp

  4. Umount, and safely remove the SD Card:
  5. $ sudo umount /mnt
    $ sync

  6. Insert the bootable SD Card to the SD Card holder on the NXP i.MX RT1050 EVK board. Power on the target board and validate that the splash screen image is displayed.
  7. For correct splash displaying it is assumed that the U-Boot environment is reset to defaults. Especially, spashsource is set set as mmc_fs, splashimage is set as 0x80007fc0, splashfile is not defined:

    => print splashsource
    splashsource=mmc_fs
    => print splashimage
    splashimage=0x80007fc0
    => print splashfile
    ## Error: "splashfile" not defined
    =>