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.
我想在有 Wake on LAN (WoL)数据包到达时、将此芯片的中断引脚用作 Linux 中的系统唤醒源。
设备驱动程序(由 TI 开发)似乎能够配置 WoL 并处理中断、但我不知道如何利用此功能。 这是我当前的器件节点定义:
&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 = <ð_wake_intn ð_phy_rstn>; reset-assert-us = <1000>; reset-deassert-us = <2000>; reset-gpios = <&gpio0 RK_PD4 GPIO_ACTIVE_LOW>; wakeup-source; }; };
在这里、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 功能、并且这些器件之间的寄存器应相同。
此致、
格罗姆