psci是arm提供的一套電源管理接口,當前一共包含0.1、0.2和1.0三個版本。它可被用于以下場景:(1)cpu的idle管理
(2)cpu hotplug以及secondary cpu啟動
(3)系統shutdown和reset
首先,我們先來看下設備樹cpu節點對psci的支持:
arch/arm64/boot/dts/xxx.dtsi:
cpu0: cpu@0 {
device_type = "cpu";
compatible = "arm,armv8";
reg = < 0x0 >;
enable-method = "psci";
};
psci {
compatible = "arm,psci";
method = "smc";
cpu_suspend = < 0xC4000001 >;
cpu_off = < 0x84000002 >;
cpu_on = < 0xC4000003 >;
};
從這個我們可以獲得什么信息呢?
可以看到現在enable-method 屬性已經是psci,說明使用的多核啟動方式是psci,
下面還有psci節點,用于psci驅動使用,method用于說明調用psci功能使用什么指令,可選有兩個smc和hvc。
其實smc, hvc和svc都是從低運行級別向高運行級別請求服務的指令,我們最常用的就是svc指令了,這是實現系統調用的指令。
高級別的運行級別會根據傳遞過來的參數來決定提供什么樣的服務。
smc是用于陷入el3(安全),hvc用于陷入el2(虛擬化, 虛擬化場景中一般通過hvc指令陷入el2來請求喚醒vcpu), svc用于陷入el1(系統)。
-
電源管理
+關注
關注
115文章
6155瀏覽量
144239 -
cpu
+關注
關注
68文章
10826瀏覽量
211160 -
SMP
+關注
關注
0文章
72瀏覽量
19632 -
設備樹
+關注
關注
0文章
38瀏覽量
3110
發布評論請先 登錄
相關推薦
評論