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:TX 校验和卸载不起作用

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1477081/am623-tx-checksum-offloading-not-working

器件型号:AM623

工具/软件:

您好:

在我们的 AM6234 SoC 上、似乎不支持将 TX 校验和卸载到 CPSW、正如勘误表 i2027中所述、但仅适用于 AM65x。

您能否确认情况是否属实、或者我们的驾驶员出了什么问题?

我使用 ti-RT-linux-6.1.y 分支中的内核源代码。 在 Wireshark 中、我可以看到校验和保持不变、但仍传输部分校验和。
禁用 TX 校验和(ethtool --offload eth2 TX off)后、没有任何问题。

谢谢

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

    您好 MK、

    先回答几个问题

    您是在定制 AM6234电路板或 TI AM62x SKEVM 上进行测试吗?

    Unknown 说:
    在 Wireshark 中、我可以看到校验和未更改、但仍传输部分校验和。

    2.你能分享 Wireshark 的捕获,你看到的地方吗?

    禁用 TX 校验和后(ethtool --offload eth2 tx off)

    3、您使用的是"eth2"界面这一事实向我表明、您可能正在使用定制设计的电路板进行测试? AM62x 只能支持两个 CPSW 以太网接口、TI EVM 上的默认接口为"eth0"和"eth1"。

    4、能否分享"ethtool -k ethX"的结果,其中 ethX 是您测试的接口? (请将结果与 Insert>代码共享)

    我使用 ti-RT-linux-6.1.y branch
    的内核源代码

    根据我的理解、在 TI SDK 上默认应启用 TX 校验和卸载。 如果可能、我建议使用最新 TI SDK 上使用的 RT-Linux 内核(内核6.6)。

    -道林

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

    您好:

    您是在定制 AM6234电路板或 TI AM62x SKEVM 上进行测试吗?

    我正在   定制电路板上使用 TQMa62xxL SoM。

    您可以在看到 Wireshark 的地方共享它吗?

    请确认: e2e.ti.com/.../2480.dump.zip

    172.17.114.97是我的主机、172.17.114.98是主板。 数据包编号 22已接收、但仍包含部分校验和。

    您使用的是"eth2"界面这一事实向我表明、您可能正在使用定制设计的电路板进行测试? AM62x 只能支持两个 CPSW 以太网接口、在 TI EVM 上默认为"eth0"和"eth1"。

    eth0是虚拟接口、CPSW 接口为 eth1和 eth2。 在 eth1上、主板上连接了一个交换机、只有 VLAN 流量通过该交换机。 我不会遇到同样的问题、但可能默认情况下禁用 VLAN 的校验和卸载?

    您能否分享"ethtool -k ethX"
    的结果?

    ~ # ethtool -k eth2
    Features for eth2:
    rx-checksumming: on
    tx-checksumming: on
    	tx-checksum-ipv4: off [fixed]
    	tx-checksum-ip-generic: on
    	tx-checksum-ipv6: off [fixed]
    	tx-checksum-fcoe-crc: off [fixed]
    	tx-checksum-sctp: off [fixed]
    scatter-gather: on
    	tx-scatter-gather: on
    	tx-scatter-gather-fraglist: off [fixed]
    tcp-segmentation-offload: off
    	tx-tcp-segmentation: off [fixed]
    	tx-tcp-ecn-segmentation: off [fixed]
    	tx-tcp-mangleid-segmentation: off [fixed]
    	tx-tcp6-segmentation: off [fixed]
    generic-segmentation-offload: on
    generic-receive-offload: on
    large-receive-offload: off [fixed]
    rx-vlan-offload: off [fixed]
    tx-vlan-offload: off [fixed]
    ntuple-filters: off [fixed]
    receive-hashing: off [fixed]
    highdma: off [fixed]
    rx-vlan-filter: on [fixed]
    vlan-challenged: off [fixed]
    tx-lockless: off [fixed]
    netns-local: off [fixed]
    tx-gso-robust: off [fixed]
    tx-fcoe-segmentation: off [fixed]
    tx-gre-segmentation: off [fixed]
    tx-gre-csum-segmentation: off [fixed]
    tx-ipxip4-segmentation: off [fixed]
    tx-ipxip6-segmentation: off [fixed]
    tx-udp_tnl-segmentation: off [fixed]
    tx-udp_tnl-csum-segmentation: off [fixed]
    tx-gso-partial: off [fixed]
    tx-tunnel-remcsum-segmentation: off [fixed]
    tx-sctp-segmentation: off [fixed]
    tx-esp-segmentation: off [fixed]
    tx-udp-segmentation: off [fixed]
    tx-gso-list: off [fixed]
    fcoe-mtu: off [fixed]
    tx-nocache-copy: off
    loopback: off [fixed]
    rx-fcs: off [fixed]
    rx-all: off [fixed]
    tx-vlan-stag-hw-insert: off [fixed]
    rx-vlan-stag-hw-parse: off [fixed]
    rx-vlan-stag-filter: off [fixed]
    l2-fwd-offload: off [fixed]
    hw-tc-offload: on
    esp-hw-offload: off [fixed]
    esp-tx-csum-hw-offload: off [fixed]
    rx-udp_tunnel-port-offload: off [fixed]
    tls-hw-tx-offload: off [fixed]
    tls-hw-rx-offload: off [fixed]
    rx-gro-hw: off [fixed]
    tls-hw-record: off [fixed]
    rx-gro-list: off
    macsec-hw-offload: off [fixed]
    rx-udp-gro-forwarding: off
    hsr-tag-ins-offload: off [fixed]
    hsr-tag-rm-offload: off [fixed]
    hsr-fwd-offload: off [fixed]
    hsr-dup-offload: off [fixed]

    如果可能、我建议使用最新 TI SDK 上使用的 RT-Linux 内核(Kernel 6.6)。

    这是不可能的、因为基本系统位于内核6.1上

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

    您好 MK、  

    172.17.114.97是我的主机、172.17.114.98是主板。 数据包编号 22已收到、但仍包含部分校验和。

    从 Wireshark 捕获中、您正在发送 TCP 数据包。 您能否分享用于将数据包从 AM62x 定制板发送到主机 PC 的确切 Linux 命令? 我想看看是否可以使用 TI AM62x SKEVM 在我的设置中复制结果。 请注意、我将在测试中使用内核6.6。

    此外、 您是否可以尝试在 eth1接口(发送 TCP 流量)上运行相同的测试、并查看是否发现了相同的问题?

    -道林

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

    您好:

    我使用 iperf 在电路板上进行测试  "iperf -s"  然后在主机上" iperf -c 172.17.114.98"。  此 问题 也可见、反之亦然。

    是的、如果我使用相同的流量(无 VLAN)、我可以在 eth1上观察到相同的问题。 但正如我之前所说的、这个接口通常只有 VLAN 流量。

    谢谢。

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

    您好 MK、

    感谢您的澄清。 您能给我指一下您在 Wireshark 转储中看到部分校验和的确切位置吗? 我正在查看数据包22校验和、但无法准确看到它表明存在部分校验和的位置。  

    当我尝试复制您的测试时、我看不到它在我的 Wireshark 转储中表示部分校验和的位置、也许我正在查看转储的错误部分?

    理想情况下、如果您还可以分享关闭 TX 校验和卸载时工作案例的预期结果、这将有所帮助。

    -道林

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

    您好:

    您需要在 Wireshark 中启用校验和解析、方法是右键单击 TCP 条目、然后选择"Protocol settings→Validate the TCP checksum if possible"(协议设置 验证 TCP 校验和、如果可能)。 启用后、0x3d15显示为部分校验和。

    以下是工作案例的转储文件: iperf_working.zip 
    在这种情况下、Wireshark 可以验证校验和是否"正确"、并且 iperf 也接受校验和。

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

    尊敬的 MK:  

    您需要在 Wireshark 中启用校验和解析、方法是右键单击 TCP 条目、然后选择"Protocol settings→Validate the TCP checksum if possible"。 启用后、0x3d15会显示为部分校验和。

    感谢您分享此步骤。 在数据包22上启用"如果可能、验证 TCP 校验和"后、我可以从您之前的 Wireshark 捕获中看到以下内容。  

    我尝试在 AM62x SKEVM (内核6.6)上复制此行为、但我发现有不同的行为、因为许多 TCP 数据包具有不正确的校验和而不是部分校验和。 无论是否启用 TX 校验和卸载、都会发生这种行为。 使用内核6.1进行测试时、会观察到类似的行为。

    我需要一些时间与内部团队一起调查此问题。  我计划在星期四之前提供最新情况。

    同时、我需要能够在 TI EVM 上观察到这个部分校验和问题。 您是否可以访问 AM62x SKEVM? 您是否能够在 TI EVM 上看到同样的行为?

    -道林

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

    您好:

    否、我无法访问 AM62x SKEVM。 我们  从 TQ 开始开发 STKa62xx 入门套件。 如果有帮助、我可以在这个上设置一个测试。

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

    您好 MK、

    我们  从 TQ 开始开发 STKa62xx 入门套件。 如果有帮助、我可以对此测试进行设置。

    感谢您对此进行澄清。 我不太熟悉 TQ 的入门套件、在我这边没有 但是、如果您可以检查 TQ 入门套件并查看是否看到相同的部分校验和问题、则可能是一个额外的数据点来帮助调查此问题。  

    我需要一些时间与内部团队合作调查此问题。  我计划在星期四之前提供更新。

    我创建了一个内部错误来跟踪我在 AM62x SKEVM 上看到的 TCP 校验和错误的问题。 我猜我们以前没有看到这个问题、因为我们只检查了 iperf3日志是否导致 很少到零次重试、没有专门抓取 Wireshark 日志并启用了"如果可能、验证 TCP 校验和"设置。  

    您能否分享 iperf3日志的外观? 请共享客户端日志和服务器日志(即导致部分校验和的 iperf 测试)。

    -道林

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

    您好:

    我现在使用 iperf3进行了测试、观察到完全相同的结果。 以下是电路板和主机的转储文件: iperf3.zip

    同样、在 TQ 入门套件上、行为相同、这是预期行为、因为两个电路板上的 SoM 相同。

    如果您对此有任何消息、请告诉我。

    谢谢。

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

    您好 MK、  

    当您启用"如果可能、验证 TCP 校验和"设置时、我对 Wireshark 显示的"部分校验和"做了更多的研究、并遇到了以下 问题:www.wireshark.org/.../ChAdvChecksums.html  

    我正在解释有关 Wireshark 如何显示 TCP 校验和的信息、因为在卸载校验和时、部分校验和是预期的。 但请注意、由于这是 Wireshark 显示数据包信息的方式、我无法确认我对 TI 代表的理解是否正确。

    进一步支持我的解释是、您之前共享的工作 Wireshark 转储表明主机 PC 传输到 DUT 路径也产生了"部分校验和"、这表明您可能在主机 PC 中启用了 TX 校验和卸载、而您仍然会看到"部分校验和"。 如果是这样、则"部分校验和"似乎并不是您正在使用的 AM623所特有的。 我建议在卸载校验和时、直接使用 Wireshark 进行检查、看看是否需要该部分校验和。

    -道林

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

    您好:

    是的、分载时预期会执行部分校验和、但仅在发送方侧。 接收器应获得完整的校验和。
    请查看以下并排比较:

    左侧:目标、右侧:主机

    在从主机到目标的数据包中、部分校验和显示在主机上、然后硬件正确地插入它、并在 目标上作为完整的正确校验和接收。

    在从目标到主机的数据包中、部分校验和同时显示在目标和主机上、硬件没有插入完整的校验和。

    我注意到、在第二种情况下、目标上存在一个 VLAN 标头。 我不确定这是来自我的网络设置还是来自 Target 本身。

    此致。

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

    您好 MK、  

    是的、在卸载时预期会执行部分校验和、但仅限于发送方。 接收器应获得完整的校验和。
    请查看此并排比较:

    感谢您对此进行澄清。 我正在内部咨询 CPSW 专家、查看是否可以通过 TX 校验和卸载来实现此行为。 我希望在下周星期二之前作出答复。 如果您在此之前没有收到回复、请发送此主题的 ping。

    请注意、我下周也将不在办公室、因此我的答复可能会推迟到这里的任何新的通信。

    -道林

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

    更新:

    您能否检查是否设置了 CPSW_P0_RCONTROL_REG 寄存器中的 RX_CHECKSUM_EN 位? 您可以使用"devmem2"实用程序通过指定寄存器地址来检查 CPSW_P0_CONTROL_REG 的内容。  

    更多详细信息 、请参阅 AM62x TRM 的12.3.1.4.8.6 CPPI 接收校验和卸载。  

    另外,我之前问过: 你能分享 你的 iperf3日志是什么样的(这不是 Wireshark 捕获,只是 iperf3的输出)? 请共享客户端日志和服务器日志(即导致部分校验和的 iperf 测试)。

    -道林

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

    您好、Daolin、

    您对硬件的测试有什么新消息吗?

    要回答您的最后一个问题:

    设置了 RX_CHECKSUM_EN 位(CPSW_P0_Rcontrol_REG = 0x1)。

    出现故障时没有有用的 iperf3日志输出:

    Board $ iperf3 --verbose --debug -c 172.17.114.1
    iperf 3.12
    Linux (none) 6.1.112 #9 SMP Wed Apr  2 16:31:58 CEST 2025 aarch64
    
    Server $ ./iperf3 --verbose --debug -s
    Linux (none) 5.10.0-34-amd64 #1 SMP Debian 5.10.234-1 (2025-02-24) x86_64
    -----------------------------------------------------------
    Server listening on 5201
    -----------------------------------------------------------

    禁用校验和后、日志为:

    Board $ iperf3 --verbose --debug -c 172.17.114.1
    iperf 3.12
    Linux (none) 6.1.112 #9 SMP Wed Apr  2 16:31:58 CEST 2025 aarch64
    Control connection MSS 1448
    Time: Fri, 28 Mar 2025 09:23:28 GMT
    Connecting to host 172.17.114.1, port 5201
    
    Cookie: doloqapokdq4wxip556y7idj2fmpr2jhgkno
    TCP MSS: 1448 (default)
    [  5] local 172.17.114.3 port 47304 connected to 172.17.114.1 port 5201
    Starting Test: protocol: TCP, 1 streams, 131072 byte blocks, omitting 0 seconds, 10 second test, tos 0
    [ ID] Interval           Transfer     Bitrate         Retr  Cwnd
    [  5]   0.00-1.00   sec  12.0 MBytes   100 Mbits/sec    0    259 KBytes
    [  5]   1.00-2.00   sec  10.9 MBytes  91.2 Mbits/sec    0    259 KBytes
    [  5]   2.00-3.00   sec  11.2 MBytes  93.8 Mbits/sec    0    259 KBytes
    [  5]   3.00-4.00   sec  11.2 MBytes  93.8 Mbits/sec    0    259 KBytes
    [  5]   4.00-5.00   sec  11.2 MBytes  93.8 Mbits/sec    0    259 KBytes
    [  5]   5.00-6.00   sec  11.2 MBytes  93.8 Mbits/sec    0    259 KBytes
    [  5]   6.00-7.00   sec  11.2 MBytes  93.8 Mbits/sec    0    259 KBytes
    [  5]   7.00-8.00   sec  11.2 MBytes  93.8 Mbits/sec    0    259 KBytes
    [  5]   8.00-9.00   sec  11.2 MBytes  93.8 Mbits/sec    0    259 KBytes
    [  5]   9.00-10.00  sec  11.2 MBytes  93.8 Mbits/sec    0    259 KBytes
    - - - - - - - - - - - - - - - - - - - - - - - - -
    Test Complete. Summary Results:
    [ ID] Interval           Transfer     Bitrate         Retr
    [  5]   0.00-10.00  sec   112 MBytes  94.2 Mbits/sec    0             sender
    [  5]   0.00-10.07  sec   112 MBytes  93.3 Mbits/sec                  receiver
    CPU Utilization: local/sender 3.0% (0.3%u/2.7%s), remote/receiver 1.0% (0.1%u/0.9%s)
    snd_tcp_congestion cubic
    rcv_tcp_congestion cubic
    
    Server $ ./iperf3 --verbose --debug -s
    Linux (none) 5.10.0-34-amd64 #1 SMP Debian 5.10.234-1 (2025-02-24) x86_64
    -----------------------------------------------------------
    Server listening on 5201
    -----------------------------------------------------------
    Time: Wed, 02 Apr 2025 14:35:55 GMT
    Accepted connection from 172.17.114.3, port 47300
    Cookie: doloqapokdq4wxip556y7idj2fmpr2jhgkno
    TCP MSS: 0 (default)
    [  5] local 172.17.114.1 port 5201 connected to 172.17.114.3 port 47304
    Starting Test: protocol: TCP, 1 streams, 131072 byte blocks, omitting 0 seconds, 10 second test, tos 0
    [ ID] Interval           Transfer     Bitrate
    [  5]   0.00-1.01   sec  10.8 MBytes  89.1 Mbits/sec
    [  5]   1.01-2.01   sec  11.1 MBytes  93.1 Mbits/sec
    [  5]   2.01-3.02   sec  11.2 MBytes  93.9 Mbits/sec
    [  5]   3.02-4.01   sec  11.1 MBytes  93.8 Mbits/sec
    [  5]   4.01-5.02   sec  11.2 MBytes  93.8 Mbits/sec
    [  5]   5.02-6.01   sec  11.1 MBytes  93.8 Mbits/sec
    [  5]   6.01-7.02   sec  11.2 MBytes  93.8 Mbits/sec
    [  5]   7.02-8.01   sec  11.1 MBytes  93.8 Mbits/sec
    [  5]   8.01-9.02   sec  11.2 MBytes  93.8 Mbits/sec
    [  5]   9.02-10.02  sec  11.1 MBytes  93.8 Mbits/sec
    [  5]  10.02-10.07  sec   640 KBytes  94.0 Mbits/sec
    - - - - - - - - - - - - - - - - - - - - - - - - -
    Test Complete. Summary Results:
    [ ID] Interval           Transfer     Bitrate
    [  5] (sender statistics not available)
    [  5]   0.00-10.07  sec   112 MBytes  93.3 Mbits/sec                  receiver
    rcv_tcp_congestion cubic

    此致

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

    您好 MK、  

    [引述 userid="637890" url="~/support/processors-group/processors/f/processors-forum/1477081/am623-tx-checksum-offloading-not-working/5747645 #5747645"]

    要回答您的最后一个问题:

    设置了 RX_CHECKSUM_EN 位(CPSW_P0_Rcontrol_REG = 0x1)。

    出现故障时没有有用的 iperf3日志输出:

    [/报价]

    感谢您的分享。 从过去的测试中、我使用 iperf3使用默认设置(即启用校验和卸载时)运行、我能够看到 iperf3日志输出、其中显示了禁用校验和卸载时看到的间隔、传输、比特率等。 由于我无法重现您看到的相同问题、我使用的 AM62x TI EVM 和 TQ AM62x SOM 进行测试时显然存在一些不同的行为。

    为了澄清一下、您没有对 am65-cpsw-nuss.c 驱动程序进行任何更改?

    第二步我注意到、在目标上有一个 VLAN 标头。 我不确定这是来自我的网络设置还是来自目标本身。

    请问您在哪里观察到目标上的 VLAN 标头? 这是在 Wireshark 中显示的吗?

    -道林

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

    您好、Daolin、

    为了澄清这一点、您没有对 am65-cpsw-nuss.c 驱动程序进行任何更改?

    我修改了驱动程序、以便从特定物理池分配缓冲区描述符、但不会更改寄存器配置。

    请问您在哪里可以观察到目标上的 VLAN 标头? 这是否显示在您的 Wireshark 中?

    您可以在第一个 Wireshark 屏幕呼出(主机到目标)中看到它:  

    在 MAC 地址(... 2d)后面的左侧有一个 VLAN 标头81 00 00 00、该标头在右侧(发送方)不可见。

    此致

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

    尊敬的 MK:

    我最终能够观察到一些"部分校验和"帧。 我只使用了较旧版本的 Wireshark (我假设您使用的 Wireshark 版本是4.2或更高版本)。  但是、在我的设置中、主机为172.168.1.1、目标(AM62x SKEVM)为172.168.1.170、当目标器件发送到主机时、校验和正确、并且在主机端捕获 Wireshark 时、没有部分校验和。 出现的唯一部分校验和是查看主机到目标帧时、同样是在主机端捕获 Wireshark 时、这是基于 Wireshark 文档的预期结果。

    目标到主机、在主机端捕获 Wireshark:

    主机到目标、在主机端捕获 Wireshark:

    基于这些结果、我仍然无法观察到您的发现(目标主机导致部分校验和)。  

    禁用 TX 校验和卸载时观察到了正确的行为、因此禁用校验和卸载是否是您的用例的可行权变措施?  

    -道林

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

    您好、Daolin

    由于在禁用 TX 校验和卸载时观察到了正确的行为、因此对于您的用例、禁用校验和卸载是否是可能的权变措施?  [/报价]

    是的、这是我们目前使用的一种可能的权变措施。 但是、如果是硬件或驱动程序问题、最好确定问题的原因。

    我有另一个婴儿床基板可用,并将检查那里的行为。

    此致。

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

    尊敬的 MK:  

    但是、如果是硬件或驱动程序问题、最好确定问题的原因。

    由于我在上次答复中分享了我的发现、我无法观察到您发现的问题。 在我的设置中、TX 校验和卸载似乎有效、因为在检查主机上从目标接收到的数据包时、我没有看到部分校验和结果。 目前、我看不到任何表明这是驱动程序问题的具体迹象。

    我有另一个可用的 COTS 基板、并将检查那里的行为。

    如果不是驱动程序问题、则可能是硬件问题。 您还可以查看 SK-AM62x EVM 的原理图和布局文件、以查看您的电路板和 SKEVM 是否有任何差异。  https://www.ti.com/lit/zip/spar001

    如果您有后续问题/发现、请告诉我。

    -道林

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

    您好、Daolin、

    对于我们的系统配置、我们希望 RX 和 TX 具有单独的中断。 因此、我们将  driver/irqchip/irq-ti-sci-INTA.c 中的 MAX_EVENTS_PER_VINT 从64更改为1。  虽然一切似乎都正常工作、但 现在我发现、如果我将其改回64 iperf、此更改会导致 TX 校验和失败。 您是否知道此更改为何会产生影响? 我没有看到中断配置和 CPSW 硬件校验和功能之间存在连接。

    不工作的配置:

    TI-SCI_44043000.system-controller:stub) TI_SCI_MSG_SET_IRQ - I-src_id:28 I-src_index:0x1213 I-adev:28 I-vint:5 I-gevt:13 I-bit:0
    TI-SCI_44043000.system-controller:stub) TI_SCI_MSG_SET_IRQ - I-src_id:28 I-src_index:0x1613 I-adev:28 I-vint:6 I-gevt:14 I-bit:0

    工作配置:

    TI-SCI_44043000.system-controller:stub) TI_SCI_MSG_SET_IRQ - I-src_id:28 I-src_index:0x1213 I-adev:28 I-vint:5 I-gevt:13 I-bit:0
    TI-SCI_44043000.system-controller:stub) TI_SCI_MSG_SET_IRQ - I-src_id:28 I-src_index:0x1613 I-adev:28 I-vint:5 I-gevt:14 I-bit:1

    谢谢。此致。

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

    尊敬的 MK:  

    因此、我们将  driver/irqchip/irq-ti-sci-INTA.c 中的 MAX_EVENTS_PER_VINT 从64更改为1。  虽然一切似乎都正常工作、但 现在我发现、如果我将其改回64 iperf、此更改会导致 TX 校验和失败。 您是否知道此更改为何会产生影响? 我没有看到中断配置和 CPSW 硬件校验和功能之间存在连接。

    在对非 TI 特定的 Linux 驱动程序进行自定义修改时、我们更难解释这些修改的效果。 换句话说、我们无法提供特定的支持或给出具体的结论、说明更改中断配置会影响 CPSW 硬件校验和的原因。  

    话虽如此、我不完全了解将 MAX_EVENTS_PER_VINT 更改为1如何帮助分离 RX 和 TX 的中断? 在本例中、我假设您指的是以太网接口上的 RX 和 TX (例如 RGMII 接口上的 RX 和 TX)? 根据我的理解、CPSW 以太网接口只有1个 RX 队列和8个 TX 队列、这些队列可能与您引用的 RX 和 TX 中断相关?

    -道林

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

    您好、Daolin、

    IRQ 的更改只是一个副作用。 我分析了 TI SCI 资源分配、但我们的配置出现了问题。  我现在让它正常工作。

    感谢您的支持、您可以关闭 TT。

    此致。