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: https://community.freescale.com/servlet/JiveServlet/download/320516-257543/uboot_mx6x.pdf (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 bin2txt.py tool (https://community.freescale.com/docs/DOC-93833), 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;

 

and

     if (s != NULL) {

          addr = simple_strtoul(s, NULL, 16);

     #if defined(CONFIG_ARCH_MMU)

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

     #endif

          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.

Outcomes