当前位置: 首页 > news >正文

I.MX6ULL的MAC网络外设设备树实现说明一

一. 简介

IMX6ULL芯片内部集成了两个 10/100M 的网络 MAC 外设,所以,ALPHA开发板上的有线网络的硬件方案是:

SOC内部集成网络MAC外设+ PHY网络芯片方案。

本文来说明一下MAC网络外设的设备节点信息的实现。

因此, I.MX6ULL 网络驱动主要就是这两个网络 MAC 外设的驱动。这两个外设的驱动都是一样的,我们分析其 中 一 个 就 行 了 。

 

二.    I.MX6ULL的MAC网络外设设备树实现说明

  NXP I.MX 系 列 SOC 网 络 绑 定 文 档 为
Documentation/devicetree/bindings/net/fsl-fec.txt ,此绑定文档描述了 I.MX 系列 SOC 网络设备树
节点的要求。

1.  必要属性

compatible 这个肯定是必须的,一般是“ fsl,<soc>-fec ”,比如 I.MX6ULL compatible 性就是 "fsl,imx6ul-fec", "fsl,imx6q-fec"
reg SOC 网络外设寄存器地址范围。
interrupts :网络中断。
phy-mode 网络所使用的 PHY 接口模式,是 MII 还是 RMII

2.  可选属性

phy-reset-gpios PHY 芯片的复位引脚。
phy-reset-duration PHY 复位引脚复位持续时间,单位为毫秒。只有当设置了 phy-reset-gpios 属性此属性才会有效,如果不设置此属性的话 PHY 芯片复位引脚的复位持续时间默认为 1 毫秒,数值不能大于 1000 毫秒,大于 1000 毫秒的话就会强制设置为 1 毫秒。
phy-supply PHY 芯片的电源调节。
phy-handle :连接到此网络设备的 PHY 芯片句柄。
fsl,num-tx-queues 此属性指定发送队列的数量,如果不指定的话默认为 1
fsl,num-rx-queues 此属性指定接收队列的数量,如果不指定的话默认为 2
fsl,magic-packet 此属性不用设置具体的值,直接将此属性名字写到设备树里面即可,表示支持硬件魔术帧唤醒。
fsl,wakeup_irq 此属性设置唤醒中断索引。
stop-mode 如果此属性存在的话表明 SOC 需要设置 GPR 位来请求停止模式。

3.  可选子节点

mdio:可以设置名为“mdio”的子节点,此子节点用于指定网络外设所使用的 MDIO 总线,
主要做为 PHY 节点的容器,也就是在 mdio 子节点下指定 PHY 相关的属性信息,具体信息可 以参考 PHY 的绑定文档 Documentation/devicetree/bindings/net/phy.txt
PHY 节点相关属性内容如下:
interrupts :中断属性,可以不需要。
interrupt-parent 中断控制器句柄,可以不需要。
reg PHY 芯片地址,必须的!
compatible 兼容性列表,一般为“ ethernet-phy-ieee802.3-c22 ”或“ ethernet-phy-ieee802.3-c45 ”,分别对应 IEEE802.3 22 簇和 45 簇,默认是 22 簇。也可以设置为其他值,如果 PHY ID 不知道的话,可以 compatible 属性可以设置为“ ethernet-phy-idAAAA.BBBB ”, AAAA BBBB 的含义如下:
AAAA PHY 16 ID 寄存器 1 值,也就是 OUI bit3~18 16 进制格式。
BBBB PHY 16 ID 寄存器 2 值,也就是 OUI bit19~24 16 进制格式。
max-speed PHY 支持的最高速度,比如 10 100 1000


 

三.  IMX6ULL的MAC网络外设的设备节点(MAC网络外设的根设备节点)

打开 imx6ull.dtsi ,找到如下 I.MX6ULL 的两个网络外设节点,如下所示:
			fec1: ethernet@02188000 {compatible = "fsl,imx6ul-fec", "fsl,imx6q-fec";reg = <0x02188000 0x4000>;interrupts = <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH>,<GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH>;clocks = <&clks IMX6UL_CLK_ENET>,<&clks IMX6UL_CLK_ENET_AHB>,<&clks IMX6UL_CLK_ENET_PTP>,<&clks IMX6UL_CLK_ENET_REF>,<&clks IMX6UL_CLK_ENET_REF>;clock-names = "ipg", "ahb", "ptp","enet_clk_ref", "enet_out";stop-mode = <&gpr 0x10 3>;fsl,num-tx-queues=<1>;fsl,num-rx-queues=<1>;fsl,magic-packet;fsl,wakeup_irq = <0>;status = "disabled";};fec2: ethernet@020b4000 {compatible = "fsl,imx6ul-fec", "fsl,imx6q-fec";reg = <0x020b4000 0x4000>;interrupts = <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>,<GIC_SPI 121 IRQ_TYPE_LEVEL_HIGH>;clocks = <&clks IMX6UL_CLK_ENET>,<&clks IMX6UL_CLK_ENET_AHB>,<&clks IMX6UL_CLK_ENET_PTP>,<&clks IMX6UL_CLK_ENET2_REF_125M>,<&clks IMX6UL_CLK_ENET2_REF_125M>;clock-names = "ipg", "ahb", "ptp","enet_clk_ref", "enet_out";stop-mode = <&gpr 0x10 4>;fsl,num-tx-queues=<1>;fsl,num-rx-queues=<1>;fsl,magic-packet;fsl,wakeup_irq = <0>;status = "disabled";};

fec1 fec2 分别对应 I.MX6ULL ENET1 ENET2 ,至于节点的具体属性就不分析了,上面在讲解绑定文档的时候就已经详细的讲过了。上面的IMX6ULL的MAC网络外设的设备节点 NXP 官方编写的,我们 不需要去修改。
 

接下来需要在上面 IMX6ULL的MAC网络外设的设备节点的基础上,进行添加。添加针对 APLHA开发板的设备节点信息。例如,网络 所使用的引脚 pinctrl 节点信 息, 设置网络对应的 PHY 芯片接口为 MII还是RMII,复位IO等等信息。


 

相关文章:

  • VScode 集成终端设置默认打开当前文件夹 mac系统
  • vscode通过ssh连接服务器(吐血总结)
  • 【测试篇】测试用例
  • Claude-3全解析:图片问答,专业写作能力显著领先GPT-4
  • 如何正确使用reflect:Go反射规范与最佳实践
  • Linux的学习之路:4、权限
  • 某眼实时票房接口获取
  • 记忆力考验游戏-第15届蓝桥第5次STEMA测评Scratch真题精选
  • UniswapV2周边合约学习(五)-- ExampleFlashSwap.sol
  • Acwing.1388 游戏(区间DP对抗思想)
  • [环境配置]conda 64位安装32位python
  • 【大模型】大模型 CPU 推理之 llama.cpp
  • 阿里云通用算力型u1云服务器配置性能评测及价格参考
  • CAD Plant3D 2023 下载地址及安装教程
  • Linux运维-SHELL编程之正则表达式与流编辑处理器
  • 「前端」从UglifyJSPlugin强制开启css压缩探究webpack插件运行机制
  • 【vuex入门系列02】mutation接收单个参数和多个参数
  • CentOS7简单部署NFS
  • C语言笔记(第一章:C语言编程)
  • el-input获取焦点 input输入框为空时高亮 el-input值非法时
  • java2019面试题北京
  • JS笔记四:作用域、变量(函数)提升
  • OpenStack安装流程(juno版)- 添加网络服务(neutron)- controller节点
  • SegmentFault 技术周刊 Vol.27 - Git 学习宝典:程序员走江湖必备
  • VuePress 静态网站生成
  • 程序员最讨厌的9句话,你可有补充?
  • 电商搜索引擎的架构设计和性能优化
  • 容器化应用: 在阿里云搭建多节点 Openshift 集群
  • 如何使用 JavaScript 解析 URL
  • 十年未变!安全,谁之责?(下)
  • 世界上最简单的无等待算法(getAndIncrement)
  • 微信支付JSAPI,实测!终极方案
  • 我看到的前端
  • 系统认识JavaScript正则表达式
  • 学习笔记:对象,原型和继承(1)
  • 原生Ajax
  • LIGO、Virgo第三轮探测告捷,同时探测到一对黑洞合并产生的引力波事件 ...
  • 宾利慕尚创始人典藏版国内首秀,2025年前实现全系车型电动化 | 2019上海车展 ...
  • 完善智慧办公建设,小熊U租获京东数千万元A+轮融资 ...
  • ​Python 3 新特性:类型注解
  • ​渐进式Web应用PWA的未来
  • #include
  • (07)Hive——窗口函数详解
  • (2)nginx 安装、启停
  • (2.2w字)前端单元测试之Jest详解篇
  • (ibm)Java 语言的 XPath API
  • (java版)排序算法----【冒泡,选择,插入,希尔,快速排序,归并排序,基数排序】超详细~~
  • (转)h264中avc和flv数据的解析
  • (转)树状数组
  • .mysql secret在哪_MySQL如何使用索引
  • .NET CLR基本术语
  • .NET Remoting Basic(10)-创建不同宿主的客户端与服务器端
  • .pyc文件是什么?
  • // an array of int
  • ?