赞
踩
Linux power and performance management architecture and SCMI
SoC上有很多核,ATF和Linux占据了A核,SCP占据了一个M核。当遇到Linux没有权限的事情的时候(eg: 当Linux想要关机或者休眠的时候,这涉及到整个系统电源状态的变化,为了安全性Linux内核没有权利直接执行,需要陷入到EL3等级去执行),需要给SCP打报告,SCP审批后去执行。(异构核间通信)。
ATF代码运行在EL3, 是实现安全相关的软件部分固件,在EL3中处理的程序是BL31。PSCI是工作在non secure EL1(linux内核)/EL2 hypervisor和EL3(bl31)之间的一组电源管理接口,PSCI在EL3实现。
虚拟机电源管理的两种类型(左:Type-2,右:Type-1)
A核需要通过SCMI协议上报给SCP,在AP与SCP的核间通信使用SCMI。
走SMC是安全通道,Linux直接和SCP通信是非安全通道
Call flow: 用户进程 --sysfs–> 内核(EAS、IPA)–PSCI–> ATF --SCMI–>SCP --LPI–> 功耗输出器件
在OS中加入ACPI高级配置和电源接口(X86)
ACPI为兼容的OSPM实现,提供了一组电源管理服务:
PSCI在ATF(EL3/BL31)中实现
ACPI在UEFI(EL2/BL33)中实现
ATF+UEFI的boot过程
CPUidle和hotplug区别:
CPUidle:处于idle状态的cpu,是“suspend”。对调度器来说是可见的,换句话说,调度器并不知道某个CPU是否处于idle状态
cpu hotplug:“off”。负荷较低时,从调度器移除,并将该CPU上的中断等资源迁移到其它CPU上,同时进行必要的负载均衡。
PSCI不包含:
PSCI用来与高级配置与电源接口ACPI和设备树FDT等配合使用,并不是要取代ACPI或FDT
PSCI是ARM安全和非安全世界之间的接口,提供了一种发出电源管理请求的方法,在SPF和可信操作系统之间进行通信。为了处理这些请求,SPF(Secure Platform Firmware)必须包含PSCI实现
PSCI在ARM架构不同异常等级上工作的软件之间,提供一个标准的电源管理接口。这些软件,比如Linux、Hypervisor、安全Firmware和可信OS之间必须能够实现互相操作。包括:
中间层的SCP是由一个M系列的处理器构成的子系统,负责运行固件软件(firmware),向上可与AP通过设定好的接口/协议通信,接收服务请求,向下控制硬件单元,监控传感器,控制时钟和复位,管理电源等等。
有了SCP,就能把一些任务从OSPM中抽离出来,把软件和硬件隔离,增加了灵活性和安全性
PPU(power policy unit)是一个硬件组件,支持SCP通过软件接口编程
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。