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

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

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

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

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

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

bl31中的psci架構(gòu)

bl31為內(nèi)核提供了一系列運行時服務(wù),psci作為其標(biāo)準(zhǔn)運行時服務(wù)的一部分,通過宏DECLARE_RT_SVC注冊到系統(tǒng)中。其相應(yīng)的定義如下:

DECLARE_RT_SVC(
		std_svc,

		OEN_STD_START,
		OEN_STD_END,
		SMC_TYPE_FAST,
		std_svc_setup,
		std_svc_smc_handler
)

其中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ù)時,最終將由該函數(shù)執(zhí)行實際的處理流程。
圖片

上圖為psci初始化相關(guān)的流程,它主要包含內(nèi)容:(1)前面我們已經(jīng)介紹過power domain相關(guān)的背景,即psci需要協(xié)調(diào)不同層級的power domain狀態(tài),因此其必須要了解系統(tǒng)的power domain配置情況。以上流程中紅色虛線框的部分主要就是用于初始化系統(tǒng)的power domain拓?fù)浼捌錉顟B(tài)

(2)由于psci在執(zhí)行電源相關(guān)接口時,最終需要操作實際的硬件。而它們是與架構(gòu)相關(guān)的,因此其操作函數(shù)最終需要注冊到平臺相關(guān)的回調(diào)中。plat_setup_psci_ops即用于注冊特定平臺的psci_ops回調(diào),其格式如下:

typedef struct plat_psci_ops {
	void (*cpu_standby)(plat_local_state_t cpu_state);
	int (*pwr_domain_on)(u_register_t mpidr);
	void (*pwr_domain_off)(const psci_power_state_t *target_state);
	void (*pwr_domain_suspend_pwrdown_early)(
				const psci_power_state_t *target_state);
	void (*pwr_domain_suspend)(const psci_power_state_t *target_state);
	void (*pwr_domain_on_finish)(const psci_power_state_t *target_state);
	void (*pwr_domain_on_finish_late)(
				const psci_power_state_t *target_state);
	void (*pwr_domain_suspend_finish)(
				const psci_power_state_t *target_state);
	void __dead2 (*pwr_domain_pwr_down_wfi)(
				const psci_power_state_t *target_state);
	void __dead2 (*system_off)(void);
	void __dead2 (*system_reset)(void);
	int (*validate_power_state)(unsigned int power_state,
				    psci_power_state_t *req_state);
	int (*validate_ns_entrypoint)(uintptr_t ns_entrypoint);
	void (*get_sys_suspend_power_state)(
				    psci_power_state_t *req_state);
	int (*get_pwr_lvl_state_idx)(plat_local_state_t pwr_domain_state,
				    int pwrlvl);
	int (*translate_power_state_by_mpidr)(u_register_t mpidr,
				    unsigned int power_state,
				    psci_power_state_t *output_state);
	int (*get_node_hw_state)(u_register_t mpidr, unsigned int power_level);
	int (*mem_protect_chk)(uintptr_t base, u_register_t length);
	int (*read_mem_protect)(int *val);
	int (*write_mem_protect)(int val);
	int (*system_reset2)(int is_vendor,
				int reset_type, u_register_t cookie);
}

最后我們再看一下psci操作相應(yīng)的異常處理流程:

圖片
即其會根據(jù)function id的值,分別執(zhí)行相應(yīng)的電源管理服務(wù),如啟動cpu時會調(diào)用psci_cpu_on函數(shù),重啟系統(tǒng)時會調(diào)用psci_system_rest函數(shù)等。

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

    關(guān)注

    3

    文章

    1382

    瀏覽量

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

    關(guān)注

    68

    文章

    10901

    瀏覽量

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

    關(guān)注

    0

    文章

    76

    瀏覽量

    19704
收藏 人收藏

    評論

    相關(guān)推薦

    可編程CPU重置地址,單CPU冷啟動配置

    如果將BL31用作TF-A入口點而不是BL1,則上圖仍然相關(guān),因為在這種情況下,所有這些操作都將發(fā)生在BL31。有關(guān)詳細(xì)信息,請參閱第6節(jié)“使用B
    發(fā)表于 12-02 11:00 ?1157次閱讀
    可編程CPU重置地址,單CPU冷啟動配置

    基于armv8架構(gòu)對u-boot進(jìn)行啟動流程分析(一)

    Linux kernel;啟動BL1,BL2,BL31BL32則是一個完整的ATF信任鏈建立流程(ARM Trusted Firmware),像常見的
    發(fā)表于 05-23 15:59

    如何讓BL31的調(diào)試信息輸出到S32R45的uart?

    我用“DEBUG=1”構(gòu)建 ATF 映像,uart 可以顯示 BL2 的調(diào)試信息,但沒有顯示 BL31 的調(diào)試信息。 為什么?BL2到BL31,是不是又設(shè)置了控制臺?如何讓
    發(fā)表于 04-11 08:20

    BL31未在Kirkstone上加載的原因?

    imx8mm_evk.h 和 imx8mm_evk.c 的設(shè)置時,SPL 打印 do uart3,但它應(yīng)該顯示:注意:BL31:v2.6(發(fā)布
    發(fā)表于 04-19 11:00

    ATFbl2的啟動

    bl2_entrypoint函數(shù)最終會觸發(fā)安全監(jiān)控模式調(diào)用(smc) ,通知bl1將CPU的控制權(quán)限轉(zhuǎn)交給bl31,然后執(zhí)行bl31。 該函數(shù)會執(zhí)行 ? 平臺相關(guān)的初始化、 ? 獲取
    的頭像 發(fā)表于 11-07 15:59 ?876次閱讀
    ATF<b class='flag-5'>中</b><b class='flag-5'>bl</b>2的啟動

    ATF如何用函數(shù)完成bl2的啟動

    bl31加載到內(nèi)存后會觸發(fā)安全監(jiān)控模式調(diào)用(smc)將CPU權(quán)限轉(zhuǎn)交給bl31。 該函數(shù)的主要內(nèi)容和相關(guān)注釋如下: ** void bl2_main ( void
    的頭像 發(fā)表于 11-07 16:04 ?748次閱讀

    ATFbl2到bl31的跳轉(zhuǎn)介紹

    bl2到bl31的跳轉(zhuǎn) 在bl2_main函數(shù)中最終會調(diào)用smc(BL1_SMC_RUN_IMAGE,(unsigned long)next_bl
    的頭像 發(fā)表于 11-07 16:09 ?1019次閱讀

    ATFbl31的啟動

    bl2觸發(fā)安全監(jiān)控模式調(diào)用后會跳轉(zhuǎn)到bl31執(zhí)行,bl31最主要的作用是 建立EL3運行態(tài)的軟件配置 , 在該階段會完成各種類型的安全
    的頭像 發(fā)表于 11-07 16:13 ?1266次閱讀
    ATF<b class='flag-5'>中</b><b class='flag-5'>bl31</b>的啟動

    ATFbl31函數(shù)介紹與使用

    runtime_svc_init函數(shù) 該函數(shù)主要用來建立安全監(jiān)控模式調(diào)用處理函數(shù)的索引表,并執(zhí)行EL3提供的服務(wù)項的初始化操作,獲取TEE OS的入口地址并賦值給bl32_init變量,以備啟動
    的頭像 發(fā)表于 11-07 16:23 ?702次閱讀

    Bl31斷處理流程概述

    aarch64架構(gòu),在每個異常等級下都包含了四張異常等級表。 bl31的異常向量表定義在runtime_exceptions.S,其與下圖的定義一致
    的頭像 發(fā)表于 11-07 17:43 ?680次閱讀
    <b class='flag-5'>Bl31</b><b class='flag-5'>中</b>斷處理流程概述

    psci接口規(guī)范介紹

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

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

    "; ( 2 ) } (1)用于指定psci版本 (2)根據(jù)該pscibl31處理還是hypervisor處理,可以指定其對應(yīng)的陷入方式。若由bl31處理為smc,若由hypervi
    的頭像 發(fā)表于 12-05 16:58 ?790次閱讀
    內(nèi)核<b class='flag-5'>中</b>的<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)devicetreecpu的enable-method設(shè)置為psci時,該cpu
    的頭像 發(fā)表于 12-05 17:25 ?755次閱讀

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

    處理函數(shù)根據(jù)funid來決定服務(wù),可以看到PSCI_CPU_ON_AARCH64為0xc4000003,這正是設(shè)備樹填寫的cpu_on屬性的id,會委托psci_cpu_on來執(zhí)行核上電任務(wù)。下面
    的頭像 發(fā)表于 12-05 18:08 ?974次閱讀

    armv8 u-boot的啟動介紹

    先看arm官網(wǎng)提供的一張圖: 上圖詳細(xì)概括了arm官方推薦的armv8的啟動層次結(jié)構(gòu): 官方將啟動分為了BL1,BL2,BL31BL32,BL
    的頭像 發(fā)表于 12-07 11:09 ?2401次閱讀
    armv8 u-boot的啟動<b class='flag-5'>介紹</b>
    主站蜘蛛池模板: 少女10声大哥喊退色狼 | 色欲国产麻豆精品AV免费 | 精品久久免费观看 | 古代荡女丫鬟高H辣文纯肉 姑娘视频日本在线播放 | 国产色婷亚洲99精品AV | 亚洲精品成人久久久影院 | 亚洲色欲色欲WWW在线成人网 | 亚洲精品视频区 | 99久久伊人一区二区yy5o99 | 人体内射精一区二区三区 | 伦理片92伦理午夜 | aa级毛片毛片免费观看久 | 亚洲九九视频 | 偷柏自拍亚洲综合在线 | 一区二区三区无码被窝影院 | 亚洲精品国产精麻豆久久99 | 国产亚洲欧美日韩综合综合二区 | 亚洲精品乱码久久久久久直播 | 日韩精品亚洲专区在线电影不卡 | 大中国免费视频大全在线观看 | 亚洲性夜色噜噜噜网站2258KK | 亚洲无线码一区在线观看 | 亚洲免费va在线观看 | 久久综合色一综合色88中文 | 2021国产精品视频 | 久九九精品免费视频 | 131美女爱做视频午夜剧场 | 2021久久精品免费观看 | 国产一区二区三区内射高清 | 日本边添边摸边做边爱边 | caoporn超碰视频 | 国产亚洲精品久久久久久线投注 | 最近中文字幕完整版高清 | 亚洲视频中文 | 40分钟超爽大片黄 | 成在线人免费 | 午夜福利体检 | 日本69xxxx | 91精品专区 | 狠狠色香婷婷久久亚洲精品 | 2021久久精品免费观看 |