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

测试完成。

相关推荐
qq_401700412 小时前
Linux驱动-设备树
linux
是阿威啊2 小时前
【第五站】集群组件一键启动/关闭脚本(Hadoop/YARN + Hive + Spark)
linux·运维·hive·hadoop·spark
d111111111d2 小时前
STM32平衡车工具-匿名助手+虚拟串口如何使用。
笔记·stm32·单片机·嵌入式硬件·学习
式5162 小时前
大模型学习基础(七)强化学习概念回顾
学习
絔宝2 小时前
在eclipse中创建Maven项目-用于学习Selenium 自动化测试
学习·selenium·eclipse·maven
txzz88882 小时前
CentOS-Stream-10 搭建FTP服务器之系统用户访问
linux·运维·服务器·centos·ftp服务器·ftp 系统用户访问
ℳ₯㎕ddzོꦿ࿐2 小时前
零基础教程:在 Linux 上通过 Docker 快速部署 Dify
linux·运维·docker·dify
学海_无涯_苦作舟2 小时前
RabbitMQ Java Client源码解析——ConnectionFactory和Connection
linux·运维·服务器
是阿威啊2 小时前
【第三站】本地虚拟机部署hive集群
linux·数据仓库·hive·hadoop·分布式