吴忠躺衫网络科技有限公司

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

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

3天內不再提示

關于risc-v啟動部分的思考

嵌入式IoT ? 來源:嵌入式IoT ? 作者:嵌入式IoT ? 2020-12-28 10:25 ? 次閱讀

關于risc-v啟動部分思考

1.本文說明

1.1 risc-v的誕生的時代背景

1.2 發展現狀

2.risc-v 的芯片boot過程

2.1 risc-v的啟動模式

2.2 risc-v的啟動順序

3.什么是SBI?

4.什么是opensbi

5.openSBI call接口的實現

6.總結

1.本文說明

risc-v的架構有著非常鮮明的特點,如果看過arm,aarch64,mips等架構的一些架構手冊的基礎知識,再看risc-v的芯片的架構設計,就會覺得非常有意思,可以找到一些影子,但是又比這些架構設計簡潔的多。當我看完aarch64的芯片手冊,再看risc-v的boot時,設計思想竟然可以做一些對比,同樣去看risc-v和mips的寄存器,也可看到高度的一致性。

對于x86的架構我未曾深入了解,但是在risc-v上應該也可以找到一些設計元素。總體說來,risc-v的架構設計集合了各種架構的設計的優點。我突然覺得這種堆疊即模塊的設計思想,在當前iot物聯網發展的如火如荼的時代又要被賦予最新的使命了。我十分看好risc-v的設計思想,也期待著與軟件界的Linux一樣,發展的繁榮昌盛。

1.1 risc-v的誕生的時代背景

risc-v至誕生之日起,就賦予了良好的設計模式,吸收了大量的arm、x86、以及mips中良好的設計基因,將過時指令設計的與架構設計中的坑都避免了。這幾十年的芯片的發展過程中,不少的芯片架構都曾因為設計問題消失在歷史長河中,有著曾經一度輝煌的sparc,還有當時被十分看好的mips。如今市場上最熱門的就屬x86和arm了,一個主打移動市場,一個主打pc市場,兩個在芯片架構的市場上發展的如火如荼。

然而,兩個巨頭都牢牢的把控著核心技術的門檻,用arm必須去買ip授權,以及x86的交叉授權模式等等。這些都讓很多崇尚開源的人看不下去了。那么設計芯片的指令集很難么?設計芯片的指令并非難事,這要很多人使用才行,因為芯片上需要搭載操作系統,需要去運行各種各樣的軟件,比如瀏覽器、數據庫、辦公系統、專業軟件等等。這些適配工作投入的精力和難度恐怕是需要集結各國最強的研發實力才能發展完善的。而risc-v就有這個魔力,竟然可以一呼百應,大概是大家受到arm與因特爾的壓迫已經很久了,大家都想自己造芯片玩玩。

arm與x86架構由于時間累計的問題,都積累了大量的指令集,x86當時誕生時不過80條指令,而今也有著上千條指令集了,各種復雜的指令集,多媒體指令集等等,使得寫底層軟件的人苦不堪言。喬布斯有句名言:至繁歸于至簡。歷史遺留的問題既然不能克服和解決,那就干脆抽取精華,設計出一個優秀的架構出來,于是risc-v在這種時代背景下開始了其新的使命。

1.2 發展現狀

新事物的崛起,必會引來眾多人的圍觀,技術的風所到之處,均是機會的影子。

而今risc-v已經成為眾多大學生積極學習的課程,各大公司也已經啟動了預研和探索的腳步。

RISC-V雖仍是星星之火,卻已現出燎原之態。

2.risc-v 的芯片boot過程

2.1 risc-v的啟動模式

在理解risc-v的boot流程之前,首先需要知道的是risc-v設計的三種模式:

M-mode(Machine Mode)

S-mode(Supervisor Mode)

U-mode(User Mode)

dfc07f56-46ce-11eb-8b86-12bb97331649.png

對于arm64來說,系統上電后啟動會處于EL3 secure world ,所以對于arm64來說,一般都會使用ARM Trusted firmware (TF-A) 在normal world EL2 與 secure EL3 進行切換。

而對于risc-v來說,系統上電啟動后會在M-Mode,而risc-v目前是沒有Hypervisor這一層的概念的,所以目前采用的是opensbi。

dfe685b6-46ce-11eb-8b86-12bb97331649.png

2.2 risc-v的啟動順序

對于標準的risc-v啟動順序,可查看FU540的芯片手冊,其中有如下的順序描述:

MSEL(Mode Select):啟動模式,一般為選擇撥碼開關等方式進行選擇。

ZSBL (Zeroth Stage Boot Loader):片上ROM程序。

FSBL(First Stage Boot Loader ):啟動PLLs和初始化DDR內存。

BBL(Berkeley Boot Loader ):提供加載,并且管理著二進制接口(SBI)。

下面詳細分析一下FU540的啟動流程。

復位向量表

當芯片上電后,當芯片有33.3MHz外部晶振時鐘時,所有的核會跳轉到地址0x1004地址處去執行程序。

e04ec2fc-46ce-11eb-8b86-12bb97331649.png

程序會根據MSEL選擇,選擇如下的跳轉地址:

e09ad34a-46ce-11eb-8b86-12bb97331649.png

Zeroth Stage Boot Loader (ZSBL)

零級引導程序加載會從GUID分區中下載更加復雜的FSBI,一般都是QSPI的flash或者sd卡中下載FSBI,然后將該程序放到地址0x08000000處,至于從哪個介質查找FSBI,可以看到如下的選項:

e100ffa8-46ce-11eb-8b86-12bb97331649.png

The First Stage Boot Loader (FSBL)

該執行的地址位于L2 LIM,也就是地址0x08000000。該程序的目的是DDR初始化后,將系統在DDR中執行起來。

切換頻率到1GHz。

配置ddr pll,外設時鐘和控制器等等。

拷貝設備樹和SBI固件到DDR中。

跳轉到0x80000000開始執行程序。

Berkeley Boot Loader (BBL)

Berkeley引導加載程序(BBL)從位于0x8000_0000的DDR執行。它負責提供管理器二進制接口(SBI)以及模擬所需的任何RISC-V不是由芯片本身實現的指令。該接口可以為Linux等其他的os提供調用接口。

3.什么是SBI?

SBI的全稱是RISC-V Supervisor Binary Interface 。它提供了risc-v標準的S-mode OS與SupervisorExecution Environment (SEE) 接口。

一般來說,操作系統都不會直接管理硬件資源,會通過SBI去調用到M-mode。

4.什么是opensbi

簡單的說,opensbi就是一個開源的RISC-V虛擬化二進制接口的通用的規范。

使用的是BSD-2的開源協議,也就是任何人都可以隨意修改和使用,也提供了通用的規范化的接口實現。

這里就需要理解一下為什么需要規范化了。

以往芯片廠家都會按照自己的啟動規則定義一些啟動的流程,比如有些需要SPL+UBOOT,有些可以是直接從SPI或SD卡中boot,這些啟動的規則很多,每當使用一款芯片,都需要去理解其啟動的流程,十分的復雜。于是就出現了一些規則和定義。

比如蘋果公司定義了個人PC電腦的規則:

又比如Linux定義了設備規則等等:

而risc-v雖然目前芯片種類少,但是也需要制定一些啟動規則,于是有了下面的規則:

e236bfe8-46ce-11eb-8b86-12bb97331649.png

當有了opensbi后,再回頭看啟動流程,與aarch64之間進行一個對比:

e29f5aee-46ce-11eb-8b86-12bb97331649.png

aarch64借助atf框架,從EL3跳轉到EL1,并啟動u-boot。

e2beb5ce-46ce-11eb-8b86-12bb97331649.png

對于riscv,上圖是一個標準的加載啟動流程,其中Opensbi提供了M模式的運行時庫。

5.openSBI call接口的實現

opensbi不僅僅具有加載和引導功能,也能夠供S-Mode的OS使用,比如提供串口控制臺或者中斷的分發等等。調用方式可以通過ecall來實現。類似于syscall的實現規則。當前階段實現了下面的接口:

e2f7f6d6-46ce-11eb-8b86-12bb97331649.png

詳細可以看下面的官方文檔描述。

https://github.com/riscv/riscv-sbi-doc/blob/master/riscv-sbi.adoc

6.總結

riscv的啟動規范可以按照opensbi的接口實現來自行定義,芯片廠家也可以通過適配opensbi的接口來實現平臺通用化的移植,這樣將會大大簡化上層設計的復雜度。同時規范化的啟動流程對于使用者來說更加的友好。相信在這種規范化的模式下,riscv的設計將會越來越完善。

責任編輯:xj

原文標題:關于risc-v啟動部分思考

文章出處:【微信公眾號:嵌入式IoT】歡迎添加關注!文章轉載請注明出處。

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

    關注

    5093

    文章

    19178

    瀏覽量

    307709
  • RISC-V
    +關注

    關注

    45

    文章

    2324

    瀏覽量

    46599

原文標題:關于risc-v啟動部分思考

文章出處:【微信號:Embeded_IoT,微信公眾號:嵌入式IoT】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    關于RISC-V芯片的應用學習總結

    RISC-V芯片作為一種基于精簡指令集計算(RISC)原則的開源指令集架構(ISA)芯片,近年來在多個領域展現出了廣泛的應用潛力和顯著優勢。以下是對RISC-V芯片應用的總結。 RISC-V
    發表于 01-29 08:38

    關于RISC-V學習路線圖推薦

    一個號的RISC-V學習路線圖可以幫助學習者系統地掌握RISC-V架構的相關知識。比如以下是一個較好的RISC-V學習路線圖: 一、基礎知識準備 計算機體系結構基礎 : 了解計算機的基本組成、指令集
    發表于 11-30 15:21

    RISC-V,即將進入應用的爆發期

    計算機由控制整體的CPU(中央處理器)和加速器兩部分構成。在AI計算中,功耗和效率是兩個關鍵因素。RISC-V架構通過其簡潔的設計和定制化的擴展,可以實現高效的能量使用。該架構能夠通過小型且高效的處理單元
    發表于 10-31 16:06

    加入全球 RISC-V Advocate 行列,共筑 RISC-V 的未來 !

    加入RISC-VAdvocate行列!我們正在尋找來自世界各地的RISC-V愛好者,通過全球推廣和參與,成為支持RISC-V進步的關鍵參與者。作為一名RISC-VAdvocate,您將
    的頭像 發表于 09-10 08:08 ?504次閱讀
    加入全球 <b class='flag-5'>RISC-V</b> Advocate 行列,共筑 <b class='flag-5'>RISC-V</b> 的未來 !

    RISC-V Summit China 2024 青稞RISC-V+接口PHY,賦能RISC-V高效落地

    沁恒在歷屆峰會上分享RISC-V在MCU領域的創新成果,和大家共同見證了本土RISC-V產業的成長。早在第一屆RISC-V中國峰會上,沁恒就公開了青稞RISC-V系列量產芯片的關鍵技術
    的頭像 發表于 08-30 18:18 ?1638次閱讀
    <b class='flag-5'>RISC-V</b> Summit China 2024  青稞<b class='flag-5'>RISC-V</b>+接口PHY,賦能<b class='flag-5'>RISC-V</b>高效落地

    RISC-V Summit China 2024 | 青稞RISC-V+接口PHY,賦能RISC-V高效落地

    定、技術創新、社區建設、人才培養等方面全方位推動RISC-V生態發展,讓本土RISC-V創新成果走出國門,讓世界聽到RISC-V的中國聲音。 關于沁恒 南京沁恒微電子股份有限公司專注于
    發表于 08-30 17:37

    2024 RISC-V 中國峰會:華秋電子助力RISC-V生態!

    第四屆RISC-V中國峰會(RISC-V Summit China 2024)于8月21日至23日在杭州盛大召開,成為RISC-V領域的一次重要盛會
    的頭像 發表于 08-26 18:33 ?988次閱讀
    2024 <b class='flag-5'>RISC-V</b> 中國峰會:華秋電子助力<b class='flag-5'>RISC-V</b>生態!

    2024 RISC-V 中國峰會:華秋電子助力RISC-V生態!

    。 (華秋電子<電子發燒友>平臺社區負責人劉勇對RISC-V生態系統介紹) 在峰會現場,劉勇分享了華秋電子在RISC-V芯片創新應用與生態上的一些思考及布局,打造
    發表于 08-26 16:46

    risc-v的發展歷史

    RISC-V的發展歷史可以追溯到2006年左右,當時David Patterson和其他研究者開始探索創建一個開放和可擴展的指令集架構(ISA)。以下是RISC-V發展的主要里程碑: 一、起源與初步
    發表于 07-29 17:20

    rIsc-v的缺的是什么?

    RISC-V作為一種開源的指令集架構(ISA),自其誕生以來就受到廣泛關注和應用,但它也存在一些不足之處。以下是RISC-V架構目前存在的主要缺點: 1. 性能問題 相對于專用ISA的性能差距:盡管
    發表于 07-29 17:18

    RISC-V的MCU關于USB高速通信設計的難點

    RISC-V的MCU關于USB高速通信設計的難點主要集中在硬件集成、性能優化、軟件生態和成本效益等方面。以下是針對這些難點的詳細分析和歸納: 硬件集成與外設支持 : 高速USB PHY集成 :傳統
    發表于 05-27 16:23

    RISC-V有哪些優點和缺點

    RISC-V作為一種開源的指令集架構(ISA),具有一系列顯著的優點和潛在的缺點。以下是RISC-V的主要優點和缺點概述: 優點: 開源與開放性:RISC-V是開源的,這意味著任何人都可以獲取、修改
    發表于 04-28 09:03

    RISC-V有哪些優缺點?是堅持ARM方向還是投入risc-V的懷抱?

    RISC-V作為一種開源的指令集架構(ISA),具有一系列顯著的優點和潛在的缺點。以下是RISC-V的主要優點和缺點概述: 優點 : 開源與開放性 :RISC-V是開源的,這意味著任何人都可以獲取
    發表于 04-28 08:51

    解鎖RISC-V技術力量丨曹英杰:RISC-V與大模型探索

    4月12日,第二期“大家來談芯|解鎖RISC-V技術力量”在上海臨港新片區頂科永久會址舉辦,本期沙龍聚焦RISC-V技術,圍繞AI時代的RISC-V市場機會、RISC-V在汽車領域的應
    的頭像 發表于 04-16 08:16 ?802次閱讀
    解鎖<b class='flag-5'>RISC-V</b>技術力量丨曹英杰:<b class='flag-5'>RISC-V</b>與大模型探索

    什么是RISC-VRISC-V的關鍵技術

    RISC-V不僅僅是一個流行語;它建立在堅實的技術基礎之上,使其有別于其他指令集架構 (ISA)。RISC-V的核心是基于精簡指令集計算(RISC)原則,強調效率和性能。
    發表于 03-26 09:34 ?3682次閱讀
    水果老虎机破解| 百家乐官网技真人荷官| 娱乐城送18| 大发888城亚洲游戏| 百家乐娱乐人物| 百家乐大赢家书籍| 风水24山图| 百家乐投注方法多不多| 百家乐赌博机怎么玩| 澳门百家乐娱乐城注册| 百家乐怎么| 钱大发888游戏下载| 帝王娱乐城开户| 布拖县| 百家乐官网娱乐全讯网| bet365足球| 360博彩通| 百家乐官网博彩平台| 百家乐官网的弱点| 百家乐洗码| 卢克索百家乐的玩法技巧和规则 | 克拉克百家乐官网下载| 博彩百家乐官网软件| 新濠百家乐官网娱乐城| 太阳神百家乐的玩法技巧和规则| 大发888娱乐场下载英皇国际 | 政和县| 百家乐官网游戏制作| 百家乐视频双扣| 威尼斯人娱乐场积分| 环球代理| 百家乐官网棋牌官网| 克拉克百家乐下载| 威尼斯人娱乐城代理合作| 真钱百家乐游戏| 百家乐官网1个人| 免费百家乐官网分析工具| 蓝盾百家乐赌场娱乐网规则| bodog博狗| 赌百家乐官网到底能赌博赢| 百家乐讯特|