內(nèi)核中的psci架構(gòu)
內(nèi)核psci軟件架構(gòu)包含psci驅(qū)動和每個cpu的cpu_ops回調(diào)函數(shù)實現(xiàn)兩部分。
其中psci驅(qū)動實現(xiàn)了驅(qū)動初始化和psci相關(guān)接口實現(xiàn)功能,而cpu_ops回調(diào)函數(shù)最終也會調(diào)用psci驅(qū)動的接口。
psci驅(qū)動
首先我們看一下devicetree中的配置:
psci {
compatible = "arm,psci-0.2"; (1)
method = "smc"; (2)
}
(1)用于指定psci版本
(2)根據(jù)該psci由bl31處理還是hypervisor處理,可以指定其對應(yīng)的陷入方式。若由bl31處理為smc,若由hypervisor處理則為hvc
驅(qū)動流程主要是與bl31通信,以確認(rèn)其是否支持給定的psci版本,以及相關(guān)psci操作函數(shù)的實現(xiàn),其流程如下:其主要工作即為psci設(shè)置相關(guān)的回調(diào)函數(shù),該函數(shù)定義如下:
static void __init psci_0_2_set_functions(void)
{
…
psci_ops = (struct psci_operations){
.get_version = psci_0_2_get_version,
.cpu_suspend = psci_0_2_cpu_suspend,
.cpu_off = psci_0_2_cpu_off,
.cpu_on = psci_0_2_cpu_on,
.migrate = psci_0_2_migrate,
.affinity_info = psci_affinity_info,
.migrate_info_type = psci_migrate_info_type,
}; (1)
register_restart_handler(&psci_sys_reset_nb); (2)
pm_power_off = psci_sys_poweroff; (3)
}
(1)為psci_ops設(shè)置相應(yīng)的回調(diào)函數(shù)
(2)為psci模塊設(shè)置系統(tǒng)重啟時的通知函數(shù)
(3)將系統(tǒng)的power_off函數(shù)指向相應(yīng)的psci接口
-
內(nèi)核
+關(guān)注
關(guān)注
3文章
1384瀏覽量
40442 -
cpu
+關(guān)注
關(guān)注
68文章
10911瀏覽量
213147 -
驅(qū)動
+關(guān)注
關(guān)注
12文章
1853瀏覽量
85690 -
SMP
+關(guān)注
關(guān)注
0文章
76瀏覽量
19758
發(fā)布評論請先 登錄
相關(guān)推薦
Linux內(nèi)核中container_of原理詳解
![Linux<b class='flag-5'>內(nèi)核</b><b class='flag-5'>中</b>container_of原理詳解](https://file1.elecfans.com/web2/M00/8C/BF/wKgaomSw9uiAIEg1AADSBFXrXeg850.jpg)
在Linux內(nèi)核中添加wifi驅(qū)動
ARM電源管理中的PSCI是什么意思呢
內(nèi)核驅(qū)動架構(gòu)圖及程序
![<b class='flag-5'>內(nèi)核</b><b class='flag-5'>驅(qū)動</b>架構(gòu)圖及程序](https://file.elecfans.com/web2/M00/3C/E0/pYYBAGJWQU-AUGeNAAA5UIPXXLM052.jpg)
linux內(nèi)核中的driver_register介紹
![linux<b class='flag-5'>內(nèi)核</b><b class='flag-5'>中</b>的driver_register介紹](https://file1.elecfans.com/web2/M00/8C/B4/wKgZomSworSAHh39AAAUkaD7Dj8379.png)
psci電源管理接口可以用于什么場景
psci接口規(guī)范介紹
內(nèi)核中的psci架構(gòu)cpu_ops接口
bl31中的psci架構(gòu)介紹
![bl31<b class='flag-5'>中</b>的<b class='flag-5'>psci</b>架構(gòu)介紹](https://file1.elecfans.com/web2/M00/B2/B1/wKgaomVu7IKAHCo9AAIO3tTVm-Y546.jpg)
SMP多核啟動PSCI代碼示例
PSCI處理函數(shù)代碼分析
linux驅(qū)動程序如何加載進(jìn)內(nèi)核
linux內(nèi)核中通用HID觸摸驅(qū)動
![linux<b class='flag-5'>內(nèi)核</b><b class='flag-5'>中</b>通用HID觸摸<b class='flag-5'>驅(qū)動</b>](https://file1.elecfans.com/web1/M00/F3/DE/wKgZoWcgTz-ACXEeAAASg7zCCSA578.png)
評論