高通STR/S2R基本介绍

什么是STR?

Suspend to ram 是一种特殊的电源工作模式,在这种工作模式下,所有的CPU core/控制器/IP core都会进入特殊的电源模式下,同时SOC 内部总线时钟降到最低的工作频率,PMIC的绝大部分供电都会被关闭,外部DDR进入自刷新模式。系统可以通过外部的信号/中断经由AOP(always on processor) 切换回正常的电源模式.

例如,在进入STR之后,整个SOC只有红框部分的硬件模块还在工作,其他模块均处于睡眠/offline状态.

STR工作流程

STR流程简述:

1,外部MCU/TBOX/GPIO/CAN信号触发进入STR mode

2,OEM lifecycle manager程序接收到进入STR mode 请求,开始准备进入STR mode的环境

3,OEM lifecycle manager通知 LA进入 STR mode,LA自己OS内部进入STR 处理流程

4,   OEM lifecycle manager 通过qcore的PM接口通知已经注册的模块准备进入str mode,比如display/usb/openwfd_telltale以及OEM自己本身的模块

5,当LA&所有相关模块都已经进入str mode之后,触发QNX进入STR mode,这个时候整个系统包括所有SOC都进入str mode

6,MCU/TBOX/GPIO/CAN 通过中断唤醒AOP,AOP再唤醒所有SOC,同时通知OEM lifecycle manager去resume所有已经注册的模块

时序图如下:

STR基本验证

这里以Q+A的android R基线为例。

进入STR模式的方式:


# echo power > /dev/lcm_demo/display0/key        #通过模拟按键通知android进入休眠模式
# cat /dev/qvm/la/power_status  #检查确认android的电源状态,0表示已经进入休眠,1表示未进入休眠
# slay calib-touch      #停掉mtouch模块
# slay openwfd_telltale #停掉openwfd client
# screen-pwrmgr off     #QNX息屏
# echo "BUS::stop,busno=0" >> /var/pps/device/usb_ctrl1   #停掉usb controller 1
# echo "BUS::stop,busno=0" >> /var/pps/device/usb_ctrl2 #停掉usb controller 2
# str-ctl -i -e 5000000000 -w 5000000000    #以timer的方式进入和退出str

唤醒的方式:

#timer计时时间到会自动触发唤醒cpu,但是唤醒后需要复归app
# calib-touch
# openwfd_telltale
# screen-pwrmgr on
....

测试结果:

  • 3
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值