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.