本發(fā)明屬于本發(fā)明屬于計算機固件技術(shù)領(lǐng)域,涉及一種基于筆記本計算機的UEFI固件的實現(xiàn)方法。
背景技術(shù):
UEFI(Unified Extensible Firmware Interface,統(tǒng)一的可擴展固件接口)是一種計算機固件(或稱為BIOS)的接口規(guī)范,也是關(guān)于固件的最主要的工業(yè)標(biāo)準(zhǔn)。UEFI規(guī)范最初是面向Intel公司的Itanium和X86處理器進行制定的,但是UEFI規(guī)范本身是與處理器架構(gòu)無關(guān)的,目前已經(jīng)應(yīng)用于X86、Itanium、ARM等處理器平臺。符合UEFI規(guī)范的計算機固件(以下簡稱UEFI固件)相對于傳統(tǒng)的固件有很多優(yōu)越性,目前主流的X86商用計算機系統(tǒng)基本上都是采用了UEFI固件。
飛騰1500A(FT)是由國防科學(xué)技術(shù)大學(xué)研制的國產(chǎn)通用中央處理器,采用ARM V8指令集,采用國際先進的28nm工藝流片,具有高性能、低功耗特點,關(guān)鍵技術(shù)國內(nèi)領(lǐng)先,可實現(xiàn)對Intel中高端“至強”服務(wù)器芯片的代替。飛騰1500A系列目前包括4核和16核兩款產(chǎn)品,4核處理器芯片主要面向桌面終端和輕量級服務(wù)器應(yīng)用領(lǐng)域,適用于構(gòu)建臺式終端、一體機、便攜筆記本、微服務(wù)器等產(chǎn)品。16核處理器芯片面向服務(wù)器應(yīng)用領(lǐng)域,適用于構(gòu)建網(wǎng)絡(luò)前端接入服務(wù)器、事務(wù)處理服務(wù)器、郵件服務(wù)器等產(chǎn)品。
U-BOOT是一款開源固件,支持多個處理器系列,如PowerPC、ARM、X86、MIPS等,飛騰廠商采用U-BOOT作為調(diào)試處理器的固件,并應(yīng)用在飛騰筆記本解決方案中。但U-BOOT與常規(guī)的UEFI計算機固件相比存在很多不足, 主要表現(xiàn)在:U-BOOT項目在計算機工業(yè)界很少有廠家使用U-BOOT或?qū)ζ溥M行支持,因此U-BOOT無法進行規(guī)范化和得到發(fā)展;不像UEFI固件支持最新的計算機技術(shù),U-BOOT代碼對很多技術(shù)規(guī)范都不支持,無法實現(xiàn)對一些常見功能的支持,比如ACPI(目前最為通用的電源管理技術(shù))、GRUB(目前最為通用的操作系統(tǒng)內(nèi)核加載器)等;與UEFI固件相比,U-BOOT沒有采用模塊化方法進行設(shè)計實現(xiàn),可擴展性不強,開發(fā)維護也不方便。
技術(shù)實現(xiàn)要素:
有鑒于此,本發(fā)明提供了一種基于筆記本計算機的UEFI固件的實現(xiàn)方法。根據(jù)這個方法,可以在飛騰1500A筆記本計算機上實現(xiàn)出符合國際主流UEFI固件規(guī)范、可擴展性強、功能完善的固件產(chǎn)品,以支持飛騰1500A筆記本計算機的正常啟動和運行。
為了達到上述目的,本發(fā)明的技術(shù)方案為:UEFI固件分為硬件抽象層、固件核心層、設(shè)備協(xié)議層以及固件應(yīng)用層。
硬件抽象層包括處理器驅(qū)動模塊、芯片組驅(qū)動模塊和外設(shè)驅(qū)動模塊,處理器驅(qū)動模塊對筆記本中處理器和內(nèi)存進行初始化,并提供訪問處理器和內(nèi)存的接口;芯片組驅(qū)動模塊對筆記本硬件平臺中南北橋芯片進行初始化,包括橋片本身和各個外設(shè)控制器的初始化和資源分配工作,并提供訪問南北橋的接口;外設(shè)驅(qū)動模塊驅(qū)動筆記本主板上連接的外設(shè)。
固件核心層包括固件核心加載模塊、固件核心模塊和基礎(chǔ)架構(gòu)功能模塊,固件核心加載模塊加載固件核心模塊,并為其準(zhǔn)備運行環(huán)境;固件核心模塊建立UEFI規(guī)范中的啟動服務(wù)Boot Service和運行時服務(wù)Runtime Service表,加載、運行固件核心層中的其他模塊,管理固件核心層中各模塊之間的交互,管理筆記本中內(nèi)存,實現(xiàn)和維護時鐘中斷和事件機制,實現(xiàn)和維護固件應(yīng)用的特權(quán)級 機制,實現(xiàn)UEFI規(guī)范中定義的Protocol的管理機制,實現(xiàn)UEFI規(guī)范要求實現(xiàn)的機制和功能;基礎(chǔ)架構(gòu)功能模塊實現(xiàn)UEFI規(guī)范中的體系結(jié)構(gòu)協(xié)議Architectural Protocol,基礎(chǔ)架構(gòu)功能模塊包括多個功能模塊,每個模塊實現(xiàn)一個Architectural Protocol;每個Architectural Protocol包含一些基礎(chǔ)服務(wù)接口,供固件中的其他功能模塊調(diào)用。
設(shè)備協(xié)議層包括總線協(xié)議模塊和網(wǎng)絡(luò)協(xié)議棧模塊,總線協(xié)議模塊實現(xiàn)各種總線協(xié)議,并通過UEFI規(guī)范中的Protocol機制發(fā)布總線的訪問接口;網(wǎng)絡(luò)協(xié)議棧模塊實現(xiàn)網(wǎng)絡(luò)協(xié)議棧。
固件應(yīng)用層包括設(shè)備掃描模塊、人機界面顯示模塊、系統(tǒng)監(jiān)控模塊、系統(tǒng)啟動模塊、文件系統(tǒng)模塊、內(nèi)核加載模塊、運行時模塊和Shell模塊;設(shè)備掃描模塊枚舉筆記本中的所有外設(shè),并為外設(shè)分配資源,將外部設(shè)備與相應(yīng)的外設(shè)驅(qū)動模塊進行連接;人機界面顯示模塊與顯卡驅(qū)動模塊連接,實現(xiàn)所有顯示相關(guān)的接口;系統(tǒng)監(jiān)控模塊實時檢測筆記本中處理器溫度、系統(tǒng)電壓和風(fēng)扇轉(zhuǎn)速,根據(jù)處理器溫度來調(diào)整風(fēng)扇的轉(zhuǎn)速,當(dāng)處理器溫度過高時,強制關(guān)機;系統(tǒng)啟動模塊提供一個圖形化的用戶配置界面,用戶通過菜單操作的方式,查看系統(tǒng)信息和對系統(tǒng)進行配置。最后根據(jù)用戶的選擇,從存儲設(shè)備啟動操作系統(tǒng);文件系統(tǒng)模塊實現(xiàn)FAT/FAT32、EXT2/3/4和ISO9660文件系統(tǒng),支持對文件的讀取操作;內(nèi)核加載模塊在系統(tǒng)啟動的最后階段,從筆記本的存儲介質(zhì)中將內(nèi)核文件加載到內(nèi)存中,并為內(nèi)核文件準(zhǔn)備必要的參數(shù),然后跳轉(zhuǎn)到內(nèi)核的入口點執(zhí)行內(nèi)核文件;運行時模塊實現(xiàn)UEFI規(guī)范定義的供操作系統(tǒng)在其運行階段調(diào)用的運行時Runtime接口,以及處理器平臺的操作系統(tǒng)與固件定義的接口;Shell是UEFI固件提供的一個命令行環(huán)境,基于UEFI固件中提供的大量接口服務(wù),開發(fā)出Shell下的多種固件應(yīng)用程序。
在上述UEFI固件的基礎(chǔ)上,該方法包括如下步驟:
步驟一、筆記本上電啟動,執(zhí)行處理器驅(qū)動模塊,初始化處理器和內(nèi)存,并提供訪問處理器和內(nèi)存的接口,從而建立起固件運行的基本環(huán)境。
步驟二、執(zhí)行固件核心加載模塊,將UEFI固件代碼復(fù)制到內(nèi)存,并對固件進行解壓,加載固件核心模塊。
步驟三、執(zhí)行固件核心模塊,建立UEFI固件的基礎(chǔ)服務(wù);初始化UEFI的系統(tǒng)服務(wù),完成UEFI系統(tǒng)表、UEFI啟動服務(wù)表和UEFI運行時服務(wù)表的初始化,UEFI固件中的所有功能模塊均可調(diào)用系統(tǒng)服務(wù)。
步驟四、加載UEFI固件功能模塊,包括基礎(chǔ)架構(gòu)功能模塊、設(shè)備協(xié)議模塊。
步驟五、加載外設(shè)掃描模塊,掃描外設(shè)并為外設(shè)分配系統(tǒng)資源,加載外設(shè)驅(qū)動模塊,完成外設(shè)初始化。
步驟六、加載執(zhí)行固件應(yīng)用層中各模塊,啟動操作系統(tǒng)。
上述步驟中,步驟(6)中固件核心模塊加載固件卷中的固件應(yīng)用模塊,并實現(xiàn)對應(yīng)的固件功能。包括顯示模塊、系統(tǒng)監(jiān)控模塊、文件系統(tǒng)模塊、內(nèi)核加載模塊、運行時模塊、Shell模塊、系統(tǒng)啟動模塊,最后,固件核心模塊將控制權(quán)交給系統(tǒng)啟動模塊,準(zhǔn)備啟動操作系統(tǒng)。
進一步地,步驟一中,筆記本上電啟動后,執(zhí)行處理器驅(qū)動模塊,此時筆記本中內(nèi)存還未完成初始化,處理器驅(qū)動模塊使用連接在筆記本中的FLASH芯片運行;處理器驅(qū)動模塊實現(xiàn)筆記本中處理器、高速緩存Cache、內(nèi)存、旁路轉(zhuǎn)換緩沖TLB的初始化,實現(xiàn)內(nèi)存控制器MCU、SMBUS和內(nèi)存的初始化,配置內(nèi)存地址窗口,并提供訪問CPU、Cache、內(nèi)存等部件的接口,處理器驅(qū)動模塊還要初始化處理器中的串口模塊,提供UEFI固件代碼的調(diào)試。
進一步地,步驟二中執(zhí)行固件核心加載模塊,筆記本中系統(tǒng)內(nèi)存已經(jīng)初始化好,此時固件代碼可以在內(nèi)存中運行以加快運行速度,F(xiàn)LASH中存有壓縮的固件卷,固件核心加載模塊從FLASH中將壓縮的固件卷復(fù)制到內(nèi)存中,并進行 解壓;解壓成功后,在內(nèi)存中創(chuàng)建HOB數(shù)據(jù)表,存放處理器、內(nèi)存和FLASH的信息。
進一步地,驟三中執(zhí)行固件核心模塊,初始化UEFI的系統(tǒng)服務(wù)包括代碼調(diào)試、內(nèi)存管理、UEFI鏡像管理、HOB、UEFI時鐘、FLASH訪問、解壓縮、固件卷解析、UEFI事件、任務(wù)優(yōu)先級、UEFI Protocol管理、UEFI變量存取。
進一步地,步驟四中固件核心模塊加載固件的功能模塊,固件核心模塊通過檢索固件卷,依次查找其中的功能模塊,并將其加載到內(nèi)存中,每個功能模塊都被編譯成一個PE/ELF格式的可執(zhí)行鏡像,固件核心模塊需要解析功能模塊鏡像,然后加載到內(nèi)存的特定地址處,并跳轉(zhuǎn)到入口函數(shù),功能模塊的入口函數(shù)執(zhí)行完成后,返回到固件核心模塊,固件核心模塊繼續(xù)進行下一個功能模塊的加載。
進一步地,步驟四,基礎(chǔ)架構(gòu)功能模塊主要功能是實現(xiàn)UEFI規(guī)范中的Architectural Protocol,每個Architectural Protocol由一個模塊來實現(xiàn);
設(shè)備協(xié)議層模塊主要實現(xiàn)訪問PCI/PCIE、SATA、PATA、SCSI、USB、ISA、SMBUS和LPCBUS總線的函數(shù)接口,并封裝在Protocol中供其他功能模塊調(diào)用,一種總線協(xié)議采用一個模塊實現(xiàn)。
進一步地,步驟五中,外設(shè)包括南北橋芯片、顯卡、SATA/IDE控制器、USB控制器、SMBUS控制器、LPC控制器、鍵盤、網(wǎng)卡。
有益效果:
l、本發(fā)明的方法符合國際主流的UEFI和PI固件規(guī)范,可利用UEFI聯(lián)盟提供的開源代碼資源快速實現(xiàn)固件;很多外設(shè)板卡廠商都提供基于UEFI規(guī)范的驅(qū)動,也可大大加快固件開發(fā)的進度。另外,UEFI固件支持主要的計算機工業(yè)標(biāo)準(zhǔn),如目前飛騰處理器還不支持的ACPI(高級配置和電源管理接口)規(guī)范,這樣采用本發(fā)明設(shè)計的固件可以方便地增加對這些規(guī)范的支持。
2、本發(fā)明設(shè)計的UEFI固件的重要特點是高度模塊化,固件所要實現(xiàn)的功能被分解成很多子功能,每個子功能由單獨的模塊來實現(xiàn),并由一個核心模塊來加載和管理這些功能模塊。因此可以通過增刪模塊來方便地定制固件的功能。
附圖說明
圖1是基于飛騰筆記本的UEFI固件的架構(gòu)示意圖。
具體實施方式
下面結(jié)合附圖并舉實施例,對本發(fā)明進行詳細描述。
一種基于飛騰筆記本計算機的UEFI固件的實現(xiàn)方法,固件劃分為硬件抽象層、固件核心層、設(shè)備協(xié)議層和固件應(yīng)用層。
其中,硬件抽象層實現(xiàn)處理器和內(nèi)存、芯片組等關(guān)鍵硬件部件的初始化,對其他板級硬件進行包裝和抽象并實現(xiàn)初始化,同時為上層模塊提供訪問底層硬件設(shè)備的函數(shù)接口。其包括處理器驅(qū)動模塊、芯片組驅(qū)動模塊和外設(shè)驅(qū)動模塊,處理器驅(qū)動模塊完成處理器和內(nèi)存的初始化工作,并提供訪問處理器和內(nèi)存的接口;芯片組驅(qū)動模塊主要完成飛騰筆記本硬件平臺中南北橋芯片的初始化工作,包括橋片本身和各個外設(shè)控制器的初始化和資源分配工作,并提供訪問南北橋的接口;外設(shè)驅(qū)動模塊主要是主板上各種外設(shè)的驅(qū)動,如顯卡、硬盤、鍵盤、USB設(shè)備、網(wǎng)卡等,每個外設(shè)會對應(yīng)一個(或多個)驅(qū)動模塊。
固件核心層類似于操作系統(tǒng)的內(nèi)核,建立UEFI中的系統(tǒng)服務(wù)表,進行固件中所有模塊的統(tǒng)一管理和各種資源的管理。其包括固件核心加載模塊、固件核心模塊和基礎(chǔ)架構(gòu)功能模塊,固件核心加載模塊負責(zé)加載固件核心模塊,并為其準(zhǔn)備運行環(huán)境,固件核心模塊負責(zé)建立UEFI規(guī)范中的啟動服務(wù)(Boot Service)和運行時服務(wù)(Runtime Service)表,加載、運行其他功能模塊,管理各模塊之 間的交互,實現(xiàn)內(nèi)存的管理,實現(xiàn)和維護時鐘中斷和事件機制,實現(xiàn)和維護固件應(yīng)用的特權(quán)級機制,實現(xiàn)UEFI規(guī)范中定義的Protocol的管理機制,實現(xiàn)UEFI規(guī)范要求實現(xiàn)的其他機制和功能,如調(diào)試接口、壓縮算法、變量存儲/處理等?;A(chǔ)架構(gòu)功能模塊實現(xiàn)UEFI規(guī)范中的Architectural Protocol,包括多個功能模塊,每個模塊實現(xiàn)一個Architectural Protocol。每個Architectural Protocol包含一些基礎(chǔ)服務(wù)接口,供固件中的其他功能模塊調(diào)用。
設(shè)備協(xié)議層實現(xiàn)各種標(biāo)準(zhǔn)的工業(yè)規(guī)范,包括總線協(xié)議、外設(shè)接口、網(wǎng)絡(luò)協(xié)議棧等。其包括總線協(xié)議模塊和網(wǎng)絡(luò)協(xié)議棧模塊,總線協(xié)議模塊實現(xiàn)各種總線協(xié)議,如PCI/PCIE、SATA、PATA、SCSI、USB、ISA、SMBUS、LPCBUS等。通常是一個模塊實現(xiàn)一種總線協(xié)議,并通過UEFI規(guī)范中的Protocol機制“發(fā)布”這些總線的接口,這樣其他模塊就可以使用這些接口來訪問總線;網(wǎng)絡(luò)協(xié)議棧模塊實現(xiàn)網(wǎng)絡(luò)協(xié)議棧,如TCP/IP、SNP、DHCP、TFTP等,這樣其他模塊可以基于這些協(xié)議棧來實現(xiàn)網(wǎng)絡(luò)相關(guān)的功能。
固件應(yīng)用層實現(xiàn)固件的各項功能,如配置界面、系統(tǒng)監(jiān)控、文件系統(tǒng)、操作系統(tǒng)引導(dǎo)等;其包括設(shè)備掃描模塊、人機界面顯示模塊、系統(tǒng)監(jiān)控模塊、系統(tǒng)啟動模塊、文件系統(tǒng)模塊、內(nèi)核加載模塊、運行時模塊和Shell模塊,設(shè)備掃描模塊枚舉系統(tǒng)中的所有外部設(shè)備,如PCI/PCIE總線上的設(shè)備,為這些設(shè)備分配資源,并將設(shè)備與相應(yīng)的外設(shè)驅(qū)動模塊進行Connect(也即交給該設(shè)備驅(qū)動進行管理);人機界面顯示模塊位于顯卡驅(qū)動模塊之上,實現(xiàn)所有顯示相關(guān)的接口,如設(shè)置顯示模式、在特定位置打印字符串、顯示圖片、清屏等;系統(tǒng)監(jiān)控模塊實時檢測處理器溫度、系統(tǒng)電壓和風(fēng)扇轉(zhuǎn)速,根據(jù)溫度值來調(diào)整風(fēng)扇的轉(zhuǎn)速;允許用戶設(shè)定溫度閾值,當(dāng)溫度過高時,進行自動關(guān)機;系統(tǒng)啟動模塊提供一個圖形化的用戶配置界面,用戶通過菜單操作的方式,查看系統(tǒng)信息和對系統(tǒng)進行配置。最后根據(jù)用戶的選擇,從存儲設(shè)備啟動操作系統(tǒng);文件系統(tǒng)模塊實 現(xiàn)FAT/FAT32、EXT2/3/4和ISO9660文件系統(tǒng),支持對文件的讀取操作;內(nèi)核加載模塊在系統(tǒng)啟動的最后階段,這個模塊從硬盤、U盤、光盤等存儲介質(zhì)中將內(nèi)核文件加載到內(nèi)存中,并為內(nèi)核文件準(zhǔn)備必要的參數(shù),然后跳轉(zhuǎn)到內(nèi)核的入口點執(zhí)行,這樣就將控制權(quán)交給了操作系統(tǒng);運行時模塊實現(xiàn)了UEFI規(guī)范定義的供操作系統(tǒng)在其運行階段調(diào)用的運行時(Runtime)接口,以及飛騰處理器平臺的操作系統(tǒng)與固件定義的一些接口,如系統(tǒng)重啟、關(guān)機等;Shell是UEFI固件提供的一個命令行環(huán)境,基于UEFI固件中提供的大量接口服務(wù),可以開發(fā)出Shell下的多種固件應(yīng)用程序。
本發(fā)明的基于飛騰筆記本的UEFI固件的具體運行步驟如下:
(1)初始化處理器和內(nèi)存,建立起固件運行的基本環(huán)境;
(2)將UEFI固件代碼復(fù)制到內(nèi)存,并對固件進行解壓,加載固件核心模塊;
(3)建立UEFI固件的基礎(chǔ)服務(wù);
(4)加載UEFI固件功能模塊,包括基礎(chǔ)架構(gòu)功能模塊、設(shè)備協(xié)議模塊;
(5)掃描設(shè)備并為設(shè)備分配系統(tǒng)資源,加載設(shè)備驅(qū)動模塊,完成設(shè)備初始化;
(6)加載執(zhí)行固件應(yīng)用模塊;運行配置界面;從存儲設(shè)備加載操作系統(tǒng)。
上述步驟中,步驟(1)中執(zhí)行處理器驅(qū)動模塊。處理器驅(qū)動模塊采用指令集實現(xiàn),是系統(tǒng)上電后首先執(zhí)行的模塊,此時內(nèi)存還未完成初始化,所以這個模塊直接在FLASH芯片中運行。處理器驅(qū)動模塊實現(xiàn)飛騰1500A處理器、Cache(高速緩存)、內(nèi)存、TLB(旁路轉(zhuǎn)換緩沖)等初始化,實現(xiàn)MCU(內(nèi)存控制器)、SMBUS和內(nèi)存的初始化,配置內(nèi)存地址窗口,并提供訪問CPU、Cache、內(nèi)存 等部件的接口。處理器驅(qū)動模塊還要初始化處理器中的串口模塊,為后續(xù)的固件代碼的提供調(diào)試手段。
上述步驟中,步驟(2)中執(zhí)行固件核心加載模塊。步驟(1)執(zhí)行完成后,系統(tǒng)內(nèi)存已經(jīng)初始化好,此時固件代碼可以在內(nèi)存中運行以加快運行速度;而且可以用C語言來實現(xiàn)固件代碼,加快開發(fā)速度。固件中包含的功能模塊較多,而FLASH芯片的容量有限,一般需要將存放功能模塊的固件卷進行壓縮,固件核心加載模塊負責(zé)從FLASH中將壓縮的固件卷復(fù)制到內(nèi)存中,并進行解壓;解壓成功后,在內(nèi)存中創(chuàng)建HOB(Hand-Off Block)數(shù)據(jù)表,存放處理器、內(nèi)存、FLASH等系統(tǒng)信息,提供給后續(xù)的固件模塊使用;最后,固件核心加載模塊將控制權(quán)交給固件核心模塊。
上述步驟中,步驟(3)中執(zhí)行固件核心模塊。固件核心模塊首先初始化UEFI的系統(tǒng)服務(wù),為后續(xù)的功能模塊的加載、運行做準(zhǔn)備。主要是完成UEFI系統(tǒng)表、UEFI啟動服務(wù)表和UEFI運行時服務(wù)表的初始化,具體服務(wù)包括代碼調(diào)試、內(nèi)存管理、UEFI鏡像管理、HOB、UEFI時鐘、FLASH訪問、解壓縮、固件卷解析、UEFI事件、任務(wù)優(yōu)先級、UEFI Protocol管理、UEFI變量存取等。系統(tǒng)服務(wù)表存放在內(nèi)存的特定區(qū)域,UEFI固件中的所有功能模塊都可以調(diào)用這些系統(tǒng)服務(wù)。
上述步驟中,步驟(4)中固件核心模塊加載固件的功能模塊。固件核心模塊通過檢索固件卷,依次查找其中的功能模塊,并將其加載到內(nèi)存中。每個功能模塊都被編譯成一個PE/ELF格式的可執(zhí)行鏡像,固件核心模塊需要解析功能模塊鏡像,然后加載到內(nèi)存的特定地址處,并跳轉(zhuǎn)到入口函數(shù)。功能模塊的入口函數(shù)執(zhí)行完成后,通常會返回到固件核心模塊,固件核心模塊繼續(xù)進行下一個功能模塊的加載。
在步驟(4)中被加載的模塊包括基礎(chǔ)架構(gòu)功能模塊、設(shè)備協(xié)議模塊。其中, 基礎(chǔ)架構(gòu)功能模塊主要功能是實現(xiàn)UEFI規(guī)范中的Architectural Protocol,主要包括:Boot Device Selection(BDS)、CPU、Metronome、Monotonic Counter、Real Time Clock、Runtime、Security、Status Code、Timer、Variable、Variable Write、Watchdog Timer,每個Architectural Protocol由一個模塊來實現(xiàn);設(shè)備協(xié)議層模塊主要實現(xiàn)訪問PCI/PCIE、SATA、PATA、SCSI、USB、ISA、SMBUS、LPCBUS等總線的函數(shù)接口,并封裝在Protocol中供其他功能模塊調(diào)用,通常是一個模塊實現(xiàn)一種總線協(xié)議。另外,還包括實現(xiàn)TCP/IP網(wǎng)絡(luò)協(xié)議棧的功能模塊;
上述步驟中,步驟(5)中完成設(shè)備的初始工作。固件核心模塊加載設(shè)備驅(qū)動模塊,實現(xiàn)主板上外設(shè)的初始化和實現(xiàn)訪問外設(shè)的函數(shù)接口,包括南北橋芯片、顯卡、SATA/IDE控制器、USB控制器、SMBUS控制器、LPC控制器、鍵盤、網(wǎng)卡等。通常由一個模塊實現(xiàn)一種設(shè)備驅(qū)動。另外,在這個階段由設(shè)備掃描模塊掃描系統(tǒng)中的所有外設(shè),并為外設(shè)分配內(nèi)存、IO和中斷資源,這樣外設(shè)在操作系統(tǒng)下才能正常工作。
上述步驟中,步驟(6)中固件核心模塊加載固件卷中的固件應(yīng)用模塊,并實現(xiàn)對應(yīng)的固件功能。包括顯示模塊、系統(tǒng)監(jiān)控模塊、文件系統(tǒng)模塊、內(nèi)核加載模塊、運行時模塊、Shell模塊、系統(tǒng)啟動模塊。最后,固件核心模塊將控制權(quán)交給系統(tǒng)啟動模塊,準(zhǔn)備啟動操作系統(tǒng)。
系統(tǒng)啟動模塊通過調(diào)用固件核心模塊和其他功能模塊提供的服務(wù)接口,顯示出圖形配置界面作為人機交互界面。在這個階段,固件根據(jù)用戶的操作來進行下一步的工作,包括提供系統(tǒng)信息的顯示和系統(tǒng)參數(shù)的配置,以及選擇要啟動的設(shè)備,包括硬盤、光盤、U盤、網(wǎng)絡(luò)、命令行等。用戶通過特定按鍵退出配置界面進入到下一個執(zhí)行步驟。
上述步驟中,實現(xiàn)操作系統(tǒng)的啟動,具體步驟如下根據(jù)用戶配置的啟動順序,系統(tǒng)啟動模塊依次嘗試從硬盤、光盤、U盤、網(wǎng)絡(luò)等介質(zhì)將操作系統(tǒng)內(nèi)核 文件加載到內(nèi)存,并為內(nèi)核準(zhǔn)備必要的啟動參數(shù),然后將控制權(quán)交給內(nèi)核,從而完成系統(tǒng)的啟動工作。操作系統(tǒng)啟動完成后,仍然可調(diào)用固件中運行時模塊提供的少量的函數(shù),包括系統(tǒng)重啟、關(guān)機等。
綜上,以上僅為本發(fā)明的較佳實施例而已,并非用于限定本發(fā)明的保護范圍。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進等,均應(yīng)包含在本發(fā)明的保護范圍之內(nèi)。