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/AM3359:USB 远程唤醒

Guru**** 2577385 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/594605/linux-am3359-usb-remote-wakeup

器件型号:AM3359

工具/软件:Linux

尊敬的所有人:

尝试使用 USB 键盘远程唤醒 AM335x 处理器时出现问题。 首先让我解释一下设置。 我们有以下拓扑

AM335x USB1 <--> USB 集线器(USB2512B)*<--> USB PORT0 <--> USB 键盘 

 *请注意 、USB1_drvbus 已连接到 USB 集线器的复位。

对于 USB 远程唤醒、我在进入待机模式之前运行了以下命令。

启用回波>启用/sys/bus/platform/devices/47401b00.usb-phy/power/wakeup
回波>
启用/sys/bus/usb/devices/usb2/power/wakeup 回波>/sys/bus/usb/devices/2-1/power/wakeup 

进入待机模式并按键后、什么也没有发生。 我观察到当系统进入待机模式时、USB1_drvbus 变为低电平、因此它会复位集线器并断开端口0上的 VBUS、因此我将 USB1_drvbus 配置为 GPIO。 通过这种更改、进入待机模式后、集线器和 VBUS 在端口0上可用。 但现在的问题是它 在不按任何键的情况下恢复。 对正在发生的情况有什么想法?

# echo mem >/sys/power/state
[441.867362] PM:正在同步文件系统... 完成。
[441.900944]冻结用户空间进程... (已用0.001秒)。
[441.911242]冻结剩余可自由执行的任务... (已用0.001秒)。
[441.921784]暂停控制台(使用 NO_console_suspend 进行调试)
[441.948555] PM:设备挂起在18.079毫秒后完成
[441.950500] PM:设备延迟挂起在1.919毫秒后完成
[441.952822] PM:设备挂起在2.301毫秒后完成[ 441.952830]
非启动 CPU ...
[441.952838] PM:成功将所有电源域置于目标状态
[441.952838] PM:唤醒源 USB1_PHY
[441.979931] PM:器件在26.956ms 后完成 noirq 恢复
[441.981693] PM:器件在1.548ms
后完成早期恢复[441.982756]净0: 正在初始化 cpsw 版本1.12 (0)
[441.982766] net eth0:已初始化 cpsw ale 版本1.4
[441.982772] net eth0:ALE 表大小1024
[442.057419] SMSC LAN8710/LAN8720 4a101000。MDIO:02:连接的 PHY 驱动程序[SMSC LAN8710/LAN8720](M4576470]

(MDIO:IBU=441000:IBUS) PHY“4a101000.MDIO:01”在从机1上找不到,错误-19
[444.107287] cpsw 4a1000.ethernet eth0:链路打开- 100Mbps/全速-流控制 Rx/TX
[447.646615] PM:5665.396毫秒后器件恢复完成
[ 447.768192]重新启动任务... [447.786823] USB 2-1:USB 断开连接、器件编号15
[447.799181]完成。
[447.81361] USB 2-1.2:USB 断开连接、器件编号16
root@sl50:/home/tcl #[448.111295] USB 2-1:使用 musb-hdrc 的新高速 USB 器件编号17
[448.267170] USB 2-1:找到新的 USB 器件、idVendor=0424、idProduct=2514 [448.242]USB

产品编号=2420241:0]USB 2.0:USB 串行器件[448.0=241:4241:0=242024:241:241:r=241:r=241:r=24241:241:241:241:241:24241:241:241:0]USB 找到 USB 集线器
[448.316394]集线器2-1:1.0:检测到4个端口 

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

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

    谢谢您的回答、但我不确定我是否会得到您的回答、抱歉、我已经阅读过这篇文章。 根据"系统睡眠状态下支持的 USB 唤醒用例"、我要尝试使用案例编号7 DS1/待机时钟门控主机-是- PHY WKUP。 因此、当我按连接到端口的键盘上的键时、我希望系统会恢复、但这不会发生、系统会在不按任何键的情况下恢复。 我还想知道 AM335x 端口和键盘之间的集线器是否有问题。

    此致、
    安瑞科
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我认为是这样、但是我通知 USB 专家、他们可以提供更好的帮助。 他们将在这里直接做出响应。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Biser、

    我想我发现了混乱的原因、现在我了解了为什么您通过查看 TRM 来回答。 为了清楚我要做的是'echo standby >/sys/power/state '和从连接到集线器的 USB 键盘唤醒按键,我不想像在我的第一条消息的步骤中发布的那样执行挂起到 RAM。

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

    添加更多信息:

    与 BeagleBone Black 上的 TI 内核具有相同的行为、键盘连接到 USB 主机。

    uname -a

    Linux AM335x-EVM 4.4.3.32-gadde2ca9f8 #1挤占 Wed 12月14日18:52:13 EST 2016 armv7l GNU/Linux

    Echo STANDBY >/sys/mem/state

    [1237.653346] PM:正在同步文件系统... 完成。
    [1237.693446]冻结用户空间进程... (已过0.002秒)完成。
    [1237.694813]冻结剩余可自由运行的任务... (已用0.001秒)。
    [1237.694874]暂停控制台(使用 NO_console_suspend 进行调试)
    [1237.767728] PM:40.749毫秒后设备挂起
    [1237.772027] PM:4.253毫秒后设备挂起完成[1237.776681]
    PM:4.605毫秒后设备挂起
    完成[ 1237.776699] PM: 成功地将所有电源域置于目标状态
    [1237.796140] PM:19.248毫秒后器件的非请求恢复完成
    [1237.79999999999992] PM:3.494毫秒后器件的早期恢复完成
    [ 1237.801905] net eth0:初始化 cpsw 版本1.12 (0)
    [1237.801929] net eth0: 初始化的 cpsw ale 版本1.4
    [1237.801943] net eth0:ale 表大小1024
    [1237.805059] net eth0:找到 PHY:ID:0x7c0F1
    [1237.805177] libphy: PHY 4a101000.mdio:01未找到
    [1237.805197] net eth0:PHY "4a101000.177] md:
    在从站上未找到[1234.0001.PM:19] 616.829毫秒
    后设备恢复完成[1238.495298]正在重新启动任务...
    [1238.498990] USB 1-1:USB 断开连接、器件编号13
    [1238.539591]完成。
    [1239.006492] USB 1-1:新的低速 USB 器件编号14、使用 musb-hdrc
    [1239.174387]输入:SEM USB 键盘作为/devices/platform/ocp/47400000.usb/47401c00.usb/musb-hdrc.2.auto/usb1/1-1/1-1:1.0/0003:1A2C:0E24.000B/INPUT/INPUT 11
    [1239.281766] hid-generic 0003:1A2C:0E2c.0Sem 0000B:usb-musb-hdrc.2.auto-1/input0
    /devices/platform/ocp/47400000.usb/47401c00.usb/musb-hdrc.2.auto/usb1/1-1/1-1输入 USB 键盘:123000C:INSem 024000C:输入:
    usb-musb-hdrc.2.auto-1/input1
    上的 USB HID v1.10设备[SEM USB 键盘][1239.797265] cpsw 4a100000。以太网 eth0:链路向上- 100Mbps/全-流控 Rx/TX 

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

    这是一个已知问题。 我们还没有解决方案。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的刘斌:

    非常感谢您的回答、如果这是一个已知问题、我可以要求您提供更多信息吗? 这是软件问题还是涉及任何 SoC 勘误表? 您能否提供有关此方面的更多信息?

    您也可以修改 文档 以避免混乱。

    非常感谢、

     安瑞科

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

    该问题仅在内核 v4.4中存在、但远程唤醒在 v4.1中有效、因此我认为这纯粹是一个软件问题。
    我已更新您指向的 wiki 文档、请注意、此功能在内核 v4.4中已损坏。 感谢您的讲解。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    v4.9也会重现此问题、因此看起来最近的内核都不支持此问题。 对吗?
    我看到有 USB_Ctrl_mod 用于该目的、但似乎不起作用。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    这并不解释唤醒发生的原因、请参阅完整的线程
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Bin、

    我测试了最新的 ti-linux-4.1.y 分支、无法使其正常工作。 您能否为我提供此操作所适用的4.1内核的链接?

    基于最新4.1 SDK 发行说明的已知问题[1]似乎无法解决。

    非常感谢、

     安瑞科

    [1] http://processors.wiki.ti.com/index.php?title=Processor_SDK_Linux_Kernel_Release_Notes&oldid=216574

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

    安瑞科

    [引用 user="Enric Balletbo i Serra"]我测试了最新的 ti-linux-4.1.y 分支,无法使其正常工作。 您能否为我提供此操作所适用的4.1内核的链接?

    请查看发行标记"ti2015.03"、而不是 ti-linux-4.1,y 分支。 我验证了该功能在 ti2015.03上的工作原理。

    [引用 user="Enric Balletbo i Serra"]根据基于最新4.1 SDK 的发行说明[1]中的已知问题,似乎无法解决。

    还没有。