IMX6ULL Linux内核网络驱动修改

news/2024/11/17 19:32:22/文章来源:https://www.cnblogs.com/Hlc-/p/18200017

IMX6ULL 网络驱动修改

主要修改arch/arm/boot/dts/imx6ul-14x14-evk.dtsi设备树文件即可,修改方式和u-boot的设备树修改一致。

硬件电路

网口原理图

设备树修改

需要修改的设备树位置:arch/arm/boot/dts/imx6ul-14x14-evk.dtsi

增加复位引脚信息

从上面的原理图可知网口1使用的复位引脚是GPIO5_IO07,网口2使用的复位引脚是GPIO5_IO08,在官方的例程中,这两个引脚被用于SPI4,所以我们SPI4里面这两个引脚的相关信息,修改如下图所示。

SPI4引脚

还需要屏蔽掉pinctrl_spi4里面相关的信息,修改如下:

pinctrl_spi4

添加网口复位的pinctrl描述,增加位置如下:
pinctrl_enet_reset
相关代码段:

     pinctrl_enet1_reset: enet1resetgrp {fsl,pins = <MX6UL_PAD_SNVS_TAMPER7__GPIO5_IO07 0x10B0>;};pinctrl_enet2_reset: enet2resetgrp {fsl,pins = <MX6UL_PAD_SNVS_TAMPER8__GPIO5_IO08 0x10B0>;};

修改网口TX时钟的电器属性值

修改的位置如下:
网口时钟引脚的电器属性值

需要把0x4001b031修改为:0x4001b009

修改结果如下:

     pinctrl_enet1: enet1grp {fsl,pins = <MX6UL_PAD_ENET1_RX_EN__ENET1_RX_EN  0x1b0b0MX6UL_PAD_ENET1_RX_ER__ENET1_RX_ER  0x1b0b0MX6UL_PAD_ENET1_RX_DATA0__ENET1_RDATA00 0x1b0b0MX6UL_PAD_ENET1_RX_DATA1__ENET1_RDATA01 0x1b0b0MX6UL_PAD_ENET1_TX_EN__ENET1_TX_EN  0x1b0b0MX6UL_PAD_ENET1_TX_DATA0__ENET1_TDATA00 0x1b0b0MX6UL_PAD_ENET1_TX_DATA1__ENET1_TDATA01 0x1b0b0/* 0x4001b031修改为0x4001b009 */MX6UL_PAD_ENET1_TX_CLK__ENET1_REF_CLK1  0x4001b009>;};pinctrl_enet2: enet2grp {fsl,pins = <MX6UL_PAD_GPIO1_IO07__ENET2_MDC     0x1b0b0MX6UL_PAD_GPIO1_IO06__ENET2_MDIO    0x1b0b0MX6UL_PAD_ENET2_RX_EN__ENET2_RX_EN  0x1b0b0MX6UL_PAD_ENET2_RX_ER__ENET2_RX_ER  0x1b0b0MX6UL_PAD_ENET2_RX_DATA0__ENET2_RDATA00 0x1b0b0MX6UL_PAD_ENET2_RX_DATA1__ENET2_RDATA01 0x1b0b0MX6UL_PAD_ENET2_TX_EN__ENET2_TX_EN  0x1b0b0MX6UL_PAD_ENET2_TX_DATA0__ENET2_TDATA00 0x1b0b0MX6UL_PAD_ENET2_TX_DATA1__ENET2_TDATA01 0x1b0b0/* 0x4001b031修改为0x4001b009 */MX6UL_PAD_ENET2_TX_CLK__ENET2_REF_CLK2  0x4001b009>;};

修改fec信息

fec是6ull描述网络的节点,修改位置如下:

fec

  1. 从节点上面的信息我们可以看见ethphy0使用的PHY地址为2,ethphy1使用的PHY地址是1,但是我们的ethphy0使用的PHY地址为0,ethphy1使用的PHY地址是1,所以我们需要修改ethphy0的PHY地址。
  2. 设备树上写的ethphy0和ethphy1使用的PHY芯片为micrel的芯片,我们使用的是LAN7820A,是smsc家的芯片,所以我们也需要修改这个。
  3. 我们还需要增加相关的复位引脚信息

综上修改如下:

&fec1 {pinctrl-names = "default";/* 增加pinctrl_enet1_reset */pinctrl-0 = <&pinctrl_enet1 &pinctrl_enet1_reset>;phy-mode = "rmii";phy-handle = <&ethphy0>;/* 设置复位有效电平和持续时间 */phy-reset-gpios = <&gpio5 7 GPIO_ACTIVE_LOW>;phy-rest-duration = <200>;status = "okay";
};
&fec2 {pinctrl-names = "default";/* 增加pinctrl_enet2_reset */pinctrl-0 = <&pinctrl_enet2 &pinctrl_enet2_reset>;phy-mode = "rmii";phy-handle = <&ethphy1>;/* 设置复位有效电平和持续时间 */phy-reset-gpios = <&gpio5 8 GPIO_ACTIVE_LOW>;phy-rest-duration = <200>;status = "okay";mdio {#address-cells = <1>;#size-cells = <0>;/* 修改ethphy0的PHY地址为0,下面的reg也要设置为0 */ethphy0: ethernet-phy@0 {reg = <0>;/* 修改为使用smsc的芯片 */smsc,led-mode = <1>;clocks = <&clks IMX6UL_CLK_ENET_REF>;clock-names = "rmii-ref";};ethphy1: ethernet-phy@1 {reg = <1>;/* 修改为使用smsc的芯片 */smsc,led-mode = <1>;clocks = <&clks IMX6UL_CLK_ENET2_REF>;clock-names = "rmii-ref";};};
};

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/708579.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SpringCloud(1)-Eureka相关配置

1.新建Module-注册中心作为注册中心 1.1配置 pom.xml <!-- 引入 eureka-server --><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-eureka-server</artifactId></dependency>1…

FPGA笔记[2]-拨码开关控制LED灯

使用四个拨码开关的异或逻辑亮灯控制LED灯亮灭.摘要 使用四个拨码开关的异或逻辑亮灯控制LED灯亮灭. 关键信息系统macOS 14.4.1,Apple Silicon M2 开发板:Sipeed-Tang-Primer-20k FPGA芯片:GW2A-LV18PG256C8/I7(GW2A-18C-PBGA256) 工具链:YosysHQ/oss-cad-suite原理简介 LUT4简…

stm32f103c8t6 HAL库更改中断向量表(app部分)

打开HAL库工程的system_stm32f1xx.c文件 /* 注意:以下向量表地址必须与链接器一致定义配置。*//*!< 如果需要重新定位向量表,请取消注释以下行 在 Flash 或 Sram 中的任何位置,否则向量表将保持在自动状态 重新映射选择的启动地址 *//* #define USER_VECT_TAB_…

向web服务器下载文件

web服务器向客户端发送文件 Web服务器读取一个文件的二进制数据,把这组二进制数据发送个客户端,服务器发送给客户端的HTML文档的本质也是二进制。客户端使用以下代码读文件 response = urllib.request.urlopen(url + "?" + urllib.parse.quote(fileName)) data = …

Delphi TMSMQTT使用笔记

服务端用的是 mosquitto ,下载地址https://mosquitto.org/download/ 安装完成后需要配置 找到安装目录:mosquitto.conf,打开后修改 allow_anonymous false(禁止匿名登录),password_file D:\Program Files\mosquitto\pwfile.example(密码存放位置) 创建新用户,安装目录…

沪锡

沪锡要想牛市 必须要突破这里286700 要不然就是ABC反弹结束了。 小周期 反弹还有最后一个3-5 然后迎来回调 然后等待看是什么级别的回调。

产业园区开发运营及盈利模式分析

摘 要:产业园区一般由政府或企业开发建设,是区域经济和产业发展的重要空间载体,具有显著的资源集聚能力和产业规模效益,承担着产业要素集聚、新型产业培育、经济高质量发展和新型城镇化建设等重要使命。然而,当前国内部分产业园区因前期开发投入规模大、后期招商及运营管理…

使用Github Actions + Watchtower 实现项目CI/CD

使用Github Actions + Watchtower 实现项目CI/CD 前言 对于我们这种个人开发者,将程序部署在服务器上一般都是通过宝塔部署来确保服务能够一直存活,但是对于一个经常改来改去的项目,这是一个非常头疼的事情,需要重复地本地编译-->打开宝塔-->输入账号密码(甚至安全模…

Atcoder 题目选做(三)

Atcoder 题目选做(三)(20/20)推荐阅读:#5、#7、#11、#13、#15、#18、#19\(\text{By DaiRuiChen007}\)1. [ARC152E] Xor Annihilation Problem Link给 \(2^n-1\) 个动点,权值为 \(1\sim 2^n-1\) 的排列,对于每个点,设其左右两边所有点权异或和分别为 \(L,R\),那么他会向…

铁矿石 短线

周初要关注893一线阻力 ABC调整结构会出现 30分钟周期:

简单纯粹

如何做到极致的简单纯粹 2024.5.16-5.172024.5.17