您好,
我们正在评估是否可以在 i.MX95 上实现一个能够支持以下以太网速度的以太网端口:
通常,这要求我们在设计中集成一个支持 10Gbit 以太网的 PHY,并通过 USXGMII 或 XFI 这两个接口之一将其连接到 i.MX95 以太网控制器。
据我们了解,USXGMII 接口理论上是一个多速率接口,这意味着它可以通过一条链路实现从 10Gbit 到 10bit 的所有速度。
相比之下,XFI 接口是单速率接口,只能支持 10Gbit。
根据 i.MX95 参考手册(例如第 104.2 节,表 621)i.MX95 同时支持 XFI 和“10G-USXGMII”。所以初步看来,我们想要的接口 USXGMII 似乎得到了支持。
然而,有几点让我们感到困惑:
1.“10G-USXGMII”声明可以解释为该接口理论上是 USXGMII 链路,但实际上只能在 10Gbit 模式下工作。
2. NXP 评估板IMX95LPD5EVK-19 使用 Marvell AQR113C PHY 实现 10GBase-T 端口。
a) 在图 1 的框图中,1.1 节中,PHY 似乎连接到了 USXGMII 接口:
stefan_wenninge_0-1784101377785.png
b) 在相关的 2.11.3 节“10 Gbit 以太网接口”中,AQR113C 以太网收发器据称支持从 10Gbit 到 10bit 的所有数据速率,暗示了真正的 USXGMII:
stefan_wenninge_1-1784101562514.png
c) 本节还提到,用于连接以太网 PHY 的接口是 XFI:
stefan_wenninge_2-1784101765113.png
因此,我们最终还是不清楚 i.MX95 是否支持完整的多速率 USXGMII,还是只支持 10Gbit 版本。
我们尝试以 NXP 评估板作为参考,但我们也不确定该板上的 10GbE 端口是通过 USXGMII 连接(允许从 10Gbit 到 10bit 的多速率)还是通过 XFI 连接(仅限 10Gbit)。
请问能否为我们澄清一下: i.MX95 是否有可能实现真正的多速率 10GbE 端口,支持从 10Gbit 到 10bit 的速度?
1. “10G-USXGMII”的含义
“10G-USXGMII”指的是标准的多速率USXGMII协议,而不是仅10G模式。“10G”表示固定的 SerDes 通道速度,而 USXGMII 支持 10M、100M、1G、2.5G、5G 和 10G 以太网的带内速率自适应。
在 i.MX95 上,此模式由 PCS_PROT_10G_SXGMII 设置表示。
2. i.MX95 EVK 上使用的接口
i.MX95 EVK 使用 XFI (10GBASE-R) 而不是 USXGMII。在 imx95-19x19-evk.dts 中,enetc_port2 配置如下:
phy-mode = "10gbase-r";
因此,机载 AQR113C 以 XFI 模式运行。
3. 是否支持真正的多速率 USXGMII?
是的。i.MX95 NETC 硬件支持 USXGMII,Linux ENETC4 驱动程序通过 enetc4_set_port_speed() 处理速度更改。Marvell AQR113C 也支持 USXGMII 主机接口模式。
4. 定制板需要哪些组件?
为实现完整的多速率操作:
配置设备树:
phy-mode = "usxgmii";
managed = "带内状态";
将 AQR113C 固件配置为 USXGMII 主机模式而不是 XFI 模式。
EVK 的 10GbE 端口使用 XFI,但定制的 i.MX95 设计可以使用 USXGMII 和 AQR113C(或类似的 PHY)来支持通过单个 MAC 到 PHY 链路传输 10M/100M/1G/2.5G/5G/10G 网络。
谢谢!
我不是原帖作者,但我也在尝试让usxgmii运行起来。
NXP 是否验证过 usxgmii 是否能在 BSP 内核上运行?我尝试将其与 mv-cux3610 PHY 一起使用,但出现以下错误:
[ 43.063202] nxp_enetc4 0002:00:10.0 (unnamed net_device) (uninitialized): MAC returned PCS which does not support usxgmii
[ 43.074224] nxp_enetc4 0002:00:10.0 (unnamed net_device) (uninitialized): failed to validate link configuration for inband
[ 43.085308] nxp_enetc4 0002:00:10.0: Failed to create phylink
[ 43.091726] nxp_enetc4 0002:00:10.0: probe with driver nxp_enetc4 failed with error -22这似乎是由于 netc PCS 没有宣传 usxgmii 支持,而只支持 10gbase-r、2500-basex 和 sgmii 造成的:
quentin_sai_0-1784223770904.png
(这是在 lf-6.18.y linux-imx 分支上)
该驱动程序已包含在 NXP Linux 电路板支持包中,链接:
在 EVK 上简单地“将 DTS 切换到 usxgmii”只是软件层面的尝试。
您还需要使用 USXGMII 固件重新配置 AQR113C,但由于 EVK 的板设计面向 XFI,因此这不是多速率验证的可靠途径。
如果目标是验证真正的多速率 USXGMII(10M/100M/1G/2.5G/5G/10G),我们建议构建一个专为 USXGMII 设计的定制板(SerDes 路由 + AQR113C 在 USXGMII 主机模式固件中 + phy-mode = "usxgmii")。
在获得 AQR113C 的 USXGMII 配置固件后,您可以使用 EVK 板,但请注意其局限性。
谢谢!