secondary cpu啟動
由于psci方式啟動secondary cpu的流程,除了其所執行的cpu_ops不同之外,其它流程與spin-table方式是相同的,因此我們這里只給出執行流程圖,詳細分析可以參考上篇博文。其中以下流程執行secondary cpu啟動相關的一些初始化工作:
在初始化完成且hotplug線程創建完成后,就可通過以下流程喚醒cpu hotplug線程:
此后hotplug線程將調用psci回調函數,并最終觸發smc異常進入bl31:
bl31接收到該異常后執行std_svc_smc_handler處理函數,并最終調用平臺相關的電源管理接口,完成cpu的上電工作,以下為其執行流程:
平臺相關回調函數pwr_domain_on將為secondary cpu設置入口函數,然后為其上電使該cpu跳轉到內核入口secondary_entry處開始執行。以下為其內核啟動流程:
到這里其實就結束了,不得不說這個前輩的文章是真的寫的邏輯清晰,收獲頗多。
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
電源
+關注
關注
184文章
17605瀏覽量
249558 -
cpu
+關注
關注
68文章
10829瀏覽量
211186 -
多核
+關注
關注
0文章
43瀏覽量
12328 -
SMP
+關注
關注
0文章
72瀏覽量
19635
發布評論請先 登錄
相關推薦
記錄學習ARM Linux的多核啟動過程
CONFIG_HOTPLUG_CPU.cpu_die = vexpress_cpu_die,#endif};2.2.多核啟動多核的
發表于 05-25 10:43
基于raspi 3b上的SMP設計實現
本帖主要描述raspi 3b上SMP實現,該實現主要基于現有raspi2 bsp代碼基礎上添加相關SMP支持,所需支持的功能主要包括:多核啟動多核
發表于 12-05 13:56
RT-Thread SMP和AMP初體驗簡介
多處理,AMP模式的RTOS在各個CPU上均運行一個操作系統實例(這些操作實例不一定完全相同),各個操作系統擁有自己專用的內存,相互之間通過訪問受限的共享內存進行通信。RT-Thread SMP 啟動
發表于 02-03 14:33
SOC的多核啟動流程詳解
啟動的時候啟動多個core, COLD_BOOT_SINGLE_CPU=0, _secondary_cold_boot=1, 則下面代碼會被編譯,則主核走 do_primary_col
發表于 02-21 15:11
Linux在SMP系統上的移植研究
硬件平臺下的啟動流程、任務調度策略、任務間同步與互斥、中斷處理等問題,結合自主研發嵌入式應用的實際需求,得到解決上述問題的方案,完成嵌入式Linux在SMP系統上的移植,并實現嵌入式Linux在自主
發表于 11-14 16:09
?11次下載
ARM64 SMP多核啟動(上)—spin-table
一般嵌入式系統使用的都是對稱多處理器(Symmetric Multi-Processor, SMP)系統,包含了多個cpu, 這幾個cpu都是相同的處理器,如4核Contex-A53。
發表于 06-09 14:28
?966次閱讀
SMP是什么?多核芯片(SMP)的啟動方法
SMP 英文為Symmetric Multi-Processing ,是對稱多處理結構的簡稱,是指在一個計算機上匯集了一組處理器(多CPU),各CPU之間共享內存子系統以及總線結構,一個服務器系統可以同時運行多個處理器,并共享內
RT-Thread SMP啟動流程
SMP(Symmetric Multi-processing) :對稱多處理,在一個計算機上匯集了一組處理器 (多 CPU), 各 CPU 之間共享內存子系統以及總線結構。
secondary cpu執行流程介紹
: 由于其底層相關初始化流程與primary cpu類似,因此此處不再介紹。我們這里主要看一下它是如何通過secondary_start_kernel啟動idle線程的: asmlin
評論