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地址

测试完成。

相关推荐
冰封之寂16 分钟前
Docker 部署与基础命令详解:从安装到容器管理全流程指南
linux·运维·docker·容器
正经人_x24 分钟前
学习日记42
学习
Brilliantwxx41 分钟前
【Linux】 软件包管理器(yum)+ Vim使用
linux·运维·服务器·开发语言·编辑器·vim
一只小菜鸡..44 分钟前
南京大学 操作系统 (JYY) 学习笔记:导论与历史的轮回 (OS Introduction)
笔记·学习
skywalk81631 小时前
在FreeBSD的Uubntu兼容环境下安装Reasonix
linux·运维·freebsd
小弥儿1 小时前
GitHub 今日热榜 | 2026-07-24:金融 K 线基础模型上榜
学习·金融·开源·github
^yi1 小时前
【Linux系统编程】对操作系统的理解
linux·运维·服务器·操作系统·系统调用·os
520拼好饭被践踏1 小时前
JAVA+Agent学习day22
java·开发语言·后端·学习
懿路向前1 小时前
【HarmonyOS学习笔记】2026-07-24 | textProcessing 实体识别与踩坑实录
笔记·学习·边缘计算·harmonyos
菩提树下的打坐1 小时前
性能测试进阶:从 JMeter 基线到 SLO 驱动的压测体系
学习·jmeter