[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”
出现的问题
一直网络驱动最后一步,不知道在什么地方不小心改了什么,导致很多错误,也不知道是哪个地方,重新修改的uboot,修改网络驱动也不知道是哪里出错,莫名其妙,到处怀疑,还怀疑是不是vscode的问题,上传出现问题,不管怎么样,最后支持了,就到这了
吾心信其可行,
则移山填海之难,
终有成功之日!
——孙文
则移山填海之难,
终有成功之日!
——孙文
评论
0 评论