dwc-eth-dwmac 306a0000.eth: stmmac_dvr_probe: MDIO bus (id: 0) registration failed如何更改两个网络dts配置
时间: 2024-09-06 19:02:22 浏览: 82
"stmmac_dvr_probe: MDIO bus (id: 0) registration failed" 错误通常表示在DTS(Device Tree Source)配置中,针对名为 "dwc-eth-dwmac 306a0000.eth" 的设备,其MDIO总线的注册过程遇到了问题。MDIO(Management Data Input/Output)是一种用于访问PHY(物理层)控制器的数据传输机制。
要在DTS配置文件中解决这个问题,首先需要了解错误的具体原因。可能的原因包括硬件连接问题、驱动程序兼容性问题或者是DTS文件中某些配置项设置有误。以下是一些基本步骤:
1. **检查硬件连接**:确认MDIO线路是否正确连接到硬件,并且电源和信号都正常。
2. **更新驱动**:确保使用的驱动程序支持该特定的MAC芯片。你可以尝试更新到最新版本或者查看驱动文档是否有对此型号芯片的支持说明。
3. **检查DTS配置**:
- 检查DTS文件中关于 "dwc-eth-dwmac" 设备的部分,确保 `stmmac` 配置属性(如地址、中断、clock等)正确无误。
- 确认MDIO相关的配置,如bus ID、速度、宽度等是否正确设置。例如:
```yaml
dwc-eth-dwmac@306a0000 {
compatible = "dwc,ehci-usb";
reg = <0x306a0000 0x1000>;
#address-cells = <2>;
#size-cells = <0>;
eth-phynode = &mdio; /* 将这个节点引用到正确的MDIO节点 */
mdio-speed = <MDIO_SPEED_1000>; /* 设置MDIO速度 */
};
mdiobus@0 {
compatible = "mdio-bus";
reg = <0>;
clocks = <&syscon_clocks>;
};
```
4. **debug输出**:如果以上操作还无法解决问题,可以在DTS配置中添加debug信息或启用更详细的日志,以便进一步定位问题。
5. **社区求助**:如果问题依然存在,可以将错误信息和DTS文件分享到开发者论坛或者社区,寻求其他专业人员的帮助。
阅读全文