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.

[参考译文] PROCESSOR-SDK-AM437X:AM437X 速度配置不会从100Mbps 更改为任何其他模式

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1498060/processor-sdk-am437x-am437x-speed-configuration-is-not-changing-from-100mbps-to-any-other-mode

器件型号:PROCESSOR-SDK-AM437X

工具/软件:

我正在设计  

PHY:DP83822

Linux SDK 版本:08.06.01.03

处理器:AM437X

速度时、它会为我的 eth1设置点

当速度从100Mbps 更改为10Mbps 时、但我的速度未更改、并且我的器件无法更改速度或在将速度从100Mbps 更改为10Mbps 时检测到 Phy。  

100Mbps 全速-正常工作

100 Mbps 半速-无法正常工作

10 Mbps 全速-无法正常工作

10 Mbps 半速-无法正常工作

如果我为 eth0提供 ethtool 命令、则表明我的 phy 仅支持100Mbps 满速率、但如果我尝试更改速度、它可以正常工作、因此我不知道内核驱动程序有什么问题。

如果有人对此有任何想法、请告诉我。

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

    您好、

    为了更好地路由支持、正在使用哪些以太网端口、CPSW 或 PRU eth 端口?  

    此致、

    Schuyler

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

    您好、

    正在使用 PRU eth 端口。

    此致、

    Bhavya

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

    只需添加与上述问题相关的更多数据即可

    请检查下表中针对不同链路速度配置收到的值

    两个端口都连接到2台不同的笔记本电脑

    降低了噪声

    功率

    phytool 读取 eth0/0x00/0x0
    命令值

    phytool 读取 eth0/0x0/0x1
    命令值

    降低了噪声

    功率

    phytool 读取 eth1/0x0/0x0
    命令值

    phytool 读取 eth1/0x00/0x1
    命令值

    eth0

    eth1

    10Mbps 半速率

    开来

    0x3100

    0x786d

    10Mbps 半速率

    失败

    0x3100

    0x786d

    10Mbps (全速)

    开来

    0x3100

    0x786d

    10Mbps (全速)

    失败

    0x3100

    0x786d

    100Mbps 半速率

    开来

    0x3100

    0x786d

    100Mbps 半速率

    失败

    0x3100

    0x786d

    100Mbps 全速

    开来

    0x3100

    0x786d

    100Mbps 全速

    开来

    0x3100

    0x786d

    AutoNego

    开来

    0x3100

    0x786d

    AutoNego

    开来

    0x3100

    0x786d

    由于 phytool 中的值也没有更新、因此可能存在内核配置问题、您也可以对此进行检查。

    除此之外、如果我提供 ethtool (接口名称)命令、则器件会提供以下响应。


    ethtool eth0 root@AM437X-EVM:~#
    eth0设置:
    支持的端口:[TP MII]
    支持的链路模式:100BaseT/Full

    这是不正确的、因为应改为显示10baseT/half 10baseT/Full 100BaseT/half 100BaseT/Full。

    有关更多信息、您可以咨询 TI 团队、我们已经向其共享了大量数据。

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

    同样、我的一位同事还创建了一个论坛、因为您已经回复、所以为了供您参考、我将与您分享同一个链接

    https://e2e.ti.com/support/interface-group/interface/f/interface-forum/1454619/dp83822h-soc 和 phy-not-pingsuccessfully

    您也可以提到这一点。

    希望您能迅速做出积极的回应。

    此致、

    Bhavya  

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

    您好 Bhavya、

    正如 Schuyler 3个月前在上一个主题中提到的、我们仅在 Linux 内核5.10及更早版本上支持 PRU 以太网的100M 链路速度:
    https://e2e.ti.com/support/interface-group/interface/f/interface-forum/1454619/dp83822h-soc and -phy-not-ping successfully/5605303#5605303

    这是 Linux PRU 以太网代码的限制、而不是 PHY 本身的限制。

    ethtool 特意将100M 列为唯一支持的链路速度。 早期版本的 Linux 驱动程序中存在一个错误、其中软件确实会通告10M 链路速度、但如果系统实际上协商为10M、则软件停止工作。 这就是我们删除驱动程序中不支持的链接速度的原因:

    linux-5.10.100+gitAUTOINC+7a7a3af903-g7a7a3af903/drivers/net/ethernet/prueth_core.c
    
            /* remove unsupported modes */
            phy_remove_link_mode(emac->phydev, ETHTOOL_LINK_MODE_10baseT_Half_BIT);
            phy_remove_link_mode(emac->phydev, ETHTOOL_LINK_MODE_10baseT_Full_BIT);
    
            if (of_property_read_bool(eth_node, "ti,no-half-duplex")) {
                    phy_remove_link_mode(emac->phydev,
                                         ETHTOOL_LINK_MODE_100baseT_Half_BIT);
            }
    
            phy_remove_link_mode(emac->phydev, ETHTOOL_LINK_MODE_Pause_BIT);
            phy_remove_link_mode(emac->phydev, ETHTOOL_LINK_MODE_Asym_Pause_BIT);

    此致、

    Nick

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

    您好、Nick、

    感谢您的答复。 我发布查询的原因是、因为您可以在上面的日志中看到、我的 PRU eth0固件支持10baseT/half 和 full、支持100 baseT/half 和 full、但也不适用于内核 、因此我发布了该查询。

    为了添加到我的上述查询、一个 TI 成员已经告诉我对以下器件进行注释

    //phy_remove_link_mode (emac->phydev、ethtool_link_mode_10baseT_half_bit);
    //phy_remove_link_mode (emac->phydev、ethtool_link_mode_10baseT_full_bit);

    if (of_property_read_bool (eth_node、"ti、no-half-duplex")){
    //phy_remove_link_mode (emac->phydev、
    //ethtool_link_mode_100BaseT_half_bit);
    }

    但我也无法使用 ethtool 命令得到10 BaseT/ Half 和 Full 以及100 BaseT/Half 的值。 因此我发布了我的查询。

    然而、主要问题是:

    在桥接模式下、10 BaseT/Half 和 Full 以及100 BaseT/Half 不能在 eth1下工作、而在 eth0下工作。

    根据我的说法、如果 PRU 正在处理、内核应该能够提供有关10和100 BaseT/ Half 和 Full 的信息。

    除此之外、如果您有任何疑问、请随时提问。

    此致、

    Bhavya

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

    您好 Bhavya、

    好的、我知道您使用的是团队中更新的 PRU 以太网固件。 我看到您和我们的团队正在进行不同的测试。 因此、首先、我想确认在进行完全相同的测试时得到的结果是相同的。

    确保我了解您的测试结果  

    如果有任何错误、请纠正我。

    根据您的工作表、这听起来不错

    1)您正在使用两个 PRU 以太网端口(即、eth0不是 CPSW、eth1是 PRU 以太网)

    2) eth0在链路速度下的行为如预期。 您可以成功协商10M 半双工(HD)、10M 全双工(FD)和100M HD 和100M FD

    3) eth0和 eth1之间的行为不依赖于链路伙伴。 即、如果您切换 连接到哪个端口的笔记本电脑、您仍然会在 eth0和 eth1上看到相同的行为。 请验证此参数是否尚未经过测试。

    请运行一些更简单的测试、以便验证我们是否观察到与您相同的行为

    首先、让我们保持简单。 请首先简单地将 prueth 固件启动为双以太网端点。 您现在是否可以看到10M 工作?

    在我们使用基本双以太网端点用例验证行为后、我们可以开始考虑更复杂的设置。

    此致、

    Nick

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

    另外、请提供您执行测试所遵循的确切步骤(包括如何强制执行链路速度和双工)。

    此致、

    Nick

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

    您好、Nick、

    要测试 PRU 固件、请参阅下图中的测试设置。

    执行测试的步骤。

    1. 将两个适配器保持在自动协商模式。
    2. 现在、从每台笔记本电脑在终端中提供以下命令(ping 192.168.0.50 -t)
    3. 现在将适配器的速度和双工模式从自动协商更改为100Mbps 半双工。
    4. 检查 ping
    5. 同样、对于不同的速度模式、再次重复从3到4的步骤、在后台、两台笔记本电脑的 ping 都是这样、您可以检查 ping 是否正常工作。

    注:目前我只保留了两个适配器的速度并进行了检查。 到目前为止、我还没有同时检查两个端口的不同速度。

    如何设置桥接模式?

    ifconfig br0混杂

    有关网桥的更多详细信息、请咨询 TI 印度团队我已向他们分享了我们用于创建网桥的脚本。

    目前、两个端口都将在网桥模式下处于转发状态。

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

    Nick 我做了简单的测试,我什么都不做只是启动我的内核,而不是应用程序. 因此、只有内核启动、没有桥接器、需要注意简单的以太网配置。

    根据此信息、请在下表中查找结果

    两个端口都连接到2台不同的笔记本电脑

    降低了噪声

    功率

    phytool 读取 eth0/0x00/0x0
    命令值

    phytool 读取 eth0/0x0/0x1
    命令值

    降低了噪声

    功率

    phytool 读取 eth1/0x0/0x0
    命令值

    phytool 读取 eth1/0x00/0x1
    命令值

    eth0

    eth1

    10Mbps 半速率

    开来

    0x3100

    0x786d

    10Mbps 半速率

    失败

    0x3100

    0x786d

    10Mbps (全速)

    开来

    0x3100

    0x786d

    10Mbps (全速)

    失败

    0x3100

    0x786d

    100Mbps 半速率

    开来

    0x3100

    0x786d

    100Mbps 半速率

    失败

    0x3100

    0x786d

    100Mbps 全速

    开来

    0x3100

    0x786d

    100Mbps 全速

    开来

    0x3100

    0x786d

    AutoNego

    开来

    0x3100

    0x786d

    AutoNego

    开来

    0x3100

    0x786d

     

     我执行的测试步骤

    1. 将两个以太网端口连接到两台不同的笔记本电脑。  
    2. 将 IP 分配给笔记本电脑1为169.254.217.100
    3. 将 IP 分配给笔记本电脑2为192.168.0.100
    4. 对于 DUT、通过以下命令将两个端口保持在自动协商模式 :phytool 写入 eth0/0x0/0x1F 0x8000和 phytool 写入 eth1/0x0/0x1F 0x8000
    5. 现在将 IP 分配给 DUT 的端口1为169.254.217.162、将 DUT 的端口2分配为192.168.0.55
    6. 检查两台笔记本电脑中的 ping。
    7. 现在、在两台笔记本电脑中将速度从自动协商更改为100Mbps 全速。
    8. 检查两个设备的 ping
    9. 现在再次更改速度、并针对不同的速度重复步骤5至6。
    10. 我甚至互换了笔记本电脑、但结果还是一样
    11. 在中间只是为了检查我甚至试图给 autonego 端口2和改变速度比同样的结果。

    如果我将端口1 IP 保留为192.168.0.50、端口2 IP 保留为192.168.0.55、还需要注意的一点是、在这段时间内、我的笔记本电脑 IO 为192.168.0.200、端口1 IP 没有 ping。 我已经尝试了这个东西在自动 nego 模式,只有1次。

    但根据我的说法,我们没有什么不同的天气,我们保持桥梁或不。  

    与端口2一样、其他速度都不起作用 、我甚至给 phytool write eth1/0x00/0x1F 0x8000、并再次设置端口2的 IP、但结果仍然相同。

    设置如第2条注释所示、没有区别。

    除此之外,如果你想从我这边得到任何其他的意见,请告诉我。

    此致、

    Bhavya

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

    您好 Bhavya、

    感谢您的详细信息、感谢您的参与。

    1)在此测试中,您是否在任何点插入/拔出以太网电缆?

    2)听起来您只是从笔记本电脑设置链接速度,而不是从 AM437x 设置链接速度。 是这样吗?

    3)如果两个 PRU 以太网端口位于同一子网上(例如、192.168.0.XXX)、我认为测试不能正常运行。 最好将每个 PRU 以太网端口保留在不同的子网中。

    此致、

    Nick

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

    您好、Nick、

    请查找您疑问的回复

    1)在此测试中,您是否在任何点插入/拔出以太网电缆?

    2)听起来您只是从笔记本电脑设置链接速度,而不是从 AM437x 设置链接速度。 是这样吗?

    是的。 DUT 仅处于自动协商模式。

    3)如果两个 PRU 以太网端口位于同一子网上(例如、192.168.0.XXX)、我认为测试不能正常运行。 最好将每个 PRU 以太网端口保留在不同的子网中

    好的

    此致、

    Bhavya  

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

    您好 Bhavya、

    根据离线讨论、您似乎正在更改此响应中所述的 PRU 以太网内核驱动程序、但您没有看到这些更改在您的电路板上应用。

    1)在更改驱动程序后、您是否确保重新编译 Linux 内核和内核模块?

    2)您是否将新的 Linux 内核和新的内核模块都复制到电路板的文件系统中?

    3)你能确认你是真的引导更新的 Linux 内核和内核模块吗?

    对于3)、有多种方法可以验证您是否实际运行更新的驱动程序代码。 一种选择是在 prueth_core.c prueth_probe 函数中添加 print 语句。 如下所示:
    dev_err (dev、"这是更新的代码。\n");

    有关重新编译内核映像和内核模块以及将内核映像和模块复制到文件系统的 TI 指南位于 Linux Foundational_Components_Kernel_Users_Guide 文档中、网址为 https://software-dl.ti.com/processor-sdk-linux/esd/AM335X/08_02_00_24/exports/docs/linux/sdk.html 

    此致、

    Nick

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

    您好、Nick、

    我将检查此器件并告知您。  请注意、SE 将于明天假期关闭。

    此致、

    Bhavya

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

    您好 Bhavya、

    听起来不错、我期待您下周的更新。

    此致、

    Nick

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

    您好、Nick、

    请查找您疑问的回复

    1)在更改驱动程序后、您是否确保重新编译 Linux 内核和内核模块?

    是的。 请删除 zImage 和.dtb 文件。

    2)您是否将新的 Linux 内核和新的内核模块都复制到电路板的文件系统中?

    是的。

    3)你能确认你是真的引导更新的 Linux 内核和内核模块吗?

    对于3)、有多种方法可以验证您是否实际运行更新的驱动程序代码。 一种选择是在 prueth_core.c prueth_probe 函数中添加 print 语句。 如下所示:
    dev_err (dev、"这是更新的代码。\n");

    =>对于本部分、我在编译时首先遇到问题、因为  dev_err (dev、"这是更新的代码。\n");是不正确的 、需要使用 dev_err (prueth->dev、"这是更新的代码。\n");之后、我使用以下命令编译(直到现在我们正在编译内核)

    光盘
    export arch=arm cross_compile = /bin/arm-linux-gnueabihf-
    导出路径== /bin:$path
    进行远端清洁
    制作 tisdk_AM437X-EVM-RT_defconfig
    设置为 J12
    设置 menuconfig
    设置为 J12

    我也没有在控制台中得到打印值,所以我尝试了 你建议的编译方法。

    我使用了以下命令  

    光盘
    export arch=arm cross_compile = /bin/arm-linux-gnueabihf-
    导出路径== /bin:$path
    make arch=arm cross_compile = /bin/arm-linux-gnueabihf- distclean
    make arch=arm cross_compile = /bin/arm-linux-gnueabihf- tisdk_AM437X-EVM-RT_defconfig
    make arch=arm cross_compile = /bin/arm-linux-gnueabihf- menuconfig
    make arch=arm cross_compile = /bin/arm-linux-gnueabihf- zImage
    make arch=arm cross_compile = /bin/arm-linux-gnueabihf- AM437X-eth.dtb

    但在使用 zImage 命令时、我遇到了如下问题

    root@lin06200233d:/home/wtin06200233d/ISIS/linux-rt-5.10_new.100 +gitAUTOINC+204ec708dc-g204ec708dc_2may24/linux-RT-5.10_new.100+gitAUTOINC+204ec708dc-g204ec708dc# make arch=arm cross_compile=/home/wtin06200233d/Bhavya/LinuxGcc/gcc-arm-8.3-2019.03-x86_64-arm-linux-gnueabihf/bin/arm-linux-gnueabihf- zImage
    SYNC include/config/auto.conf
    make:***没有生成目标'zImage"的规则。 STOP

    但是、如果我尝试构建.dtb 映像、则无法正确构建它。

    您能否告诉我编译发生了什么问题、因为我想看到一些 TI 线程、但在那里也没有收到任何线索。

    此致、

    Bhavya

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

    您好 Bhavya、

    我不确定资本化是否重要。 如果您尝试使用 zImage 而不是 zImage 制作、会发生什么情况?

    此致、

    Nick

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

    您好、Nick、

    我尝试使用 zImage、我的 zImage 正在编译、但之后我也会获得相同的结果(即我无法看到 printf 以及支持的模式)。 为了检查编译,我特意保留了错误,在编译期间,它被弹出,甚至我检查了.o 文件生成时间的 prueth_core.o 和它也是按预期来,所以我无法理解发生了什么。

    此致、

    Bhavya

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

    您好、Nick、

    是否有任何更新?

    此致、

    Bhavya

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

    您好 Bhavya、

    我购买了 AM335x ICEv2电路板。 我现在正在制作 SD 卡、明天将提供另一个更新。

    此致、

    Nick

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

    您好、Nick、

    我期待您今天的更新。

    此致、

    Bhavya

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

    您好、Nick、

    你找到了任何线索吗?

    此致、

    Bhavya

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

    您好 Bhavya、

    今天、我测试了将打印语句放入 Linux 驱动程序中、并验证了在 Linux 启动期间是否可以看到它们。

    $ git diff drivers/net/ethernet/ti/prueth_core.c
    warning: LF will be replaced by CRLF in drivers/net/ethernet/ti/prueth_core.c.
    The file will have its original line endings in your working directory
    diff --git a/drivers/net/ethernet/ti/prueth_core.c b/drivers/net/ethernet/ti/prueth_core.c
    index c4cb25422c..2614e5a697 100644
    --- a/drivers/net/ethernet/ti/prueth_core.c
    +++ b/drivers/net/ethernet/ti/prueth_core.c
    @@ -3058,6 +3060,9 @@ static int prueth_probe(struct platform_device *pdev)
            prueth->prueth_np = np;
            prueth->fw_offsets = &fw_offsets_v2_1;
    
    +       /* note that this has to go AFTER prueth->dev is defined */
    +       dev_err(prueth->dev,"TEST MESSAGE\n");
    +
            eth0_node = of_get_child_by_name(np, "ethernet-mii0");
            if (!of_device_is_available(eth0_node)) {
                    of_node_put(eth0_node);
    

    用于构建内核、内核模块并将这两个文件复制到 SD 卡的命令:

    // first, rebuild the kernel & kernel modules
    make ARCH=arm CROSS_COMPILE=/home/<user>/sdks/ti-processor-sdk-linux-am335x-evm-08.02.00.24/linux-devkit/sysroots/x86_64-arago-linux/usr/bin/arm-none-linux-gnueabihf- distclean
    make ARCH=arm CROSS_COMPILE=/home/<user>/sdks/ti-processor-sdk-linux-am335x-evm-08.02.00.24/linux-devkit/sysroots/x86_64-arago-linux/usr/bin/arm-none-linux-gnueabihf- tisdk_am335x-evm_defconfig
    // I have a lot of threads in my CPU, so I use -j16 to use 16 threads
    make -j16 ARCH=arm CROSS_COMPILE=/home/<user>/sdks/ti-processor-sdk-linux-am335x-evm-08.02.00.24/linux-devkit/sysroots/x86_64-arago-linux/usr/bin/arm-none-linux-gnueabihf- zImage
    make -j16 ARCH=arm CROSS_COMPILE=/home/<user>/sdks/ti-processor-sdk-linux-am335x-evm-08.02.00.24/linux-devkit/sysroots/x86_64-arago-linux/usr/bin/arm-none-linux-gnueabihf- modules
    
    // now copy to the SD card
    sudo cp arch/arm/boot/zImage /media/<user>/root/boot/
    sudo make ARCH=arm INSTALL_MOD_PATH=/media/<user>/root modules_install

    终端输出。 请注意、打印语句是可见的、说明我正在加载新版本的 Linux 内核和内核模块。

    [   16.878376] remoteproc remoteproc1: 4a334000.pru is available
    [   16.995871] remoteproc remoteproc2: 4a338000.pru is available
    
    [   22.980806] prueth pruss-eth: TEST MESSAGE
    [   23.567905] prueth pruss-eth: TEST MESSAGE
    [   23.619381] prueth pruss-eth: could not get ptp tx irq. Skipping PTP support
    [   23.626492] prueth pruss-eth: could not get hsr ptp tx irq. Skipping PTP support
    [   23.920046] prueth pruss-eth: could not get ptp tx irq. Skipping PTP support
    [   23.927160] prueth pruss-eth: could not get hsr ptp tx irq. Skipping PTP support
    [   24.132291] prueth pruss-eth: TI PRU ethernet driver initialized: dual EMAC mode
    

    这是确保使用更新的 Linux 驱动程序代码实际加载更新后的内核模块的最简单方法之一。

    此致、

    Nick

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

    您好、Nick、

    非常感谢您的支持。 我检查了内核问题、现在已解决。 问题是我的内核中的 PRU 驱动程序是模块化的。 因此、我所做的更改生成了一个 KO 文件、该文件未包含在 zImage 中。 为了解决这个问题、我将 Ko 文件放在我的文件系统中。 现在、更新后的代码运行正常、我可以看到内核中的 printf 输出。

    除了上述更改外、您能否提供其他调试内核的建议? 这将帮助我使用这些参考资料进行将来的调试。 此外、是否可以将固件版本存储在内核和文件系统中、类似于在应用中的操作? 如果是、您能解释一下如何操作吗? 如果没有、您能建议替代方案吗?

    此致、

    Bhavya

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

    您好 Bhavya、

    运行环境

    您可以在此处找到一些调试视频:
    https://www.ti.com/video/series/debugging-embedded-linux-systems-training-series.html

    除此之外、基本的 Linux 开发和调试不在我们可以在 TI 论坛上支持的范围之内。 网上有很多很棒的培训资源、例如 Bootlin。

    固件版本  

    您能帮助我了解您在这里要实现的目标吗? 比如、您是否询问 Linux 驱动程序是否执行固件版本检查、以查看其是否使用的是专为该版本的 Linux 驱动程序而设计的 PRU 以太网固件?

    此致、

    Nick

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

    您好、Nick、

    感谢您的分享。

    对于固件版本、我的意思是我们正在构建 zImage/FIT Image、以便为其创建内核、我们是否能够提供任何版本?

    此致、

    Bhavya

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

    您好 Bhavya、

    我仍然不完全明白这个问题。

    如果您询问是否可以在/lib/firmware 下的文件系统中构建特定的 PRU 固件文件、那么这应该是使用 Yocto 或您用于构建文件系统的任何工具实现的。 但是、我不是 Yocto 专家、因此我无法提供具体的指导。

    如果您询问您提供的 PRU 固件文件是否可与任何版本的 Linux 内核搭配使用、答案是... 我不确定。 但我可以随时提出来。

    该 PRU 固件文件不会在 一些较旧版本的 Linux SDK (如 Linux SDK 6.3)上正常运行。 这是因为 Linux 内核驱动程序在 Linux SDK 6.3和 Linux SDK 8.2之间与 PRU 固件交互的方式发生了一些变化。 我不确定您提供的此固件是否与团队在即将推出的内核6.12版本中使用的固件相同、或者这是否是他们在 Linux 内核5.10上为您创建的自定义固件。 我可以检查是否需要。

    此致、

    Nick

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

    您好、Nick、

    我想澄清我之前关于使用该 uname -r 命令显示的内核版本的查询。 最初、我不确定如何修改此版本字符串。 但是、我发现了一种对我有效的方法、方法是 Makefile 在内核构建过程中编辑。

    具体而言、我修改了 EXTRAVERSION 最初为空的字段。 这种方法允许我维护内核的自定义版本控制方案、帮助我更有效地跟踪版本历史记录。

    再次感谢您的支持和指导。

    此致、

    Bhavya

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

    您好 Bhavya、

    啊、我明白了。 很高兴你能弄清楚它!

    我会将该线程标记为已解决、因为固件似乎按预期运行。 如果弹出另一个问题、请随时创建新主题。

    此致、

    Nick

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

    您好、Nick、

    确保您可以将其标记为已解决。 再次感谢您的支持。

    此致、

    Bhavya