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.

[参考译文] DP83826E:DP83826E:在嵌入式 Linux 中用于通过 LAN 唤醒的中断引脚

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

https://e2e.ti.com/support/interface-group/interface/f/interface-forum/1291642/dp83826e-dp83826e-interrupt-pin-for-wake-on-lan-in-embedded-linux

器件型号:DP83826E

我想在有 Wake on LAN (WoL)数据包到达时、将此芯片的中断引脚用作 Linux 中的系统唤醒源。

设备驱动程序(由 TI 开发)似乎能够配置 WoL 并处理中断、但我不知道如何利用此功能。 这是我当前的器件节点定义:

Fullscreen
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
&mdio0 {
#address-cells = <1>;
#size-cells = <0>;
dp83826: ethernet-phy@0 {
compatible = "ethernet-phy-ieee802.3-c22";
reg = <0x0>;
interrupt-parent = <&gpio0>;
interrupts = <RK_PD3 IRQ_TYPE_EDGE_FALLING>;
pinctrl-names = "default";
pinctrl-0 = <&eth_wake_intn &eth_phy_rstn>;
reset-assert-us = <1000>;
reset-deassert-us = <2000>;
reset-gpios = <&gpio0 RK_PD4 GPIO_ACTIVE_LOW>;
wakeup-source;
};
};
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

在这里、RK_PD3是我用来接收由 PHY 生成的中断的 GPIO。

问题在于驱动程序启用所有中断源、这样 MAC 就不需要轮询信息。 另一方面、这些中断源中的任何一个都将唤醒系统、不仅仅是魔术包、使得 WoL 配置无用。 因此、我想知道是否缺少某些设置或属性。

使用 PHY WoL 机制的正确配置是什么?

谢谢、此致、

哈维尔

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

    Javier、您好!

    因此我对这种情况的理解是、您要尝试在 DP83826上使用 WoL 函数、但在驱动程序代码实施后、任何其他启用的中断也会唤醒 PHY。 是这样吗? 是否只能通过位屏蔽[7:0]启用 WoL 中断、[1]除外?''

    此外、WoL 是否已通过寄存器0x4A0正确配置?

    此致、

    格罗姆

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

    您好 Gerome,感谢您的回复。


    在手动配置之前、我想知道系统处于挂起至 RAM 模式时驱动程序是否支持 PHY WoL。 因为如果它不支持这一点,任何测试都将让我经过一些额外的努力得出这一结论。 如果该功能确实受支持、我需要知道如何从器件树描述中激活它。

    如果我没有弄错、MAC 应该通过轮询来访问 PHY、以使 WoL 的中断线路保持空闲、但我没有找到任何示例或应用手册来完成该操作。

    正如我提到过的、器件驱动程序是由德州仪器开发的。

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

    Javier、您好!

    我将就此与团队进行核实。 请注意,本周是感恩节,回复将延迟。 请于11月30日前回复。

    此致、

    格罗姆

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

    好的、感谢您提供的信息。

    当用户想要知道局域网唤醒是否处于活动状态时、会在冻结模式下工作(MAC 电源处于启用状态)、ethtool 会确认局域网唤醒处于活动状态并对魔术包做出反应、 因此、问题出在仅启用 PHY (挂起至 RAM)的情况。

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

    感谢您的提问。

    此致、

    格罗姆

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

    Javier、您好!

    很抱歉耽误你的时间。 关于您的最后一个问题、最好是向正确的 SoC 供应商提出此问题。 我只能为 PHY 硬件和驱动程序提供建议;不一定是驱动程序运行所在的平台。 在驱动程序兼容性方面、似乎驱动程序确实具有 DP83822_SET/GET_WOL 下列出的 WoL 功能、并且这些器件之间的寄存器应相同。

    此致、

    格罗姆