AnsweredAssumed Answered

How do I customize the splashscreen image in U-boot?

Question asked by Michael Schrag on Sep 17, 2015
Latest reply on Oct 1, 2015 by Michael Schrag

Device info:

     Processor: iMX6Q (Dual Core Version)

     Uboot Version: 2009.08

     BSP Version: Freescale Android BSP for KitKat 4.4.2_r1


I am trying to customize the splashscreen within U-boot, but have run into a problem: Whenever I put in a custom splashscreen, the screen appears blank. Here is an explanation of what processes I have tried so far.


After a bit of research, I came across a thread that had the following manual outlining a process for setting up my splashscreen: (section 5.4). After successfully implementing steps 1 and 2 (enabling and setting variables), I was able to see the default Freescale splashscreen (the one I had seen on a development board I have).Now, I proceeded to step 3, and downloaded a 600x400 .jpeg file, converted it to .bmp by editing it in MS Paint, and got the tool (, then converted my bmp image using the tool. Here is where there might be an issue: the tool converted my file into a .h file. When I compared this .h file with the Freescale .c file, i noticed that there was little difference besides the declaration of the array, and a logo_size method. I added these items, and added the .o file into the Makefile. Now, I backed up the Freescale splashscreen file, and copied my .c file over the old file. When I rebooted the device, the splashscreen was blank. Here is the debug I have attempted:


All of these changes have been made using a clean build.

1. I tried a different image to make sure there wasn't an error with the one I was using.

2. I tried saving the file in 16 color bmp format instead

3. I tried editing /board/freescale/mx6q_sabresd/mx6q_sabresd.c, and changed the following code items (and they are the same name as the constant items in the my_logo.c file)


     #ifdef CONFIG_VIDEO_MX5

     extern unsigned char my_logo[];

     extern int my_logo_size;

     extern int g_ipu_hw_rev;



     if (s != NULL) {

          addr = simple_strtoul(s, NULL, 16);

     #if defined(CONFIG_ARCH_MMU)

          addr = ioremap_nocache(iomem_to_phys(addr), my_logo_size);


          memcpy((char *)addr, (char *)my_logo, my_logo_size);



All of these changed ended up producing the same result: a blank screen with no logo appearing. I have one more item to test: trying to grab a bmp without the paint conversion, but then I am out of ideas.