[imx6ull] u-boot2016移植

2021/11/30

对于移植uboot不像半年前磕磕绊绊,现在轻车熟路,每当实现成功后,做总结就不想继续下去,只想草草了事

因为移植的nxp官方修改的uboot所以不需要进行很大的改动,这就要看自己用哪家的板子,我用的是正点原子的,还有其他比如韦东山老师的,还有野火等等其他,正常情况下,nxp官方改的支持了dram,sd卡,emmc,只需要关注网卡和lcd驱动即可。

个人感觉,正点原子的文档写的还是比较详细的,当热不是原理性的知识,按照手册即可成功,并且网上也有大量的教程,不想做无用功,本文只记录网文没出现的。

适配4.3寸屏幕

board/freescale/aeneag_mx6ull_emmc/aeneg_mx6ull_emmc.c文件中,修改如下,就可适配4.3寸800*480的屏幕

 1struct display_info_t const displays[] = {{
 2	.bus = MX6UL_LCDIF1_BASE_ADDR,
 3	.addr = 0,
 4	.pixfmt = 24,
 5	.detect = NULL,
 6	.enable	= do_enable_parallel_lcd,
 7	.mode	= {
 8		.name		= "AEN8888",
 9		.xres           = 800,
10		.yres           = 480,
11		.pixclock       = 32258,
12		.left_margin    = 88,
13		.right_margin   = 40,
14		.upper_margin   = 32,
15		.lower_margin   = 13,
16		.hsync_len      = 48,
17		.vsync_len      = 3,
18		.sync           = 0,
19		.vmode          = FB_VMODE_NONINTERLACED
20} } };

修改u-boot启动logo

drivers/video/cfb_console.c 1986行,删除下面的代码

 1#if 0
 2	if (len > space) {
 3		int xx = VIDEO_INFO_X, yy = VIDEO_INFO_Y;
 4		uchar *p = (uchar *) info;
 5		while (len) {
 6			if (len > space) {
 7				video_drawchars(xx, yy, p, space);
 8				len -= space;
 9
10				p = (uchar *) p + space;
11
12				if (!y_off) {
13					xx += VIDEO_FONT_WIDTH;
14					space--;
15				}
16				yy += VIDEO_FONT_HEIGHT;
17
18				y_off++;
19			} else {
20				video_drawchars(xx, yy, p, len);
21				len = 0;
22			}
23		}
24	} else
25		video_drawstring(VIDEO_INFO_X, VIDEO_INFO_Y, (uchar *) info);
26#endif

将准备好的“.bmp” 格式的图片拷贝到 uboot 的“/tools/logos” 目录下 ,注意图片一定是8位的,分辨率小于800*480 ,替换“freescale.bmp”

image.png

出现的问题

一直网络驱动最后一步,不知道在什么地方不小心改了什么,导致很多错误,也不知道是哪个地方,重新修改的uboot,修改网络驱动也不知道是哪里出错,莫名其妙,到处怀疑,还怀疑是不是vscode的问题,上传出现问题,不管怎么样,最后支持了,就到这了


    


公众号'艾恩凝'
个人公众号
个人微信
个人微信
    吾心信其可行,
          则移山填海之难,
                  终有成功之日!
                                  ——孙文
    评论
    0 评论
avatar

取消