FSBL-->OpenSBI-->u-boot-->Linux ZSBL和FSBL通常固化在芯片內部,不在本文討論范圍,本文關注OpenSBI。 可以看到,在啟動uboot之前,需要先啟動OpenSBI,然后再執行uboot/linux。而OpenSBI提供了不同的固件類型來處理不同平臺早期啟動階段的差異。 OpenSBI簡介 OpenSBI為特定平臺提供固件構建,支持不同類型的固件來處理不同平臺早期啟動階段之間的差異。所有固件將根據平" />

女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

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

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

3天內不再提示

OpenSBI固件類型介紹

麥辣雞腿堡 ? 來源:嵌入式Linux充電站 ? 作者:Vincent ? 2023-10-08 14:11 ? 次閱讀

OpenSBI固件類型

在介紹OpenSBI固件類型前,我們需要知道一點RISC-V Linux的啟動過程:

圖片

啟動流程:ZSBL-->FSBL-->OpenSBI-->u-boot-->Linux

ZSBL和FSBL通常固化在芯片內部,不在本文討論范圍,本文關注OpenSBI。

可以看到,在啟動uboot之前,需要先啟動OpenSBI,然后再執行uboot/linux。而OpenSBI提供了不同的固件類型來處理不同平臺早期啟動階段的差異。

OpenSBI簡介

OpenSBI為特定平臺提供固件構建,支持不同類型的固件來處理不同平臺早期啟動階段之間的差異。所有固件將根據平臺特定代碼以及OpenSBI通用庫代碼執行平臺硬件的相同初始化過程。支持的固件類型在如何處理平臺早期啟動階段傳遞的參數以及如何處理和執行固件之后的啟動階段方面會有所不同。

上一個引導階段將通過RISC-V CPU的以下寄存器傳遞信息:

  • hart id通過a0寄存器傳遞
  • 通過 a1 寄存器在內存中存儲設備樹 blob 地址。地址必須與 8 個字節對齊。

OpenSBI 目前支持三種不同類型的固件

  • fw_dynamic固件:帶有動態信息的固件
  • fw_jump固件:指定下一引導階段的跳轉地址,不直接包含下一階段的二進制代碼
  • fw_payload固件:包含下一引導階段有效負載的二進制代碼,通常這個有效負載是bootloader或者操作系統鏡像
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 寄存器
    +關注

    關注

    31

    文章

    5421

    瀏覽量

    123324
  • 內核
    +關注

    關注

    3

    文章

    1410

    瀏覽量

    41095
  • Linux
    +關注

    關注

    87

    文章

    11459

    瀏覽量

    212789
  • 固件
    +關注

    關注

    10

    文章

    564

    瀏覽量

    23685
  • RISC
    +關注

    關注

    6

    文章

    479

    瀏覽量

    84698
收藏 人收藏

    評論

    相關推薦
    熱點推薦

    編程器固件和路由器固件什么不同

    本文開始闡述了固件的概念,其次介紹固件的工作原理與固件的技術性能,最后詳細的介紹了編程器固件
    的頭像 發表于 04-09 09:38 ?2.6w次閱讀

    Firefly-RK3399 Buildroot 固件介紹

    編譯 Buildroot 固件 本章介紹 Buildroot 固件的編譯使用。
    的頭像 發表于 11-23 10:58 ?5581次閱讀
    Firefly-RK3399 Buildroot <b class='flag-5'>固件</b><b class='flag-5'>介紹</b>

    Firefly-RK3288編譯 固件介紹

    編譯 Buildroot 固件 本章介紹 Buildroot 固件的編譯使用。
    的頭像 發表于 11-27 08:53 ?3718次閱讀
    Firefly-RK3288編譯 <b class='flag-5'>固件</b><b class='flag-5'>介紹</b>

    Firefly-RK3288Android 升級固件介紹

    本文介紹了如何將主機上的固件文件,通過 Micro USB OTG 線,燒錄到開發板的閃存中。升級時,需要根據主機操作系統和固件類型來選擇合適的升級方式。
    的頭像 發表于 11-27 09:46 ?6906次閱讀
    Firefly-RK3288Android 升級<b class='flag-5'>固件</b><b class='flag-5'>介紹</b>

    fireflyFace-RK3399主板升級固件介紹

    本文介紹了如何將主機上的固件文件   1.通過USB數據線,燒錄到開發板的閃存中。升級時,需要根據主機操作系統和固件類型來選擇合適的升級方式。   2.生成U盤升級的
    的頭像 發表于 12-04 10:30 ?5095次閱讀

    fireflyAIO-3399C主板編譯Buildroot固件介紹

    編譯 Buildroot 固件   本章介紹 Buildroot 固件的編譯使用。
    的頭像 發表于 12-13 10:39 ?2249次閱讀

    fireflyAIO-3399C主板升級固件介紹

    本文介紹了如何將主機上的固件文件,通過Type-C數據線,燒錄到開發板的閃存中。升級時,需要根據主機操作系統和固件類型來選擇合適的升級方式。
    的頭像 發表于 12-13 10:46 ?2633次閱讀

    fireflyAIO-3288J-Android 升級固件介紹

    本文以下內容僅適用于android系統,若需要升級Linux系統,參考Linux 升級固件 本文介紹了如何將主機上的固件文件,通過 USB 雙公頭數據線,燒錄到開發板的閃存中。升級時,需要根據主機操作系統和
    的頭像 發表于 12-26 15:25 ?2279次閱讀
    fireflyAIO-3288J-Android 升級<b class='flag-5'>固件</b><b class='flag-5'>介紹</b>

    opensbi下的riscv64裸機系列編程1(串口輸出)

    opensbi下的riscv64裸機系列編程1(串口輸出) 1.說明 2.opensbi的編譯 3.基本環境的準備 3.1 準備qemu 3.2 準備交叉編譯工具鏈 4.工程完善 5.封裝的sbi
    的頭像 發表于 12-31 10:56 ?9907次閱讀

    NodeMCU學習筆記(1)--- 硬件介紹固件制作、燒錄

    NodeMCU學習筆記(1)— 硬件介紹固件制作、燒錄提示:作者使用 ESP8266 進行開發學習。文章目錄NodeMCU學習筆記(1)--- 硬件介紹固件制作、燒錄前言一、硬件
    發表于 11-01 16:25 ?18次下載
    NodeMCU學習筆記(1)--- 硬件<b class='flag-5'>介紹</b>、<b class='flag-5'>固件</b>制作、燒錄

    OpenSBI RISC-V開源Supervisor二進制接口

    opensbi.zip
    發表于 04-25 10:25 ?1次下載
    <b class='flag-5'>OpenSBI</b> RISC-V開源Supervisor二進制接口

    螺紋緊固件中螺絲和螺栓的類型

    本文將直觀地介紹一些不同類型的螺絲和螺栓,重點關注不同的螺絲頭、起子類型和軸承面。“軸承面”,也稱螺絲頭下側,是緊固件頭與器件接觸的地方。為提高抗張強度;有些螺栓、螺絲在頭部下方設置了
    的頭像 發表于 05-21 15:57 ?3513次閱讀

    OpenSBI支持哪些固件

    FW_DYNAMIC固件 FW_DYNAMIC固件在運行時從上一個啟動階段獲取有關下一個啟動階段的信息,例如引導加載程序或操作系統內核。 上一個啟動階段(即LOADER)通過 a2 寄存器將
    的頭像 發表于 10-08 14:15 ?764次閱讀

    電阻的封裝類型介紹

    電阻的封裝類型介紹
    的頭像 發表于 12-29 10:18 ?4623次閱讀

    基于OpenSBI的linux nommu實現

    Linux內核6.10提供了對沒有mmu的riscv處理器工作在S模式下的內核的支持,本文介紹基于OpenSBI的linuxnommu的實現,供大家參考。1、OpenSBI介紹SBI
    的頭像 發表于 02-08 13:43 ?525次閱讀
    基于<b class='flag-5'>OpenSBI</b>的linux nommu實現