网站建设干货,广告推广赚钱,wordpress 商城主题,商务网站建设与维护 ppt一. 简介
IMX6ULL芯片内部集成了两个 10/100M 的网络 MAC 外设#xff0c;所以#xff0c;ALPHA开发板上的有线网络的硬件方案是#xff1a;
SOC内部集成网络MAC外设 PHY网络芯片方案。
本文来说明一下MAC网络外设的设备节点信息的实现。 因此#xff0c; I.MX6ULL 网络…一. 简介
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: ethernet02188000 {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-queues1;fsl,num-rx-queues1;fsl,magic-packet;fsl,wakeup_irq 0;status disabled;};fec2: ethernet020b4000 {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-queues1;fsl,num-rx-queues1;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等等信息。