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.

[参考译文] TDA4VM-Q1:是否有通过 CPSW9G 直接 ping A72的方法?

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1289160/tda4vm-q1-does-there-any-way-to-directly-ping-a72-through-cpsw9g

器件型号:TDA4VM-Q1

我发现通过 CPSW9G 进行 PC 连接不能直接 ping A72,必须先从 A72 ping PC,然后 PC 有 A52的 IP-Mac 表, PC 用单播与 A72通信。
如文档所示、所有广播数据包都发送到 MCU2_0、然后通过内核相互连接复制到其他内核、如下图所示。

在 gEthApp_sharedMcastAddrTable 中添加以下代码后、问题仍然存在。

Fullscreen
1
2
3
4
{
.macAddr = {0xff,0xff,0xff,0xff,0xff,0xff},
.portMask= 0xff,
},
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX


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

    您好!

    您能否分享您正在使用的 SDK 版本?

    [userid="577398" url="~/support/processors-group/processors/f/processors-forum/1289160/tda4vm-q1-does-there-any-way-to-directly-ping-a72-through-cpsw9g "]]我发现通过 CPSW9G 连接的 PC 不能直接 ping A72、必须先从 A72 ping PC、然后 PC 有报价 IP-Mac 表、PC 使用单播与 A72通信。

    不需要、PC 也可以直接 ping A72。
    当我们将 IP 地址分配给 A72虚拟交换机接口时、A72会将其 IP 和 MAC 地址注册到 EthFw (MCU2_0)中。
    EthFw 的代理 ARP 默认为代表客户端内核响应 ARP 请求(此处、EthFw 知道 A72客户端 IP 和 MAC、它会响应 A72自己的 IP 请求和 A72 MAC 地址)。

    您能否确认 A72是否已向 MCU2_0注册 IP? 您可以从 EthFw 日志中观察到、请参阅以下参考日志。



    此致、
    苏德黑尔

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

    我的 SDK 版本是 ti-processor-sdk-rtos-j721e-evm-09_00_00_02。

    您能否确认 A72是否注册了 MCU2_0 IP? 您可以从 EthFw 日志中观察到,请参阅以下参考日志。

    我没有在 EthFw 日志中找到此信息。 DHCP 服务器不存在、因此我使用"/etc/systemd/network "设置 eth2的 IP 地址。 我认为 eth2是 A38's 的虚拟交换机端口,只有 PC 可以 ping eth2。

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

    您好!

    您能否确认 A72是否已向 MCU2_0注册 IP? 您可以从 EthFw 日志中观察到、请参阅以下参考日志。

    我没有在 EthFw 日志中找到此信息。 DHCP 服务器不存在、因此我使用"/etc/systemd/network "设置 eth2的 IP 地址。 我认为 eth2是 A38's 的虚拟交换机端口,只有 PC 可以 ping eth2。

    [/报价]

    我认为 Eth2是默认 EthFw 配置中的仅虚拟 MAC 端口(即 MAC 端口1)。

    虚拟交换机接口必须向 EthFw 注册 IP,然后只有 EthFw 代表客户端内核响应 PC 发送的 ARP 请求。

    可以在 A72 Linux 上启用内核间以太网和启用 TAP 接口、并从 EthFw 禁用代理 ARP。 在这种情况下、EthFw 会将广播数据包转发至 A72。 因此、A72可以直接响应来自 PC 的 ARP 请求。
    有关内核间以太网的更多详细信息、请参阅 EthFW 用户指南。

    此致、
    苏德黑尔

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您可以启用核心间以太网并在 A72 Linux 上启用 TAP 接口,以及禁用 EthFw 的代理 ARP。 在这种情况下、EthFw 会将广播数据包转发至 A72。 因此、A72可以直接响应来自 PC 的 ARP 请求。
    有关内核间以太网的更多详细信息,请参见 EthFW 用户指南。

    我已经尝试了,但没有使用。 以下步骤是我的工作

    Fullscreen
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    In A72
    1. make tapif
    2. change tapif.sh&cleantapif.sh's J7ic.conf to J721E_ic.conf.
    3. copy file to SD card.
    sudo cp tapif tapif.sh cleantapif.sh /media/byd/rootfs/usr/bin/
    sudo cp launch_tap.service /media/byd/rootfs/etc/systemd/system/
    sudo cp J721E_ic.conf /media/byd/rootfs/etc/
    4. systemctl enable launch_tap.service
    systemctl start launch_tap.service
    5. tap0 exsit like:
    root@j721e-evm:~# ifconfig
    eth0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
    ether 34:08:e1:5b:64:86 txqueuelen 1000 (Ethernet)
    RX packets 0 bytes 0 (0.0 B)
    RX errors 0 dropped 0 overruns 0 frame 0
    TX packets 0 bytes 0 (0.0 B)
    TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
    eth1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
    inet6 fe80::72ff:76ff:fe1d:9699 prefixlen 64 scopeid 0x20<link>
    ether 70:ff:76:1d:96:99 txqueuelen 1000 (Ethernet)
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

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

    下面是我的 ethfw 初始化日志:

    Fullscreen
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    =======================================================
    CPSW Ethernet Firmware nouart
    =======================================================
    Warning: Using 6 MAC address(es) from static pool
    ETHFW: Shared multicasts (software fanout):
    01:00:5e:00:00:01
    01:00:5e:00:00:fb
    01:00:5e:00:00:fc
    33:33:00:00:00:01
    33:33:ff:1d:92:c2
    01:80:c2:00:00:00
    01:80:c2:00:00:03
    ETHFW: Reserved multicasts:
    01:80:c2:00:00:0e
    01:1b:19:00:00:00
    EnetMcm: CPSW_9G on MAIN NAVSS
    Mdio_open: MDIO manual mode enabled
    PHY 16 is alive
    PHY 17 is alive
    PHY 18 is alive
    PHY 19 is alive
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

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

    您好!

    我可以从 EthFw 看到、一个交换机端口接口和一个仅 MAC 接口映射到 A72 (MPU_1_0)、此处 eth1是交换机端口接口、eth2是仅 MAC 接口。 要 ping eth2、您必须将外部 PC 连接到 MAC 端口1、因为端口1是仅 MAC 端口。 请参见下面的 Ethfw 日志。


    此外、从日志中、我可能会看到端口7已建立链路(请参阅下面的内容)、您必须建立端口1链路以与 ETH2通信。


    请确保您已将外部 PC 连接到 MAC 端口1、并检查 EthFw 的链路建立消息、然后检查 Eth2。

    如果要使用端口7本身进行检查、则必须为 eth1设置 IP 地址并检查从 PC 到 eth1的 ping (因为 eth1是交换机接口、可以从任何外部端口 ping)

    此致、
    苏德黑尔

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

    我的目标是连接 PC 的 Areas 虚拟交换机端口。 PC 无法 直接 ping 通 A72的虚拟交换机端口,必须先 ping 通 PC。

    我们广泛的不需要虚拟 MAC 端口。

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

    您好!

    我的目标是连接 A 虚拟交换机端口。 PC 无法 直接 ping A72的虚拟交换机端口,必须先 ping PC。

    这应该是由于代理 ARP 问题、您能否确认是否使用了更新的 ethFw 二进制文件。

    另外、从 ifconfig 信息可以看到未将 IP 地址分配给 eth1接口。 请参阅以下日志。


    您可以使用下面的指定 IP 并检查一次吗?
    # ifconfig eth1 192.168.1.80

    从 PC ping eth1。 在此,当启用代理 ARP 时,虚拟交换机端口应向 EthFw 注册 IP。
    如果不是、则应禁用代理 ARP、并启用内核虚拟 Eth、在 A72上添加 TAP 接口。

    您能否在上面确认并在从 PC ping 命令后共享 ALE 条目/表?
    有关收集 ALE 表的信息,请参考 FAQ [如何 为 CPSW]打印 ALE 表  

    此致、
    苏德黑尔

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

    我  确认更新了 ethFw 二进制文件、然后通过在文件 ethfw_build_flags.mak 中设置"ETHFW_PROVISION_ARP_SUPPORT=NO"来关闭 arp 代理 。 和"cp ./out/J721E/R5Ft/FREERTOS/release/app_remoteswitchcfg_server.xer5f /media/byd/rootfs/lib/firmware/vision_apps_evm/vx_app_rtos_linux_mcu2_0.out

    在 SPL 模式下、我使用 J721E EVM 板的 QENET 端口对其进行测试。 哪个端口是虚拟交换机端口 eth1或 eth2? 在我的测试中 、eth2似乎是 虚拟交换机端口。

    我找不到 ALE 表、请在下面记录。

    Fullscreen
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    root@j721e-evm:~# ifconfig
    eth0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
    ether 34:08:e1:5b:64:86 txqueuelen 1000 (Ethernet)
    RX packets 0 bytes 0 (0.0 B)
    RX errors 0 dropped 0 overruns 0 frame 0
    TX packets 0 bytes 0 (0.0 B)
    TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
    eth1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
    inet 192.168.1.99 netmask 255.255.255.0 broadcast 192.168.1.255
    inet6 fe80::72ff:76ff:fe1d:92c1 prefixlen 64 scopeid 0x20<link>
    ether 70:ff:76:1d:92:c1 txqueuelen 1000 (Ethernet)
    RX packets 0 bytes 0 (0.0 B)
    RX errors 0 dropped 0 overruns 0 frame 0
    TX packets 609 bytes 28935 (28.2 KiB)
    TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
    eth2: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
    inet 192.168.195.65 netmask 255.255.255.0 broadcast 192.168.195.255
    inet6 fe80::72ff:76ff:fe1d:92c2 prefixlen 64 scopeid 0x20<link>
    ether 70:ff:76:1d:92:c2 txqueuelen 1000 (Ethernet)
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

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

    您好!

    Fullscreen
    1
    2
    3
    4
    root@j721e-evm:~# switch-config --ndev eth1 -d
    Cannot get driver information: Operation not supported
    root@j721e-evm:~# switch-config --ndev eth2 -d
    Cannot get driver information: Operation not supported
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    上述命令将不起作用、因为您使用的是 EthFw + A72。

    您必须使用#ethtool -t eth1、然后使用 trace 命令在 A72上收集日志。

    此外,从 ifconfig 信息中,我可以看到 IP 地址未分配给 eth1接口。 请参阅以下日志。


    您可以使用下面的指定 IP 并检查一次吗?
    # ifconfig eth1 192.168.1.80

    从 PC ping eth1。 此处,虚拟交换机端口应在启用代理 ARP 时向 EthFw 注册 IP。

    您是否尝试过此操作、因为我指出没有为 eth1 (虚拟交换机接口)分配 IP 地址
    如果未尝试、您能否检查一次。

    此致、
    苏德黑尔

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

    我已经为 eth1分配了 ip、请查看日志。

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

    日志就是这样

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

    您好!

    从上面的"ethtool -t "日志我看不到任何统计信息,这是许多没有从任何 CPSW 端口接收或传输。

    您是否可以首先尝试从外部 PC ping 命令 192.168.1.19、并确认 ping 是否有效。
    此外、从外部 PC 向 192.168.1.19进行 Ping 操作时、请在 Linux 客户端上使用上述"ethtool -t "和 trace 命令收集统计信息。

    另外、能否分享您的测试设置详细信息、如何连接 PC 和 CPSW、MAC 地址、尝试 ping 的外部 PC 的 IP 地址。

    此致、
    苏德黑尔

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

    我的测试环境是:

    A52的网络是:

    Fullscreen
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    root@j721e-evm:~# ifconfig
    eth0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
    ether 34:08:e1:5b:64:86 txqueuelen 1000 (Ethernet)
    RX packets 0 bytes 0 (0.0 B)
    RX errors 0 dropped 0 overruns 0 frame 0
    TX packets 0 bytes 0 (0.0 B)
    TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
    eth1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
    inet 192.168.195.99 netmask 255.255.255.0 broadcast 192.168.195.255
    inet6 fe80::72ff:76ff:fe1d:92c1 prefixlen 64 scopeid 0x20<link>
    ether 70:ff:76:1d:92:c1 txqueuelen 1000 (Ethernet)
    RX packets 0 bytes 0 (0.0 B)
    RX errors 0 dropped 0 overruns 0 frame 0
    TX packets 34 bytes 4322 (4.2 KiB)
    TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
    eth2: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
    inet 192.168.1.65 netmask 255.255.255.0 broadcast 192.168.1.255
    inet6 fe80::72ff:76ff:fe1d:92c2 prefixlen 64 scopeid 0x20<link>
    ether 70:ff:76:1d:92:c2 txqueuelen 1000 (Ethernet)
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    PC 的网络是:

    您能否先尝试从外部 PC ping 192.168.1.19,并确认 ping 是否正常工作。
    此外,从外部 PC 到 192.168.1.19进行 Ping 操作时,请使用上述"ethtool -t "和 Linux 客户端上的 trace 命令收集统计信息。

    A72启动后、从 PC ping A72不能成功。 ethtool -t log 不显示任何内容:

    Fullscreen
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    root@j721e-evm:~# ethtool -t eth2
    The test result is PASS
    The test extra info:
    RPMSG Ping test 0
    RPMSG Read reg 0
    RPMSG Dump stat 0
    root@j721e-evm:~# ethtool -t eth1
    The test result is PASS
    The test extra info:
    RPMSG Ping test 0
    RPMSG Read reg 0
    RPMSG Dump stat 0
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    使用 Wireshark 在 PC 中捕获数据包,我发现 PC 可以接收 A92的 arp 宽播(这是网络门), PC 发送 A52的 IP 的 arp 请求,但没有回复。 A72无法捕获 PC 的 ARP 请求。 我认为 eth2是交换机虚拟端口、因为 eth2 witch '192.168.1.XX'可以 ping A72成功、eth1无法 ping 通。

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

    您好!  

    [userid="577398" url="~/support/processors-group/processors/f/processors-forum/1289160/tda4vm-q1-does-there-any-way-to-directly-ping-a72-through-cpsw9g/4898495 #4898495"]使用 Wireshark 在 PC 中捕获数据包,我发现 PC 可以接收 A92的宽播(这是网络门), PC 发出 arp 请求为 Aquote IP,但没有回复。 A72无法捕获 PC 的 ARP 请求。 我认为 eth2是交换机虚拟端口,因为 eth2 witch '192.168.1.XX'可以 ping A72成功,eth1无法

    我可能会看到 eth1和 eth2 IP 地址在不同的域中。  

    您能否在 eth1的同一域中配置 PC 的 IP 地址并检查 ping。  

    另外、当您确认 PC 能够切换 a451eth2时、ping 是从 a72还是 PC 启动的? 如果从 a72启动 ping、是否可以尝试从 PC 启动 ping 一次?  

    此外、您能否将电缆连接到端口1 (TI EVM 的 GESI 扩展卡 RGMII)、并通过在相同的 eth1域中配置 PC IP 来检查 ping。

    此致、  

    苏德黑尔

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您能否在 eth1的同一域中配置 PC 的 IP 地址并检查 ping。  [/报价]

    我已经配置了它、没有用途。

    此外,由于您正在确认 PC 可以切换 eth2,ping 是否从 a72或 PC 启动? 如果从 a72启动 ping、是否可以尝试从 PC 启动 ping 一次?  [/报价]

    从 A72到 PC 的 Ping 操作正常、从 PC 到 A72的 Ping 操作失败。

    此外、您能否将电缆连接到端口1 (来自 TI EVM 的 GESI 扩展卡 RGMII)并通过在同一 eth1域中配置 PC IP 来检查 ping。
    [/quote]

    我没有 GESI 板。 ┭┮﹏┭┮

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

    CPSW9G 有时会出现如下所示的日志、您知道这个问题吗?

    Fullscreen
    1
    2
    CpswMacPort_setSgmiiInterface: MAC 2: SERDES PLL is not locked
    CpswMacPort_setSgmiiInterface: Assertion @ Line: 2287 in src/mod/cpsw_macport.c: false
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

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

    您好!  

    以上是串行器/解串器配置失败、因此未锁定串行器/解串器的 PLL。  

    观察到上述问题后、MAC 端口将无法建立链路、无法执行 ping 操作。  

    您能否向我们提供串行器/解串器的串行器/解串器配置和时钟配置。  

    此致、  

    苏德黑尔

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

    我只使用默认设置参数、不做任何更改。 I 在 SPL 模式下调试。 EthFwBoard_configSierra0Clks 和 Board_Cfg sgmii 中的参数。
    但在 SBL 模式下、不存在该问题。 我换了板,没有帮助,不是硬件问题。 我使用预编译数据包"boot-adas-j721e-evm.tar.gz"和"tisdk-adas-image-j721e-evm.tar.xz"、问题仍然存在。 上周、SPL 模式还行、可能存在一些不稳定的情况。

    下面是 默认设置参数、我不做任何更改。

    Fullscreen
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    static void EthFwBoard_configSierra0Clks(void)
    {
    uint32_t moduleId = TISCI_DEV_SERDES_16G0;
    uint32_t clkRateHz = 100000000U;
    uint32_t clkId[] = {
    TISCI_DEV_SERDES_16G0_CORE_REF1_CLK,
    TISCI_DEV_SERDES_16G0_CORE_REF_CLK};
    uint32_t clkParId[] = {
    TISCI_DEV_SERDES_16G0_CORE_REF1_CLK_PARENT_HSDIV4_16FFT_MAIN_2_HSDIVOUT4_CLK,
    TISCI_DEV_SERDES_16G0_CORE_REF_CLK_PARENT_HSDIV4_16FFT_MAIN_2_HSDIVOUT4_CLK};
    uint32_t i;
    int32_t status;
    for (i = 0U; i < ENET_ARRAYSIZE(clkId); i++)
    {
    status = Sciclient_pmSetModuleClkParent(moduleId, clkId[i], clkParId[i], SCICLIENT_SERVICE_WAIT_FOREVER);
    if (status != CSL_PASS)
    {
    appLogPrintf("Failed to reparent clk %u: %d\n", clkId[i], status);
    EnetAppUtils_assert(false);
    }
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

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

    您好!

    我只使用默认设置参数,不更改任何内容。 I 在 SPL 模式下调试。 EthFwBoard_configSierra0Clks 和 Board_Cfg sgmii 中的参数。

    如果是 SPL 引导流程、Linux 将配置 PCIe 使用的 SerDes0。

    您能否确认、您是否在 SBL 中使用 Linux 作为 weel? 如果是这样、SerDes0也由 Linux 配置、与您应该面临的问题相同。

    此外、默认情况下、串行器/解串器0针对 Linux 中的 PCIe+QSGMII 启用、无需从 EthFw 配置、默认情况下、它是为100MHz 时钟设置的(与 RTOS 配置相同、即 CSL_SERDES_REF_CLOCK_100M)

    如果要从 EthFw 配置、您需要从 Linux 禁用 SerDes0配置。

    如果 Linux 端配置发生更改、则在重新配置时可能会遇到问题、请检查 Linux 配置是否与默认配置相同。


    另外、当您确认 PC 能够切换 a451eth2时、ping 是从 a72还是 PC 启动的? 如果从 a72启动 ping、是否可以尝试从 PC 启动 ping 一次?  

    从 A72到 PC 的 Ping 操作正常、从 PC 到 A72的 Ping 操作失败。

    [/报价]

    这应该不会发生,当你从 PC ping A72时,你能不能在 A72捕获 tcpdump 并与我分享检查 A72是否收到数据包. 另外、请同时分享统计数据。  

    在从 A72 ping PC 时、您能否共享端口统计信息。

    此致、
    苏德黑尔

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    请确认您是否使用 SBL 中的 Linux 作为 weel?

    在 SBL 模式下、我没有使用 Linux。 但在 SPL 模式下、Linux 会加载 ethfw。

    如果要从 EthFw 配置,则需要从 Linux 禁用 SerDes0配置。

    我删除了 k3-j721e-common-proc-board.dts 中 serdes0的配置、但仍出现"CpswMacPort_setSgmiiInterface: Mac 2:SerDes PLL 未锁定"。

    我在中的删除代码是 下面的 k3-j721e-common-proc-board.dts:

    Fullscreen
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    < &serdes0 {
    < assigned-clocks = <&serdes0 CDNS_SIERRA_PLL_CMNLC>;
    < assigned-clock-parents = <&wiz0_pll1_refclk>;
    <
    < serdes0_pcie_link: phy@0 {
    < reg = <0>;
    < cdns,num-lanes = <1>;
    < #phy-cells = <0>;
    < cdns,phy-type = <PHY_TYPE_PCIE>;
    < resets = <&serdes_wiz0 1>;
    < };
    < };
    1023,1029d1010
    < &pcie0_rc {
    < status = "okay";
    < reset-gpios = <&exp1 6 GPIO_ACTIVE_HIGH>;
    < phys = <&serdes0_pcie_link>;
    < phy-names = "pcie-phy";
    < num-lanes = <1>;
    < };
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

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

    您好!

    您能否确认、您是否在 SBL 中使用 Linux 作为 weel?

    在 SBL 模式下、我没有使用 Linux。 但在 SPL 模式下、Linux 会加载 ethfw。

    [/报价]

    是的、这 可能是您在尝试更改父时钟时出现错误的原因。 但是。 我可能会看到、Linux 和 RTOS 中的时钟配置默认是相同的。
    侧配置发生变化、从而可能引起问题。

    SerDes0也可从 u-boot 启用、您能否也禁用表单 u-boot 并检查一次。

    此外、根据上面的内容、我可以理解、问题与时钟启用无关、因为您只会在端口链路状态检查中观察到问题、因为 PLL 未锁定。 所以、时钟配置 可能是成功的。

    如果您在 TI 版本上做了任何更改、请在 EthFw 中分享。

    此致、
    苏德黑尔

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    串行器/解串器0也从 u-boot 启用,您能否同时禁用 u-boot 表单并检查一次[/报价]

    在 u-boot 中禁用 Serdes0后、 MAC 2:串行器/解串器 PLL 未锁定、仍然锁定、没有任何变化。

    我的方法是在 k3-j721e-common-proc-board.dts 和 k3-j721e-common-proc-board-u-boot.dtsi 中将 serdes0的状态设置为禁用、如下所示:

    Fullscreen
    1
    2
    3
    &serdes0 {
    status = "disabled";
    };
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

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

    在 u-boot 中删除 serdes0并重新引导 u-boot 后、我将 u-boot.img 替换为引导分区中。

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

    您好!

    您能否确认在 EthFw 中调用了 SerDes 配置?


    如果您在 TI 版本上方作出了任何更改、您能否在 EthFw 中分享您的更改。

    您能分享您所做的更改吗?

    此致、
    苏德黑尔

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

    我不做任何更改、仅更改  ti-processor-sdk-rtos-j721e-evm-09_00_00_02中的原始代码。

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

    您好!

    在 TI 版本的原始代码中。
    串行器/解串器不会通过 app_remoteconfig_switch_server.xer5f 二进制文件从 EthFw 配置("gEthFwBoard.serdesAllowed 未设置")、因为串行器/解串器与 PCIe 共享、QSGMII Linux 正在配置该配置。

    你必须 在 EthApp_boardInit() 函数中的标志中添加"ETHFW_BOARD_SERDES_CONFIG"。

    对于 SBL、SBL 将在启用"SBL_ENABLE_SERDES"时配置串行器/解串器、该器件默认启用。 请参阅以下"ti-processor-sdk-rtos-j721e-evm-09_00_00_02\pdk_jacinto_09_00_00_45\packages\ti\boot\sbl\sbl_component.mk"


    此致、
    苏德黑尔

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

    "k3-j721e-main.dtsi"中添加"ETHFW_Board_SERDES_CONFIG"并删除 PCIe 中断后。 QENET 工作良好。

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

    您好!

    感谢更新、您需要我们提供哪些支持?

    此致、
    苏德黑尔

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

    然后、我们将重点讨论广播接收问题。  

    在 A72中添加 Tap0,但不会接收到任何数据包。 当我检查 ethfw 代码时、 函数'bridgeif_input'将检查数据包、如果它是广播数据包    、dstports 将为 BR_flood、并泛洪至 netif_IC[ETHAPP_NETIF_IC_MCU2_0_MCU2_1_IDX] 和 netif_IC[ETHAPP_NETIF_IC_MCU2_0_A72_A72_IDX] 。 但我在 Tap0中看不到任何内容。  

    Fullscreen
    1
    2
    3
    4
    5
    6
    7
    8
    tap0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
    inet 192.168.1.20 netmask 255.255.255.0 broadcast 192.168.1.255
    inet6 fe80::201:2ff:fe04:506 prefixlen 64 scopeid 0x20<link>
    ether 00:01:02:04:05:06 txqueuelen 1000 (Ethernet)
    RX packets 0 bytes 0 (0.0 B)
    RX errors 0 dropped 0 overruns 0 frame 0
    TX packets 0 bytes 0 (0.0 B)
    TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

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

    您好!

    您可以 在从外部 PC 向交换机端口(端口1、端口4以外的 MAC 端口)发送 ping 的同时,在 Tap0接口捕获 tcpdump 吗?
    因为 MAC 端口1映射到 A72作为仅虚拟 MAC 端口、而 MAC 端口4映射到 MCU2_1作为仅 MAC 端口。

    此致、
    苏德黑尔

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

    您好!

    您是否可以使用以下命令进行检查、以观察 Tap0接口上接收到的数据包。

    # tcpdump -i tap0 -xx

    您能否通过在同一192.168.10.x 域中配置 PC 接口来检查 ping 未由任何 A72接口和 EthFw (例如:192.168.10.121)注册的 IP。
    请求 ping unknow IP 的原因是、如果 IP 已在 EthFw 注册、它会向 ARP 请求发送 ARP 响应、其中广播 MAC、因此 PC 不会再发送广播数据包。

    此外、能否捕获 CPSW 状态、无论主机端口是否接收到广播数据包。

    此致、
    苏德黑尔

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您能否通过在同一个192.168.10.x 域中配置 PC 接口来检查是否有未由任何 A72接口和 EthFw (例如:192.168.10.121)注册的 IP ping。

    我已经检查了很多次。 我知道是否要发送 ARP 请求数据包、必须在同一个网络域中执行 ping 操作。 或者将直接向网络门发送 ICMP。

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

    您好!

    您是否在从未向任何 A72接口和 Ethfw 注册的 IP 进行会话期间捕获了 tcpdump、如果是、请共享日志。
    还应与 EthFw 日志共享用于检查的 ping 请求。

    此外,请在进行 Ping 操作时验证端口统计信息。 外部端口的广播帧 Rx 和主机端口的 Tx 应增加。

    此致、
    苏德黑尔

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

    它真的让我困惑。

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

    您好!

    我们可以在星期一打电话检查这个问题吗?

    此致、
    苏德黑尔

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

    没问题,如何与您通话。 我们利用腾讯在中国的会议。

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

    您好!

    您能不能请您的 FAE 安排电话吗?

    此致、
    苏德黑尔

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

    确定

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

    大家好!

    更新今天(11月20日)的会议。

    请在 A72 Linux 中运行以下命令、用于收集 ALE 和策略器表以及以太网统计数据。
    # ethtool -t eth1

    请在多个实例中从外部 PC ping A72的同时运行上述命令、并与我们共享 EthFw UART 终端日志。

    如需 CPSW9G 交换机本机 Linux 驱动程序的步骤、请参阅 常见问题解答[如何 移动到 CPSWnG 的本机 Linux 驱动程序]

    AI On Customer (AI 关于客户):
    1.按上述要求收集日志并与我们分享以便分析。

    TI AI:
    否。

    此致、
    苏德黑尔

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

    您好!

    a72命令:ethtool -t eth1
      MCU2_0日志(当 PC ping 使用差异目标 IP 地址时捕获以下日志、以确保 ARP 广播数据包已从 PC 发出):

    我可能会看到外部端口7上接收到的所有广播帧都正在到达主机端口(即端口7的 Rx 广播与主机端口的 Tx 广播匹配)。

    如上所述,您是否可以在多个实例收集统计数据,如运行 ping 命令和运行 ping 特定的时间(如使用-c 约10个),并停止 ping 并再次收集统计数据,并与我们共享。

    使用单实例日志、我们无法了解数据包流、请在多个实例处收集并与我们共享。

    此致、
    苏德黑尔

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

    我会检查一下如何使用它、如果有任何问题、我会在 https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1294118/tda4vm-q1-how-to-to-drive-the-switch-ethfw-in-linux-side 中提问。

     谢谢你。

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

    您好!

    从您共享的日志来看,数据包似乎先到达 Host Port,然后再到达 EthFw。

    您能否集成以下补丁并检查一次。
    e2e.ti.com/.../4188.lwipnet_5F00_db_5F00_check_2D00_pbuf.patch
    我们在某些错误情况下有一些缓冲区泄漏问题,上面的补丁用于修复缓冲区泄漏问题。

    中问

    当然、如果您遇到任何问题、请分享问题。

    此致、
    苏德黑尔

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您能否整合以下补丁并检查一次。

    我在添加补丁后进行了检查。 没有使用、问题仍然存在。  

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

    您好!  

    我使用了9_00_01_03 SDK、无法找到 SDK 版本09_00_01_02。 我可以观察到数据包到达 a72上的 tap0接口。  

    您能否从 J721E 软件版本页面使用 SDK 09_00_01_03进行一次检查。

    此致、  

    苏德黑尔

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

    今天、我获得一个 J784S4 EVM 板(我们将最终使用 J784S4、J721E 只是检查一下)、它具有一个默认 SD 卡、软件版本为8.6.3。 我看到 A72将 IP 和 MAC 注册到了 ethfw。 登录

    Fullscreen
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    =======================================================
    CPSW Ethernet Firmware
    =======================================================
    Warning: Using 6 MAC address(es) from static pool
    ETHFW: Shared multicasts (software fanout):
    01:00:5e:00:00:01
    01:00:5e:00:00:fb
    01:00:5e:00:00:fc
    33:33:00:00:00:01
    33:33:ff:1d:92:c2
    01:80:c2:00:00:00
    01:80:c2:00:00:03
    ETHFW: Reserved multicasts:
    01:80:c2:00:00:0e
    01:1b:19:00:00:00
    EnetMcm: CPSW_9G on MAIN NAVSS
    PHY 16 is alive
    PHY 17 is alive
    PHY 18 is alive
    PHY 19 is alive
    EnetPhy_bindDriver: PHY 16: OUI:0001c1 Model:27 Ver:00 <-> 'vsc8514' : OK
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    但是、当我使用预编译数据包制作 SD 卡时、我找不到 A72注册的 IP 和 MAC 到 ethfw。

    预编译数据包下载地址: https://www.ti.com/tool/download/PROCESSOR-SDK-LINUX J784S4

    我将 boot-adas-j784s4-evm.tar.gz 和 tisdk-adas-image-j784s4-evm.tar.xz 放置在'TDA4_J784S4_SDK/rtos'中、然后使用命令"dk_builder/scripts/install_to_sd_card.sh"安装到 SD 卡。

     

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

    今天、我得到一个 J784S4 EVM 板(我们最终将使用 J784S4、J721E 仅用于检查)。  J784S4 EVM 板包含一个 SD 卡、可将 A52的 IP-MAC 注册到 ethfw、如下所示:

    Fullscreen
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    =======================================================
    CPSW Ethernet Firmware
    =======================================================
    Warning: Using 6 MAC address(es) from static pool
    ETHFW: Shared multicasts (software fanout):
    01:00:5e:00:00:01
    01:00:5e:00:00:fb
    01:00:5e:00:00:fc
    33:33:00:00:00:01
    33:33:ff:1d:92:c2
    01:80:c2:00:00:00
    01:80:c2:00:00:03
    ETHFW: Reserved multicasts:
    01:80:c2:00:00:0e
    01:1b:19:00:00:00
    EnetMcm: CPSW_9G on MAIN NAVSS
    PHY 16 is alive
    PHY 17 is alive
    PHY 18 is alive
    PHY 19 is alive
    EnetPhy_bindDriver: PHY 16: OUI:0001c1 Model:27 Ver:00 <-> 'vsc8514' : OK
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    但我使用预编译包不能 注册 A52的 IP-MAC 到 ethfw。 您知道原因吗?

    预编译数据包为:https://www.ti.com/tool/download/PROCESSOR-SDK-LINUX-J784S4/09.00.01.03

    我使用以下命令安装到 SD 卡: rtos$ sdk_builder/scripts/install_to_sd_card.sh

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

    您好!

    如果使用 SDK 发布页面中的默认文件系统和引导分区构建 SD 卡、您能否共享 Vision Apps init 脚本日志以确认 ethfw 是否正在运行。

    此外、请共享为 MCU2_0日志映射的软链接。
    root# ls -la /lib/firmware

    此致
    苏德黑尔

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

    Tap0可以通过更改 k3-j784s4-rtos-memory-map.dtsi 中的共享存储器地址来对 MCU2_0执行 ping 操作、更改如下:

    Fullscreen
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    change file: TDA4_J784S4_SDK\linux\board-support\linux-6.1.46+gitAUTOINC+f8110d9ce8-gf8110d9ce8\arch\arm64\boot\dts\ti\k3-j784s4-rtos-memory-map.dtsi
    before:
    vision_apps_main_r5fss0_core0_shared_memory_queue_region: vision-apps-r5f-virtual-eth-queues@e5000000 {
    compatible = "shared-dma-pool";
    reg = <0x00 0xe5000000 0x00 0x00800000>;
    no-map;
    };
    vision_apps_main_r5fss0_core0_shared_memory_bufpool_region: vision-apps-r5f-virtual-eth-buffers@e5800000 {
    compatible = "shared-dma-pool";
    reg = <0x00 0xe5800000 0x00 0x01800000>;
    no-map;
    };
    after:
    vision_apps_main_r5fss0_core0_shared_memory_queue_region: vision-apps-r5f-virtual-eth-queues@af000000 {
    compatible = "shared-dma-pool";
    reg = <0x00 0xaf000000 0x00 0x200000>;
    no-map;
    };
    vision_apps_main_r5fss0_core0_shared_memory_bufpool_region: vision-apps-r5f-virtual-eth-buffers@af200000 {
    compatible = "shared-dma-pool";
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

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

    您好!

    tap0可以通过更改 k3-j784s4-rtos-memory-map.dtsi 中的共享内存地址来 ping mcu2_0,更改如下:

    是的、您需要在 Linux 设备树中的 ethfw TAP 配置文件和内存映射中使用相同的地址。
    此外、我们需要 确保在 Linux 器件树中将共享存储器区域标记为保留、如下所示。

    Fullscreen
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    /* Reserve shared memory for inter-core network communication */
    &reserved_memory {
    #address-cells = <2>;
    #size-cells = <2>;
    main_r5fss0_core0_shared_memory_queue_region:r5f-virtual-eth-queues@af000000 {
    compatible = "shared-dma-pool";
    reg = <0x00 0xaf000000 0x00 0x200000>;
    no-map;
    };
    main_r5fss0_core0_shared_memory_bufpool_region:r5f-virtual-eth-buffers@af200000 {
    compatible = "shared-dma-pool";
    reg = <0x00 0xaf200000 0x00 0x1e00000>;
    no-map;
    };
    };
    &main_r5fss0_core0 {
    memory-region = <&main_r5fss0_core0_dma_memory_region>,
    <&main_r5fss0_core0_memory_region>,
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX


    进行上述更改后,您是否可以尝试启用 Tap0接口并检查您是否能够接收广播消息。

    此致、
    苏德黑尔

1 2