Uboot移植--修改lcd和网络驱动

lcd移植https://www.bilibili.com/video/BV12E411h71h?spm_id_from=333.788.videopod.episodes&vd_source=7782ba9eb4236579cf9bb586af83fd28&p=25修改网络驱动https://www.bilibili.com/video/BV12E411h71h?spm_id_from=333.788.videopod.episodes&vd_source=7782ba9eb4236579cf9bb586af83fd28&p=26

LCD修改:

这里看上一个文章里,我们创建了自己的板子文件,也就是board下的文件夹。外设的一些设置都在这里配置了。我们打开复制修改的board下的文件夹下的c文件,我这里命名为mx6ull_cyx_emmc.c

1.找到这个lcd_pads开始修改。上边是io部分,也就是引脚。我使用的正点原子7寸屏幕。他的引脚与nxp官方的evk开发板的屏幕的引脚是一样的。所以不需要修改。下边这个LCD_RST可以注释,因为正点原子的屏幕没有复位脚。

2.第二步是这里,主要是这个。这里的mode就是lcd参数的信息。我们根据自己的lcd来设置。我是七寸屏幕1024*600。所以,按照如下参数,这里的name是匹配用的,也是显示lcd的名字。可以改为自己喜欢的,比如我这里是cyx_lcd

3.如果你改了上边的name,那么为了让uboot找到这个参数的结构体,我们在头文件里,也就是include/configs/mx6ull_cyx_emmc.h,也就是上一章的拷贝的头文件。进入搜索panel,找到对应的修改。把这个填成和上边的一样的。

接下来就是使用sh脚本重新编译后烧录了。

网络驱动修改:

1.修改include下的板子的头文件里,这个网络的地址,这个是使用的正点原子板子,那么这里需要按照他pcb接线,这里地址分别为0和1,#define CONFIG_FEC_ENET_DEV 这个的值就是选择uboot启用哪一个网口,1就是使用网口二,0就是使用网口一。

2.注释掉一下函数:

进入board/freescale/自己的板子文件夹的c文件

注释掉这几个定义,添加下边的两个宏。这里注释上边是因为正点原子使用的lan网口芯片,所以不使用官方的这个初始化。下边则是为了给后续的引脚开关使用。因为网口需要复位一下,开关一下引脚。

注释下边的这个函数,这个函数的位置就在宏的下边。

注释static void iox74lv_init(void)

void iox74lv_set(int index)

紧接着就是修改board_init函数,注释这两行代码,因为这是官方的网口芯片初始化代码。

接着,搜索fec1_pads函数,在下边新增MX6_PAD_SNVS_TAMPER7__GPIO5_IO07 | MUX_PAD_CTRL(NO_PAD_CTRL),

在fec2_pads下边增加MX6_PAD_SNVS_TAMPER8__GPIO5_IO08 | MUX_PAD_CTRL(NO_PAD_CTRL),

修改static void setup_iomux_fec(int fec_id)

cpp 复制代码
static void setup_iomux_fec(int fec_id)
{
	if (fec_id == 0)
	{
		imx_iomux_v3_setup_multiple_pads(fec1_pads,
			ARRAY_SIZE(fec1_pads));
		gpio_direction_output(ENET1_RESET,1);
		gpio_set_value(ENET1_RESET,0);
		mdelay(20);
		gpio_set_value(ENET1_RESET,1);
	}
	else
	{
		imx_iomux_v3_setup_multiple_pads(fec2_pads,
			ARRAY_SIZE(fec2_pads));
		gpio_direction_output(ENET2_RESET,1);
		gpio_set_value(ENET2_RESET,0);
		mdelay(20);
		gpio_set_value(ENET2_RESET,1);
	}
	mdelay(150);
}

接下来烧录测试:

查看自己的电脑ip地址

测试完成。

相关推荐
微露清风1 天前
系统性学习Linux-第二讲-基础开发工具
linux·运维·学习
不会代码的小猴1 天前
Linux环境编程第六天笔记--system-V IPC
linux·笔记
阳光九叶草LXGZXJ1 天前
达梦数据库-学习-48-DmDrs控制台命令(同步之Manager、CPT模块)
linux·运维·数据库·sql·学习
诸神缄默不语1 天前
Linux命令行教程
linux
biuyyyxxx1 天前
Python自动化办公学习笔记(一) 工具安装&教程
笔记·python·学习·自动化
丝斯20111 天前
AI学习笔记整理(66)——多模态大模型MOE-LLAVA
人工智能·笔记·学习
i建模1 天前
如何在Arch Linux中重设忘记的root密码
linux·运维·服务器
军军君011 天前
Three.js基础功能学习十三:太阳系实例上
前端·javascript·vue.js·学习·3d·前端框架·three
bylander1 天前
【AI学习】TM Forum《Autonomous Networks Implementation Guide》快速理解
人工智能·学习·智能体·自动驾驶网络
kida_yuan1 天前
【Linux】运维实战笔记 — 我常用的方法与命令
linux·运维·笔记