This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] Linux/DP83867E:ifconfig / ethtool 报告的 Rx 符号和放大器;CRC 错误

Guru**** 2482225 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/interface-group/interface/f/interface-forum/674403/linux-dp83867e-rx-symbol-crc-errors-reported-by-ifconfig-ethtool

器件型号:DP83867E

工具/软件:Linux

将定制板与以下器件配合使用:
Zynq-7000

Cadence macb 驱动程序

TI DP83867芯片/驱动器

Linux 4.9.0

TX 数据包正在传出、但操作系统未接收到 RX 数据包。  我正在处理设备树中的计时延迟问题。。 TI、Rx 内部延迟=

有人收到数据包时遇到问题?  下面是显示 Rx 错误的设备树和 Linux 命令行的输出。

/*&ADC{*/
/* status="disabled";*/
/*};*/
&gem0{
PHY-Handle =<&Ethernet_phy>;

状态="正常";
PHY-MODE ="RGMII-id";

pinctrl-names ="default";
pinctrl-0 =<&pinctrl_gem0_default>;
PHY-RESET-GPIO =<&GPIO0 11 0>;
PHY 复位低电平有效;

xlnx、eth-mode =<0x1>;
固定链路{
最大速度=<1000>;
全双工;
};

/delete-node/ethernet-phy@7;

MDIO{
状态="正常";
#address-cells =<1>;
#size-cells =<0>;
ethernet_phy:ethernet-phy@c{
兼容="Eth以 太网-phy-IEEE802.3-C22";
DEVICE_TYPE ="以太网 phy";
reg =<0xc>;
TI、Rx-interne-delay =<0x8>;
TI、TX 内部延迟=<0x8>;
TI、FIFO 深度=<0x01>;
ti、最小输出阻抗;
ti、dp83867-rxctrl-strap -quirk;
状态="正常";
};
};
};

eth0 Link encap:ethernet HWaddr 00:0A:35:00:1e:29
iNet addr:192.168.0.100 Bcast:192.168.0.255掩码:255.255.255.0
inet6 addr:fe80:20A:35ff:fe00:1e29/64范围:链接
运行多播 MTU:1500公制:1的上广播
RX 数据包:0错误:2242丢弃:0超支:0帧:2242
TX 数据包:2024错误:0丢弃:0溢出:0载波:0
冲突:0 txqueuelen:1000
RX 字节:0 (0.0 B) TX 字节:22326 (218.0 KiB)
中断:29基址:b2000

LO 链路环接:本地环回
iNet addr:127.0.0.1掩码:255.0.0.0
inet6 addr:::1/128范围:Host
正在运行 MTU:65536公制:1的上环回
RX 数据包:12错误:0丢弃:0超限:0帧:0
TX 数据包:12错误:0丢弃:0超限:0载波:0
冲突:0 txqueuelen:1
RX 字节:1032 (1.0 KiB) TX 字节:1032 (1.0 KiB)

root@XilinX-zc706-2017_2:~# ethtool -S eth0
NIC 统计信息:
TX_八 位位组:6018415
TX_FRAS:92441
TX_broadcast_frames:136
TX_MULTICAST_FRAes:14.
TX_PAUSE_FRAes:0
TX_64_Byte_frames:90410
TX_65_127_Byte_frames:1897
TX_128_255_byte_frames:0
TX_256_511_Byte_frames:134
TX_512_1023_Byte_frames:0
TX_1024_1518_Byte_frames:0
TX_Greater;than;1518_Byte_frames:0
TX_UNDERRUN:0
TX_SINGLE_Collision_FRA框:0
TX_MULTIPLE_COUS_FRA框:0
TX_COLOAD_COUSTERINACOUSES: 0
TX_L晚期 碰撞:0
TX_DERAD_FRAes:0
TX_CARER_SENSE_ERRORS:0
RX_octets:50851228
RX_FRAes:90624
RX_broadcast_frames:215
RX_MULTICAST_FRAes:0
RX_PAUSE_FRAes:0
RX_64_Byte_frames:85
RX_65_127_Byte_frames:50
RX_128_255_byte_frames:8.
RX_256_511_Byte_frames:45
RX_512_1023_Byte_frames:90436
RX_1024_1518_Byte_frames:0
RX_Greater;than;1518_Byte_frames:0
RX_underced_frames:0
RX_VACT_FRAS:0
RX_jabbers:0
RX_FRAME_CHECK_SEQUEST_ERRORS:2249
RX_LENGTH_FIELD_FRAME_ERRORS:0
RX_symbol_errors:2249
RX_alignment_errors:0
RX_resource_errors:0
RX_溢出:0
RX_IP_HEADER_CHECKSUM_ERRORS:0
RX_tcp_CHECKSUM_ERRORS:0
RX_UDP_CHECKSUM_ERRORS:0

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    尊敬的 Derek:

    我不确定 ethtool 是如何计数 Rx_symbol_errors 的、但如果这是从 PHY 寄存器地址0x15拉取的。 在这种情况下、这通常表示您的参考时钟具有高抖动、或者连接的链路伙伴具有高抖动。

    您提到您没有收到任何数据包、但 ethtool 指示您总共收到90624帧、2249有错误。 是这样吗? 如果您仅丢失了一些数据包、并且它与 RGMII 延迟有关、那么调整延迟应该会使该误差百分比上升。

    您能否提供电路板原理图?

    此致、
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    、我曾误解过未接收数据包。   我们肯定会收到这些文件、只是没有正确地将它们放入 Linux 中。  1) 100Mbps 正常工作、2)我们有一个糟糕的开关、因此现在我们将使用100M、并开始使用1Gbps CAN。  我将在我们的内部说明中记下高抖动注释。  我将不得不询问有关原理图的问题、但我们计划继续。  仍愿意接受任何其他建议。

    感谢您的支持。

    -Derek

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    尊敬的 Derek:

    很高兴听到您发现了问题。 RGMII 延迟可能不是最佳的另一个线索是100M 正常工作、1000M 不理想。 由于接口的 DDR 特性、1000M 的设置和保持时间裕度非常低。 祝您设计顺利。

    此致、