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/processor-SDK-AM335X:睡眠模式问题

Guru**** 2559180 points
Other Parts Discussed in Thread: WL1837MOD

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/611789/linux-processor-sdk-am335x-issues-with-sleep-modes

器件型号:PROCESSOR-SDK-AM335X
Thread 中讨论的其他器件:WL1837MOD

工具/软件:Linux

我在 AM335x 上三种支持的睡眠模式中的两种模式遇到了一些问题。

 三种支持的睡眠模式、请参见:Cat /sys/power/state

是:

  • 冻结
  • 待机
  • 内存

(我认为它们分别对应于 ACPI 睡眠模式 S1-S3)

问题1:

当我尝试转换至"冻结"(回波冻结>/sys/power/state)时、系统似乎会转换至冻结状态、但会立即返回到完全唤醒状态。

问题2:

当我尝试转换到"mem"时、系统会暂停、并在中断时唤醒。  但是、我注意到它报告:"PM:无法将所有电源域转换为目标状态"

 

在"冻结"和"内存"情况下(问题#1和#2)、唤醒后报告以下情况:"-sh: echo:write error:operation not permitted (-sh:回显:写入错误:不允许操作)"

 

相比之下、当转换为"待机"时、似乎没有报告任何问题

  • 它报告"PM:成功地将所有电源域置于目标状态"
  • 它不报告错误消息:"-sh: echo:write error: operation not permitted (-sh: echo:write error:不允许操作)"

AM335x 硬件和软件的最新版本中是否存在这些睡眠模式问题?  我一直在使用 SDK 版本03.02.00.05 (2016年12月14日的库存内核)进行测试。

我已经在物理上插入和移除 WL1837MOD 的情况下进行了测试、但这似乎没有什么不同。

是否有任何可选的进程、驱动程序或硬件可被禁用/移除以防止这些冻结和挂起到内存(内存)问题?  自12月以来是否进行了软件升级来解决这些问题?

提前感谢!

 -Marc

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    软件团队已收到通知。 他们将在这里作出回应。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Marc:

    您使用的平台是什么?  您是否对内核进行过任何更改?  有时、简单的更改会影响暂停/恢复路径。

    在 BeagleBone Black 上进行测试时、我看到"Standandby"和"Mem"模式可以与您使用的新版本 SDK 正常配合使用。  我不确定我们的"冻结"支持。  基于我的理解、我认为除英特尔和一台 Tegra 设备之外、内核中对"冻结"的支持不多。

    _________ _________ _ _
    |_|_|_______|_|_|_|
    || |_|.'|。 |. ||_|_|. |||-_|||
    ||||、||||||||||||||||||
    |__| |__|
    
    Arago Project http://arago-project.org AM335x-EVM ttyS0
    
    Arago 2016.10 AM335x-EVM ttyS0
    
    AM335x-EVM 登录名:
    
    root@AM335x-EVM:~
    
    @~ uname -A Linux AM335x-EVM 4.4.4.3.32-gadde2ca9f8 #1 preempt Wed Dec 14:52:13 >EST arm335x-EVM 4.32.76m
    Linux v/veVM 4.13m veVM 同步文件:/sys/power/state v367m r eVM:veVM 完成。
    [674.118243]冻结用户空间进程... (已过0.002秒)完成。
    [674.119701]冻结剩余可自由执行的任务... (已用0.001秒)。
    [674.119764]暂停控制台(使用 NO_console_suspend 进行调试)
    [674.2755] PM:在120.551毫秒后完成器件暂停
    [674.27686868686868] PM:在4.064毫秒后完成器件延迟暂停
    [674.281064] PM:在4.153毫秒后完成器件暂停
    [674.281082] PM: 成功将所有电源域置于目标状态
    [674.300471] PM:19.190毫秒后器件的非线性恢复完成
    [674.304059] PM:3.307毫秒后器件的早期恢复完成
    [ 674.305795]净 Eth0:初始化 cpsw 版本1.12 (0)
    [674.305819]净 Eth0: 初始化的 cpsw ale 版本1.4
    [674.305833] net eth0:ale 表大小1024
    [674.308934] net eth0:找到 PHY:ID:0x7c0F1
    [674.309049] libphy:PHY 4a101000.mdio:01未找到
    [674.309070] net eth0:PHY "4a101000.49]从站:
    在674.25[MDIO 上找不到4.19] 237.712毫秒
    [674.620207]重新启动任务后设备恢复完成... 完成。
    root@AM335x-EVM:~# echo standby >/sys/power/state
    [684.192836] PM:正在同步文件系统... 完成。
    [684.221477]冻结用户空间进程... (已过0.002秒)完成。
    [684.223122]冻结剩余可自由执行的任务... (已用0.001秒)。
    [684.223180]暂停控制台(使用 NO_console_suspend 进行调试)
    [684.372641] PM:117.242ms 后设备挂起
    [684.376766] PM:4.080ms 后设备挂起完成[684.380977]
    PM:4.164ms 后设备挂起完成[ 684.376766]
    PM: 成功将所有电源域置于目标状态
    [684.400226] PM:19.03ms 后器件的非请求恢复完成
    [684.403823] PM:3.312ms
    后器件的早期恢复完成[ 684.405610]净 Eth0:初始化 cpsw 版本1.12 (0)
    [684.405633]净 Eth0: 初始化的 cpsw ale 版本1.4
    [684.405648] net eth0:ale 表大小1024
    [684.408757] net eth0:找到 PHY:ID:0x7c0F1
    [684.408873] libphy:PHY 4a101000.mdio:01找不到
    [684.408894] net eth0:PHY "4a101000.73]从站:
    684.19] mDIO:在从站上找不到 237.847毫秒
    后设备恢复完成[684.720120]重新启动任务... 完成。
    根目录@AM335x-EVM:~编号 

    此致、
    Mike

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

    我使用的是 AM335x EVM。  我正在使用 SDK 附带的预构建映像内核。

    以下是我 的屏幕输出:  (我用红色字体突出显示了相关行)


    _________ _________ _ _ |_|_|_______|_|_|_| || |_|.'|。 |. ||_|_|. |||-_||| ||||、|||||||||||||||||| |__| |__| Arago Project http://arago-project.org AM335x-EVM ttyS0 Arago 2016.10 AM335x-EVM ttyS0 AM335x-EVM 登录名:root @AM335x-EVM:~ @~# uname -A Linux AM335x-EVM 4.4.4.3.32-gadde2ca9f8 #1 preempt Wed Dec 14:52:13:/sys/power/state 164 > Linux AM335x-EVM 4.3.32 - gadest ve2mest ve2premotesn ve2r e2r e2r eM r eM r eM r r r r r 3mesn veM r r eM r r r r r r 完成。 [345.964172]冻结用户空间进程... (已过0.008秒)完成。 [345.975263]冻结剩余可自由执行的任务... (已用0.001秒)。 [345.984633]暂停控制台(使用 NO_CONSOLE_SUSPEND 进行调试) [346.117653] PM:在124.809毫秒后完成器件暂停 [346.122387] PM:在4.686毫秒后完成器件延迟暂停 [346.130228] OMAP-hwmod:Elm:_WAIT_TARGET_DISABLE 失败 [346.111510] PM:在完成器件暂停 后完成[346.136.1115]下午[346.136.136.1028] 无法将所有电源域转换为目标状态 [346.152379] PM:在21.064毫秒后器件的非请求恢复完成 [346.156784] PM:器件的早期恢复在4.079毫秒后完成 [346.159072] net eth0:初始化 cpsw 版本1.12 (0) [346.159096] net eth0: 初始化的 cpsw ale 版本1.4 [346.159112] net eth0:ale 表大小1024 [346.234186] net eth0:找到 PHY:ID:0x4dd074 [ 346.23432323] libphy:PHY 4a101000.mdio:01未找到 [346.234347] net eth0:PHY "4dd074[346.231002] mr: 在 MDIO 上找不到从站4a101000.02391] 266.786ms [346.505779]重新启动任务后设备恢复完成... 完成。 -sh:echo:write error:operation not permitted root@AM335x-EVM:~# echo standby >/sys/power/state [397.562562] PM:正在同步文件系统... 完成。 [397.734273]冻结用户空间进程... (已过0.008秒)完成。 [397.746429]冻结剩余可自由执行的任务... (已用0.001秒)。 [397.756218]暂停控制台(使用 NO_CONSOLET_SUSPEND 进行调试) [397.895361] PM:在130.092毫秒后完成设备暂停 [397.900050] PM:在4.638毫秒后完成设备延迟暂停 [397.907917] OMAP-HWmod:Elm:_WAIT_TARGET_DISABLE 在完成 [397.90789] PM:在完成设备暂停后完成 [ 397.90789m] 成功将所有电源域置于目标状态 [397.928731] PM:19.734毫秒后器件的非请求恢复完成 [397.932811] PM:3.769毫秒后器件的早期恢复完成 [ 397.935205]净 Eth0:初始化 cpsw 版本1.12 (0) [ 397.935230]净 Eth0: 初始化的 cpsw ale 版本1.4[397.935246] 网络 eth0:ale 表大小1024[398.014082] 网络 eth0:找到 PHY:ID:0x4dd074[398.014220] libphy: PHY 4a101000.mdio:01找不到 [398.014243]网络 eth0:PHY "4a1074201002]在 MDIO 上找不到 PHY [398.19:24] 270.653毫秒 后设备恢复完成[398.285392]重新启动任务... 完成。 root@AM335x-EVM:~# echo freeze >/sys/power/state [455.016156] PM:正在同步文件系统... 完成。 [455.201206]冻结用户空间进程... (已过0.009秒)完成。 [455.213246]冻结剩余可自由执行的任务... (已用0.001秒)。 [455.222909]正在重新启动任务... 完成。 -sh:echo:write error:invalid arge.



    谢谢、

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

    马克

    感谢您提供完整的日志-我看到问题是什么:

    [346.130228] OMAP-hwmod:Elm:_wait_target_disable 失败 

    此消息告诉我们 ELM (NAND 的错误校正块)未进入睡眠状态。  这是我们最近在迁移到 systemd 后发现的东西。  systemd 将尝试在系统上安装所有分区-设备树介绍 NAND 分区,以便进行安装。  问题是一些 NAND 存储器在生产过程中未正确编程、并且 NAND 中存在错误、因此 ELM 不满意。

    解决方案是擦除 NAND。  这可以从 Linux 或 U-Boot 中完成。

    我个人使用了 U-Boot 方法、并将与您分享以下详细信息:

    1) 1)在 U-Boot 期间按空格键停止引导过程

    U-Boot 2016.05-g4db46a6bBD (2017年3月29日- 17:44:45 -0400)
    
    CPU:AM335X-GP 修订版2.0
    模型:TI AM335x BeagleBone Black
    启用看门狗
    的 DRAM:512 MIB
    NAND:0 MIB
    MMC:OMAP SD/MMC:0、OMAP SD/MMC:1
    读取 uboot.env
    未设置。 验证第一个电子保险丝 MAC
    网络:eth0:以太网@4a100000
    警告:USB_ETHERE MAC 地址不匹配:
    PROM 中的地址为 DE:AD:Be:ef:00:01
    环境中的地址为 C8:a0:30:af:80:01
    ,eth1: USB_ether
    Press space to abort autoboot in 2 seconds
    

    2) 2)在 U-Boot 提示符下、运行"nand erase.chip"以清除 NAND:

    => Nand erase.chip
    
    NAND erase.chip: device 0 whole chip
    Erasing at 0xffe0000 - 100%完成。
    好的
    

    3) 3)正常引导并恢复测试

    =>引导
    开关到分区#0、好的
    

    这次使用 AM335x GP EVM (安装了 NAND):

    _________ _________ _ _
    |_|_|_______|_|_|_|
    || |_|.'|。 |. ||_|_|. |||-_|||
    ||||、||||||||||||||||||
    |__| |__|
    
    Arago Project http://arago-project.org AM335x-EVM ttyS0
    
    Arago 2016.10 AM335x-EVM ttyS0
    
    AM335x-EVM 登录名:
    
    root@AM335x-EVM:~
    
    
    @~ uname -A Linux AM335x-EVM 4.4.4.3.32-gadde2ca9f8 #1 preempt Wed Dec 14:52:13 EST >
    a Linux AM335x-EVM 4.4.3.32-gade2premote2e./sys/power/state v/v8premotesn v1r v3bs 2016 v/v8premoted/v1r r v3bs r r r r r r r r r r r r 完成。
    [62.688434] tilcdc 4830e000.lcdc:tilcdc_CRTC_IRQ (0x00000020):FIFO 不足
    [62.737843]冻结用户空间进程... (已过0.010秒)完成。
    [62.755579]冻结剩余可自由执行的任务... (已用0.001秒)。
    [62.764909]暂停控制台(使用 NO_console_suspend 进行调试)
    [62.890156] PM:在117.007毫秒后完成器件暂停
    [62.895225] PM:在5.017毫秒后完成器件延迟暂停
    [62.900909] PM:在5.627毫秒后完成器件暂停
    [62.900928] PM: 成功将所有电源域置于目标状态
    [62.922784] PM:21.644毫
    秒后器件的非线性恢复完成[62.927478] PM:器件的早期恢复在4.342 m931
    [ 62.929905]净 Eth0:初始化 cpsw 版本1.12 (0)[62.929478]
    净 Eth0: 初始化的 cpsw ale 版本1.4[62.929947]
    net eth0:ale 表大小1024[63.007930]
    net eth0:找到 PHY:ID:0x4dd074[63.008080]
    libphy:PHY 4a101000.mdio:01未找到
    [63.008103] net eth0:PHY "4dd074[63.008080] libphy:
    在 MDIO 上找不到 PHY 4a101000.0001.mDIO:错误[63.19] 269.807毫秒
    [63.274130]重新启动任务后设备恢复完成... 完成。
    
    root@AM335x-EVM:~# echo mem >/sys/power/state
    [67.388025] PM:正在同步文件系统... 完成。
    [67.662109]冻结用户空间进程... (已过0.008秒)完成。
    [67.672898]冻结剩余可自由执行的任务... (已用0.001秒)。
    [67.682257]暂停控制台(使用 NO_console_suspend 进行调试)
    [67.814851] PM:在124.457毫
    
    秒后完成器件暂停[67.820200] PM:在5.293毫秒后完成器件延迟暂停[67.825576] PM:在5.593毫秒后完成器件暂停
    [67.825392] PM: 成功将所有电源域置于目标状态
    [67.846725] PM:20.911毫秒后器件的非请求恢复完成
    [67.851243] PM:器件的早期恢复在4.070毫秒后完成
    [ 67.853680]净 Eth0:初始化 cpsw 版本1.12 (0)
    [67.853707]净 Eth0: 初始化的 cpsw ale 版本1.4
    [67.853723] net eth0:ale 表大小1024
    [67.927817] net eth0:找到 PHY:ID:0x4dd074
    [67.927966] libphy: PHY 4a100.mdio:01找不到
    [67.927989] net eth0:PHY "4dd074[67.927966] slave:未找到从站4a101000.mDIO [67.19]
    265.936毫秒
    [68.194039]重新启动任务后设备恢复完成... 完成。
    根目录@AM335x-EVM:~编号 

    此致、
    Mike

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

    擦除 NAND 已解决此问题。

    它还解决了在引导过程中报告的以下消息、这一点不足为奇:
    " OMAP2-nand:8000000.nand:找到不可纠正的位翻转

    一个二合一修复。

    谢谢!

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

    感谢您的回复、很高兴为您提供帮助。 我们将尝试在下一批生产 EVM 中修复此问题-感谢您报告此问题。

    此致、
    Mike