《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 通信與網(wǎng)絡(luò) > 業(yè)界動(dòng)態(tài) > Slim Bootloader:專(zhuān)為物聯(lián)網(wǎng)應(yīng)用量身定制

Slim Bootloader:專(zhuān)為物聯(lián)網(wǎng)應(yīng)用量身定制

2018-11-06

  由于物聯(lián)網(wǎng)設(shè)備存儲(chǔ)空間有限,成本要求嚴(yán)苛,因此Bootloader需要滿(mǎn)足占用空間小、功能安全、極速啟動(dòng)等需求。英特爾Slim Bootloader 就是專(zhuān)為物聯(lián)網(wǎng)應(yīng)用案例量身定制,是一款開(kāi)源的啟動(dòng)固件解決方案,當(dāng)系統(tǒng)上電時(shí)負(fù)責(zé)初始化系統(tǒng)的核心硬件組件,然后加載和啟動(dòng)所需要的操作系統(tǒng)。

  從構(gòu)建之初,Slim Bootloader就考慮了安全性、輕量級(jí)和高度優(yōu)化,可以利用EDK II框架中的強(qiáng)大工具和庫(kù),可以根據(jù)系統(tǒng)的特殊需求進(jìn)行隔離、配置和優(yōu)化,從而達(dá)到優(yōu)異的啟動(dòng)性能,并最大限度地減少固件所占用的空間。同時(shí)具有模塊化、可擴(kuò)展設(shè)計(jì)的優(yōu)點(diǎn),根據(jù)源版本實(shí)現(xiàn)產(chǎn)品質(zhì)量參考,BSD許可證開(kāi)源,實(shí)際產(chǎn)品可能會(huì)根據(jù)不同的許可證發(fā)布。

  Intel物聯(lián)網(wǎng)部門(mén) Bootloader 的架構(gòu)原則是通過(guò)簡(jiǎn)單靈活的架構(gòu)實(shí)現(xiàn)快速?gòu)V泛的采用,并利用內(nèi)部和外部開(kāi)發(fā)社區(qū),以安全為基礎(chǔ)進(jìn)行設(shè)計(jì)和開(kāi)發(fā)。

  在設(shè)計(jì)中,Slim Bootloader具有幾大優(yōu)勢(shì):

  簡(jiǎn)單快速,線(xiàn)性執(zhí)行流程實(shí)現(xiàn)可預(yù)測(cè)性,通過(guò)FSP API將復(fù)雜的芯片初始化代碼進(jìn)行抽象,包括TempRamInit, FspMemoryInit, FspTempRamExit, FspSiliconInit, NotifyPhase;

  具有靈活性,將初始化代碼分成具有標(biāo)準(zhǔn)化接口的模塊化階段:– Stage1A (SRAM/Flash) => Stage1B (Flash/CAR) => Stage2 (MEM),且不同的Payload用于引導(dǎo)不同的OS或應(yīng)用程序;

  可移植性,核心代碼高度模塊化,通過(guò)提供不同的靜態(tài)庫(kù),不同的開(kāi)發(fā)板/芯片可以用過(guò)hook函數(shù)實(shí)現(xiàn)平臺(tái)相關(guān)的初始化;配置(內(nèi)置或外置)支持多種開(kāi)發(fā)板;

  利用經(jīng)過(guò)驗(yàn)證的代碼,F(xiàn)SP二進(jìn)制文件,以及已被驗(yàn)證的BIOS中的平臺(tái)庫(kù)(例如:GPIO init);

  編譯框架,支持多種OS(Windows 和 Linux)和多種工具鏈;

  安全性,通過(guò)Intel?BootGuard實(shí)現(xiàn)基于硬件的啟動(dòng)完整性保護(hù)的安全啟動(dòng),支持verified boot和Measured boot。

  下面針對(duì)初始化階段和啟動(dòng)階段分別講述Slim Bootloader的優(yōu)勢(shì):

  初始化階段

5bdffd9d72b9d-thumb.png

  高級(jí)架構(gòu)

  如上圖所示,系統(tǒng)的初始化階段,電路板和芯片初始化,包括資源分配,GPIO、ACPI等。Payload階段包括通用媒介驅(qū)動(dòng)、自定義功能、特定的OS加載協(xié)議等。其中*OS loader是默認(rèn)Payload,也支持使用其他的payload。

  啟動(dòng)階段:

5bdffd9d42fa5-thumb.png

  啟動(dòng)階段

  如圖所示,啟動(dòng)階段包括第1A階段、第1B階段、第2階段、有效負(fù)載階段。在第1A階段,通過(guò)匯編代碼重置矢量階段,進(jìn)行基本初始化,包括設(shè)置臨時(shí)存儲(chǔ)器、調(diào)試輸出;在第1B階段,進(jìn)行內(nèi)存初始化,加載配置數(shù)據(jù);在第2階段,進(jìn)行PostMemory,芯片初始化、ACPI,PCI枚舉等;OsLoader / FWU 有效負(fù)載包括操作系統(tǒng)啟動(dòng)邏輯和媒體驅(qū)動(dòng)程序。

  Slim Bootloader可以利用EDK2構(gòu)建基礎(chǔ)架構(gòu),支持Windows和Linux環(huán)境,支持多種平臺(tái),支持多個(gè)目標(biāo)(D / R);必備工具包括VisualStudio(Windows)、GCC工具鏈(Linux)、NAMM、Python、iASL、OpenSSL;由pythonBuildLoader.py構(gòu)建qemu,圖片存放于Slimbootloader.bin中。

  另外,Payload提供靈活的基礎(chǔ)架構(gòu)來(lái)擴(kuò)展功能,英特爾SlimBootloader執(zhí)行基礎(chǔ)硬件初始化;有效負(fù)載執(zhí)行特定的加載/引導(dǎo)??梢钥闯?,Payload是一個(gè)模塊化組件,能夠輕松更改默認(rèn)有效負(fù)載,有效負(fù)載可以高度定制,以提供所需的確切功能;Payload可以是通用引導(dǎo)加載程序或特殊用途的特殊應(yīng)用程序。


本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀(guān)點(diǎn)。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無(wú)法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問(wèn)題,請(qǐng)及時(shí)通過(guò)電子郵件或電話(huà)通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話(huà):010-82306118;郵箱:aet@chinaaet.com。