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.

[参考译文] AM623:支持 MAC 到 MAC 连接

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1525269/am623-am623-mac-to-mac-connection-support

器件型号:AM623

工具/软件:

你(们)好

 我们使用 Linux SDK 10.01.10.04、并 使用 RMII2 接口  与以太网交换机 IP175LLF 通信、它是 MAC 到 MAC 的连接、 am623 是否支持它? 谢谢  

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

    您好 BERT、  

    虽然 TI 内部没有 Linux 上与外部交换机进行 AM62x MAC 到 MAC 连接的示例、但 我们看到客户使用 AM62x CPSW 接口实现了外部交换机、并成功程度各不相同。

    根据我的理解、AM62x 端的主要配置是在连接到外部交换机的以太网端口的 DTS 中添加“FIXED-LINK"属性“属性。  

    &cpsw_port2 {
    	...
    	fixed-link {
    		speed = <100>;
    		full-duplex;
    	};
    	...
    };

    根据我从过去的客户那里看到的情况、我看到的关键问题(从 Linux 操作系统方面)是

    1. 外部交换机的 DTS 配置应由交换机供应商确定。 您的 以太网交换机 IP175LLF 是非 TI 器件、因此我建议您找出外部交换机所需的预期 DTS 配置
    2. 您的外部开关是否具有 Linux 驱动程序?
    3. 您是否使用 SPI 或 MDIO 与外部开关进行通信? 尝试使用 MDIO 时、可能会出现更多问题。
    4. 一些客户发现、需要对 DSA(分布式交换机架构)Linux 驱动程序进行一些更改、才能将交换机连接到正确的 CPSW 端口号
      1. 当选择 CPSW 端口 2 作为连接到交换机的端口 2 时出现
    5. 您是否计划 在外部交换机中使用 VLAN?
      1. 虽然我不太熟悉外部交换机中的 VLAN 使用情况、但在过去、 需要对 CPSW/DSA 驱动程序进行特殊更改、才能使外部交换机满足客户的要求

    如果您有后续问题、敬请告知。

    -道林

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

    嗨、 Daolin

      感谢您的建议。  我们遇到了一个非常奇怪的问题, 从 am623 到交换机的以太网帧是正常的 ,交换机被正确接收,但相反方向,am623 无法 从 交换机接收以太网帧 。  你有什么建议来调查它?  

      帧数据流:

       am623--->开关:正常情况下、 正确接收交换机

       switch----> am623:am623 无法从 switch 接收帧  

      

    命令“ethtool -s eth1 “打印帧数、全部为 0

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

    我们使用 示波器来测量从交换机到 am623 的 RMII 数据波形、这看起来很好、并且我们不使用交换机 VLAN

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

    下面是命令“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(穿插快速流量)相关。  

    IET  接收 SMD 误差(偏移= 3A148h)

    由于未知 SMD 值而被拒绝的接收帧总数、或在没有帧正在进行时通过 SMD-C 被拒绝的接收帧总数。

    • 接收到任何帧
    • 是任意大小、而且
    • 由于未知的 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

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

    关于“ IET  接收 SMD 错误“、您能解释一下吗? 什么情况会导致该错误?  

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

    尊敬的 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 和其他功能,. 我们不使用它们,我们只使用默认  配置 ,而 以太网交换机供应商表示可以使用默认 配置  

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

    您是否有任何其他 建议来调查 am623 MAC 侧的此问题?  我是否可以禁用 IET、对于 TI CPSW 驱动器来说、这是否是必需功能?  

    您能告诉我 am623 TRM 中“SMD"的“的含义是什么、  我找不到 说明以太网帧具有 SMD“的文档

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

    尊敬的 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 

    您能告诉我 am623 TRM 中“SMD"的“的含义是什么吗、  我找不到 说明以太网帧具有“SMD"的“的文档
    [/quote]

    SMD 不是 AM623 处理器的特定内容、它只是 IET 中用于时间敏感型网络应用的以太网帧的一部分。 例如、如果您查找“SMD 以太网帧“、则会看到如下所示的内容。 同样、SMD 不是 TI 特定的、它是 IET 以太网帧的一部分。

    https://iebmedia.com/technology/tsn/tsn-technology-basics-of-ethernet-frame-preemption-part-2/ 

     切换 驱动程序非常样本,驱动程序不使用 DTS ,实际上它不会生效,因为驱动程序函数是配置 VALN 和其他函数,. 我们不使用它们,我们只使用默认  配置 ,而 以太网交换机供应商表示可以使用默认 配置 [/报价]

    您的交换机是否需要被识别为 PHY? 如果是这样、这与我们看到其他客户在配置 MAC 到 MAC 时使用的其他交换机有很大的不同。  

    -道林

    [/quote][/quote]