psci是arm提供的一套電源管理接口,當(dāng)前一共包含0.1、0.2和1.0三個(gè)版本。它可被用于以下場(chǎng)景:(1)cpu的idle管理
(2)cpu hotplug以及secondary cpu啟動(dòng)
(3)系統(tǒng)shutdown和reset
首先,我們先來看下設(shè)備樹cpu節(jié)點(diǎn)對(duì)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 >;
};
從這個(gè)我們可以獲得什么信息呢?
可以看到現(xiàn)在enable-method 屬性已經(jīng)是psci,說明使用的多核啟動(dòng)方式是psci,
下面還有psci節(jié)點(diǎn),用于psci驅(qū)動(dòng)使用,method用于說明調(diào)用psci功能使用什么指令,可選有兩個(gè)smc和hvc。
其實(shí)smc, hvc和svc都是從低運(yùn)行級(jí)別向高運(yùn)行級(jí)別請(qǐng)求服務(wù)的指令,我們最常用的就是svc指令了,這是實(shí)現(xiàn)系統(tǒng)調(diào)用的指令。
高級(jí)別的運(yùn)行級(jí)別會(huì)根據(jù)傳遞過來的參數(shù)來決定提供什么樣的服務(wù)。
smc是用于陷入el3(安全),hvc用于陷入el2(虛擬化, 虛擬化場(chǎng)景中一般通過hvc指令陷入el2來請(qǐng)求喚醒vcpu), svc用于陷入el1(系統(tǒng))。
-
電源管理
+關(guān)注
關(guān)注
115文章
6183瀏覽量
144538 -
cpu
+關(guān)注
關(guān)注
68文章
10870瀏覽量
211899 -
SMP
+關(guān)注
關(guān)注
0文章
74瀏覽量
19680 -
設(shè)備樹
+關(guān)注
關(guān)注
0文章
38瀏覽量
3136
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論