主题中讨论的其他器件:TIDA-00204
工具/软件:Linux
你(们)好
在我们的电路板中、使用了 TIDA-00204的原理图(Scheamtic 和 PCB)、以防 RGMII PHY 连接。
我读取了很多线程、但仍然无法正确地将 PHY 整合到.dts 文件中(或者、在其他地方可能会遇到问题)、并且以太网链路无法正常工作。
这是内核日志:
…
[4.482862] libphy:固定 MDIO 总线:探测
[4.570438] DaVinci_MDIO 4a101000.MDIO:达芬奇 MDIO 修订版本1.6
[4.576600] DaVinci_MDIO 4a101000.MDIO:检测到的 phy 掩码 fffefffe
[4.59856] libphy: 4a101000.mdio:探测
[4.602910] DaVinci_MDIO 4a101000.MDIO:PHY[0]:器件4a101000.MDIO:00、驱动程序 TI DP83867
[4.612643] DaVinci_MDIO 4a101000.MDIO:PHY[16]:器件4a101000.MDIO:10、驱动程序 TI DP83867
[4.625478] cpsw 4a100000.以太网:检测到的 MACID = 50:F1:4a:0b:83:C3
[4.634173] cpsw 4a100000.以太网:CPT:溢出检查周期500 (jiffies)
…
正在配置网络接口...
[17.639502] net eth0:正在初始化 cpsw 版本1.12 (0)
[17.674958] net eth0:已初始化 cpsw ale 版本1.4
[17.680158] 净 eth0:ALE 表大小1024
[17.705193] Net eth0:PHY "4a101000.MDIO:00"未在从机0、ERR -19上找到
[17.714481] TI DP83867 4a101000.MDIO:00:连接的 PHY 驱动程序[TI DP83867](MII_BUS:phy_addr=4a101000.MDIO:00、IRQ=1)
[17.768872] IPv6:ADDRCONF (NETDEV_UP):eth0:链路未就绪
[17.776365] 8021q:在设备 eth0上添加 VLAN 0至硬件过滤器
udhcpc (v1.24.1)已启动
正在发送发现...
[19.841857] cpsw 4a100000.以太网 eth0:链路向上- 100Mbps/全-流控制 Rx/TX
[19.852736] IPv6:ADDRCONF (NETDEV_CHANGE):eth0:链路就绪
正在发送发现...
正在发送发现...
无需租赁、可用于背景
完成。
这是 ifconfig 响应:
eth0 Link encap:ethernet HWaddr 50:f1:4a:0b:83:C3
inet6 addr:fe80::52f1:4aff:fe0b:83c3/64范围:链接
运行多播 MTU:1500 公制:1的上广播
RX 数据包:0错误:0丢弃:0超限:0帧:0
TX 数据包:71错误:0丢弃:0超限:0载波:0
冲突:0 txqueuelen:1000
RX 字节:0 (0.0 B) TX 字节:20330 (19.8 KiB)
中断:172
LO 链路环接:本地环回
iNet addr:127.0.0.1 掩码:255.0.0.0
inet6 addr:::1/128范围:Host
正在运行 MTU:65536 公制:1的上环回
RX 数据包:2错误:0丢弃:0超限:0帧:0
TX 数据包:2错误:0丢弃:0超限:0载波:0
冲突:0 txqueuelen:1
RX 字节:140 (140.0 B) TX 字节:140 (140.0 B)
"ethtool -S eth0"的响应:
NIC 统计信息:
正常 Rx 帧:0
广播 Rx 帧:0
多播 Rx 帧:0
暂停 Rx 帧:0
RX CRC 错误:0
RX 对齐/代码错误:0
超大 RX 帧数:0
RX Jabber:0
欠大小(短) Rx 帧:0
RX 片段:0
RX 八位位组:0
正常 Tx 帧数:126.
广播 Tx 帧:110
多播 Tx 帧:16.
暂停 Tx 帧:0
延迟的 Tx 帧:0
冲突:0
单冲突 Tx 帧:0
多个冲突 Tx 帧:0
冲突过多:0
晚期冲突:0
TX 欠运转:0
载波侦听错误:0
TX 八位位组:39372
RX + Tx 64字节帧:0
RX + Tx 65-127八位位组帧:16.
RX + Tx 128-255八位位组帧:0
Rx + Tx 256-511八位位组帧:110
RX + Tx 512-1023八位位组帧:0
Rx + Tx 1024个八位位组帧:0
净八位位组:39372
帧溢出的 RX 起始:0
帧的 RX 中间溢出:0
RX DMA 超限:0
RX DMA 通道0:head_enqueue:1
RX DMA 通道0:tail_enqueue:127
RX DMA 通道0:PAD_ENqueue:0
RX DMA 通道0:排队错误:0
RX DMA 通道0:DESC_ALLOC_FAIL:0
RX DMA 通道0:PAD_ALLOC_FAIL:0
RX DMA 通道0:runt_receive_buf:0
RX DMA 通道0:runt_transmit:bu:0
RX DMA 通道0:empty_dequeue:0
RX DMA 通道0:BUSY_DEqueue:0
RX DMA 通道0:Good:Dequeue:0
RX DMA 通道0:要求:0
RX DMA 通道0:teardown_dequeue:0
TX DMA 通道0:HED_ENqueue:126
TX DMA 通道0:tail_enqueue:0
TX DMA 通道0:PAD_ENqueue:0
TX DMA 通道0:排队错误:0
TX DMA 通道0:DESC_ALLOC_FAIL:0
TX DMA 通道0:PAD_ALLOC_FAIL:0
TX DMA 通道0:runt_receive_buf:0
TX DMA 通道0:runt_transmit:bu:0
TX DMA 通道0:empty_dequeue:126
TX DMA 通道0:BUSY_DEqueue:0
TX DMA 通道0:Good:Dequeue:126
TX DMA 通道0:要求:0
TX DMA 通道0:teardown_dequeue:0
这是.dts 片段:
&Mac{ pinctrl-names ="default"、"sleep"; pinctrl-0 =<&cpsw_default>; pinctrl-1 =<&cpsw_sleep>; status ="确定"; }; &Davinc_MDIO{ pinctrl-names ="默认值"、"睡眠"; compatible ="ti、cpsw-MDIO"、"ti、Davinc_MDIO"; pinctrl-0 =<&Davinc_MDIO_default>; pinctrl-1 =<&Davinci_MDIO_SLEEP>; TI、Rx 内部延迟= ; ti、tx 内部延迟= ; ti, fifo-depth = ; ti、min-output-impedance; status ="确定"; } ;&cpsw_emac0{ phy_id =<&Davinci_mdio>、<0>; phy-mode ="RGMII-txid"; } ;&cpsw_emac1{ phy_id =<&Davinci_mdio>、<0>;"RGMII-txid" ;
TIDA 原理图链接(使用的 PHY 连接和 DP83867模式配置): http://www.ti.com/lit/df/tidrdr0a/tidrdr0a.pdf
完整的.dts 文件: e2e.ti.com/.../myboard.dts.txt
完整内核日志: e2e.ti.com/.../kernel.log.txt
内核源代码修补程序(使用线程 https://e2e.ti.com/support/arm/sitara_arm/f/791/p/584221/2146292):)
diff a/drivers/net/phy/dp83867.c b/drivers/net/phy/dp83867.c
索引 df43cf8b65f.6688fc242a2 100644
-- a/drivers/net/phy/dp83867.c
++ b/drivers/net/phy/dp83867.c
@@-23、7 + 23、7 @@
#include
#define DP83867_PHY_ID 0x2000a231
-#define DP83867_DEVADDR 0x1f
+#define DP83867_DEVADDR 0x00
#define MII_DP83867_PHYCTRL 0x10
#define MII_DP83867_MICR 0x12
内核配置: e2e.ti.com/.../myboard_2D00_kernel_2D00_configs_2D00_fragments.cfg.txt
我将感谢你的任何帮助。
谢谢!