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

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

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

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

ATF中bl32的啟動(dòng)方法

麥辣雞腿堡 ? 來(lái)源:TrustZone ? 作者:TrustZone ? 2023-11-07 16:32 ? 次閱讀

ATF中bl32的啟動(dòng)

bl31中的runtime_svc_init函數(shù)會(huì)初始化OP-TEE對(duì)應(yīng)的服務(wù),通過(guò)調(diào)用該服務(wù)項(xiàng)的初始化函數(shù)來(lái)完成OP-TEE的啟動(dòng)。對(duì)于OP-TEE的服務(wù)項(xiàng)會(huì)通過(guò)DECLARE_RT_SVC宏在編譯時(shí)被存放到rt_svc_des段中。

該段中的init成員會(huì)被初始化成opteed_setup函數(shù),由此開(kāi)始進(jìn)入到OP-TEE OS的啟動(dòng)。整個(gè)流程如圖下所示。

圖片
bl32執(zhí)行流程

1. opteed_setup函數(shù)

該函數(shù)是ATF啟動(dòng)OP-TEE的入口函數(shù),該函數(shù)會(huì)

  • ? 查找到OP-TEE鏡像的信息、
  • ? 檢查OP-TEE的入口函數(shù)指針是否有效、
  • ? 設(shè)置OP-TEE運(yùn)行的上下文,
  • ? 然后調(diào)用OP-TEE的入口函數(shù),
  • ? 開(kāi)始執(zhí)行OP-TEE的啟動(dòng)。

該函數(shù)的內(nèi)容如下:

int32_t opteed_setup(void)

        {

            entry_point_info_t *optee_ep_info;

            uint32_t linear_id;

            linear_id = plat_my_core_pos();  //獲取當(dāng)前core的ID

            /* 獲取bl32(OP-TEE)鏡像的描述信息 */

            optee_ep_info = bl31_plat_get_next_image_ep_info(SECURE);

            if (! optee_ep_info) {

                WARN("No OPTEE provided by BL2 boot loader, Booting device"

                    " without OPTEE initialization. SMC's destined for OPTEE"

                    " will return SMC_UNKn");

                return 1;

            }

            /* 檢查OP-TEE鏡像指定的PC地址是否有效 */

            if (! optee_ep_info- >pc)

                return 1;

            opteed_rw = OPTEE_AARCH64;

            /* 初始化OP-TEE運(yùn)行時(shí)CPU的smc上下文 */

            opteed_init_optee_ep_state(optee_ep_info,

                        opteed_rw,

                        optee_ep_info- >pc,

                        &opteed_sp_context[linear_id]);

            /* 使用opteed_init初始化bl32_init變量,以備在bl31中調(diào)用 */

            bl31_register_bl32_init(&opteed_init);

            return 0;

        }

2. opteed_init函數(shù)

該函數(shù)的地址會(huì)被賦值給bl32_init變量,在bl31_main函數(shù)中會(huì)被調(diào)用,主要用來(lái)完成啟動(dòng)OP-TEE的設(shè)置。該函數(shù)內(nèi)容如下:

static int32_t opteed_init(void)

        {

            uint32_t linear_id = plat_my_core_pos();

            //獲取core的執(zhí)行上下文變量

            optee_context_t *optee_ctx = &opteed_sp_context[linear_id];

            entry_point_info_t *optee_entry_point;

            uint64_t rc;

            /* 獲取OPTEE image的信息 */

            optee_entry_point = bl31_plat_get_next_image_ep_info(SECURE);

            assert(optee_entry_point);

            /* 使用optee image的entry point信息初始化CPU的上下文 */

            cm_init_my_context(optee_entry_point);

            /* 開(kāi)始設(shè)置CPU參數(shù),最終會(huì)調(diào)用opteed_enter_sp函數(shù)執(zhí)行跳轉(zhuǎn)到OP-TEE的操作 */

            rc = opteed_synchronous_sp_entry(optee_ctx);

            assert(rc ! = 0);

            return rc;

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

    關(guān)注

    3

    文章

    4338

    瀏覽量

    62739
  • 編譯
    +關(guān)注

    關(guān)注

    0

    文章

    659

    瀏覽量

    32903
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    關(guān)于TF-A(ATF)固件的基本知識(shí)詳解

    。ATF定義的啟動(dòng)模型ATF將鏡像進(jìn)行了劃分,BL1 BL2屬于啟動(dòng)引導(dǎo)鏡像,
    發(fā)表于 06-15 16:57

    如何使用STM32MP157F-EV1來(lái)嘗試實(shí)施安全啟動(dòng)鏈?

    你好ST社區(qū), 對(duì)于一個(gè)項(xiàng)目,我們使用 STM32MP157F-EV1 來(lái)嘗試實(shí)施安全啟動(dòng)鏈。為此,我們必須生成一個(gè)包含所有必需證書(shū)的 FIP 包。 在ST wiki中提出了兩種方法: 一個(gè)
    發(fā)表于 12-27 07:56

    如何在BL2配置DDR init?

    :2022 年 10 月 25 日 18:55:21錯(cuò)誤:BL2:加載圖像失?。?2)身份驗(yàn)證失敗我認(rèn)為我們必須更改 atf\plat\nxp\soc-ls1046\ls1046ardb\ddr_init.c 的配置,但我不知
    發(fā)表于 03-24 08:50

    S32g如何在ATF啟用安全啟動(dòng)

    /cortexa53-wrs-linux/atf-s32g/2.5-r0/build/batman/release /bl2/bl2_main.o:在函數(shù)“bl2_main”
    發(fā)表于 04-03 07:12

    用于1028A系列的Yocto Layerscape安全啟動(dòng)是怎么操作的?

    我目前正在嘗試熟悉 Layerscape 處理器上的安全啟動(dòng)實(shí)現(xiàn)。最近幾天我一直在閱讀文檔但我仍然不清楚一切是如何工作的。 據(jù)我了解,這些是啟動(dòng)階段: BL1:BootROM 代碼 BL
    發(fā)表于 05-31 08:19

    Yocto LS1028定制板用BL2,為了使DDR工作是否需要編輯ddr_init.c的任何其他函數(shù)/值或ATF的任何其他文件??

    的下一步是創(chuàng)建一個(gè)自定義 BL2,用于啟動(dòng)基于 kirkstone 版本的 yocto 編譯。 為此,我修補(bǔ)了 atf repo 的 ddr_init.c 文件,這個(gè)“ddr_cfg_regs”結(jié)構(gòu)
    發(fā)表于 06-01 09:03

    TF-A的不同啟動(dòng)階段有哪些

    不同的啟動(dòng)階段,按照鏈?zhǔn)浇Y(jié)構(gòu)依次啟動(dòng),ATF 代碼啟動(dòng)流程如圖所示: 當(dāng)芯片復(fù)位以后首先運(yùn)行 bl1 代碼,
    的頭像 發(fā)表于 09-11 16:54 ?950次閱讀
    TF-A的不同<b class='flag-5'>啟動(dòng)</b>階段有哪些

    ATF啟動(dòng)流程介紹

    一、BL32(TEE OS)的準(zhǔn)備 ATF啟動(dòng)流程 ATF流程 ATF啟動(dòng)實(shí)現(xiàn)分為5個(gè)步驟:
    的頭像 發(fā)表于 11-02 17:51 ?1286次閱讀
    <b class='flag-5'>ATF</b><b class='flag-5'>啟動(dòng)</b>流程介紹

    啟動(dòng)(Cold boot)流程及階段劃分

    輸出BL1、BL2、BL31,提供BL32BL33接口。 (我想提供的接口就是BL32
    的頭像 發(fā)表于 11-07 15:17 ?2463次閱讀
    冷<b class='flag-5'>啟動(dòng)</b>(Cold boot)流程及階段劃分

    ATF啟動(dòng)過(guò)程介紹

    ATF啟動(dòng)過(guò)程根據(jù)ARMv8的運(yùn)行模式(AArch32/AArch64)會(huì)有所不同,但基本一致。 在AArch32是不會(huì)去加載bl31而是將EL3或者M(jìn)onitor模式的運(yùn)行代碼保
    的頭像 發(fā)表于 11-07 15:48 ?1310次閱讀
    <b class='flag-5'>ATF</b>的<b class='flag-5'>啟動(dòng)</b>過(guò)程介紹

    code層面 ATFbl1的啟動(dòng)

    系統(tǒng)上電之后首先會(huì)運(yùn)行ChipRom,之后會(huì)跳轉(zhuǎn)到ATFbl1繼續(xù)執(zhí)行。bl1主要初始化CPU、設(shè)定異常向量、將bl2的鏡像加載到安全R
    的頭像 發(fā)表于 11-07 15:53 ?1111次閱讀
    code層面 <b class='flag-5'>ATF</b><b class='flag-5'>中</b><b class='flag-5'>bl</b>1的<b class='flag-5'>啟動(dòng)</b>

    ATFbl2的啟動(dòng)

    bl2鏡像將為后續(xù)鏡像的加載執(zhí)行相關(guān)的初始化操作,主要是內(nèi)存、MMU、串口以及EL3軟件運(yùn)行環(huán)境的設(shè)置,并且加載bl3x的鏡像到內(nèi)存。 通過(guò)查看bl2.ld.S文件可發(fā)現(xiàn),
    的頭像 發(fā)表于 11-07 15:59 ?851次閱讀
    <b class='flag-5'>ATF</b><b class='flag-5'>中</b><b class='flag-5'>bl</b>2的<b class='flag-5'>啟動(dòng)</b>

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

    bl31加載到內(nèi)存后會(huì)觸發(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 ?730次閱讀

    ATFbl31的啟動(dòng)

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

    armv8 u-boot的啟動(dòng)介紹

    先看arm官網(wǎng)提供的一張圖: 上圖詳細(xì)概括了arm官方推薦的armv8的啟動(dòng)層次結(jié)構(gòu): 官方將啟動(dòng)分為了BL1,BL2,BL31,
    的頭像 發(fā)表于 12-07 11:09 ?2297次閱讀
    armv8 u-boot的<b class='flag-5'>啟動(dòng)</b>介紹
    主站蜘蛛池模板: 羞羞在线观看| 别插我B嗯啊视频免费| 国产亚洲欧美高清在线| 午夜无码国产理论在线| 国产亚洲视频在线观看| 一个人的视频在线观看免费观看| 久久中文骚妇内射| yellow视频免费观看| 无套内射纹身女视频| 精品久久久久久久久免费影院| 最近韩国日本免费观看mv免费版| 日本女人bb| 精品麻豆一卡2卡三卡4卡乱码| 91精品乱码一区二区三区| 日本枯瘦娇小| 花蝴蝶在线观看免费中文版高清 | 巨污全肉np一女多男| write as 跳蛋| 亚洲精品AV一区午夜福利| 蜜桃精品成人影片| 国产精品高清在线观看93| 中文字幕久久熟女人妻AV免费| 秋霞电影网伦大理电影在线观看 | 日日噜噜噜噜夜夜爽亚洲精品| 韩国女人高潮嗷嗷叫视频| ae58老司机福利| 亚洲区视频| 日日久久狠狠8888偷偷色| 久久青青无码AV亚洲黑人| 多男同时插一个女人8p| 在线日本v二区不卡| 特黄大片aaaaa毛片| 毛片TV网站无套内射TV网站| 高清国产免费观看视频在线 | 亚洲在线成色综合网站| 人人碰国产免费线观看| 久久久久久久久女黄9999| 国产高清免费观看| a免费视频| 长泽梓黑人初解禁bdd07| 午夜成a人片在线观看|