精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

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

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

3天內不再提示

code層面 ATF中bl1的啟動

麥辣雞腿堡 ? 來源:TrustZone ? 作者:TrustZone ? 2023-11-07 15:53 ? 次閱讀

系統上電之后首先會運行ChipRom,之后會跳轉到ATF的bl1中繼續執行。bl1主要初始化CPU、設定異常向量、將bl2的鏡像加載到安全RAM中,然后跳轉到bl2中開始運行。
bl1的主要代碼存放在bl1目錄中,bl1的鏈接文件是bl1/bl1.ld.s文件,該文件指定bl1的入口函數是bl1_entrypoint。

AArch32的該函數定義在bl1/aarch32/bl1_entrypoint.S文件中,AArch64的該函數定義在bl1/aarch64/bl1_entrypoint. S文件中。bl1的執行流程如圖所示。

圖片
bl1執行流程

bl1_entrypoint函數說明

bl1_entrypoint函數主要完成ARMv8架構中EL3執行環境的基礎初始化、設定異常向量表、加載bl2的鏡像文件到內存中并進行跳轉到bl2繼續執行。該函數的內容如下:

func bl1_entrypoint

        /*  EL3級別運行環境的初始化,該函數定義在include/common/aarch64/el3_common_macros.S文

        件中*/

            el3_entrypoint_common           

                _set_endian=1               

                _warm_boot_mailbox=! PROGRAMMABLE_RESET_ADDRESS           

                _secondary_cold_boot=! COLD_BOOT_SINGLE_CPU                

                _init_memory=1              

                _init_c_runtime=1           

                _exception_vectors=bl1_exceptions

            bl  bl1_early_platform_setup  //調用bl1_early_platform_setup函數完成底層初始化

            bl  bl1_plat_arch_setup        //調用bl1_plat_arch_setup完成平臺初始化

            bl  bl1_main                     //調用bl1_main函數,初始化驗證模塊,加載下一階段的

            image到RAM中

            b   el3_exit                     //調用el3_exit函數,跳轉到下一個image(bl2)

        endfunc bl1_entrypoint

el3_entrypoint_common函數執行時帶入的參數包括大小端標識、屬于冷啟動還是重啟操作、是否是從核的啟動、是否需要進行內存初始化、是否需要建立C語言運行環境(棧初始化)、異常向量表地址注冊等。

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

    關注

    134

    文章

    9046

    瀏覽量

    366819
  • 函數
    +關注

    關注

    3

    文章

    4306

    瀏覽量

    62431
  • Code
    +關注

    關注

    0

    文章

    68

    瀏覽量

    15371
收藏 人收藏

    評論

    相關推薦

    【NanoPi M2試用體驗】+SD卡啟動BL1拷貝BL2到DDR2運行

    裸機程序SD卡啟動BL1拷貝BL2到DDR2運行;代碼的拷貝會用到一些指針函數,第一個參數為SD卡存放BL2的開始BLOCK,第二個參數
    發表于 06-11 17:03

    自制s5pv210啟動uboot的BL1代碼

    自制s5pv210啟動uboot的BL1代碼
    發表于 02-10 23:21

    關于iTop4412 iROM階段啟動流程簡析

    BL1讀取啟動模式寄存器判斷是從哪個設備上啟動的,然后從這個設備讀取BL2到SRAM里面,然后檢查SRAM
    發表于 04-21 11:45

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

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

    請問一下RK3399芯片啟動需要像三星一樣的bl1

      請問一下RK3399芯片啟動需要像三星一樣的bl1嗎?求大神解答
    發表于 07-11 09:32

    S32g如何在ATF啟用安全啟動

    /cortexa53-wrs-linux/atf-s32g/2.5-r0/build/batman/release/bl2/bl2 .elf] 錯誤 1 原來的 BSP 版本似乎不支持
    發表于 04-03 07:12

    ls1046a如何查看BL1 LOG?

    BL1 嵌入 硬件(BootROM + PBLcommands),平臺未初始化。它無法查看日志。
    發表于 04-10 07:36

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

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

    ATF啟動流程介紹

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

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

    restart--冷啟動 reset--熱啟動 ATF啟動實現分為5個步驟: ? BL1 - AP Trusted ROM,一般為Boot
    的頭像 發表于 11-07 15:17 ?2126次閱讀
    冷<b class='flag-5'>啟動</b>(Cold boot)流程及階段劃分

    ATF啟動過程介紹

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

    ATFbl2的啟動

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

    ATFbl2到bl31的跳轉介紹

    數之后,系統將跳轉到中斷處理函數(smc_handler64)繼續執行。該函數定義在bl1/aarch64/bl1_exception.S文件。 該函數最終通過判定安全監控模式調用的類型(在
    的頭像 發表于 11-07 16:09 ?880次閱讀

    ATFbl32的啟動方法

    ATFbl32的啟動 bl31的runtime_svc_init函數會初始化OP-TEE對應
    的頭像 發表于 11-07 16:32 ?599次閱讀
    <b class='flag-5'>ATF</b><b class='flag-5'>中</b><b class='flag-5'>bl</b>32的<b class='flag-5'>啟動</b>方法

    uboot的啟動BL1BL2兩個階段介紹

    之前對這個uboot的源碼了解有些許遺忘。最近做AVB校驗,需要uboot到kernel的這個過程。這里再復習一下。 與大多數BootLoader一樣,uboot的啟動過程分為BL1BL2兩個階段
    的頭像 發表于 12-04 17:53 ?2857次閱讀