psci_cpu_on () //lib/psci/psci_main.c - > psci_validate_entry_point () //驗證入口地址有效性并 保存入口點到一個結構ep中 - > psci_cpu_on_start (target_cpu, //lib/el3_runtime/aarch64/context_mgmt.c write_ctx_reg (state, CTX_ELR_EL3, ep- >pc); //注:異常返回時執行此地址 于是完成了cpu的啟動!!! write_ctx_reg (state, CTX_SP" />

色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

3天內不再提示

PSCI處理函數代碼分析

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

處理函數根據funid來決定服務,可以看到PSCI_CPU_ON_AARCH64為0xc4000003,這正是設備樹中填寫的cpu_on屬性的id,會委托psci_cpu_on來執行核上電任務。下面分析是重點:!!!

- >psci_cpu_on()  //lib/psci/psci_main.c
 - >psci_validate_entry_point()  //驗證入口地址有效性并  保存入口點到一個結構ep中
 - >psci_cpu_on_start(target_cpu, &ep)   //ep入口地址
  - >psci_plat_pm_ops- >pwr_domain_on(target_cpu)
   - >qemu_pwr_domain_on  //實現核上電(平臺實現)
  /* Store the re-entry information for the non-secure world. */
  - >cm_init_context_by_index()  //重點:會通過cpu的編號找到 cpu上下文(cpu_context_t),存在cpu寄存器的值,異常返回的時候寫寫到對應的寄存器中,然后eret,舊返回到了el1!!!
   - >cm_setup_context()  //設置cpu上下文
     - > write_ctx_reg(state, CTX_SCR_EL3, scr_el3);  //lib/el3_runtime/aarch64/context_mgmt.c
              write_ctx_reg(state, CTX_ELR_EL3, ep- >pc);  //注:異常返回時執行此地址  于是完成了cpu的啟動!!!
              write_ctx_reg(state, CTX_SPSR_EL3, ep- >spsr);

psci_cpu_on主要完成開核的工作 ,然后會設置一些異常返回后寄存器的值(eg:從el1 -> el3 -> el1),重點關注 ep->pc寫到cpu_context結構的CTX_ELR_EL3偏移處(從處理器啟動后會從這個地址取指執行)。

實際上, 所有的從處理器啟動后都會從bl31_warm_entrypoint開始執行 ,在plat_setup_psci_ops中會設置(每個平臺都有自己的啟動地址寄存器,通過寫這個寄存器來獲得上電后執行的指令地址)。

大致說一下:主處理器通過smc進入el3請求開核服務,atf中會響應這種請求, 通過平臺的開核操作來啟動從處理器并且設置從處理的一些寄存器eg:scr_el3、spsr_el3、elr_el3,然后主處理器,恢復現場,eret再次回到el1 ,

而處理器開核之后會從bl31_warm_entrypoint開始執行,最后通過el3_exit返回到el1的elr_el3設置的地址。

分析到這atf的分析到此為止,atf中主要是響應內核的snc的請求,然后做開核處理,也就是實際的開核動作,但是從處理器最后還是要回到內核中執行

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

    關注

    68

    文章

    10855

    瀏覽量

    211601
  • SMP
    SMP
    +關注

    關注

    0

    文章

    74

    瀏覽量

    19654
  • 函數
    +關注

    關注

    3

    文章

    4327

    瀏覽量

    62574
  • 設備樹
    +關注

    關注

    0

    文章

    38

    瀏覽量

    3116
收藏 人收藏

    評論

    相關推薦

    ARM電源管理中的PSCI是什么意思呢

    新的中斷不會再發給該處理器核;反過來,如果處理器核重新上電,要在OS調度器中加載該處理器的信息,并且需要重新配置中斷寄存器。而CPUIdle就沒有加載/移除的需要。從上圖可以看出來,PSCI
    發表于 04-02 09:45

    2160處理器支持VHE嗎?

    ] CPU15: 關閉 [ 94.403035] psci: CPU15 被殺死。 [94.417654]再見! 然后控制臺沒有輸出,看了kexec代碼后,我有一些疑問: 1. 2160處理器支持VHE嗎?我
    發表于 06-08 07:21

    ESAM接口函數代碼

    ESAM接口函數代碼 ESAM接口函數說是用子程序的代碼
    發表于 08-18 16:51 ?65次下載

    華清遠見FPGA代碼-使用函數實現簡單的八位處理

    華清遠見FPGA代碼-使用函數實現簡單的八位處理
    發表于 10-27 18:07 ?4次下載

    ARM處理器的啟動代碼分析與設計

    ARM處理器的啟動代碼分析與設計
    發表于 09-25 08:27 ?12次下載
    ARM<b class='flag-5'>處理</b>器的啟動<b class='flag-5'>代碼</b>的<b class='flag-5'>分析</b>與設計

    用于MPLAB X IDE代碼性能分析插件的工作原理和代碼性能分析參考

    MPLAB X IDE提供收集有關C代碼函數函數級性能分析(Function Level Profiling, FLP)數據的功能。但是,該數據無法在未安裝MPLAB X IDE插件
    發表于 06-11 04:28 ?11次下載
    用于MPLAB X IDE<b class='flag-5'>代碼</b>性能<b class='flag-5'>分析</b>插件的工作原理和<b class='flag-5'>代碼</b>性能<b class='flag-5'>分析</b>參考

    MATLAB圖像處理工具箱的函數介紹和圖像處理分析的技術實現分析

    介紹了MATLAB 圖像處理工具箱中的函數, 給出了圖像處理分析的技術實現, 如用空域法進行圖像增強, 通過形態學方法進行圖像特征抽取與分析
    發表于 10-30 16:30 ?10次下載
    MATLAB圖像<b class='flag-5'>處理</b>工具箱的<b class='flag-5'>函數</b>介紹和圖像<b class='flag-5'>處理</b>與<b class='flag-5'>分析</b>的技術實現<b class='flag-5'>分析</b>

    用于MPLABX IDE的代碼性能分析插件

    MPLAB X IDE提供收集有關C代碼函數函數級性能分析(Function Level Profiling,FLP)數據的功能。但是,該數據無法在未安裝MPLAB X IDE插件—
    發表于 05-12 10:38 ?15次下載

    使用Arduino函數簡化代碼

    組織擴展代碼的一種出色技術是使用函數,即可以根據需要從程序的其他部分(例如通過主循環)調用的代碼片段。
    的頭像 發表于 08-16 09:23 ?1919次閱讀
    使用Arduino<b class='flag-5'>函數</b>簡化<b class='flag-5'>代碼</b>

    psci電源管理接口可以用于什么場景

    psci是arm提供的一套電源管理接口,當前一共包含0.1、0.2和1.0三個版本。它可被用于以下場景:(1)cpu的idle管理 (2)cpu hotplug以及secondary cpu啟動
    的頭像 發表于 12-05 16:28 ?553次閱讀

    psci接口規范介紹

    由于psci是由linux內核調用bl31中的安全服務,實現cpu電源管理功能的。因此其軟件架構包含三個部分: (1)內核與bl31之間的調用接口規范 (2)內核中的架構 (3)bl31中的架構
    的頭像 發表于 12-05 16:53 ?931次閱讀

    內核中的psci驅動是什么

    內核中的psci架構 內核psci軟件架構包含psci驅動和每個cpu的cpu_ops回調函數實現兩部分。 其中psci驅動實現了驅動初始化
    的頭像 發表于 12-05 16:58 ?720次閱讀
    內核中的<b class='flag-5'>psci</b>驅動是什么

    內核中的psci架構cpu_ops接口

    cpu_ops接口 驅動初始化完成后,cpu的cpu_ops就可以調用這些回調實現psci功能的調用。如下所示,當devicetree中cpu的enable-method設置為psci時,該cpu
    的頭像 發表于 12-05 17:25 ?692次閱讀

    bl31中的psci架構介紹

    std_svc_setup會在bl31啟動流程中被調用,以用于初始化該服務相關的配置。而std_svc_smc_handler為其smc異常處理函數,當內核通過psci接口調用相關服務時,最終將由該
    的頭像 發表于 12-05 17:33 ?1064次閱讀
    bl31中的<b class='flag-5'>psci</b>架構介紹

    SMP多核啟動PSCI代碼示例

    _setup //lib/psci/psci_setup.c - >plat_setup_psci_ops //設置平臺的psci操作 調用平臺的plat_setup_
    的頭像 發表于 12-05 17:45 ?691次閱讀
    主站蜘蛛池模板: 日韩精品欧美在线视频在线 | 妺妺窝人体色777777野大粗| 晓雪老师我要进你里面好爽| 色久悠悠无码偷拍自怕| 日本午夜视频在线| 偷拍 拍自 欧美色区| 亚洲 在线 日韩 欧美| 亚洲精品日韩在线观看视频| 最近的中文字幕2019国语| chinese东北老年tv视频| 国产精品嫩草影院| 精品国产90后在线观看| 美女pk精子2小游戏| 人妻超级精品碰碰在线97视频| 天天狠狠色噜噜| 中文字幕久久熟女人妻AV免费| 99热久久这里只精品国产WWW| 被肉日常np快穿高h| 国产亚洲视频在线播放香蕉| 伦理片秋霞免费影院| 色狠狠xx| 在线视频 中文字幕| 国产精品久久久久久AV免费不卡| 九九热视频免费| 爽娇妻快高h| 91嫩草视频在线观看| 国产成人无码精品久久久按摩| 久久综合色超碰人人| 息与子在线交尾中文字幕| qvod 在线电影| 欧美 亚洲综合在线一区| 在线 国产 欧美 亚洲 天堂| 韩日午夜在线资源一区二区| 偷窥自拍性综合图区| 国产精品久久久久久久A片冻果| 日本女人水多| 干极品美女| 国产亚洲精品久久久久久久软件 | 青青青青久久久久国产的| 嫩草影院一区| 一本到2v不卡区|