Tina5.0的系统,全志在uboot和内核显示的logo都是一样的图片,不像其他厂家uboot和内核是不同的显示logo.请问我如何修改,能实现全志在UBOOT阶段和内核阶段显示不一样的logo?
我看了Tina源码,显示logo的函数是在tina5.0_v1.0/kernel/linux-5.4/drivers/video/fbdev/sunxi/disp2/disp路径下的dev_fb.c文件实现
static int Fb_map_kernel_logo(u32 sel, struct fb_info *info)
{
void *vaddr = NULL;
uintptr_t paddr = 0;
void *screen_offset = NULL, *image_offset = NULL;
char *tmp_buffer = NULL;
char *bmp_data = NULL;
struct sunxi_bmp_store s_bmp_info;
struct sunxi_bmp_store *bmp_info = &s_bmp_info;
struct bmp_pad_header bmp_pad_header;
struct bmp_header *bmp_header;
int zero_num = 0;
unsigned int x, y, bmp_bpix, fb_width, fb_height;
unsigned int effective_width, effective_height;
uintptr_t offset;
int i = 0;
struct disp_manager *mgr;
mgr = g_disp_drv.mgr[sel];
paddr = bootlogo_addr;
if (paddr == 0) {
__inf("Fb_map_kernel_logo failed!");
printk("xcm disp test2: Fb_map_kernel_logo 000 !!!!!!! \n");
return Fb_copy_boot_fb(sel, info);
}
printk("xcm disp test2: Fb_map_kernel_logo 001 !!!!!!! \n");
/* parser bmp header */
offset = paddr & ~PAGE_MASK;
vaddr = (void *)Fb_map_kernel(paddr, sizeof(struct bmp_header));
if (vaddr == NULL) {
}
.....
}在这个函数中是执行到return Fb_copy_boot_fb(sel, info)这个分支语句中,拷贝uboot的图片数据到内核中显示,所以uboot和内核显示的logo是一样的。但是按照其他开发平台的,内核阶段显示是video目录下的logo.c文件实现logo_linux_clut224.ppm,也就是企鹅图案。
不知道全志Tina如何也按照其他平台那样,内核阶段也是这样的流程显示logo_linux_clut224.ppm对应的企鹅logo
离线