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

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

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

3天內不再提示

ATF中bl32的啟動方法

麥辣雞腿堡 ? 來源:TrustZone ? 作者:TrustZone ? 2023-11-07 16:32 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

ATF中bl32的啟動

bl31中的runtime_svc_init函數會初始化OP-TEE對應的服務,通過調用該服務項的初始化函數來完成OP-TEE的啟動。對于OP-TEE的服務項會通過DECLARE_RT_SVC宏在編譯時被存放到rt_svc_des段中。

該段中的init成員會被初始化成opteed_setup函數,由此開始進入到OP-TEE OS的啟動。整個流程如圖下所示。

圖片
bl32執行流程

1. opteed_setup函數

該函數是ATF啟動OP-TEE的入口函數,該函數會

  • ? 查找到OP-TEE鏡像的信息、
  • ? 檢查OP-TEE的入口函數指針是否有效、
  • ? 設置OP-TEE運行的上下文,
  • ? 然后調用OP-TEE的入口函數,
  • ? 開始執行OP-TEE的啟動。

該函數的內容如下:

int32_t opteed_setup(void)

        {

            entry_point_info_t *optee_ep_info;

            uint32_t linear_id;

            linear_id = plat_my_core_pos();  //獲取當前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運行時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中調用 */

            bl31_register_bl32_init(&opteed_init);

            return 0;

        }

2. opteed_init函數

該函數的地址會被賦值給bl32_init變量,在bl31_main函數中會被調用,主要用來完成啟動OP-TEE的設置。該函數內容如下:

static int32_t opteed_init(void)

        {

            uint32_t linear_id = plat_my_core_pos();

            //獲取core的執行上下文變量

            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);

            /* 開始設置CPU參數,最終會調用opteed_enter_sp函數執行跳轉到OP-TEE的操作 */

            rc = opteed_synchronous_sp_entry(optee_ctx);

            assert(rc ! = 0);

            return rc;

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

    關注

    3

    文章

    4379

    瀏覽量

    64735
  • 編譯
    +關注

    關注

    0

    文章

    678

    瀏覽量

    33939
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    關于TF-A(ATF)固件的基本知識詳解

    ATF定義的啟動模型ATF將鏡像進行了劃分,BL1 BL2屬于啟動引導鏡像,
    發表于 06-15 16:57

    如何使用STM32MP157F-EV1來嘗試實施安全啟動鏈?

    你好ST社區, 對于一個項目,我們使用 STM32MP157F-EV1 來嘗試實施安全啟動鏈。為此,我們必須生成一個包含所有必需證書的 FIP 包。 在ST wiki中提出了兩種方法: 一個
    發表于 12-27 07:56

    如何在BL2配置DDR init?

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

    S32g如何在ATF啟用安全啟動

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

    用于1028A系列的Yocto Layerscape安全啟動是怎么操作的?

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

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

    的下一步是創建一個自定義 BL2,用于啟動基于 kirkstone 版本的 yocto 編譯。 為此,我修補了 atf repo 的 ddr_init.c 文件,這個“ddr_cfg_regs”結構
    發表于 06-01 09:03

    TF-A的不同啟動階段有哪些

    不同的啟動階段,按照鏈式結構依次啟動ATF 代碼啟動流程如圖所示: 當芯片復位以后首先運行 bl1 代碼,
    的頭像 發表于 09-11 16:54 ?1398次閱讀
    TF-A的不同<b class='flag-5'>啟動</b>階段有哪些

    ATF啟動流程介紹

    一、BL32(TEE OS)的準備 ATF啟動流程 ATF流程 ATF啟動實現分為5個步驟:
    的頭像 發表于 11-02 17:51 ?1703次閱讀
    <b class='flag-5'>ATF</b><b class='flag-5'>啟動</b>流程介紹

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

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

    ATF啟動過程介紹

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

    code層面 ATFbl1的啟動

    系統上電之后首先會運行ChipRom,之后會跳轉到ATFbl1繼續執行。bl1主要初始化CPU、設定異常向量、將bl2的鏡像加載到安全R
    的頭像 發表于 11-07 15:53 ?1640次閱讀
    code層面 <b class='flag-5'>ATF</b><b class='flag-5'>中</b><b class='flag-5'>bl</b>1的<b class='flag-5'>啟動</b>

    ATFbl2的啟動

    bl2鏡像將為后續鏡像的加載執行相關的初始化操作,主要是內存、MMU、串口以及EL3軟件運行環境的設置,并且加載bl3x的鏡像到內存。 通過查看bl2.ld.S文件可發現,
    的頭像 發表于 11-07 15:59 ?1238次閱讀
    <b class='flag-5'>ATF</b><b class='flag-5'>中</b><b class='flag-5'>bl</b>2的<b class='flag-5'>啟動</b>

    ATF如何用函數完成bl2的啟動

    bl31加載到內存后會觸發安全監控模式調用(smc)將CPU權限轉交給bl31。 該函數的主要內容和相關注釋如下: ** void bl2_main ( void
    的頭像 發表于 11-07 16:04 ?1098次閱讀

    ATFbl31的啟動

    bl2觸發安全監控模式調用后會跳轉到bl31執行,bl31最主要的作用是 建立EL3運行態的軟件配置 , 在該階段會完成各種類型的安全
    的頭像 發表于 11-07 16:13 ?1868次閱讀
    <b class='flag-5'>ATF</b><b class='flag-5'>中</b><b class='flag-5'>bl</b>31的<b class='flag-5'>啟動</b>

    armv8 u-boot的啟動介紹

    先看arm官網提供的一張圖: 上圖詳細概括了arm官方推薦的armv8的啟動層次結構: 官方將啟動分為了BL1,BL2,BL31,
    的頭像 發表于 12-07 11:09 ?3356次閱讀
    armv8 u-boot的<b class='flag-5'>啟動</b>介紹
    主站蜘蛛池模板: 伊人网综合视频 | 手机在线亚洲 | 天天干天天色天天 | 俄罗斯欧美色黄激情 | 久久婷婷激情综合色综合也去 | 天天射天天操天天 | 天天透天天操 | 免费高清在线视频色yeye | 日韩中文电影 | 91噜噜噜 | 天天做夜夜做久久做狠狠 | 狠狠狠色丁香婷婷综合久久88 | 午夜黄色福利 | 天天久久综合 | 狠狠色丁香久久综合网 | 黄色在线视频免费 | 欧美黄网站 | 欧美xx高清| 欧美亚洲综合图区在线 | 午夜欧美精品久久久久久久 | 天堂在线视频 | 欧美一区二区三区精品 | 热门国产xvideos中文 | 1024你懂的国产在线播放 | 亚洲国产精品嫩草影院 | 欧美成人免费 | 国产精品成人aaaaa网站 | 天天操天天操天天操香蕉 | 午夜精品久视频在线观看 | 国产一区高清 | 国产精品毛片久久久久久久 | 2017av在线| 日韩免费一级片 | 五月亭亭激情五月 | 宅宅午夜亚洲精品 | 三级色图| 激情五月婷婷久久 | 国产人成高清视频观看 | 色就操 | 俺要操| 欧美一卡二卡科技有限公司 |