news 2026/1/15 2:10:43

Android设备日志分析与电源管理问题

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Android设备日志分析与电源管理问题

这份日志显示了一个Android设备从唤醒(Resume)到再次休眠(Suspend)的完整过程,其中出现了两个关键错误:

主要问题分析:

1.MSDC/eMMC通信失败(核心问题)

[149013.510436][C1000000] mtk-msdc 11230000.mmc: msdc_cmd_done: cmd=6 arg=0x30F0001; rsp 0x0; cmd_error=-110; host_error=0x2 [149013.510513][C1000000] mtk-msdc 11230000.mmc: msdc_cmd_done: cmd=6 arg=0x30F0001; rsp 0x0; cmd_error=-110; host_error=0x2
  • 错误代码-110=ETIMEDOUT(超时错误)
  • 命令6:MMC_SWITCH(切换eMMC工作模式)
  • 具体表现:eMMC存储控制器在尝试切换模式时无响应,连续两次失败

2.设备访问权限违规(DEVAPC Violation)

[149013.511080][C1000000] [DEVAPC]: catch it from INFRAAXI_MI Master is: MCU_AP_M [149013.511096][C1000000] [DEVAPC]: Violation - master: MCU_AP_M access violation slave: MSDC0_S-1 [149013.511108][C1000000] [DEVAPC]: Reason: power/clock is not enabled
  • 违规源:MCU_AP_M(主处理器)尝试访问MSDC0(eMMC控制器)
  • 根本原因电源或时钟未开启状态下进行了非法访问
  • 违规类型:WRITE Violation(写操作违规)

完整的事件链分析:

阶段1:正常唤醒(149012.91秒附近)

  • 系统从休眠中恢复,由WLAN中断触发
  • eMMC控制器正常初始化,进行HS400调校
  • 各模块(WLAN、BT、CAMERA等)依次恢复

阶段2:RPMB操作期间(149013.48秒附近)

  • Trustonic TEE(安全环境)进行RPMB(安全存储)操作
  • 读取和写入RPMB分区数据
  • 这些操作触发了对eMMC的访问

阶段3:系统再次休眠(149013.42秒)

  • 系统准备进入s2idle(浅度休眠)
  • 开始冻结用户进程和可冻结任务
  • 各模块开始挂起流程

阶段4:错误发生(149013.51秒)

  1. eMMC超时:在休眠过程中,eMMC控制器无响应
  2. 访问违规:由于eMMC时钟/电源可能已关闭,但MCU仍尝试访问
  3. 系统状态:此时已开始关闭外设电源,但TEE的RPMB操作仍在进行

根本原因推断:

  1. 时序竞争:在系统休眠过程中,TEE的RPMB操作与eMMC控制器电源管理存在竞争条件

  2. 电源管理冲突

    • eMMC控制器正在被挂起(msdc_runtime_suspend
    • 但安全环境(TEE)仍在进行RPMB读写操作
    • 导致访问时时钟/电源已部分关闭
  3. 可能的具体原因

    • RPMB操作未在eMMC挂起前完成
    • eMMC控制器提前进入低功耗状态
    • 电源管理策略冲突

影响评估:

  • 严重性:中度
  • 影响范围:可能影响RPMB数据完整性
  • 系统稳定性:可能导致休眠失败或数据损坏

建议解决方向:

  1. 检查TEE驱动:确保RPMB操作在系统休眠前完成
  2. 调整挂起顺序:eMMC控制器应在所有安全操作完成后才挂起
  3. 增加同步机制:在eMMC挂起和RPMB操作间添加同步锁
  4. 调试电源管理:检查MSDC0的时钟和电源管理策略

这是一个典型的电源管理时序问题,需要协调TEE安全操作与eMMC控制器电源管理的先后顺序。

系统恢复(Resume)过程:

一开始,系统从挂起状态恢复,由IRQ 138(wlan0)触发。

各个模块(如MDP、SCP、VCP、WLAN、BT等)依次恢复。

eMMC(msdc)进行了重新初始化(包括时钟设置和调校)。

系统再次挂起(Suspend)过程:

在恢复后不久(约0.5秒后),系统再次进入挂起状态(s2idle)。

挂起过程开始,冻结用户空间进程和剩余可冻结任务。

在挂起过程中,Trustonic TEE(可信执行环境)进行了多次RPMB(Replay Protected Memory
Block)操作,包括读取和写入。

错误发生:

在挂起过程中,出现了两个主要错误: a. eMMC命令超时(cmd_error=-110)。 b.
设备访问权限(DEVAPC)违规(Violation)。

错误分析:

a. eMMC命令超时:

在时间戳149013.510436和149013.510513,eMMC控制器(msdc)在发送命令6(CMD6)时超时(cmd_error=-110),这通常表示设备无响应。

这可能是由于在挂起过程中,eMMC设备已经进入低功耗状态,或者时钟被关闭,导致无法响应命令。

b. 设备访问权限违规:

紧接着,在149013.510595开始,出现了设备访问权限违规(DEVAPC)的中断。

违规信息显示,master(MCU_AP_M)试图访问slave(MSDC0_S-1)时发生违规,原因是“power/clock is
not enabled”(电源/时钟未开启)。

这进一步证实了在挂起过程中,eMMC的时钟或电源可能已经被关闭,但仍有访问尝试。

可能的根本原因:

在挂起过程中,系统可能正在关闭eMMC控制器的时钟或电源,而与此同时,TEE的RPMB操作仍在进行,导致eMMC设备无法响应命令,进而产生超时和访问违规。

日志中的其他相关事件:

在挂起过程中,TEE进行了多次RPMB操作,包括读取和写入。这些操作可能需要访问eMMC设备。

在eMMC命令超时之前,有msdc_runtime_suspend: success to release
vcore的日志,表明eMMC控制器正在被挂起(可能正在关闭电源或时钟)。

结论:

这个错误是由于在系统挂起过程中,eMMC设备被挂起(电源/时钟关闭)的同时,TEE的RPMB操作仍在尝试访问eMMC,导致访问超时和违规。

建议的解决方向:

检查TEE的RPMB操作在系统挂起过程中的处理。确保在挂起过程中,所有对eMMC的访问都已完成,并且挂起eMMC控制器的操作应在这些访问之后进行。

检查系统挂起和恢复过程中eMMC控制器与TEE的同步问题,可能需要调整挂起顺序或增加同步机制。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/1/14 9:40:55

基于单片机的智能镜子系统设计(有完整资料)

资料查找方式:特纳斯电子(电子校园网):搜索下面编号即可编号:T4672305M设计简介:本设计是基于STM32的智能镜子系统,主要实现以下功能:带有补光灯,并可通过手势或语音控制…

作者头像 李华
网站建设 2026/1/7 3:41:16

国产化替代SSD的标杆之路:天硕TOPSSD以自主可控存储解决方案重塑高端工业存储格局

在航空、国防军工、轨道交通及高端工业自动化等“任务不允许失败”的领域,存储设备不仅需要极高的性能,更必须具备在极端恶劣环境下保障数据万无一失的高可靠存储能力。国产化替代 SSD 成为战略重点。天硕 (TOPSSD) 作为自主可控存储品牌,推出…

作者头像 李华
网站建设 2026/1/9 23:19:54

EmotiVoice本地化部署优势:数据安全与响应效率兼得

EmotiVoice本地化部署优势:数据安全与响应效率兼得 在智能语音技术日益渗透到医疗、金融、车载系统等关键领域的今天,一个核心矛盾逐渐凸显:我们既要让机器“说话”更自然、更有情感,又必须确保用户的每一句话都不被泄露。传统的云…

作者头像 李华
网站建设 2026/1/14 19:43:05

【Java毕设全套源码+文档】基于springboot的数据库课程在线教学系统设计与实现(丰富项目+远程调试+讲解+定制)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

作者头像 李华
网站建设 2026/1/9 22:48:45

【Java毕设全套源码+文档】基于springboot的实验室安全考试系统设计与实现(丰富项目+远程调试+讲解+定制)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

作者头像 李华
网站建设 2026/1/12 14:23:33

基于QT(C++)实现的翻金币游戏

基于QT实现的翻金币游戏一、设计题目基于QT实现的翻金币游戏二、开发环境硬件环境:微机系列,内存在1G以上软件环境:Microsoft Windows 10家庭版三、开发工具Qt Creator 4.11、HM NIS、NSIS(客户端打包程序)四、设计思想…

作者头像 李华