0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

SMP多核secondary cpu啟動流程

麥辣雞腿堡 ? 來源:TrustZone ? 作者:Hcoco ? 2023-12-05 17:41 ? 次閱讀

secondary cpu啟動

由于psci方式啟動secondary cpu的流程,除了其所執(zhí)行的cpu_ops不同之外,其它流程與spin-table方式是相同的,因此我們這里只給出執(zhí)行流程圖,詳細分析可以參考上篇博文。其中以下流程執(zhí)行secondary cpu啟動相關(guān)的一些初始化工作:

圖片

在初始化完成且hotplug線程創(chuàng)建完成后,就可通過以下流程喚醒cpu hotplug線程:

圖片

此后hotplug線程將調(diào)用psci回調(diào)函數(shù),并最終觸發(fā)smc異常進入bl31:

圖片

bl31接收到該異常后執(zhí)行std_svc_smc_handler處理函數(shù),并最終調(diào)用平臺相關(guān)的電源管理接口,完成cpu的上電工作,以下為其執(zhí)行流程:

圖片

平臺相關(guān)回調(diào)函數(shù)pwr_domain_on將為secondary cpu設(shè)置入口函數(shù),然后為其上電使該cpu跳轉(zhuǎn)到內(nèi)核入口secondary_entry處開始執(zhí)行。以下為其內(nèi)核啟動流程:

圖片

到這里其實就結(jié)束了,不得不說這個前輩的文章是真的寫的邏輯清晰,收獲頗多。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 電源
    +關(guān)注

    關(guān)注

    184

    文章

    17193

    瀏覽量

    247760
  • cpu
    cpu
    +關(guān)注

    關(guān)注

    68

    文章

    10698

    瀏覽量

    209338
  • 多核
    +關(guān)注

    關(guān)注

    0

    文章

    43

    瀏覽量

    12281
  • SMP
    SMP
    +關(guān)注

    關(guān)注

    0

    文章

    70

    瀏覽量

    19554
收藏 人收藏

    評論

    相關(guān)推薦

    記錄學(xué)習(xí)ARM Linux的多核啟動過程

    CONFIG_HOTPLUG_CPU.cpu_die = vexpress_cpu_die,#endif};2.2.多核啟動多核
    發(fā)表于 05-25 10:43

    介紹在ARM64架構(gòu)下啟動多核的兩種方式

    1、ARM64的多核啟動流程分析工作中遇到的多核 ARM CPU 越來越多,總結(jié)分享一些多核
    發(fā)表于 06-13 18:23

    基于raspi 3b上的SMP設(shè)計實現(xiàn)

    本帖主要描述raspi 3b上SMP實現(xiàn),該實現(xiàn)主要基于現(xiàn)有raspi2 bsp代碼基礎(chǔ)上添加相關(guān)SMP支持,所需支持的功能主要包括:多核啟動多核
    發(fā)表于 12-05 13:56

    RT-Thread SMP和AMP初體驗簡介

    多處理,AMP模式的RTOS在各個CPU上均運行一個操作系統(tǒng)實例(這些操作實例不一定完全相同),各個操作系統(tǒng)擁有自己專用的內(nèi)存,相互之間通過訪問受限的共享內(nèi)存進行通信。RT-Thread SMP 啟動
    發(fā)表于 02-03 14:33

    RT-Thread框架下的SMP支持

    支持 SMP,在對稱多核上可以通過使能 RT_USING_SMP 來開啟。系統(tǒng)上電后,各 CPU啟動
    發(fā)表于 02-13 15:02

    SOC的多核啟動流程詳解

    啟動的時候啟動多個core, COLD_BOOT_SINGLE_CPU=0, _secondary_cold_boot=1, 則下面代碼會被編譯,則主核走 do_primary_col
    發(fā)表于 02-21 15:11

    Linux在SMP系統(tǒng)上的移植研究

    硬件平臺下的啟動流程、任務(wù)調(diào)度策略、任務(wù)間同步與互斥、中斷處理等問題,結(jié)合自主研發(fā)嵌入式應(yīng)用的實際需求,得到解決上述問題的方案,完成嵌入式Linux在SMP系統(tǒng)上的移植,并實現(xiàn)嵌入式Linux在自主
    發(fā)表于 11-14 16:09 ?11次下載
    Linux在<b class='flag-5'>SMP</b>系統(tǒng)上的移植研究

    ARM64 SMP多核啟動(上)—spin-table

    一般嵌入式系統(tǒng)使用的都是對稱多處理器(Symmetric Multi-Processor, SMP)系統(tǒng),包含了多個cpu, 這幾個cpu都是相同的處理器,如4核Contex-A53。
    發(fā)表于 06-09 14:28 ?861次閱讀
    ARM64 <b class='flag-5'>SMP</b><b class='flag-5'>多核</b><b class='flag-5'>啟動</b>(上)—spin-table

    多核CPU啟動方式

    多核 CPU啟動方式 嵌入式系統(tǒng)的啟動的基本流程是先運行 bootloader ,然后由 bootloader 引導(dǎo)
    的頭像 發(fā)表于 06-22 10:04 ?1823次閱讀

    SMP是什么?多核芯片(SMP)的啟動方法

    SMP 英文為Symmetric Multi-Processing ,是對稱多處理結(jié)構(gòu)的簡稱,是指在一個計算機上匯集了一組處理器(多CPU),各CPU之間共享內(nèi)存子系統(tǒng)以及總線結(jié)構(gòu),一個服務(wù)器系統(tǒng)可以同時運行多個處理器,并共享內(nèi)
    的頭像 發(fā)表于 07-26 09:26 ?1.5w次閱讀
    <b class='flag-5'>SMP</b>是什么?<b class='flag-5'>多核</b>芯片(<b class='flag-5'>SMP</b>)的<b class='flag-5'>啟動</b>方法

    RT-Thread SMP啟動流程

    SMP(Symmetric Multi-processing) :對稱多處理,在一個計算機上匯集了一組處理器 (多 CPU), 各 CPU 之間共享內(nèi)存子系統(tǒng)以及總線結(jié)構(gòu)。
    的頭像 發(fā)表于 08-03 15:10 ?990次閱讀
    RT-Thread <b class='flag-5'>SMP</b><b class='flag-5'>啟動</b><b class='flag-5'>流程</b>

    secondary cpu初始化狀態(tài)設(shè)置

    spin-table spin-table啟動流程的示意圖如下: 芯片上電后primary cpu開始執(zhí)行啟動流程,而
    的頭像 發(fā)表于 12-05 15:27 ?795次閱讀
    <b class='flag-5'>secondary</b> <b class='flag-5'>cpu</b>初始化狀態(tài)設(shè)置

    如何在內(nèi)核中啟動secondary cpu

    cpu流程,與secondary cpu啟動流程是相同的,因此內(nèi)核復(fù)用了
    的頭像 發(fā)表于 12-05 15:46 ?427次閱讀
    如何在內(nèi)核中<b class='flag-5'>啟動</b><b class='flag-5'>secondary</b> <b class='flag-5'>cpu</b>

    SMP多核啟動cpu操作函數(shù)

    cpu操作函數(shù) cpu_ops函數(shù)由bringup_cpu調(diào)用,以觸發(fā)secondary cpu啟動
    的頭像 發(fā)表于 12-05 16:04 ?516次閱讀
    <b class='flag-5'>SMP</b><b class='flag-5'>多核</b><b class='flag-5'>啟動</b><b class='flag-5'>cpu</b>操作函數(shù)

    secondary cpu執(zhí)行流程介紹

    : 由于其底層相關(guān)初始化流程與primary cpu類似,因此此處不再介紹。我們這里主要看一下它是如何通過secondary_start_kernel啟動idle線程的: asmlin
    的頭像 發(fā)表于 12-05 16:12 ?664次閱讀
    <b class='flag-5'>secondary</b> <b class='flag-5'>cpu</b>執(zhí)行<b class='flag-5'>流程</b>介紹