由于psci是由linux內核調用bl31中的安全服務,實現cpu電源管理功能的。因此其軟件架構包含三個部分:
(1)內核與bl31之間的調用接口規范
(2)內核中的架構
(3)bl31中的架構
psci接口規范
psci規定了linux內核調用bl31中電源管理相關服務的接口規范,它包含實現以下功能所需的接口:
(1)cpu idle管理
(2)向系統動態添加或從系統動態移除cpu,通常稱為hotplug
(3)secondary cpu啟動
(4)系統的shutdown和reset
psci接口規定了命令對應的function_id、接口的輸入參數以及返回值。其中輸入參數可通過x0 – x7寄存器傳遞,而返回值通過x0 – x4寄存器傳遞。
如secondary cpu啟動或cpu hotplug時可調用cpu_on接口,為一個cpu執行上電操作。
該接口的格式如下:
(1)function_id:0xc400 0003
(2)輸入參數:使用mpidr值表示的target cpu id
cpu啟動入口的物理地址
(3)返回值:可以為success、invalid_parameter、invalid_address、already_on、on_pending或internal_failure
有了以下這些接口的詳細定義,內核和bl31就只需按照該接口的規定,獨立開發psci相關功能。從而避免了它們之間的耦合,簡化了開發復雜度。
-
內核
+關注
關注
3文章
1377瀏覽量
40327 -
cpu
+關注
關注
68文章
10882瀏覽量
212229 -
接口
+關注
關注
33文章
8650瀏覽量
151415 -
Linux
+關注
關注
87文章
11322瀏覽量
209866 -
SMP
+關注
關注
0文章
75瀏覽量
19691
發布評論請先 登錄
相關推薦
評論