CoreBoot
時(shí)間:2022-03-30 03:51:01 | 來源:行業(yè)動態(tài)
時(shí)間:2022-03-30 03:51:01 來源:行業(yè)動態(tài)
CoreBoot的前身是LinuxBios,是Ron Minnich于上世紀(jì)發(fā)起的項(xiàng)目,一種Linux代碼風(fēng)格的開源固件解決方案,跟UEFI固件架構(gòu)完全不同。CoreBoot的目標(biāo)是做最小的操作來完成硬件功能初始化,盡快的啟動到操作系統(tǒng)中。
圖3 CoreBoot的發(fā)展
UEFI的平臺啟動初始化流程為SEC-PEI-DXE-BDS-TLS-RT這幾個(gè)階段,其中SEC是指安全驗(yàn)證階段,PEI是指EFI前期初始化階段,DXE是驅(qū)動執(zhí)行環(huán)境階段,BDS是指啟動設(shè)備選擇階段,TSL是指操作系統(tǒng)加載前期階段,RT是指運(yùn)行時(shí)階段。
而CoreBoot將啟動流程分為bootblock-romstage-ramstage-payload這幾個(gè)主要階段, 如下圖4所示。其中booblock是匯編編寫的,主要為C運(yùn)行環(huán)境做準(zhǔn)備;romstage階段主要是來初始化內(nèi)存和一些早期初始化操作;ramstage階段主要執(zhí)行系統(tǒng)設(shè)備的初始化,比如pcie初始化,創(chuàng)建ACPI表等;到了payload階段CoreBoot的初始化操作實(shí)際上已經(jīng)完成,payload可以作為最終的Bootloader來加載操作系統(tǒng)。
圖4 CoreBoot平臺初始化流程
相比UEFI架構(gòu)的代碼,CoreBoot代碼跟Linux風(fēng)格類似,完全開源, 它結(jié)合CPU廠商的芯片初始化二進(jìn)制包(FSP/ATF/AGASA等)一起使用,來完成封閉的芯片初始化功能,同時(shí)可以集成Tianocore、LinuxBoot等各種payload,來滿足各種需求。
目前CoreBoot主要在Chromebook等PC機(jī)器上應(yīng)用,由于CoreBoot的開源以及Linux風(fēng)格的代碼架構(gòu)的原因, 以及在Linux領(lǐng)域的人才優(yōu)勢,也在推進(jìn)支持使用CoreBoot作為服務(wù)器的UEFI BIOS的替代選擇。