2404430_zh-CN

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 

2404430_zh-CN

2404430_zh-CN

LAN96455F 以太网交换机与 i.MX95 集成 – 设备树指南

您好,NXP团队:

我们正在将Microchip LAN96455F以太网交换机(LAN9645x系列)集成到定制的i.MX95 19x19 LPDDR5板(基于imx95-19x19-evk.dts)上,我希望得到关于正确集成设备树的指导。

Re: LAN96455F Ethernet Switch Integration with i.MX95 – Device Tree Guidance

对于 Linux,如果您希望 Linux 单独公开/管理外部交换机端口,请将 LAN96455F 建模为DSA 以太网交换机。连接到交换机 CPU/上行链路端口的 i.MX95 ENETC/NETC 以太网 MAC 应该是 DSA通道接口;LAN96455F 端口成为 DSA 用户网络设备。DSA 专为具有连接到 SoC 以太网控制器的专用 CPU 端口的交换机而设计,它为每个前面板创建“用户”界面,而不是为 CPU 端口本身创建单独的网络设备。

一个好的设备树结构是:

/* 将 &enetX / &mdioX 替换为实际使用的 i.MX95 BSP 标签

* 在 imx95-19x19-evk.dts / imx95.dtsi 中,选择您喜欢的 NETC ENETC 端口。

*/

/* i.MX95 ENETC 端口连接到 LAN96455F CPU/上行链路端口 */

&netX {

状态 = "好的"

/* 必须匹配 i.MX95 和 LAN96455F 之间的电气接口:

* "rgmii-id", "rgmii", "sgmii", "2500base-x", 等。

*/

              phy-mode = "rgmii-id";

/* MAC 到交换机的 CPU 端口通常是无 PHY 的,因此请对其进行描述

*除非 LAN96455F CPU 端口实际处于固定链路状态,否则不会作为固定链路使用

* 通过 PHY/PCS 进行管理。

*/

固定链接 {

速度 = <1000>

全双工;

              };

};

/* MDIO 控制器用于访问交换机管理接口。

* i.MX95 NETC 具有用于外部 PHY 的外部主 MDIO 接口,

* 支持第 22 条和第 45 条 。

*/

&mdioX {

状态 = "好的"

以太网交换机@0 {

/* 使用 LAN9645x 驱动程序/绑定中的兼容字符串

* 已包含在您的内核/BSP 中。不要编造这个字符串。

*/

兼容 = "microchip,"

reg = <0>; /* 板上绑定的 MDIO 地址 */

端口 {

#address-cells = <1>

#size-cells = <0>

port@0 {

reg = <0>

标签 = "lan0"

/* 如果此外部端口具有外部 PHY:

* phy-handle =

* phy-mode = "..."

*/

};

port@1 {

reg = <1>

标签 = "lan1"

};

port@2 {

reg = <2>

标签 = "lan2"

};

port@3 {

reg = <3>

标签 = "lan3"

};

/* LAN96455F CPU/上行链路端口号必须与

* Microchip 数据手册/驱动程序定义。

*/

                                           端口@N {

reg =

标签 = "cpu"

以太网 = <&enetX>;

                                                           phy-mode = "rgmii-id"

                                                                固定链接 {

速度 = <1000>

全双工;

};

};

};

              };

};

最终确定DTS之前需要检查的关键点:

  • 使用内核中的实际 LAN9645x 绑定。我无法从检索到的源中确认公共主线 LAN96455F 特定绑定,因此上面的兼容字符串故意用作占位符。检查 NXP 电路板支持包/Microchip 驱动程序树,路径为 Documentation/devicetree/bindings/net/dsa/ 或 Microchip LAN9645x 驱动程序源代码。
  • 在交换机 CPU 端口上设置 ethernet = <&enetX>;,而不是在每个交换机端口上设置。DSA 端口绑定表示以太网属性是交换机端口所连接的主机以太网设备的句柄。
  • CPU/DSA 端口需要 phylink 风格的链路描述。对于以太网 = <&enetX>; 的 CPU 端口,绑定需要 phy-mode 和 fixed-link、phy-handle 或 managed 之一。
  • 使用固定链路实现 MAC 地址到交换机 CPU 端口的直接连接。通用以太网绑定定义了具有速度、全双工和可选的暂停属性的固定链路;支持的固定链路速度包括对象形式的 10/100/1000/2500/5000/10000 Mbit/s。
  • 使用RGMII延迟模式时要精确控制。phy-mode = "rgmii-id" 表示 PCB 不提供 RGMII 时钟/数据延迟,MAC/PHY 端必须提供内部延迟;plain "rgmii" 表示 PCB 布线提供延迟。对于大多数自定义电路板而言,“rgmii-id”是预期的起点,除非您的布局特意添加了延迟。
  • 如果 MAC 连接到交换机 CPU 端口,则不要将 i.MX95 MAC 配置为具有普通外部 PHY 。在 DSA 模型中,MAC 是通道,外部用户端口由交换机端口节点表示。
  • 预计会出现 lan0、lan1 等 Linux 接口。DSA为前面板端口创建用户网络设备,DSA 标签属性将成为网络设备名称。

出院检查:

dmesg | grep -i -E "dsa|lan964|mdio|enetc|netc"

IP链接

cat /sys/class/net//dsa/tagging 2>/dev/null

ip 链路已设置 已启动

ip link set lan0 up

ethtool lan0

如果没有 lanX 接口出现,请按以下顺序进行调试:MDIO 地址/strap 值、重置 GPIO 时序、如果驱动程序需要中断 GPIO、正确的 LAN9645x 兼容、正确的 CPU 端口寄存器以及 i.MX95 和交换机之间的正确 phy 模式/固定链路速度。

使用 i.MX95 ENETC 端口作为 DSA 通道,在 MDIO/SPI 管理总线下使用端口块描述 LAN96455F,并使交换机 CPU 端口指向 ENETC MAC,使用 ethernet = <&enetX> 加上有效的 phy-mode 和 fixed-link / managed / phy-handle。


标记 (1)
无评分
版本历史
最后更新:
‎08-18-2026 02:36 AM
更新人: