国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種基于飛騰便攜式計(jì)算機(jī)的uefi固件實(shí)現(xiàn)方法

      文檔序號(hào):8258044閱讀:485來(lái)源:國(guó)知局
      一種基于飛騰便攜式計(jì)算機(jī)的uefi固件實(shí)現(xiàn)方法
      【技術(shù)領(lǐng)域】
      [0001]本發(fā)明屬于計(jì)算機(jī)固件技術(shù)領(lǐng)域,涉及一種基于飛騰處理器便攜式計(jì)算機(jī)系統(tǒng)(以下簡(jiǎn)稱飛騰便攜機(jī))的UEFI固件的實(shí)現(xiàn)方法。
      【背景技術(shù)】
      [0002]UEFI (Unified Extensible Firmware Interface,統(tǒng)一的可擴(kuò)展固件接口)是一種計(jì)算機(jī)固件(或稱為B1S)的接口規(guī)范,也是關(guān)于固件的最主要的工業(yè)標(biāo)準(zhǔn)。UEFI規(guī)范最初是面向Intel公司的Itanium和X86處理器進(jìn)行制定的,但是UEFI規(guī)范本身是與處理器架構(gòu)無(wú)關(guān)的,目前已經(jīng)應(yīng)用于X86、Itanium、ARM等處理器平臺(tái)。符合UEFI規(guī)范的計(jì)算機(jī)固件(以下簡(jiǎn)稱UEFI固件)相對(duì)于傳統(tǒng)的固件有很多優(yōu)越性,目前主流的X86商用計(jì)算機(jī)系統(tǒng)基本上都是采用了 UEFI固件。
      [0003]飛騰是由國(guó)防科學(xué)技術(shù)大學(xué)研制的國(guó)產(chǎn)通用中央處理器,采用SPARC精簡(jiǎn)指令集架構(gòu),實(shí)現(xiàn)了多核心、多線程,支持硬件虛擬化技術(shù)。飛騰處理器已形成多款型號(hào)產(chǎn)品,可應(yīng)用于臺(tái)式、便攜式計(jì)算機(jī)以及服務(wù)器產(chǎn)品。目前應(yīng)用于便攜式計(jì)算機(jī)產(chǎn)品的飛騰處理器主要是FT1000A,F(xiàn)T1000A是一個(gè)SOC芯片,不僅包含處理器核心,還集成了多個(gè)外設(shè)控制器。
      [0004]OBP(Open Boot PROM)是飛騰處理器平臺(tái)上的固件,最初是由SUN公司于1989年提出。OBP符合IEEE1275標(biāo)準(zhǔn),主要負(fù)責(zé)飛騰處理器平臺(tái)上電自檢、平臺(tái)初始化和引導(dǎo)操作系統(tǒng)。由于飛騰處理器支持硬件虛擬化,所以在系統(tǒng)上電時(shí)首先運(yùn)行一個(gè)虛擬機(jī)監(jiān)控器Hypervisor,由Hypervisor實(shí)現(xiàn)硬件資源虛擬化和硬件資源管理,然后將控制權(quán)交給啟動(dòng)固件OBP。與UEFI固件相比,OBP存在很多不足,主要表現(xiàn)在:0ΒΡ是用Forth編寫(xiě)的,F(xiàn)orth語(yǔ)言是冷門(mén)語(yǔ)言,掌握這門(mén)語(yǔ)言的開(kāi)發(fā)人員很少,造成開(kāi)發(fā)難度很大,維護(hù)也很困難;OBP是基于SUN公司提供的開(kāi)源代碼來(lái)開(kāi)發(fā)的,使用OBP的公司很少,缺乏產(chǎn)業(yè)鏈的廣泛支持;OBP僅對(duì)板載驅(qū)動(dòng)是Forth語(yǔ)言編寫(xiě)的外設(shè)進(jìn)行支持,很難支持主流的外設(shè)。

      【發(fā)明內(nèi)容】

      [0005]本發(fā)明的目的主要是為了解決上述現(xiàn)有技術(shù)的缺陷,提供一種基于飛騰便攜式計(jì)算機(jī)的UEFI固件的實(shí)現(xiàn)方法。根據(jù)這個(gè)方法,可以在飛騰便攜機(jī)上實(shí)現(xiàn)出符合國(guó)際主流UEFI固件規(guī)范、可擴(kuò)展性強(qiáng)、功能完善的固件產(chǎn)品,并且能完全替代0ΒΡ,以支持飛騰便攜機(jī)的正常啟動(dòng)和運(yùn)行。
      [0006]一種基于飛騰便攜機(jī)的UEFI固件的實(shí)現(xiàn)方法,固件劃分為硬件抽象層、固件核心層、設(shè)備協(xié)議層和固件應(yīng)用層。
      [0007]其中,硬件抽象層實(shí)現(xiàn)處理器、內(nèi)存、外設(shè)控制器等關(guān)鍵硬件部件的初始化,對(duì)其他板級(jí)硬件進(jìn)行包裝和抽象并實(shí)現(xiàn)初始化,同時(shí)為上層模塊提供訪問(wèn)底層硬件設(shè)備的函數(shù)接口。其包括處理器驅(qū)動(dòng)模塊、外設(shè)驅(qū)動(dòng)模塊和電源管理模塊,處理器驅(qū)動(dòng)模塊完成處理器、內(nèi)存的初始化工作,并提供訪問(wèn)處理器和內(nèi)存的接口 ;外設(shè)驅(qū)動(dòng)模塊主要是主板上各種外設(shè)的驅(qū)動(dòng),如顯卡、硬盤(pán)、鍵盤(pán)、USB設(shè)備、網(wǎng)卡等,每個(gè)外設(shè)會(huì)對(duì)應(yīng)一個(gè)(或多個(gè))驅(qū)動(dòng)模塊。對(duì)于基于FT1000A的硬件平臺(tái),外設(shè)驅(qū)動(dòng)模塊還要完成處理器中集成的外設(shè)控制器的初始化和資源分配工作;電源管理模塊主要是用來(lái)配合操作系統(tǒng)來(lái)完成系統(tǒng)的待機(jī)、休眠和喚醒等功能,并實(shí)現(xiàn)設(shè)備電源管理相關(guān)的功能和函數(shù)接口。
      [0008]固件核心層類(lèi)似于操作系統(tǒng)的內(nèi)核,建立UEFI中的系統(tǒng)服務(wù)表,進(jìn)行固件中所有模塊的統(tǒng)一管理和各種資源的管理。其包括固件核心加載模塊、固件核心模塊和基礎(chǔ)架構(gòu)功能模塊,固件核心加載模塊負(fù)責(zé)加載固件核心模塊,并為其準(zhǔn)備運(yùn)行環(huán)境,固件核心模塊負(fù)責(zé)建立UEFI規(guī)范中的啟動(dòng)服務(wù)(Boot Service)和運(yùn)行時(shí)服務(wù)(Runtime Service)表,加載、運(yùn)行其他功能模塊,管理各模塊之間的交互,實(shí)現(xiàn)內(nèi)存的管理,實(shí)現(xiàn)和維護(hù)時(shí)鐘中斷和事件機(jī)制,實(shí)現(xiàn)和維護(hù)固件應(yīng)用的特權(quán)級(jí)機(jī)制,實(shí)現(xiàn)UEFI規(guī)范中定義的Protocol的管理機(jī)制,實(shí)現(xiàn)UEFI規(guī)范要求實(shí)現(xiàn)的其他機(jī)制和功能,如調(diào)試接口、壓縮算法、變量存儲(chǔ)/處理等。基礎(chǔ)架構(gòu)功能模塊實(shí)現(xiàn)UEFI規(guī)范中的Architectural Protocol,包括多個(gè)功能模塊,每個(gè)模塊實(shí)現(xiàn)一個(gè) Architectural Protocol。每個(gè) Architectural Protocol 包含一些基礎(chǔ)服務(wù)接口,供固件中的其他功能模塊調(diào)用。
      [0009]設(shè)備協(xié)議層實(shí)現(xiàn)各種標(biāo)準(zhǔn)的工業(yè)規(guī)范,包括總線協(xié)議、外設(shè)接口等。其包括總線協(xié)議模塊,實(shí)現(xiàn)各種總線協(xié)議,如 PCI/PCIE、SATA、PATA、SCS1、USB、ISA、SMBUS、LPCBUS 等。通常是一個(gè)模塊實(shí)現(xiàn)一種總線協(xié)議,并通過(guò)UEFI規(guī)范中的Protocol機(jī)制“發(fā)布”這些總線的接口,這樣其他模塊就可以使用這些接口來(lái)訪問(wèn)總線。
      [0010]固件應(yīng)用層實(shí)現(xiàn)固件的各項(xiàng)功能,如配置界面、系統(tǒng)監(jiān)控、文件系統(tǒng)、操作系統(tǒng)引導(dǎo)等;其包括設(shè)備掃描模塊、人機(jī)界面模塊、系統(tǒng)監(jiān)控模塊、IEEE1275支持模塊、系統(tǒng)啟動(dòng)模塊、內(nèi)核加載模塊和Shell模塊,設(shè)備掃描模塊枚舉系統(tǒng)中的所有外部設(shè)備,如PCI/PCIE總線上的設(shè)備,為這些設(shè)備分配資源,并將設(shè)備與相應(yīng)的外設(shè)驅(qū)動(dòng)模塊進(jìn)行Connect (也即交給該設(shè)備驅(qū)動(dòng)進(jìn)行管理);人機(jī)界面模塊位于顯卡驅(qū)動(dòng)模塊之上,實(shí)現(xiàn)所有顯示相關(guān)的接口,如設(shè)置顯示模式、在特定位置打印字符串、顯示圖片、清屏等;系統(tǒng)監(jiān)控模塊實(shí)時(shí)檢測(cè)處理器溫度、系統(tǒng)電壓和風(fēng)扇轉(zhuǎn)速,根據(jù)溫度值來(lái)調(diào)整風(fēng)扇的轉(zhuǎn)速,允許用戶設(shè)定溫度閾值,當(dāng)溫度過(guò)高時(shí),進(jìn)行自動(dòng)關(guān)機(jī);IEEE1275支持模塊實(shí)現(xiàn)IEEE1275規(guī)范中定義的固件與操作系統(tǒng)的函數(shù)接口、數(shù)據(jù)結(jié)構(gòu),供操作系統(tǒng)在啟動(dòng)和運(yùn)行階段調(diào)用;系統(tǒng)啟動(dòng)模塊提供一個(gè)圖形化的用戶配置界面,用戶通過(guò)菜單操作的方式,查看系統(tǒng)信息和對(duì)系統(tǒng)進(jìn)行配置。最后根據(jù)用戶的選擇,從存儲(chǔ)設(shè)備啟動(dòng)操作系統(tǒng);文件系統(tǒng)模塊實(shí)現(xiàn)FAT/FAT32、EXT2/3/4和IS09660文件系統(tǒng),支持對(duì)文件的讀取操作;內(nèi)核加載模塊在系統(tǒng)啟動(dòng)的最后階段,這個(gè)模塊從硬盤(pán)、U盤(pán)、光盤(pán)等存儲(chǔ)介質(zhì)中將內(nèi)核文件(或內(nèi)核加載器)加載到內(nèi)存中,并為內(nèi)核文件準(zhǔn)備必要的參數(shù),然后跳轉(zhuǎn)到內(nèi)核(或內(nèi)核加載器)的入口點(diǎn)執(zhí)行,這樣就將控制權(quán)交給了操作系統(tǒng);Shell模塊Shell是UEFI固件提供的一個(gè)命令行環(huán)境,基于UEFI固件中提供的大量接口服務(wù),可以開(kāi)發(fā)出Shell下的多種固件應(yīng)用程序。
      [0011]本發(fā)明的基于飛騰便攜機(jī)的UEFI固件的具體運(yùn)行步驟如下:
      [0012](I)初始化處理器、內(nèi)存,建立起固件運(yùn)行的基本環(huán)境;
      [0013](2)將UEFI固件代碼復(fù)制到內(nèi)存,并對(duì)固件進(jìn)行解壓,加載固件核心模塊;
      [0014](3)建立UEFI固件的基礎(chǔ)服務(wù);
      [0015](4)加載UEFI固件功能模塊,包括基礎(chǔ)架構(gòu)功能模塊、設(shè)備協(xié)議模塊;
      [0016](5)掃描設(shè)備并為設(shè)備分配系統(tǒng)資源,加載設(shè)備驅(qū)動(dòng)模塊,完成設(shè)備初始化;
      [0017](6)加載電源管理模塊,并根據(jù)啟動(dòng)模式來(lái)執(zhí)行相應(yīng)的啟動(dòng)路徑:
      [0018]a)如果當(dāng)前啟動(dòng)模式是從S3待機(jī)狀態(tài)喚醒,則跳轉(zhuǎn)到操作系統(tǒng)進(jìn)入S3狀態(tài)前的運(yùn)行地址,結(jié)束啟動(dòng)過(guò)程;
      [0019]b)如果當(dāng)前啟動(dòng)模式是正常啟動(dòng)模式(包括熱啟動(dòng)、冷啟動(dòng)),或從S5休眠狀態(tài)喚醒,則繼續(xù)后續(xù)的步驟;
      [0020](7)加載執(zhí)行固件應(yīng)用模塊;
      [0021](8)運(yùn)行配置界面;
      [0022](9)從存儲(chǔ)設(shè)備加載操作系統(tǒng)。
      [0023]上述步驟中,步驟(I)中執(zhí)行處理器驅(qū)動(dòng)模塊。在步驟(I)執(zhí)行之前,系統(tǒng)中的虛擬機(jī)監(jiān)控器Hypervisor已經(jīng)實(shí)現(xiàn)了物理處理器和內(nèi)存的初始化,此時(shí)處理器驅(qū)動(dòng)模塊只需要對(duì)虛擬的處理器、內(nèi)存進(jìn)行初始化,進(jìn)行參數(shù)的配置,以及提供訪問(wèn)CPU、Cache、內(nèi)存等部件的接口。
      [0024]上述步驟中,步驟⑵中執(zhí)行固件核心加載模塊。步驟⑴執(zhí)行完成后,系統(tǒng)內(nèi)存已經(jīng)初始化好,此時(shí)固件代碼可以在內(nèi)存中運(yùn)行以加快運(yùn)行速度;而且可以用C語(yǔ)言來(lái)實(shí)現(xiàn)固件代碼,加快開(kāi)發(fā)速度。固件中包含的功能模塊較多,而FLASH芯片的容量有限,一般需要將存放功能模塊的固件卷進(jìn)行壓縮,固件核心加載模塊負(fù)責(zé)從FLASH中將壓縮的固件卷復(fù)制到內(nèi)存中,并進(jìn)行解壓;解壓成功后,在內(nèi)存中創(chuàng)建H0B(Hand_0ff Block)數(shù)據(jù)表,存放處理器、內(nèi)存、FLASH等系統(tǒng)信息,提供給后續(xù)的固件模塊使用;最后,固件核心加載模塊將控制權(quán)交給固件核心模塊。
      [0025]上述步驟中,步驟(3)中執(zhí)行固件核心模塊。固件核心模塊首先初始化UEFI的系統(tǒng)服務(wù),為后續(xù)的功能模塊的加載、運(yùn)行做準(zhǔn)備。主要是完成UEFI系統(tǒng)表、UEFI啟動(dòng)服務(wù)表和UEFI運(yùn)行時(shí)服務(wù)表的初始化,具體服務(wù)包括代碼調(diào)試、內(nèi)存管理、UEFI鏡像管理、Η0Β、UEFI時(shí)鐘、FLASH訪問(wèn)、解壓縮、固件卷解析、UEFI事件、任務(wù)優(yōu)先級(jí)、UEFI Protocol管理、UEFI變量存取等。系統(tǒng)服務(wù)表存放在內(nèi)存的特定區(qū)域,UEFI固件中的所有功能模塊都可以調(diào)用這些系統(tǒng)服務(wù)。
      [0026]上述步驟中,步驟(4)中固件核心模
      當(dāng)前第1頁(yè)1 2 3 
      網(wǎng)友詢問(wèn)留言 已有0條留言
      • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1