Having a bitmap on the LCD a few seconds after boot is a requirement on several embedded systems, u-Boot supports this feature. However, currently, the code provided on Freescale's BSP only implements support for the LCD controller on Linux. This page provides instructions to add support for the LCDC on the u-boot.
1 - Install Freescale i.MX25 BSP, SDK 1.7
It is available on www.freescale.com. If needed follow the getting started section instructions.
2 - Update u-boot source
After installing the BSP and running LTIB for the first time, it's time to update u-boot:
- Download u-Boot patch and spec file.
- Replace the file "u-boot.spec.in" located at <ltib_path>/config/platform/imx by the one downloaded
- Copy the "u-boot-2009.08-1273860148.patch" downloaded to /opt/freescale/pkgs
3 - Extract and rebuild u-boot
- To extract the source and aply the patch run:
<Ltib_path>$ ./ltib -p u-boot -m prep
- Now Build:
<Ltib_path>$ ./ltib -p u-boot -m scbuild
After completing this step an u-Boot binary (u-boot.bin) will be saved at <ltib_path>/rpm/BUILD/u-boot-2009.08
4 - Program the SD card
Program a SD card with the new u-Boot binary and a bitmap image to be displayed. Insert the SD and run:
Argument seek 608, skips the first 608 blocks of the SD (608x512) where the uboot is stored. If you need to relocate the image, update also the environment variable "splashimage_mmc_init_block", see step 6.
5 - Boot
Boot the image from the SD.
Personality Board settings:
SW22 -> 00000000
SW21 -> 11000000
Debug Board settings:
SW5,6,7,8,9,10 -> OFF
SW4 -> 10000001
Turn on the board and stop at u-boot prompt:
MX25 U-Boot >
6 - u-Boot environment variables
Update u-Boot environment variables for the splash screen to work:
The address in memory to load the splash screen from:
MX25 U-Boot > setenv splashimage 0x80800000
The SD device on the board:
MX25 U-Boot > setenv splashimage_mmc_dev 0
The block on the SD where the bitmap is stored, this must match the block on step 4.
The amount in blocks to be read from the SD card, this depends on the bitmap size, i.e. for a 308278 bytes bitmap, 0x2B5 blocks are enough on a 512 bytes per block SD, (308278 / 512).
MX25 U-Boot > setenv splashimage_mmc_blkcnt 0x2b5
The SD card block size in bytes:
MX25 U-Boot > setenv splashimage_mmc_blksize 512
Save the environment variables:
MX25 U-Boot > saveenv
Now reboot the board and you should see the splash screen on the LCD.
7 - Booting Linux
When Linux takes control of the board it initializes the LCD controller and Framebuffer again. To maintain the splash screen on the LCD you can replace the Linux Logo with the figure used for the splash screen, the side effect is a blink when Linux takes over the LCDC.
To achieve this, create a new image in Gimp and save it as ".ppm". Copy it to Linux "logo" folder <ltib_path>/rpm/BUILD/linux-2.6.31/drivers/video/logo Run: