uboot移植网络驱动配置

这篇具有很好参考价值的文章主要介绍了uboot移植网络驱动配置。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

开发设备imx6ull miniV2.2版本
在上一章节中我们已经讲解过UBOOT开发移植与LCD分辨率修改,这节我们讲解网络驱动配置,前提是需要电脑与虚拟机互通,我将单独在写一片三端互通的文章。
那么修改网络驱动我们需要先修改网口地址,打开原理图可以看到mini只有一个网口为ENET2
uboot移植网络驱动配置
ENET2需要外接一个PHY芯片来实现网络通信功能,也就是内部MAC+外部PHY芯片来实现。在上个原理图我们可以看到PHY ADDR:0X01那么代码中默认的也为0X1我们不需要进行修改
uboot移植网络驱动配置
KSZ8081 这颗 PHY 芯片就是 Micrel 公司生产的,不过 Micrel 已经被Microchip 收购了。如果要使用 SR8201F,那么就得CONFIG_PHY_MICREL 改为 CONFIG_PHY_REALTEK。
uboot移植网络驱动配置

NXP默认的UBOOT代码使用的是74LV595,我们需要对网络复位引脚进行修改打开开发板原理
uboot移植网络驱动配置
看到复位引脚是SNVS_TAMPER8这个引脚,对应GPIO5_IO08
uboot移植网络驱动配置
我们在对应板子C文件中加上该引脚的宏定义

#define ENET2_RESET IMX_GPIO_NR(5 ,8)

删掉74LV595的引脚配置

static iomux_v3_cfg_t const iox_pads[] 
static void iox74lv_init(void)
void iox74lv_set(int index)

这三个函数
在板子初始化的过程中会调用 imx_iomux_v3_setup_multiple_pads 和 iox74lv_init 这两个函数来初始化74lv595 的 GPIO

int board_init(void)
{
......
imx_iomux_v3_setup_multiple_pads(iox_pads, ARRAY_SIZE(iox_pads));
 iox74lv_init();
 ......
 return 0;
}

我们将这两个函数删掉

imx_iomux_v3_setup_multiple_pads(iox_pads, ARRAY_SIZE(iox_pads));
 iox74lv_init();

我们找到网络2引脚的IO配置将我们对应的网络复位引脚加入进去

MX6_PAD_SNVS_TAMPER8_GPIO5_IO08 | MUX_PAD_CTRL(NO_PAD_CTRL),

uboot移植网络驱动配置
然后我们得添加对应网络引脚一个复位的操作过程
uboot移植网络驱动配置
我们通过改变引脚的高低电平让其复位一下,最后延时150ms,该板子使用的SR8210F,这个延时是有明确要求的,要不让将无法识别SR8210F。最后我们梳理一下网络驱动配置过程
不管你用什么板子第一步我们需要修改PHY地址,不同的板子使用不同的芯片对应的地址是不同的,我们需要打开开发板原理图进行确认然后对ENET1与ENET2的PHY地址进行赋值。然后根据网络驱动芯片的公司将修改成对应公司。

#define CONFIG_PHY_REALTEK

然后定义对应网络复位引脚,引脚定义我们还是去对应开发板原理图中寻找。删掉NXP自带的网络引脚和相关函数(如果你跟NXP是一个芯片型号那就不用了)定义完事之后将其添加到对应网络复位引脚驱动中,然后在写网络IO初始化代码并且复位一下 PHY 芯片。延时的长短是要根据你芯片手册来确认的。最后我们编译UBOOT烧录到SD卡中,并设置好其ip等配置。ping一下虚拟机IP可以看到我们的网络配置已经成功。
uboot移植网络驱动配置文章来源地址https://www.toymoban.com/news/detail-416375.html

到了这里,关于uboot移植网络驱动配置的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【IMX6ULL驱动开发学习】07.驱动程序分离的思想之平台总线设备驱动模型和设备树

    目录 一、驱动程序分离的思想 二、设备树 2.1 使用设备树 三、平台总线设备驱动模板 【IMX6ULL驱动开发学习】05.字符设备驱动开发模板(包括读写函数、poll机制、异步通知、定时器、中断、自动创建设备节点和环形缓冲区)_阿龙还在写代码的博客-CSDN博客 之前编写驱动程序

    2024年02月07日
    浏览(39)
  • 【IMX6ULL驱动开发学习】14.Linux驱动开发 - GPIO中断(设备树 + GPIO子系统)

    代码自取 【14.key_tree_pinctrl_gpios_interrupt】: https://gitee.com/chenshao777/imx6-ull_-drivers 主要接口函数: 1. of_gpio_count (获得GPIO的数量) 2. kzalloc (向内核申请空间) 3. of_get_gpio (获取GPIO子系统标号) 4. gpio_to_irq (根据GPIO子系统标号得到软件中断号) 5. request_irq (根据软件中断号

    2024年02月12日
    浏览(49)
  • uboot移植网络驱动配置

    开发设备imx6ull miniV2.2版本 在上一章节中我们已经讲解过UBOOT开发移植与LCD分辨率修改,这节我们讲解网络驱动配置,前提是需要电脑与虚拟机互通,我将单独在写一片三端互通的文章。 那么修改网络驱动我们需要先修改网口地址,打开原理图可以看到mini只有一个网口为ENE

    2023年04月17日
    浏览(69)
  • 【IMX6ULL驱动开发学习】02.hello驱动程序之cdev注册字符设备驱动程序和设置次设备号

    目录 一、register_chrdev 二、解决方法 2.1 alloc_chrdev_region函数:注册一系列字符设备编号 2.2 cdev_init函数:初始化cdev结构体  2.3  cdev_add函数:将字符设备添加到系统中  三、驱动程序 【IMX6ULL驱动开发学习】01.编写第一个hello驱动+自动创建设备节点(不涉及硬件操作)_阿龙还

    2024年02月14日
    浏览(38)
  • imx6ull uboot使用tftp加载内核zImage及设备树dtb文件

    在基于嵌入式linux开发时,经常要烧写内核代码及设备数文件,而mfgtools工具的烧写速度台慢,浪费大量时间,在观看左盟主的imx6ul视频驱动开发视频时发现他是用tftp自动加载内核或设备数,现将内容整理如下。 1、在Ubuntu系统中搭建tftp服务 1)安装tftp 2)建立tftp目录,并修

    2024年02月07日
    浏览(36)
  • 【IMX6ULL驱动开发学习】11.驱动设计之面向对象_分层思想(学习设备树过渡部分)

    一个 可移植性好 的驱动程序,应该有三个部分组成 1、驱动框架程序(xxx_drv.c) — 对接应用层的 open read write 函数,不做GPIO具体操作 2、硬件操作程序(xxx_chip_gpio.c)— 执行具体的GPIO操作,初始化、读写 3、硬件资源定义程序(xxx_board.c,这在之后就过渡成了设备树)— 为

    2024年02月11日
    浏览(42)
  • 【IMX6ULL驱动开发学习】01.编写第一个hello驱动+自动创建设备节点(不涉及硬件操作)

    目录 一、驱动程序编写流程 二、代码编写 2.1 驱动程序hello_drv.c 2.2 测试程序 2.3 编写驱动程序的Makefile 三、上机实验 3.1 NFS 挂载 3.2 测试示例 构造file_operations结构体 在里面填充open/read/write/ioctl成员 注册file_operations结构体 int major = register_chrdev(0, \\\"name\\\", fops); 入口函数:调用

    2024年02月13日
    浏览(40)
  • Linux驱动之系统移植----uboot移植(有设备树版本),完整移植.

    uboot版本:uboot2020.04 开发板:100ask_imx6ull_pro 拿到官方uboot后第一步先编译烧写测试, 查看哪些驱动可用, 哪些不可用. 根据开发板厂商提供的资料: 使用mx6ull_14x14_evk_defconfig配置进行修改 编译完成后将uboot设备树以及uboot.imx烧写到开发板中运行 显然网络不通, phy无法找到, 其次LCD需

    2024年01月25日
    浏览(30)
  • imx8的源码开发方式非yocto方式(二)——基于imx8的uboot源码移植经验

    先从NXP官方的github源码库中下载各个版本的u-boot, uboot的下载地址为: GitHub - nxp-imx/uboot-imx: i.MX U-Boot 图1 选择uboot版本 1.本文下载最新的uboot版本(lf-5.15.71-2.2.0)的tar.gz的压缩包。 图2 拷贝、解压uboot源码到工作目录 2.拷贝uboot源码到ubuntu工作目录,并解压uboot压缩包,流程如

    2024年02月02日
    浏览(40)
  • 【IMX6ULL驱动开发学习】05.IMX6ULL驱动开发_编写第一个hello驱动【熬夜肝】

    经过以下四个步骤,终于可以开始驱动开发了 01.安装交叉编译环境【附下载地址】 02.IMX6ULL烧写Linux系统 03.设置IMX6ULL开发板与虚拟机在同一网段 04.IMX6ULL开发板与虚拟机互传文件 一、获取内核、编译内核 二、创建vscode工作区,添加内核目录和个人目录 三、了解驱动程序编写

    2024年02月06日
    浏览(49)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包