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/66AK2E05:ti-processor-sdk-linux-rt-k2e-evm-03.03.00.04下的 Linux eth 端口初始故障

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/642738/linux-66ak2e05-linux-eth-port-initial-fail-under-ti-processor-sdk-linux-rt-k2e-evm-03-03-00-04

器件型号:66AK2E05

工具/软件:Linux

您好,香榭丽舍


我们将使用以下软件版本:TI-processor-sdk-linux-rt-k2e-evm-03.03.00.04


硬件连接与所附图片(mac_PHY.png)相同、

 我们尝试在 Linux 下构建 eth 设备(sgmii3、sgmii4、sgmii6、sgmii7),但无法成功构建,故障日志如下所示:

root@k2e-EVM:~# ethtool eth3.
eth3的设置:
无法获取设备设置:无效参数
当前消息级别:0x00007fff (32767)
DRV 探头链路计时器 ifdown ifup Rx_err TX_err TX_QUEUED intr TX_DONE Rx_STATUS pktdata HW wol
检测到链接:否


root@k2e-EVM:~# ethtool eth4
ETH2的设置:
无法获取设备设置:无效参数
当前消息级别:0x00007fff (32767)
DRV 探头链路计时器 ifdown ifup Rx_err TX_err TX_QUEUED intr TX_DONE Rx_STATUS pktdata HW wol
检测到链接:否


root@k2e-EVM:~# ethtool eth6
eth6的设置:
无法获取设备设置:无效参数
当前消息级别:0x00007fff (32767)
DRV 探头链路计时器 ifdown ifup Rx_err TX_err TX_QUEUED intr TX_DONE Rx_STATUS pktdata HW wol
检测到链接:否


root@k2e-EVM:~# ethtool eth7
ETH7的设置:
无法获取设备设置:无效参数
当前消息级别:0x00007fff (32767)
DRV 探头链路计时器 ifdown ifup Rx_err TX_err TX_QUEUED intr TX_DONE Rx_STATUS pktdata HW wol
检测到链接:否
root@k2e-EVM:~#

顺便说一下、我们仅修改 ti-processor-sdk-linux-rt-k2e-evm-03.03.00.04中的 keystone-k2e-netcp.dtsi 和 keystone-k2e-evm.dts、diff 如所附文件 Inventec.diff 所示、

e2e.ti.com/.../Inventec.diff


您能帮助指导我们如何成功设置 eth3/eth4/eth6/eth7吗?


谢谢。

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

    我将对此进行研究。

    此致、
    Yordan
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您能否共享引导日志(dmesg)?

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

    尊敬的先生:

    日志如附件所示:

    e2e.ti.com/.../8228.DmesgLogs.txt

    谢谢

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

    此致、
    Yordan
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您遇到的问题来自以下错误:
    [19.476127] keystone-navigator-qmss soc:qmss@2a40000:池(Rx-pool-eth3)区域(12)中的描述数
    [19.485516] net eth3:无法创建 Rx 池
    [19.489868] net eth3:设置导航器资源失败
    [19.498731] keystone-navigator-qmss soc:qmss@2a40000:池(Rx-pool-eth2)区域(12)中的描述数
    [19.508476] net eth2:无法创建 Rx 池
    [19.512859] net eth2:设置导航器资源失败
    [19.519778] keystone-navigator-qmss soc:qmss@2a40000:池(Rx-pool-eth1)区域(12)中的描述数
    [19.529167] net eth1:无法创建 Rx 池
    [19.533518] net eth1:设置导航器资源失败
    [19.540356] keystone-navigator-qmss soc:qmss@2a40000:池(Rx-pool-eth0)区域(12)中的描述数
    [19.549744] net eth0:无法创建 Rx 池
    [19.554095] net eth0:设置导航器资源失败

    问题是 netcp-core.c 无法为相应的 ethX 创建描述符池。 此错误来自 drivers/net/ethernet/ti/netcp_core.c、netcp_setup_navigator_resources():
    /*创建 Rx/Tx 描述符池*/
    snprintf (name、sizeof (name)、"Rx-pool-%s"、ndev->name);
    netcp->Rx_pool = knav_pool_create (name、netcp->Rx_pool_size、
    netcp->rx_pool_region_id);
    if (is_ERR_OR_NULL (netcp->Rx_pool)){
    dev_err (netcp->ndev_dev、"无法创建 Rx 池\n");
    RET = PTR_ERR (netcp->Rx_POOL);
    转至失败;

    和 knav_pool_create()是在 drivers/soc/ti/knav_qmss_queue.c 中实现的函数:void *knav_pool_create()。

    创建池的参数取自 keystone-k2e-netcp.dtsi:
    描述符区域{
    #address-cells =<1>;
    大小单元格=<1>;
    范围;
    区域12{
    ID =<12>;
    region-spec =<11264 128>;
    link-index =<0x4000>;
    };
    };
    我看不到您的 diff 文件对上述 dtsi 片段的任何修改。 您应该增加 region-spec 参数。 例如、请尝试:
    描述符区域{
    #address-cells =<1>;
    大小单元格=<1>;
    范围;
    区域12{
    ID =<12>;
    -region-spec =<11264 128>;
    + region-spec =<16384 128>;/* num_desc desc_size *
    link-index =<0x4000>;
    };
    };

    如果16384不起作用、则使用较高的值。

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

    我们已经尝试了16384,系统需要更高的值,我们想要设置36864,它是否正常?

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

    此线程讨论了最大描述符数:
    e2e.ti.com/.../279306

    是的、您可以使用36864。

    此外、有关 QMSS 的培训可能有用:
    training.ti.com/keystone-i-training-multicore-navigator-queue-manager-subsystem-qmss

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

    Yordan、您好!

    我们已将 region-spec 修改为36864,但问题仍然存在,并且 append 为 log( dmesg )

    谢谢。

    e2e.ti.com/.../ForYordanLog.txt

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

    我将对此进行研究。

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

    Yordan、您好!

    很抱歉,我们有另一个相关的问题,即 我们在 netcp-interfaces 节点中发现: “TX-Completion-queue?号和“Rx-queue?号似乎会影响某项功能

    例如:

    (a)案件一:

    如果我们设置接口0的 Rx-queue = 528、 接口1的 Rx-queue = 529、接口2 的 Rx-queue = 530、 接口3的 Rx-queue = 531、 接口4的 Rx-queue = 532、 接口 5的 Rx-queue=533、 接口6的 Rx-queue=534、 接口7的 Rx-queue=535、 接口0的 TX-Complete-queue=536、 接口1 的 TX-Complete-queue=537、 和 interface-2 的 TX-Completion-queue=538、 interface-3的 TX-Completion-queue=539、 interface-4的 TX-Completion-queue=540、 interface-5的 TX-Completion-queue=541、 interface-6的 TX-Completion-queue=542、 而 interface-7的 TX-Completion-queue=543 ->在这种情况下,故障日志将始终为:

    [29.579967] keystone-navigator-qmss soc:qmss@2a40000:无法打开池(TX-pool-5-eth2)的队列、错误-22
    [29.589992] net eth2:无法创建 TX-POOL-5-ETH2 TX 池5
    [29.899695] net eth2:设置导航器资源失败
    [29.913636] keystone-navigator-qmss soc:qmss@2a40000:无法打开池(TX-pool-5-eth1)的队列、错误-22
    [29.923555] net eth1:无法创建 TX-POOL-5-ETH1 TX 池5.
    [30.199700] net eth1:设置导航器资源失败
    [30.211155] keystone-navigator-qmss soc:qmss@2a40000:无法打开池(TX-pool-5-eth0)队列、错误-22
    [30.221175] net eth0:无法创建 TX-POOL-5-ETH0 TX 池5
    [30.529693] net eth0:设置导航器资源失败
    [84.969700]随机:非阻塞池已初始化

    (b)案例二:

    如果我们设置接口0的 Rx-queue = 528、 接口1的 Rx-queue = 529、接口2 的 Rx-queue = 530、 接口3的 Rx-queue = 531、 接口4的 Rx-queue = 532、 接口 5的 Rx-queues=533、 接口6的 Rx-queues=534、 接口7的 Rx-queues=535、 接口0的 TX-Complete-queues=530、 接口1的 TX-Complete-queues=531、 和 interface-2的 TX-Completion-queue=532、 interface-3的 TX-Completion-queue=533、 interface-4的 TX-Completion-queue=534、 interface-5的 TX-Completion-queue=535和 interface-6的 TX-Completion-queue=536、 而 interface-7的 TX-Completion-queue=537 ->在这种情况下,故障日志将始终为:

    [19.476127] keystone-navigator-qmss soc:qmss@2a40000:池(Rx-pool-eth3)区域(12)中的描述数
    [19.485516] net eth3:无法创建 Rx 池
    [19.489868] net eth3:设置导航器资源失败
    [19.498731] keystone-navigator-qmss soc:qmss@2a40000:池(Rx-pool-eth2)区域(12)中的描述数
    [19.508476] net eth2:无法创建 Rx 池
    [19.512859] net eth2:设置导航器资源失败
    [19.519778] keystone-navigator-qmss soc:qmss@2a40000:池(Rx-pool-eth1)区域(12)中的描述数
    [19.529167] net eth1:无法创建 Rx 池
    [19.533518] net eth1:设置导航器资源失败
    [19.540356] keystone-navigator-qmss soc:qmss@2a40000:池(Rx-pool-eth0)区域(12)中的描述数
    [19.549744] net eth0:无法创建 Rx 池
    [19.554095] net eth0:设置导航器资源失败

    但在这种情况下、eth5可以正常工作、但其他 eth 丢失会失败

    我们没有任何想法,您能告诉我们如何设置 TX-Completion-queue 和 Rx-queue 吗?

    谢谢。

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

    在单独通信中、它表示 SGMII 0/1/2配置为 MAC_PHY 并正常工作。 奇怪的是、您的 PHY0端口(SGMII 5)是否正常工作? 基于 diff 文件、我认为即使其他 MAC_PHY 端口正在工作、它也不起作用、因为 SerDes1未为 SGMII 5启用。 在 K2e 上、有2个串行器/解串器、每个控制器4个通道。 即 SGMII 0-3的 SerDes0和 SGMII 4-7的 SerDes1。 请参阅 NetCP 用户指南。 启用 K2E 上的全部8个端口有7个步骤。 我看不到这些步骤得到了遵循。 您能否确定您的 diff 文件与《用户指南》中的文件匹配、并进行了相关更改以反映您的硬件差异?

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

    尊敬的先生:

    很抱歉、忘记为您附加"eth1/eth5工作版本 diff "、它现在已附加、

    虽然 eth1/eth5可以工作,但 eth3/eth4/eth6/eth7不能构造  

    您能帮我们再次评论吗?

    e2e.ti.com/.../0385.InventecEth1Eth5Work.diff

    谢谢。

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

    尊敬的先生:

    抱歉、我们附加了错误的 diff、请忽略"InventoryEth1Eth5Work.DIFF"

    最后一个完整的右侧 DIFF 和 dmesg 日志如下所示

    谢谢。

    e2e.ti.com/.../Inventec1208.diff

    e2e.ti.com/.../1208dmesglog.txt

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

    您好、Bryant、

    我刚刚按照用户指南中的确切步骤操作、并且能够初始化所有8个以太网端口。 我确实收到区域(12)中的描述符用完的警告、但在增加区域12描述符大小后、看不到消息。 我基于与您相同的 Liniux Proc SDK、3.3.0.4。 请按照用户指南中所述的确切步骤操作。 您可能希望通过将区域12中的描述符数量加倍来执行与 I 相同的操作。 qmss 器件树文档位于 SoC/ti/keystone-navigator-qmss.txt 中。  

    在该示例中、所有链路类型都是 MAC_PHY (1)、您可以根据您的硬件配置将相应端口更改为 MAC_MAC_ENDEforced (2)。 按照用户指南中的确切步骤操作后、您应该能够初始化以太网端口。  

    请参阅随附的引导日志。

    e2e.ti.com/.../k2e_2D00_8port.txt

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

    我只想补充一点、即使是因为描述符而发出警告、但在我之前的测试中、我仍然可以通过该端口执行 ping 操作。

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

    您的意思是只在 keystone-k2e-netcp.dtsi 中更改此行?
    - region-spec =<11264 128>;
    + region-spec =<22528 128>;

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

    尊敬的先生:

    请您与我们分享您的"八端口版本"所有相关 DTS 以供参考?

    我们需要"keystone-k2e-evm.dts"和"keystone-k2e-netcp.dtsi"以及"keystone-qostree.dtsi"和"keystone-uio.dtsi"和"keystone-k2e-clocks.dtsi" 和"keyston.dtsi" 和"keystone-k2e.dtsi"  

    谢谢。   

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

    您好、Bryant、

    以下内容与我几分钟前发给迪帕的内容相同。 文件已附加。

    "I only modified keystone-k2e-evm.dts and keystone-k2e-netcp.dtsi in ProcSDK 3.3.0.4 (与客户相同的版本)。 DTS 文件、我的控制台引导日志和我用于引导的 DTB 文件都已附加。 我仅将 RTM BOC 连接到 K2E EVM。 我将端口0/1/4/7配置为 MAC_PHY (1)、将2/3/5/6配置为 MAC_MAC (2)。 我在日志中看到端口5的链接。 我认为2/3不是因为 AMC BOC 未连接到 EVM。 我不知道为什么端口6不出现,如果它与分配资源的失败有关,但端口7似乎没有受到影响,因为我可以稍后 ping 通它。

    请注意,如用户指南中所示,RTM BOC 上的 SGMII 端口反向。 如果我配置 eth4,它仍然适用于我,就像端口7一样,但由于 eth7是一条打印消息,显示“设置导航器资源失败”,因此我也可以在我的设置中使用它。

    您可能遇到了 MAC_MAC_ENDED 问题,但我无法同时提出两端,但在我的日志中,如果仅出现单端(端口5),则链接会出现。

    随附了我的更改、包括不同格式的更改:

    我对文件夹中的 diff 格式文件 k2e_8port.diff 所做的更改

    ~/work/ti-processor-sdk-linux-k2e-evm-03.03.00.04/board-support/linux-4.4.41 +gitAUTOINC+f9f6f0db2d-gf9f6f0db2d$ git status

    本地分支处理器上的示例

    未分阶段提交的更改:

     (使用"git add " 更新将提交的内容)

     (使用"git checkout -- " 放弃工作目录中的更改)

            已修改: arch/arm/boot/dts/keystone-k2e-evm.dts

            已修改: arch/arm/boot/dts/keystone-k2e-netcp.dtsi

    未添加任何更改以提交(使用"git add"和/或"git commit -a)

    ~/work/ti-processor-sdk-linux-k2e-evm-03.03.00.04/board-support/linux-4.4.41 +gitAUTOINC+f9f6f0db2d-gf9f6f0db2d$ git diff > k2e_8port.diff

    e2e.ti.com/.../k2e_5F00_8port.zip

    雷克斯