工具/软件:
你(们)好
我们使用 Linux SDK 10.01.10.04、并 使用 RMII2 接口 与以太网交换机 IP175LLF 通信、它是 MAC 到 MAC 的连接、 am623 是否支持它? 谢谢
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.
您好 BERT、
虽然 TI 内部没有 Linux 上与外部交换机进行 AM62x MAC 到 MAC 连接的示例、但 我们看到客户使用 AM62x CPSW 接口实现了外部交换机、并成功程度各不相同。
根据我的理解、AM62x 端的主要配置是在连接到外部交换机的以太网端口的 DTS 中添加“FIXED-LINK"属性“属性。
&cpsw_port2 { ... fixed-link { speed = <100>; full-duplex; }; ... };
根据我从过去的客户那里看到的情况、我看到的关键问题(从 Linux 操作系统方面)是
如果您有后续问题、敬请告知。
-道林
嗨、 Daolin
感谢您的建议。 我们遇到了一个非常奇怪的问题, 从 am623 到交换机的以太网帧是正常的 ,交换机被正确接收,但相反方向,am623 无法 从 交换机接收以太网帧 。 你有什么建议来调查它?
帧数据流:
am623--->开关:正常情况下、 正确接收交换机
switch----> am623:am623 无法从 switch 接收帧
命令“ethtool -s eth1 “打印帧数、全部为 0
下面是命令“ethtool -S eth1“ result ,我发现项 iet_rx_sdm_err 数在增加, 请帮助分析它
root@:~# ethtool -S eth1
NIC 统计信息:
P0_Rx_GOOD_FRAMES:88
P0_Rx_BROADCAST_FRAMES:77
P0_Rx_MULTICAST_FRAMES:11.
P0_Rx_CRC_ERRORS:0
P0_Rx_NEUM_FRAMES:0
P0_Rx_undersize_frames:0
P0_R0_ALE_DROP:0
P0_R0_ALE_ULALORY_DROP:0
P0_Rx_八 位位组:5838
P0_RTX_GOOD_FRAMES:0
P0_RTX_broadcast_frames:0
P0_RTX_MULTICAST_FRAMES:0
P0_TX_八 位位组:0
P0_RTX_64B_FRAMES:77
P0_TX_65_TO_127B_FRAMES:11.
P0_R128_TO_255B_FRAMES:0
P0_R256_TO_511B_FRAMES:0
P0_TX_512_TO_1023B_FRAMES:0
P0_RTX_1024B_FRAMES:0
P0_R368:5838
P0_Rx_Bottom_fifo_drop:0
P0_Rx_PORT_MASK_DROP:0
P0_Rx_top_fifo_drop:0
P0_Rale_Rate_Limit_drop:0
P0_R0_ALE_VID_ENTRY_DROP:0
P0_ALE_DA_eq_sa_drop:0
P0_ALE_BLOCK_DROP:0
P0_ALE_SECURE_DROP:0
P0_ALE_AUTH_DROP:0
P0_ALE_UNKNOWN_UCAST:0
P0_Rale_unknown_ucast_bytes:0
P0_ALE_UNKNOWN_mcast:0
P0_Rale_unknown_mcast_bytes:0
P0_ALE_UNKNOWN_bcast:0
P0_Rale_unknown_bcast_bytes:0
P0_ALE_POL_MATCH:0
P0_ALE_POL_MATCH_RED:0
P0_Rale_pol_match_黄色:0
P0_ALE_mcast_sa_drop:0
P0_ALE_DUAL_VLAN_DROP:0
P0_Rale_len_err_drop:0
P0_ALE_IP_NEXT_HDR_Drop:0
P0_Rale_IPV4_FRAG_DROP:0
P0_RTX_mem_protect_err:0
P0_RTX_pri0:0
P0_RTX_pri1:0
P0_RTX_pri2:0
P0_RTX_pri3:0
P0_RTX_pri4:0
P0_RTX_pri5:0
P0_RTX_pri6:0
P0_RTX_pri7:0
P0_RTX_pri0_bcnt:0
P0_RTX_pri1_bcnt:0
P0_RTX_pri2_bcnt:0
P0_RTX_pri3_bcnt:0
P0_RTX_pri4_bcnt:0
P0_RTX_pri5_bcnt:0
P0_RTX_pri6_bcnt:0
P0_RTX_pri7_bcnt:0
P0_RTX_pri0_DROP:0
P0_RTX_pri1_DROP:0
P0_RTX_pri2_DROP:0
P0_RTX_pri3_DROP:0
P0_RTX_pri4_DROP:0
P0_RTX_pri5_DROP:0
P0_RTX_pri6_DROP:0
P0_RTX_pri7_drop:0
P0_RTX_pri0_DROP_bcnt:0
P0_RTX_pri1_DROP_bcnt:0
P0_RTX_pri2_DROP_bcnt:0
P0_RTX_pri3_DROP_bcnt:0
P0_RTX_pri4_DROP_bcnt:0
P0_RTX_pri5_DROP_bcnt:0
P0_RTX_pri6_DROP_bcnt:0
P0_RTX_pri7_drop_bcnt:0
RX_GOOD_FRAMES:0
RX_BROADCAST_FRAMES:0
RX_MULTICAST_FRAMES:0
RX_PAUSE_FRAMES:0
RX_CRC_ERRORS:0
RX_ALIGN_CODE_ERRORS:0
RX_OMNIGLE_FRAMES:0
RX_Jabber_frames:0
rx_undersize_frames:0
rx_partitions:0
ALE_DROP:0
ALE_OVERLIFN_DROP:0
RX_八 位位组:0
tx_good_frames:88
tx_broadcast_frames:77
TX_MULTICAST_FRAMES:11
tx_pause_frames:0
tx_defered_frames:0
tx_conflict_frames:0
tx_single_coll_frames:0
tx_mult_coll_frames:0
tx_overtravel_conflicts:0
tx_lay_conflicts:0
RX_IPG_ERROR:0
tx_carrier_sense_errors:0
TX_COBOTH:5838
TX_64B_FRAMES:77
TX_65_TO_127B_FRAMES:11.
TX_128_TO_255B_FRAMES:0
tx_256_to_511B_frames:0
TX_512_TO_1023B_FRAMES:0
TX_1024B_FRAMES:0
NET_八位位组:5838
rx_bottom_fifo_drop:0
RX_PORT_MASK_DROP:0
rx_top_fifo_drop:0
ALE_RATE_LIMIT_DROP:0
ALE_VID_ENGLISION_DROP:0
ale_da_eq_sa_drop:0
ALE_BLOCK_DROP:0
ALE_SECURE_DROP:0
ALE_AUTH_DROP:0
ALE_UNKNOWN_UCAST: 0
ALE_UNKNOWN_ucast_bytes:0
ALE_UNKNOWN_mcast:0
ALE_UNKNOWN_mcast_bytes:0
ALE_UNKNOWN_bcast:0
ALE_UNKNOWN_bcast_bytes:0
ALE_POL_MATCH:0
ALE_pol_match_red:0
ALE_pol_match_yellow:0
ale_mcast_sa_drop:0
ALE_DUAL_VLAN_DROP:0
ale_len_err_drop:0
ALE_IP_NEXT_HDR_Drop:0
ALE_IPV4_FRAG_DROP:0
iet_rx_assembly_err:0
IET_rx_assembly_ok:0
IET_rx_SMD_err:77
iET_rx_frag:0
IET_TX_HOLD:0
iET_TX_frag:0
tx_mem_protect_err:0
tx_pri0:88
tx_pri1:0
tx_pri2:0
tx_pri3:0
tx_pri4:0
tx_pri5:0
tx_pri6:0
tx_pri7:0
tx_pri0_bcnt:5838
tx_pri1_bcnt:0
tx_pri2_bcnt:0
tx_pri3_bcnt:0
tx_pri4_bcnt:0
tx_pri5_bcnt:0
tx_pri6_bcnt:0
tx_pri7_bcnt:0
tx_pri0_drop:0
tx_pri1_drop:0
tx_pri2_drop:0
tx_pri3_drop:0
tx_pri4_drop:0
tx_pri5_drop:0
tx_pri6_drop:0
tx_pri7_drop:0
tx_pri0_drop_bcnt:0
tx_pri1_drop_bcnt:0
tx_pri2_drop_bcnt:0
tx_pri3_drop_bcnt:0
tx_pri4_drop_bcnt:0
tx_pri5_drop_bcnt:0
tx_pri6_drop_bcnt:0
tx_pri7_drop_bcnt:0
尊敬的 BERT:
switch --> am623 :am623 无法从 switch 接收帧
作为完整性检查、您可以在开关侧检查帧是否已成功发送到 AM62x?
您是否还能分享本以太网调试应用手册末尾要求的信息? https://www.ti.com/document-viewer/lit/html/SPRADJ8#GUID-4CE07F0F-B621-4759-A5F1-840452A03EF8/GUID-B068299B-24ED-4BF7-8C25-6DE622E3508F
下面是命令“ethtool -S eth1“ result ,我发现项 iet_rx_sdm_err 编号正在增加, 请帮助分析它
以下是来自 AM62x TRM 的 IET 接收 SMD 错误状态的说明。 根据我的理解、该统计数据与 TSN(时间敏感网络,更适合实时流量)中的 IET(穿插快速流量)相关。
12.3.1.4.6.18.6 IET 接收 SMD 误差(偏移= 3A148h)
由于未知 SMD 值而被拒绝的接收帧总数、或在没有帧正在进行时通过 SMD-C 被拒绝的接收帧总数。
注意:如果 未设置 IET_ENABLE、此统计信息将计算任何接收到的具有任何非快速 SMD 的帧。
嗨、 Daolin
作为完整性检查、您可以在开关侧检查帧是否已成功发送到 AM62x?
开关芯片没有成功的 TX 帧计数的统计寄存器、但我们使用示波器来测量从开关到 am623 的 RMII 数据波形、这看起来不错
使用的 TI SDK 版本是什么?
Linux SDK 10.01.10.04
使用的 TI 处理器是什么?
am623.
DUT 是 TI EVM 还是定制电路板?
定制板
测试拓扑是什么?
DUT(ping 请求)<----- >开关<----- > PC
DUT ping PC、PC 可以正确接收并回复、将 ping 应答转发给 DUT、DUT 无法接收
以下是器件树、bootlog、ethtool 结果
e2e.ti.com/.../devicetree_2D00_bootlog.zip
尊敬的 BERT:
关于“ IET 接收 SMD 错误“、您能详细解释一下吗? 什么情况会导致该错误? [/报价]我以前没见过 IET 接收 SMD 错误计数器出现、但经过一些快速研究后、我猜测当网络使用 IET 允许高优先级流量中断并超过低优先级流量时、通常当需要时间敏感型网络时、以太网帧应具有该“SMD"字“字段。 当预期帧是 IET 中使用的占先帧、并且 SMD 不正确时、我认为该计数器应该递增。 但是、我的假设是您使用的 IET 不正确? 如果是的话,对我来说,为什么这个计数器甚至会在第一位增加是没有意义的。
devicetree-bootlog.zip有几条评论
1.假设您正在设置 cpsw_port2 以与以太网交换机进行通信。 是这样吗?
2.在 DTS 中、&cpsw_port2 节点引用 phy-handle &cpsw3g_phy1、但据我所知、您正在尝试在此端口上执行 MAC 到 MAC 的操作、因此我很困惑、为什么还引用了&cpsw3g_phy1?
3.出于与#2 相同的原因、在&cpsw3g_mdio 中、您使用 TI PHY DP83867 参数定义 cpsw3g_phy1。 首先、我的理解是此端口应连接到您的以太网交换机、而不是 DP83867。 其次、您是通过 MDIO 还是 SPI 与以太网交换机通信?
&cpsw_port2 { phy-mode = "rmii"; phy-handle = <&cpsw3g_phy1>; status = "okay"; fixed-link { speed = <100>; full-duplex; }; }; &cpsw3g_mdio { cpsw3g_phy1: ethernet-phy@1 { reg = <1>; /* ti,rx-internal-delay = <DP83867_RGMIIDCTL_2_00_NS>; ti,fifo-depth = <DP83867_PHYCR_FIFO_DEPTH_4_B_NIB>; ti,min-output-impedance; */ }; };dts 外部交换机的配置应由交换机供应商确定。 您的 以太网交换机 IP175LLF 是非 TI 器件、因此我建议您找出外部交换机所需的预期 DTS 配置4.我在您的引导日志中看到与您的以太网交换机相关的以下消息,这意味着您的内核中内置了一个用于以太网交换机的 Linux 驱动程序;但是,在您的 DTS 中,我没有看到用于您的以太网交换机的配置集? 如果未在 Linux 主线源树中的 YAML 文件中上游呈现该配置、则应联系以太网交换机供应商以了解以太网交换机的 DTS 配置。
[16:47:25:054] [ 1.637472] davinci_mdio 8000f00.mdio: phy[1]: device 8000f00.mdio:01, driver ICPlus IP175C/D-道林
[/quote]
嗨、 Daolin
但是、我的假设是您使用的 IET 不正确?
我不对 IET 进行任何操作、也不会对其进行任何代码更改、所有操作都是 TI CPSW 驱动程序
1.假设您正在设置 cpsw_port2 以与以太网交换机进行通信。 是这样吗?
是的、我使用 cpsw_port2
2.在 DTS 中、&cpsw_port2 节点引用 phy-handle &cpsw3g_phy1、但据我所知、您正在尝试在此端口上执行 MAC 到 MAC 的操作、因此我很困惑、为什么还引用了&cpsw3g_phy1?
cpsw3g_phy1 用于 cpsw_port2、 在设备树文件中还有一个 cpsw3g_phy0、它用于 cpsw_port1
3.出于与#2 相同的原因、在&cpsw3g_mdio 中、您使用 TI PHY DP83867 参数定义 cpsw3g_phy1。 首先、我的理解是此端口应连接到您的以太网交换机、而不是 DP83867。 其次、您是通过 MDIO 还是 SPI 与以太网交换机通信?
cpsw3g_phy0 与 TI PHY DP83867 通信、而非 cpsw3g_phy1、并 通过 MDIO 与以太网交换机通信
cpsw3g_phy0:ethernet-phy@0{
全部引导;
reg =<7>;
};
4.我在您的引导日志中看到与您的以太网交换机相关的以下消息,这意味着您的内核中内置了一个用于以太网交换机的 Linux 驱动程序;但是,在您的 DTS 中,我没有看到用于您的以太网交换机的配置集? 如果未在 Linux 主线源树中的 YAML 文件中上游呈现该配置、则应联系以太网交换机供应商以了解以太网交换机的 DTS 配置。
开关 驱动器是非常采样的,驱动器不使用 DTS ,实际上它不会生效,因为驱动器功能是配置 VALN 和其他功能,. 我们不使用它们,我们只使用默认 配置 ,而 以太网交换机供应商表示可以使用默认 配置
尊敬的 BERT:
[引述 userid=“6236667" url="“ url="~“~/support/processors-group/processors/f/processors-forum/1525269/am623-am623-mac-to-mac-connection-support/5872135 #5872135“]2.在 DTS 中、&cpsw_port2 节点引用 phy-handle &cpsw3g_phy1、但据我所知、您正在尝试在此端口上执行 MAC 到 MAC 的操作、因此我很困惑、为什么还引用了&cpsw3g_phy1?
cpsw3g_phy1 用于 cpsw_port2、 在设备树文件中还有一个 cpsw3g_phy0、它用于 cpsw_port1
[/报价]如果您打算使用 MAC 到 MAC、为什么涉及 PHY 定义? 根据我的理解、使用 MAC 到 MAC 时、您将直接将两个处理器的以太网接口连接在一起、中间没有 PHY。 如果涉及 PHY、则为 MAC 转 PHY 模式。
cpsw3g_phy0 与 TI PHY DP83867 配合使用 、不是 cpsw3g_phy1、并 通过 MDIO[/报价]与以太网交换机进行通信是、但 cpsw3g_phy1 仍引用 DP83867 的属性。 如果 cpsw3g_phy1 不应使用 TI PHY DP83867、则应删除 DP83867 的属性。
在 am623 MAC 端、您是否有任何其他建议来调查此问题? 我是否可以禁用 IET、对于 TI CPSW 驱动器来说、这是否是必需功能? [/报价]IET 仅适用于时间敏感网络 (TSN) 应用。 如果您的应用不需要时间敏感网络、更具体地说、IET(穿插快速流量)、则从技术上讲、它应该与您的用例无关。 听起来、TSN 是您的用例所需的一项要求。 如果是这种情况、我认为您的应用不需要 IET。 我当前对您的建议是首先验证您的 DTS 是否适合 MAC 到 MAC 配置;因此我问您 DTS 配置以确保正确。
您可以在以下位置查看有关 IET 的更多信息: https://software-dl.ti.com/processor-sdk-linux/esd/AM62X/latest/exports/docs/linux/IET/Kernel/Network/CPSW-IET.html Foundational_Components Kernel_Drivers
[/quote]您能告诉我 am623 TRM 中“SMD"的“的含义是什么吗、 我找不到 说明以太网帧具有“SMD"的“的文档SMD 不是 AM623 处理器的特定内容、它只是 IET 中用于时间敏感型网络应用的以太网帧的一部分。 例如、如果您查找“SMD 以太网帧“、则会看到如下所示的内容。 同样、SMD 不是 TI 特定的、它是 IET 以太网帧的一部分。
https://iebmedia.com/technology/tsn/tsn-technology-basics-of-ethernet-frame-preemption-part-2/
[/quote][/quote]切换 驱动程序非常样本,驱动程序不使用 DTS ,实际上它不会生效,因为驱动程序函数是配置 VALN 和其他函数,. 我们不使用它们,我们只使用默认 配置 ,而 以太网交换机供应商表示可以使用默认 配置 [/报价]您的交换机是否需要被识别为 PHY? 如果是这样、这与我们看到其他客户在配置 MAC 到 MAC 时使用的其他交换机有很大的不同。
-道林