由于psci是由linux內(nèi)核調(diào)用bl31中的安全服務(wù),實現(xiàn)cpu電源管理功能的。因此其軟件架構(gòu)包含三個部分:
(1)內(nèi)核與bl31之間的調(diào)用接口規(guī)范
(2)內(nèi)核中的架構(gòu)
(3)bl31中的架構(gòu)
psci接口規(guī)范
psci規(guī)定了linux內(nèi)核調(diào)用bl31中電源管理相關(guān)服務(wù)的接口規(guī)范,它包含實現(xiàn)以下功能所需的接口:
(1)cpu idle管理
(2)向系統(tǒng)動態(tài)添加或從系統(tǒng)動態(tài)移除cpu,通常稱為hotplug
(3)secondary cpu啟動
(4)系統(tǒng)的shutdown和reset
psci接口規(guī)定了命令對應(yīng)的function_id、接口的輸入參數(shù)以及返回值。其中輸入?yún)?shù)可通過x0 – x7寄存器傳遞,而返回值通過x0 – x4寄存器傳遞。
如secondary cpu啟動或cpu hotplug時可調(diào)用cpu_on接口,為一個cpu執(zhí)行上電操作。
該接口的格式如下:
(1)function_id:0xc400 0003
(2)輸入?yún)?shù):使用mpidr值表示的target cpu id
cpu啟動入口的物理地址
context id,該值用于表示本次調(diào)用上下文相關(guān)的信息
(3)返回值:可以為success、invalid_parameter、invalid_address、already_on、on_pending或internal_failure
有了以下這些接口的詳細定義,內(nèi)核和bl31就只需按照該接口的規(guī)定,獨立開發(fā)psci相關(guān)功能。從而避免了它們之間的耦合,簡化了開發(fā)復(fù)雜度。
-
內(nèi)核
+關(guān)注
關(guān)注
3文章
1346瀏覽量
40152 -
cpu
+關(guān)注
關(guān)注
68文章
10769瀏覽量
210428 -
接口
+關(guān)注
關(guān)注
33文章
8355瀏覽量
150517 -
Linux
+關(guān)注
關(guān)注
87文章
11161瀏覽量
208466 -
SMP
+關(guān)注
關(guān)注
0文章
71瀏覽量
19598
發(fā)布評論請先 登錄
相關(guān)推薦
評論