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**** 2001725 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