您尚未登录。

楼主 # 今天 14:34:16

a06041114
会员
注册时间: 2021-01-18
已发帖子: 23
积分: 18

如何让T113-I在Tina系统下,uboot和内核阶段显示不同的Logo?

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

离线

页脚

工信部备案:粤ICP备20025096号 Powered by FluxBB

感谢为中文互联网持续输出优质内容的各位老铁们。 QQ: 516333132, 微信(wechat): whycan_cn (哇酷网/挖坑网/填坑网) service@whycan.cn


太原小智科技有限责任公司 - 东莞哇酷科技有限公司联合开发