; enable-method = "spin-table" ; cpu-release-addr = 0 x1 0 x0000fff8 >; }; spin-table方式的多核啟動方式,顧名思義在于自旋,主處理器和從處理器上電都會啟動,主處理器執行uboot暢通無阻,從處理器在spin_table_secondary_jump處wfe睡眠,主處理器通過修改設備樹的cpu節點的cpu-release-addr屬性為spin_table_cpu_release_addr,這是從處理器的釋" />

精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

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

3天內不再提示

使用自旋表啟動的平臺設備樹cpu節點介紹

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

補充一下一個使用自旋表作為啟動方式的平臺設備樹cpu節點:

arch/arm64/boot/dts/xxx.dtsi:

   cpu@0 {
                        device_type = "cpu";
                        compatible = "arm,armv8";
                        reg = < 0x0 0x000 >;
                        enable-method = "spin-table";
                        cpu-release-addr = < 0x1 0x0000fff8 >;
                };

spin-table方式的多核啟動方式,顧名思義在于自旋,主處理器和從處理器上電都會啟動,主處理器執行uboot暢通無阻,從處理器在spin_table_secondary_jump處wfe睡眠,主處理器通過修改設備樹的cpu節點的cpu-release-addr屬性為spin_table_cpu_release_addr,這是從處理器的釋放地址所在的地方。

主處理器進入內核后,會通過smp_prepare_cpus函數調用spin-table 對應的cpu操作集的cpu_prepare方法從而在smp_spin_table_cpu_prepare函數中設置從處理器的釋放地址為secondary_holding_pen這個內核函數,然后通過sev指令喚醒從處理器,從處理器繼續從secondary_holding_pen開始執行(從處理器來到了內核的世界),發現secondary_holding_pen_release不是自己的處理編號,然后通過wfe繼續睡眠。

當主處理器完成了大多數的內核組件的初始化之后,調用smp_init來來開始真正的啟動從處理器,最終調用spin-table 對應的cpu操作集的cpu_boot方法從而在smp_spin_table_cpu_boot將需要啟動的處理器的編號寫入secondary_holding_pen_release中,然后再次sev指令喚醒從處理器,從處理器得以繼續執行(設置自己異常向量表,初始化mmu等)。

最終在idle線程中執行wfi睡眠。其他從處理器也是同樣的方式啟動起來,同樣最后進入各種idle進程執行wfi睡眠,主處理器繼續往下進行內核初始化,直到啟動init進程,后面多個處理器都被啟動起來,都可以調度進程,多進程還會被均衡到多核。

問題

  • 1、 而啟動流程中哪個cpu作為primary cpu可以任意指定?primary cpu如何任意指定的?

啟動的匯編代碼中會通過cpu的affinity值獲取當前cpu的id,然后將自身cpu id與指定cpu id進行比較,以確定當前cpu是否是primary cpu

  • 2、cpu hotplug對于spintable是必須的嗎?

spintable啟動方式不支持cpu hotplug,只是在secondary 啟動時復用了hotplug相同的流程,這部分代碼默認是會被編譯到內核中的


但是spin-table方式非常簡單,但其只能被用于secondary cpu啟動,功能比較單一。

隨著aarch64架構電源管理需求的增加(如cpu熱插拔、cpu idle等),arm設計了一套標準的電源管理接口協議psci。

該協議可以支持所有cpu相關的電源管理接口,而且由于電源相關操作是系統的關鍵功能,為了防止其被攻擊,該協議將底層相關的實現都放到了secure空間,從而可提高系統的安全性。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 處理器
    +關注

    關注

    68

    文章

    19166

    瀏覽量

    229147
  • cpu
    cpu
    +關注

    關注

    68

    文章

    10826

    瀏覽量

    211159
  • SMP
    SMP
    +關注

    關注

    0

    文章

    71

    瀏覽量

    19631
  • 設備樹
    +關注

    關注

    0

    文章

    38

    瀏覽量

    3110
收藏 人收藏

    評論

    相關推薦

    安卓(android)6.0高通平臺下設備專題視頻講解【全國獨家+設備視頻教程+絕頂視頻】

    安卓(android)6.0高通平臺下設備專題視頻講解【全國獨家+設備視頻教程+絕頂視頻】hi,大家好,我是aiku,又和大家見面了,我最近錄制了全國只有一家視頻講解安卓(andr
    發表于 10-06 22:55

    Linux 設備詳解

    的外設硬件接到哪里或是那個平臺,其驅動代碼邏輯并不需要改動,而僅僅需要改變下設備信息,主要的就是I/O地址和中斷號。說了這么半天,跟引入設備有什么關系呢?華清教學使用的開發板(A8/
    發表于 10-19 15:53

    Linux 設備詳解

    的外設硬件接到哪里或是那個平臺,其驅動代碼邏輯并不需要改動,而僅僅需要改變下設備信息,主要的就是I/O地址和中斷號。說了這么半天,跟引入設備有什么關系呢?華清教學使用的開發板(A8/
    發表于 11-02 13:46

    Linux 設備詳解

    的外設硬件接到哪里或是那個平臺,其驅動代碼邏輯并不需要改動,而僅僅需要改變下設備信息,主要的就是I/O地址和中斷號。說了這么半天,跟引入設備有什么關系呢?華清教學使用的開發板(A8/
    發表于 11-29 17:58

    設備(Device Tree)

    設備介紹設備是一個描述設備硬件資源的文件,該文件是由
    發表于 03-14 14:36

    qualcomm平臺的Little Kernel啟動流程

    的header中檢索到)。載入設備到TAGS_ADDR(從boot image的header中檢索到),然后更新設備;3)把命令行(cmd line)作為
    發表于 09-25 15:42

    迅為iMX6UL開發板驅動-設備節點名稱和子節點獲取設備數據

    文檔介紹迅為IMX6UL開發板設備通過節點名稱獲取設備數據,以及獲取子
    發表于 06-11 11:35

    怎樣去配置設備的leds節點

    配置設備leds節點,sys文件系統中沒有出現相應設備文件,引腳沒有查出有重復定義的?怎樣去配置設備
    發表于 01-07 06:15

    設備中GIC中斷控制器節點

    文章目錄一、回顧二、設備中GIC中斷控制器節點三、外設中斷控制器節點三、其他設備使用中斷節點1
    發表于 01-10 07:37

    如何在設備文件里面添加心跳燈節點

    如何在設備文件里面添加心跳燈節點呢?有哪些步驟?
    發表于 03-04 06:44

    ARM Linux設備的組成和結構

    包含子節點。所謂屬性,其實就是成對出現的名稱和值。在設備中,可描述的信息包括(原先這些信息大多被硬編碼在內核中):·CPU 的數量和類別?!?內存基地址和大小。· 總線和橋?!?外設
    發表于 05-11 16:28

    arm linux設備都包括哪些基本信息呢

    設備是由一系列被命名的節點(Node)和屬性(Property)組成。節點本身可包含子節點設備
    發表于 05-24 16:04

    【米爾-TIAM62開發板-接替335x-試用評測】+(三)手把手創建Uboot設備與內核設備實戰

    .dts文件編譯為.dtb文件,然后將.dtb文件用于系統啟動過程中的設備信息獲取。 深入學習特定硬件平臺設備:針對你正在使用的硬件
    發表于 11-28 09:54

    你不知道的Linux設備--memory&chosen節點

    節點那一節我們說過,最簡單的設備也必須包含cpus節點和memory節點。memory節點
    發表于 05-05 11:14 ?3605次閱讀

    Petalinux工程中設備介紹

    設備是 Petalinux kernel 的關鍵組件,接下來以 2020.1 版本為例,為大家介紹一下在Xilinx Petalinux 工程中的設備
    的頭像 發表于 02-20 16:32 ?6819次閱讀
    Petalinux工程中<b class='flag-5'>設備</b><b class='flag-5'>樹</b>的<b class='flag-5'>介紹</b>