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

在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

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

PSCI處理函數(shù)代碼分析

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

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

- >psci_cpu_on()  //lib/psci/psci_main.c
 - >psci_validate_entry_point()  //驗證入口地址有效性并  保存入口點到一個結(jié)構(gòu)ep中
 - >psci_cpu_on_start(target_cpu, &ep)   //ep入口地址
  - >psci_plat_pm_ops- >pwr_domain_on(target_cpu)
   - >qemu_pwr_domain_on  //實現(xiàn)核上電(平臺實現(xiàn))
  /* Store the re-entry information for the non-secure world. */
  - >cm_init_context_by_index()  //重點:會通過cpu的編號找到 cpu上下文(cpu_context_t),存在cpu寄存器的值,異常返回的時候?qū)憣懙綄?yīng)的寄存器中,然后eret,舊返回到了el1!!!
   - >cm_setup_context()  //設(shè)置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);  //注:異常返回時執(zhí)行此地址  于是完成了cpu的啟動!!!
              write_ctx_reg(state, CTX_SPSR_EL3, ep- >spsr);

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

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

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

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

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

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

    關(guān)注

    68

    文章

    10863

    瀏覽量

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

    關(guān)注

    0

    文章

    74

    瀏覽量

    19665
  • 函數(shù)
    +關(guān)注

    關(guān)注

    3

    文章

    4331

    瀏覽量

    62618
  • 設(shè)備樹
    +關(guān)注

    關(guān)注

    0

    文章

    38

    瀏覽量

    3124
收藏 人收藏

    評論

    相關(guān)推薦

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

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

    2160處理器支持VHE嗎?

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

    ESAM接口函數(shù)代碼

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

    華清遠(yuǎn)見FPGA代碼-使用函數(shù)實現(xiàn)簡單的八位處理

    華清遠(yuǎn)見FPGA代碼-使用函數(shù)實現(xiàn)簡單的八位處理
    發(fā)表于 10-27 18:07 ?4次下載

    ARM處理器的啟動代碼分析與設(shè)計

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

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

    MPLAB X IDE提供收集有關(guān)C代碼函數(shù)函數(shù)級性能分析(Function Level Profiling, FLP)數(shù)據(jù)的功能。但是,該數(shù)據(jù)無法在未安裝MPLAB X IDE插件
    發(fā)表于 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圖像處理工具箱的函數(shù)介紹和圖像處理分析的技術(shù)實現(xiàn)分析

    介紹了MATLAB 圖像處理工具箱中的函數(shù), 給出了圖像處理分析的技術(shù)實現(xiàn), 如用空域法進(jìn)行圖像增強(qiáng), 通過形態(tài)學(xué)方法進(jìn)行圖像特征抽取與分析
    發(fā)表于 10-30 16:30 ?10次下載
    MATLAB圖像<b class='flag-5'>處理</b>工具箱的<b class='flag-5'>函數(shù)</b>介紹和圖像<b class='flag-5'>處理</b>與<b class='flag-5'>分析</b>的技術(shù)實現(xiàn)<b class='flag-5'>分析</b>

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

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

    使用Arduino函數(shù)簡化代碼

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

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

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

    psci接口規(guī)范介紹

    由于psci是由linux內(nèi)核調(diào)用bl31中的安全服務(wù),實現(xiàn)cpu電源管理功能的。因此其軟件架構(gòu)包含三個部分: (1)內(nèi)核與bl31之間的調(diào)用接口規(guī)范 (2)內(nèi)核中的架構(gòu) (3)bl31中的架構(gòu)
    的頭像 發(fā)表于 12-05 16:53 ?950次閱讀

    內(nèi)核中的psci驅(qū)動是什么

    內(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ū)動初始化
    的頭像 發(fā)表于 12-05 16:58 ?740次閱讀
    內(nèi)核中的<b class='flag-5'>psci</b>驅(qū)動是什么

    內(nèi)核中的psci架構(gòu)cpu_ops接口

    cpu_ops接口 驅(qū)動初始化完成后,cpu的cpu_ops就可以調(diào)用這些回調(diào)實現(xiàn)psci功能的調(diào)用。如下所示,當(dāng)devicetree中cpu的enable-method設(shè)置為psci時,該cpu
    的頭像 發(fā)表于 12-05 17:25 ?703次閱讀

    bl31中的psci架構(gòu)介紹

    std_svc_setup會在bl31啟動流程中被調(diào)用,以用于初始化該服務(wù)相關(guān)的配置。而std_svc_smc_handler為其smc異常處理函數(shù),當(dāng)內(nèi)核通過psci接口調(diào)用相關(guān)服務(wù)時,最終將由該
    的頭像 發(fā)表于 12-05 17:33 ?1074次閱讀
    bl31中的<b class='flag-5'>psci</b>架構(gòu)介紹

    SMP多核啟動PSCI代碼示例

    _setup //lib/psci/psci_setup.c - >plat_setup_psci_ops //設(shè)置平臺的psci操作 調(diào)用平臺的plat_setup_
    的頭像 發(fā)表于 12-05 17:45 ?710次閱讀
    主站蜘蛛池模板: 日韩黄色成人| 国产一级做a爰大片免费久久| 国产欧美网站| 一级毛片日韩| 高清一区二区三区免费| 日本大片免aaa费观看视频| 99啪啪| 欧美专区在线播放| 国产毛片哪里有| 99久久精品费精品国产一区二| 欧美a一级| 色视频综合| 欧美色人阁| 天堂网成人| 一级特黄aaa大片大全| xxx日本69| 性久久久久久久久久| 国产三级免费观看| 在线看黄色的网站| 四虎影永久地址www| 国模绪| 直接看黄的网站| 四虎伦理| 午夜免费片| 精品国产自在在线在线观看| 四虎海外在线永久免费看| 夜夜超b天天| 日本在线视频二区| 狠狠做深爱婷婷综合一区| 国产高清网站| 四虎在线最新永久免费播放| 午夜三级福利| www.午夜视频| 成人免费的性色视频| 中文字幕视频二区| 四虎影院中文字幕| 天天做天天爱天天爽综合网| 老司机精品视频免费| 你懂的网址在线| 福利精品| 日本v片免费一区二区三区|