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

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

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

3天內不再提示

ATF中bl2的啟動

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

掃碼添加小助手

加入工程師交流群

bl2鏡像將為后續鏡像的加載執行相關的初始化操作,主要是內存、MMU、串口以及EL3軟件運行環境的設置,并且加載bl3x的鏡像到內存中。

通過查看bl2.ld.S文件可發現,bl2鏡像的入口函數是bl2_entrypoint。該函數定義在bl2/aarch64/bl2_entrypoint.S文件中。該階段的執行流程如圖所示。

圖片
bl2執行流程

bl2_entrypoint函數

bl2_entrypoint函數最終會觸發安全監控模式調用(smc) ,通知bl1將CPU的控制權限轉交給bl31,然后執行bl31。

該函數會執行

  • ? 平臺相關的初始化、
  • ? 獲取存放bl3x鏡像文件的結構體變量、
  • ? 解析出bl31的入口地址等。

該函數的主要內容和注釋如下:

func bl2_entrypoint

            mov x20, x1                      //獲取可用安全內存的起始地址

            adr x0, early_exceptions       //設定異常向量

            msr vbar_el1, x0                //將異常向量表地址寫入到VBAR寄存器
            isb

            msr daifclr, #DAIF_ABT_BIT    //使能SErrot中斷

            /* 使能指令cache、棧頂地址以及數據訪問權限對齊檢查 */

            mov x1, #(SCTLR_I_BIT | SCTLR_A_BIT | SCTLR_SA_BIT)

            mrs x0, sctlr_el1

            orr x0, x0, x1

            msr sctlr_el1, x0

            isb

            /* 獲取有效的RW內存以備bl2使用 */

              adr x0, __RW_START__                   //獲取RW內存的起始地址

              adr x1, __RW_END__                     //獲取RW內存的末端地址

              sub x1, x1, x0                          //計算出RW內存的大小

              bl  inv_dcache_range                   //禁止數據cache

              ldr x0, =__BSS_START__                 //獲取bl2中BSS段的起始地址

              ldr x1, =__BSS_SIZE__                  //獲取bl2中BSS段的大小

              bl  zeromem                              //清空BSS段中的內容

          #if USE_COHERENT_MEM

              ldr x0, =__COHERENT_RAM_START__

              ldr x1, =__COHERENT_RAM_UNALIGNED_SIZE__

              bl  zeromem

          #endif

              bl  plat_set_my_stack                  //初始化bl2運行的棧

          #if STACK_PROTECTOR_ENABLED

              bl  update_stack_protector_canary    //更新棧保護區域數據

          #endif

              mov x0, x20

              bl  bl2_early_platform_setup          //設置平臺相關

              bl  bl2_plat_arch_setup                //設置架構相關

              bl  bl2_main      //跳轉到BL2的主要函數執行,從該函數中跳轉到bl31以及bl32或者bl33

              no_ret plat_panic_handler

          endfunc bl2_entrypoint

在bl2_entrypoint函數中, 完成bl2運行棧的初始化,配置完運行環境后 ,會調用 bl2_main函數來完成bl2對bl3x鏡像的加載 ,而CPU控制權限的轉移則是通過觸發安全監控模式調用(smc)來實現。

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

    關注

    134

    文章

    9347

    瀏覽量

    376967
  • 內存
    +關注

    關注

    8

    文章

    3118

    瀏覽量

    75204
  • 鏡像
    +關注

    關注

    0

    文章

    178

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

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

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

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

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

    如何在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

    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 ?1704次閱讀
    <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 ?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>

    ATF如何用函數完成bl2啟動

    bl2_main函數 bl2_main函數完成了bl2階段的主要操作,包括 ? 對下一個階段鏡像文件的解析、 ? 獲取入口地址和鏡像文件大小等信息, ? 然后對鏡像文件進行驗簽和加載操作。 ? 將
    的頭像 發表于 11-07 16:04 ?1098次閱讀

    ATFbl2bl31的跳轉介紹

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

    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>

    ATFbl32的啟動方法

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

    uboot的啟動BL1和BL2兩個階段介紹

    之前對這個uboot的源碼了解有些許遺忘。最近做AVB校驗,需要uboot到kernel的這個過程。這里再復習一下。 與大多數BootLoader一樣,uboot的啟動過程分為BL1和BL2兩個階段
    的頭像 發表于 12-04 17:53 ?3940次閱讀
    主站蜘蛛池模板: 亚洲欧美婷婷 | 天天操天天干天天摸 | 日本黄色一区 | 国模在线 | 中文日产国产精品久久 | 97久久草草超级碰碰碰 | gay超刺激污文 | 视频一区二区在线观看 | 天天干天天插 | 欧美日本一区二区 | aaaaaa精品视频在线观看 | 亚洲伦理中文字幕一区 | 四虎影视网站 | 福利盒子手机看片 | 国产精品青草久久久久福利99 | 欧美一级特黄视频 | 亚洲日本一区二区三区 | 四虎在线永久 | 好男人午夜www视频在线观看 | 高清一区高清二区视频 | 四虎影永久在线观看精品 | 免费欧美黄色 | 曰本三级香港三级人妇99视频 | 日本aaaa视频 | 手机看片福利盒子久久 | 在线欧美色 | 久久性 | 天堂中文在线观看 | 黄色网 在线播放 | www.毛片网站 | 免费黄色在线观看 | 一区二区三区在线观看免费 | 午夜在线视频免费 | 91夫妻视频 | 最近2018中文字幕2019视频 | 免费在线一区二区三区 | 天天干天天噜 | 久久99热精品免费观看无卡顿 | 亚洲视频www | 国产va免费精品 | 激情网站网址 |