主题中讨论的其他器件:TIDA-00204、
工具/软件:Linux
硬件信息
- PCB:使用 Octavo Systems 参考设计的 OSD3358-SM 定制设计
- 以太网 PHY:以 TIDA-00204为基准的3电源模式(3V3、2V5、1V0)下的 DP83867CS。 无自举电阻器、一切都保持开路。
- Linux 内核:4.14.108-ti-r108 (手动编译)、4.14.71-ti-r80 (BeagleBone stock)和4.19.50-ti-R20 (RCNEE Repos)
- 库存设备树 blob (目前、自定义 blob 的作用不大。)
问题
Linux 和 U-Boot 都可以通过 MDIO 识别 PHY 并与之交互--尽管 Linux 无法正确识别作为内核模块安装的驱动程序。 该器件可以建立1 Gig、100 base 和10 base 的链路、我通过 MII-tool 强制实现了这种连接。 与链路建立相对应的插孔上的数据和链路指示灯也会亮起。 读取寄存器后、根据数据表、一切看起来都是标称值和准确值。 但是、似乎没有流量进出设备。 我已经尝试过各种器件树设置、但我担心的是、器件似乎没有收到单个数据包。 另一方面、我查看了 Wireshark、也没有看到任何数据包。 在 u-boot 或 Linux 中、DHCP 和静态设置都不起作用。 我还需要用示波器探测以太网引脚以检查输出,或者使用 RGMII 接口来检查时钟偏差--希望我明天就会注意到这一点。
原理图
相关引导日志摘录
我在几行中添加了一些注释。
[0.000000]在物理 CPU 上引导 Linux 0x0 [0.642213] libphy:固定 MDIO 总线:探测 [0.695435] DaVinci_MDIO 4a101000.MDIO:达芬奇 MDIO 修订版本1.6、总线频率1000000 [0.69544] DaVinci_MDIO 4a101000.MDIO:检测到 phy FFFFFFFE <-不确定是否正确? [0.695864] MDIO:DaVinci_MDIO:DT:从 phy_mask[FFFFFFFE] [0.701543] libphy 更新 phy_id[0]:4a101000.MDIO:探测 到[0.701566] DaVinci_MDIO 4a101000.MDIO:PHY[0]:器件4a101000.740.000b :mcio:10000b:10000b:10000b:10000b:10000b:10000b:10000b:10000b:驱动程序应使用未知的驱动程序 这是一个德州仪器(TI)的 OUI、与寄存器值 [0.702676] cpsw 4a100000匹配。以太网:初始化 cpsw ale 版本1.4[0.702207] cpsw 4a100000.ethernet:ale 表大小1024[0.702747] cpsw 4a100000.ethernet:cpt:溢出检查周期(jiffsx) (jiff)驱动程序47401300.usb-phy: 未找到47401300.usb-phy 电源 VCC、使用虚拟稳压 器[0.711967] AM335x-phy-driver 47401b00.usb-phy: 47401b00.usb-phy 电源 VCC 未找到、使用虚拟稳压 器[0.734780] cpudle: enable-method 属性'ti、am3352'找到的操作 [11.032195] net eth0:初始化 cpsw 版本1.12(0) [ 11.050752]通用 PHY:m4a1000: 连接的 PHY 驱动程序[通用 PHY](MII_BUS:phy_addr=4a101000.MDIO:00、IRQ=POLL) [ 11.094158] IPv6:ADDRCONF (NETDEV_UP):eth0: 链路未就绪[ 11.988Rx]使用随机自以太网地址[ 11.988845]使用随机主机以太网地址[12.09420Gbps (NETDEV_UP) :NET1004Gbps - NETDRV0489[12.000] 链路就绪 [12.218641]使用随机自以太网地址 [12.218660]使用随机主机以太网地址 [12.442706] 8021q:将 VLAN 0添加到设备 eth0上的硬件过滤器 ... [1575.13673] NETDEV 看门狗:eth0 (cpsw):发送队列0超时
完整日志可在以下位置找到: https://pastebin.com/n58c0zf9
ethtool / MII-工具输出
root@BeagleBone:eth0的~# ethtool eth0 设置: 支持的端口:[ TP AUI BNC MII 光纤] 支持的链路模式:10BaseT/Half 10baseT/full 100BaseT /半个100BaseT /全双工 1000BaseT/Half 1000BaseT/完全 支持的暂停帧使用:对称仅接收 支持自动协商:是 通告的链路模式:10BaseT/Half 10baseT/全 100BaseT /半个100BaseT /全双工 1000BaseT /半1000BaseT /全 广播暂停帧使用:未 广播自动协商:是 链接伙伴通告的链接模式:10BaseT /半10baseT/FULL 100BaseT /半个100BaseT /全双工 1000BaseT / 全链路伙伴通告的暂停帧使用:对称仅接收 链路伙伴通告的自动协商:是 速度:1000Mb/s 双工:全 端口:MII PHYAD:0 收发器:内部 自动协商:开 支持唤醒:D 唤醒:D 当前消息电平:0x00000000 (0) 检测到链接:是 root@BeagleBone:~# 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 帧:0 广播 Tx 帧:0 多播 Tx 帧:0 暂停 Tx 帧:0 延迟的 Tx 帧:0 冲突:0 单冲突 Tx 帧:0 多个冲突 Tx 帧:0 冲突过多:0 晚期冲突:0 TX 欠运转:0 载波侦听错误:0 TX 八位位组:0 RX + Tx 64字节帧:0 RX + Tx 65-127八位位组帧:0 RX + Tx 128-255八位位组帧:0 Rx + Tx 256-511八位位组帧:0 RX + Tx 512-1023八位位组帧:0 Rx + Tx 1024个八位位组帧:0 净八位位组:0 帧溢出的 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:head_enqueue:32 TX DMA 通道0:tail_enqueue:620 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:19 TX DMA 通道0:empty_dequeue:27 TX DMA 通道0:BUSY_DEqueue:0 TX DMA 通道0:Good:Dequeue:31 TX DMA 通道0:要求:4 TX DMA CHAN 0:teardown_dequeue:508 root@BeagleBone:~# MII-tool -vv eth0 using SIOCMGMIIPHY=0x8947 eth0:协商的1000BaseT-FD 流控制、MII PHY 的链接正常寄存器0: 1140 796d 2000 a231 01e1 cde1 006F 2001 4006 0300 3800 0000 0000 0000 0000 3000 5048 bf02 0000 1c40 29c7 0000 0040 6150 4444 0002 0000 0000 0000 0000 0002 0000 产品信息:供应商08:00:28、型号35 rev 1 基本模式:启用自动协商 基本状态:自动协商完成、链路正常 功能:1000BaseT–HD 1000BaseT–FD 100BaseTX-FD 100BaseTX-HD 10baseTD-FD 10baseTD-HD 10base-HD 广播 :1000BaseT–HD 10tD-HD 10fD-HD 10fD-HD 10fD-HD 10fD-HD 10fD-HD 10fD-HD 10fD-HD 10fD-HD 10fD-HD 10fD-HD 10fD-HD 10fD-TX 100BaseTD-HD 10fD-HD 控制:100BASE-TD-HD 10fD-HD 10fD-HD 10t-fD-HD
root@BeagleBone:~/phytool#./phytool print eth0/0
IEEE-phy:ID:0x2000a231
IEEE-phy:reg:BMCR (0x00) val:0x1140
标志: -reset -loopback +aneg-enable -power-down -sand隔离-aneg-restart -collision-test
速度: 1000满
IEEE-phy:reg:BMSR (0x01) val:0x796d
功能:-100-b4 +100-f +100-h +10-f +10-h -100-t2-f -100-t2-h
标志: +ext-status +aneg-complete -remote-fault +aneg-capable +link -Jabber +ext register
root@BeagleBone:~# ifconfig eth0
eth0:flags=-28605 MTU 1500
iNet 169.254.77.126 netmask 255.255.0.0 broadcast 169.254.255.255
inet6 fe80::5233:8bff:fe0b:f575 prefixlen 64范围 ID 0x20
乙醚50:33:8b:0b:F5:75 txqueuelen 1000 (以太网)
RX 数据包0字节0 (0.0 B)
RX 错误0丢弃0超限0帧0
TX 数据包667字节5961 (5.8 KiB)
TX 错误5丢弃0溢出0载波0冲突0
器件中断46
root@BeagleBone:~# cat /sys/bus/mdio_bus/devices/4a101000.mdio:00/phy_id
0x2000a231
xxx@~/src/ti-linux-kernel-dev/KERNEL/drivers/net/phy grep -Ri 0x2000a231
dp83867.c:#define DP83867_PHY_ID0x2000a231
root@BeagleBone:~# zcat /proc/config.gz | grep 83867
CONFIG_DP83867_PHY=m
提前感谢您的帮助。


