全志V系统tina系统查看系统设置了哪些中断为唤醒源

1、在V系列的芯片中有使用OPTEE安全固件作为启动项的,系统休眠的sys cpu cpu_pll的电是放在optee固件中管理的,在没有cpus的soc的super standby是在optee中支持,休眠下去cpu是断电的,dram进入自刷新状态。然后唤醒系统是靠唤醒PMU来重新给CPU上电。

2、系统spuer standby休眠下去后,cpu sys等的电无法关闭,主要有两个原因导致如下:
a. 休眠时未能正确设置需要关闭的电,需要在dts中设置standby_param节点,如下:
standby_param: standby_param {
vdd-cpu = <0x4>;
vdd-sys = <0x4>;
vcc-io = <0x1>;
vcc-pll = <0x80>;
};
b. 系统并没有进入super standby模式,而是进入了normal standby

3.解决方法
3.1 原因一的解决方法:
需要查看自己产品的下面记录电源是接到pmu的那几路电源。
standby_param: standby_param {
vdd-cpu = <0x4>;
vdd-sys = <0x4>;
vcc-io = <0x1>;
vcc-pll = <0x80>;
};
需要根据下面的枚举顺序来关电:
enum {
AXP2101_ID_DCDC1 = 0,
AXP2101_ID_DCDC2,
AXP2101_ID_DCDC3,
AXP2101_ID_DCDC4,
AXP2101_ID_DCDC5,
AXP2101_ID_RTCLDO,
AXP2101_ID_RTCLDO1,
AXP2101_ID_ALDO1,
AXP2101_ID_ALDO2,
AXP2101_ID_ALDO3,
AXP2101_ID_ALDO4,
AXP2101_ID_BLDO1,
AXP2101_ID_BLDO2,
AXP2101_ID_DLDO1,
AXP2101_ID_DLDO2,
AXP2101_ID_CPUSLDO,
AXP2101_ID_MAX,
};
比如:vdd-cpu和vdd-sys都接到的dcdc3,在枚举的各路电中,dcdc3为第2bit位,则只需要填写vdd-cpu = <0x04>
即可,其他要关闭的电源类似。
3.2 原因二的判断方法及解决方法
3.2.1 在休眠系统后,唤醒时查看log信息,如果唤醒时,没有看到有boot0的启动信息,而是直接从内核打印信息唤醒,则说明
系统没有进入super standby模式,而是进入了normal standby。唤醒log如下:
[ 590.056674] PM: noirq resume of devices complete after 1.055 msecs
[ 590.065135] PM: early resume of devices complete after 0.976 msecs
[ 590.072364] [ehci0-controller]: is disable, can not resume
[ 590.078577] [ohci0-controller]: is disable, can not resume

3.2.2 造成此原因为设置了除了nmi 和 rtc类型的其他中断为唤醒源。
a. 在kernel中加入调试信息快速获取系统设置了哪些中断唤醒源,加入文件位置为:
drivers/soc/sunxi/arisc/interfaces/arisc_standby.c,函数为:
int arisc_set_wakeup_source(u32 wakeup_irq)
{
int result;
/* send message use hwmsgbox */
result = invoke_scp_fn_smc(ARM_SVC_ARISC_SET_WAKEUP_SRC_REQ,
wakeup_irq, 0, 0);
+printk(“set wakeup_irq:%d\n”, wakeup_irq);
+dump_stack();
return result;
}

b. 在系统休眠时,会打印出设置成唤醒源的中断号,也会把设置了此唤醒源的代码堆栈信息打印出来,可以快速定位到代码位置,直接屏蔽掉不是除了nmi 和 rtc作为唤醒源即可。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值