本發(fā)明涉及基于uefi標(biāo)準(zhǔn)的計(jì)算機(jī)系統(tǒng)領(lǐng)域,具體涉及一種基于uefi標(biāo)準(zhǔn)的計(jì)算機(jī)系統(tǒng)上電自檢時(shí)的快速顯示狀態(tài)信息方法及系統(tǒng)。
背景技術(shù):
服務(wù)器是在處理能力、穩(wěn)定性、可靠性、安全性、可擴(kuò)展性、可管理性等要求非常高的提供計(jì)算服務(wù)的設(shè)備。
目前服務(wù)器的開(kāi)發(fā)商都是采用uefibios對(duì)服務(wù)器系統(tǒng)硬件及相關(guān)功能進(jìn)行初始化,并引導(dǎo)進(jìn)入操作系統(tǒng)。基于uefi標(biāo)準(zhǔn),uefi總共有sec,pei,dxe,bds四個(gè)階段及組成部分,而到了bds階段uefi才開(kāi)始打開(kāi)顯示控制器進(jìn)行有效輸出至顯示器。其中,新型uefi,全稱(chēng)“統(tǒng)一的可擴(kuò)展固件接口”(unifiedextensiblefirmwareinterface),是一種詳細(xì)描述類(lèi)型接口的標(biāo)準(zhǔn)。這種接口用于操作系統(tǒng)自動(dòng)從預(yù)啟動(dòng)的操作環(huán)境,加載到一種操作系統(tǒng)上。
其中sec階段主要初始化包括設(shè)置保護(hù)模式、mtrr的初始化、mp的初始化、cacheasram的初始化;pei階段主要初始化包括基本chipset初始化、cpu與cpu之間的橋接初始化、cpu的初始化、內(nèi)存的初始化、board的初始化;dxe階段主要初始化提供各種dxe驅(qū)動(dòng)和efi驅(qū)動(dòng),以供dxe和bds階段加載運(yùn)行,這些驅(qū)動(dòng)主要包括chipset驅(qū)動(dòng)、cpu驅(qū)動(dòng)、smm驅(qū)動(dòng)、設(shè)備驅(qū)動(dòng)、bus驅(qū)動(dòng)和相關(guān)的服務(wù)驅(qū)動(dòng);bds階段主要初始化是通過(guò)dxe提供的efi驅(qū)動(dòng)去建立掛載輸入輸出設(shè)備(顯示器、鍵盤(pán)、鼠標(biāo)、網(wǎng)絡(luò)等等)和加載可啟動(dòng)設(shè)備引導(dǎo)操作系統(tǒng)。
基于服務(wù)器組件的復(fù)雜性和強(qiáng)大的功能性能需求,服務(wù)器大部分的最重要的硬件和功能初始化都必須在pei,dxe階段完成。
特別是在pei階段,uefi要完成服務(wù)器上的核心組成部分,比如內(nèi)存、cpu、管理模塊,以及系統(tǒng)上其它的芯片組的初始化,同時(shí)系統(tǒng)要在dxe階段完成所有相關(guān)功能模塊和輸入/輸出設(shè)備的驅(qū)動(dòng)加載以及系統(tǒng)資源的分配。pei和dxe階段占用了非常長(zhǎng)的時(shí)間,在整個(gè)啟動(dòng)服務(wù)過(guò)程中占用超過(guò)約85%的時(shí)間。恰恰在這兩個(gè)非常重要的初始化階段,uefibios并沒(méi)有實(shí)現(xiàn)系統(tǒng)的顯示功能。
由于系統(tǒng)在pei和dxe階段占用非常長(zhǎng)的時(shí)間,用戶不能直接的看到各個(gè)模塊、各個(gè)設(shè)備的檢測(cè)是否正常,資源分配是否正確。如果系統(tǒng)在pei,dxe階段出錯(cuò)死機(jī),由于沒(méi)有顯示,用戶不能簡(jiǎn)單快速的發(fā)現(xiàn)問(wèn)題,解決問(wèn)題,如果將服務(wù)器搬回開(kāi)發(fā)商解決問(wèn)題,增加成本開(kāi)支。
如果服務(wù)器配置相對(duì)比較高時(shí),所要檢測(cè)的設(shè)備會(huì)更多,僅cpu和內(nèi)存部分的training檢測(cè)時(shí)間就需要好幾分鐘,再加上其它i/o設(shè)備的training檢測(cè),開(kāi)機(jī)時(shí)間開(kāi)過(guò)3分鐘都可以成為常態(tài)。由于常規(guī)的服務(wù)器設(shè)備檢測(cè)顯示設(shè)備是等所有的其它設(shè)備全部檢測(cè)完成,才會(huì)去初始化和檢測(cè)。所以前期硬件設(shè)備檢測(cè)階段,顯示接口不會(huì)有任何輸出。常規(guī)的開(kāi)機(jī)過(guò)程中為了辨別一些常規(guī)性的錯(cuò)誤提示,通常會(huì)在內(nèi)存異常位置加入蜂鳴器鳴叫的提示,提示內(nèi)存異常,由于蜂鳴器標(biāo)識(shí)異常的方法單一所以無(wú)法標(biāo)識(shí)更多的異常信息。進(jìn)而導(dǎo)致在系統(tǒng)開(kāi)機(jī)上電到系統(tǒng)自檢完成過(guò)程中這漫長(zhǎng)的幾分鐘時(shí)間用戶只能等,而不知道系統(tǒng)是否在正常的運(yùn)行。一旦遇到蜂鳴器不能給出提示的不顯示問(wèn)題,用戶也無(wú)法了解系統(tǒng)到底停在了哪個(gè)階段。這些問(wèn)題嚴(yán)重影響服務(wù)器給到用戶的體驗(yàn)。
隨著信息技術(shù),互聯(lián)網(wǎng)和云計(jì)算的發(fā)展,對(duì)服務(wù)器需求越來(lái)越多,性能越來(lái)越強(qiáng)大,功能越來(lái)越完善,基于上述問(wèn)題,如何讓服務(wù)器開(kāi)機(jī)上電后,馬上就有顯示輸出并可以顯示出當(dāng)前的狀態(tài)信息是非常重要的。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明要解決的技術(shù)問(wèn)題在于,針對(duì)現(xiàn)有技術(shù)的上述缺陷,提供一種基于uefi標(biāo)準(zhǔn)的計(jì)算機(jī)系統(tǒng)上電自檢時(shí)的快速顯示狀態(tài)信息方法,在基于uefi標(biāo)準(zhǔn)的計(jì)算機(jī)系統(tǒng)的上電自檢過(guò)程中,將當(dāng)前關(guān)鍵位置及其對(duì)應(yīng)的狀態(tài)信息完整的顯示出來(lái)。
本發(fā)明要解決的技術(shù)問(wèn)題在于,針對(duì)現(xiàn)有技術(shù)的上述缺陷,提供一種基于uefi標(biāo)準(zhǔn)的計(jì)算機(jī)系統(tǒng)上電自檢時(shí)的快速顯示狀態(tài)信息系統(tǒng),在基于uefi標(biāo)準(zhǔn)的計(jì)算機(jī)系統(tǒng)的上電自檢過(guò)程中,將當(dāng)前關(guān)鍵位置及其對(duì)應(yīng)的狀態(tài)信息完整的顯示出來(lái)。
本發(fā)明解決其技術(shù)問(wèn)題所采用的技術(shù)方案是:提供一種基于uefi標(biāo)準(zhǔn)的計(jì)算機(jī)系統(tǒng)上電自檢時(shí)的快速顯示狀態(tài)信息方法,該基于uefi標(biāo)準(zhǔn)的計(jì)算機(jī)系統(tǒng)在上電自檢時(shí)依次進(jìn)入pei階段和dxe階段,該快速顯示狀態(tài)信息方法包括步驟:建立第一顯示程序和對(duì)應(yīng)的顯示模塊接口;在pei階段的各模塊通過(guò)顯示模塊接口,調(diào)用第一顯示程序,用于顯示各模塊的狀態(tài)信息;建立第二顯示程序和對(duì)應(yīng)的顯示驅(qū)動(dòng)接口;在dxe階段的各驅(qū)動(dòng)通過(guò)顯示驅(qū)動(dòng)接口,調(diào)用第二顯示程序,用于顯示各驅(qū)動(dòng)的狀態(tài)信息。
其中,較佳方案是:該基于uefi標(biāo)準(zhǔn)的計(jì)算機(jī)系統(tǒng)包括一顯示控制器,并通過(guò)顯示控制器與顯示器連接;其中,在pei階段的各模塊通過(guò)顯示模塊接口,調(diào)用第一顯示程序,在顯示器上顯示各模塊的狀態(tài)信息;在dxe階段的各驅(qū)動(dòng)通過(guò)顯示驅(qū)動(dòng)接口,調(diào)用第二顯示程序,在顯示器上顯示各驅(qū)動(dòng)的狀態(tài)信息。
其中,較佳方案是,建立第一顯示程序或第二顯示程序的步驟包括:掛載顯示控制器;根據(jù)顯示控制器的橋接量,分配對(duì)應(yīng)級(jí)數(shù)的bus號(hào)碼;根據(jù)顯示控制器的內(nèi)存地址寄存器,分配內(nèi)存資源;根據(jù)顯示控制器的i/o地址寄存器,分配輸入/輸出資源。
其中,較佳方案是,建立第一顯示程序或第二顯示程序的步驟還包括:初始化顯卡硬件的配置;設(shè)置顯示模式;裝填字符到顯存中。
其中,較佳方案是:該顯示模塊接口為ppi接口,該顯示驅(qū)動(dòng)接口為protocol接口。
其中,較佳方案是:根據(jù)工業(yè)標(biāo)準(zhǔn)pcie協(xié)議,分配對(duì)應(yīng)級(jí)數(shù)的bus號(hào)碼,以及分配內(nèi)存資源和分配輸入/輸出資源。
其中,較佳方案是:該基于uefi標(biāo)準(zhǔn)的計(jì)算機(jī)系統(tǒng)在dxe階段后進(jìn)入bds階段,再次初始化顯卡并進(jìn)行引導(dǎo)操作系統(tǒng)。
其中,較佳方案是:該基于uefi標(biāo)準(zhǔn)的計(jì)算機(jī)系統(tǒng)為基于uefi標(biāo)準(zhǔn)的服務(wù)器系統(tǒng)。
本發(fā)明解決其技術(shù)問(wèn)題所采用的技術(shù)方案是:提供一種基于uefi標(biāo)準(zhǔn)的計(jì)算機(jī)系統(tǒng)上電自檢時(shí)的快速顯示狀態(tài)信息系統(tǒng),該基于uefi標(biāo)準(zhǔn)的計(jì)算機(jī)系統(tǒng)在上電自檢時(shí)依次進(jìn)入pei階段和dxe階段,該基于uefi標(biāo)準(zhǔn)的計(jì)算機(jī)系統(tǒng)在pei階段包括若干模塊,該基于uefi標(biāo)準(zhǔn)的計(jì)算機(jī)系統(tǒng)在dxe階段包括若干驅(qū)動(dòng),該快速顯示狀態(tài)信息系統(tǒng)包括:第一顯示程序,用于顯示各模塊的狀態(tài)信息;顯示模塊接口,該顯示模塊接口與第一顯示程序連接,在pei階段的各模塊通過(guò)顯示模塊接口,調(diào)用第一顯示程序;第二顯示程序,用于顯示各驅(qū)動(dòng)的狀態(tài)信息;顯示驅(qū)動(dòng)接口,該顯示驅(qū)動(dòng)接口與第二顯示程序連接,在dxe階段的各驅(qū)動(dòng)通過(guò)顯示驅(qū)動(dòng)接口,調(diào)用第二顯示程序。
其中,較佳方案是:該基于uefi標(biāo)準(zhǔn)的計(jì)算機(jī)系統(tǒng)包括一顯示控制器,并通過(guò)顯示控制器與顯示器連接;其中,在pei階段的各模塊通過(guò)顯示模塊接口,調(diào)用第一顯示程序,在顯示器上顯示各模塊的狀態(tài)信息;在dxe階段的各驅(qū)動(dòng)通過(guò)顯示驅(qū)動(dòng)接口,調(diào)用第二顯示程序,在顯示器上顯示各驅(qū)動(dòng)的狀態(tài)信息。
本發(fā)明的有益效果在于,與現(xiàn)有技術(shù)相比,本發(fā)明通過(guò)設(shè)計(jì)一種基于uefi標(biāo)準(zhǔn)的計(jì)算機(jī)系統(tǒng)上電自檢時(shí)的快速顯示狀態(tài)信息方法及系統(tǒng),在不需要額外增加硬件的情況下,基于uefi標(biāo)準(zhǔn)的計(jì)算機(jī)系統(tǒng)在上電自檢時(shí),用戶就可以看到基于uefi標(biāo)準(zhǔn)的計(jì)算機(jī)系統(tǒng)的各關(guān)鍵模塊或驅(qū)動(dòng)狀態(tài)及信息,增強(qiáng)和提升了用戶體驗(yàn);同時(shí),可以智能顯示基于uefi標(biāo)準(zhǔn)的計(jì)算機(jī)系統(tǒng)的電源、風(fēng)扇、溫度等等的基本健康信息,也可以顯示管理網(wǎng)口的mac/ip地址,便于用戶對(duì)基于uefi標(biāo)準(zhǔn)的計(jì)算機(jī)系統(tǒng)的管理;以及,基于uefi標(biāo)準(zhǔn)的計(jì)算機(jī)系統(tǒng)在上電自檢過(guò)程中,如果有錯(cuò)誤產(chǎn)生,可以通過(guò)錯(cuò)誤信息迅速排錯(cuò),減少成本開(kāi)支。
附圖說(shuō)明
下面將結(jié)合附圖及實(shí)施例對(duì)本發(fā)明作進(jìn)一步說(shuō)明,附圖中:
圖1是本發(fā)明快速顯示狀態(tài)信息方法的流程示意圖;
圖2是本發(fā)明建立第一顯示程序和第二顯示程序的流程示意圖;
圖3是本發(fā)明pei階段快速顯示狀態(tài)信息方法的流程示意圖;
圖4是本發(fā)明dxe階段快速顯示狀態(tài)信息方法的流程示意圖;
圖5是本發(fā)明快速顯示狀態(tài)信息系統(tǒng)的第一實(shí)施例的結(jié)構(gòu)框圖;
圖6是本發(fā)明快速顯示狀態(tài)信息系統(tǒng)的第二實(shí)施例的結(jié)構(gòu)框圖。
具體實(shí)施方式
現(xiàn)結(jié)合附圖,對(duì)本發(fā)明的較佳實(shí)施例作詳細(xì)說(shuō)明。
如圖1所示,本發(fā)明提供一種基于uefi標(biāo)準(zhǔn)的計(jì)算機(jī)系統(tǒng)上電自檢時(shí)的快速顯示狀態(tài)信息方法的優(yōu)選實(shí)施例。其中,圖1是本發(fā)明快速顯示狀態(tài)信息方法的流程示意圖。
一種基于uefi標(biāo)準(zhǔn)的計(jì)算機(jī)系統(tǒng)上電自檢時(shí)的快速顯示狀態(tài)信息方法,該基于uefi標(biāo)準(zhǔn)的計(jì)算機(jī)系統(tǒng)在上電自檢時(shí)依次進(jìn)入pei階段和dxe階段,該快速顯示狀態(tài)信息方法包括步驟:
建立第一顯示程序和對(duì)應(yīng)的顯示模塊接口;在pei階段的各模塊通過(guò)顯示模塊接口,調(diào)用第一顯示程序,用于顯示各模塊的狀態(tài)信息;
建立第二顯示程序和對(duì)應(yīng)的顯示驅(qū)動(dòng)接口;在dxe階段的各驅(qū)動(dòng)通過(guò)顯示驅(qū)動(dòng)接口,調(diào)用第二顯示程序,用于顯示各驅(qū)動(dòng)的狀態(tài)信息。
根據(jù)實(shí)際需要,在基于uefi標(biāo)準(zhǔn)的計(jì)算機(jī)系統(tǒng)的biospost過(guò)程中,對(duì)各關(guān)鍵節(jié)點(diǎn)的狀態(tài)和信息進(jìn)行定義,并將顯示輸出指令嵌入到基于uefi標(biāo)準(zhǔn)的計(jì)算機(jī)系統(tǒng)的biospost過(guò)程中的各關(guān)鍵位置;進(jìn)而,在基于uefi標(biāo)準(zhǔn)的計(jì)算機(jī)系統(tǒng)開(kāi)機(jī)過(guò)程中可以將當(dāng)前biospost過(guò)程的位置以及狀態(tài)信息完整的顯示出來(lái)。
快速顯示狀態(tài)信息方法的具體步驟如下:
s11、進(jìn)入pei階段;
s12、建立第一顯示程序和對(duì)應(yīng)的顯示模塊接口;
s13、在pei階段的各模塊通過(guò)顯示模塊接口,調(diào)用第一顯示程序,用于顯示各模塊的狀態(tài)信息。
s21、進(jìn)入dxe階段;
s22、建立第二顯示程序和對(duì)應(yīng)的顯示驅(qū)動(dòng)接口;
s23、在dxe階段的各驅(qū)動(dòng)通過(guò)顯示驅(qū)動(dòng)接口,調(diào)用第二顯示程序,用于顯示各驅(qū)動(dòng)的狀態(tài)信息。
其中,該pei階段中的模塊主要包括cpu2cpu橋模塊、cpu模塊、內(nèi)存模塊、系統(tǒng)管理模塊、系統(tǒng)安全模塊、計(jì)算機(jī)系統(tǒng)上其它的芯片組模塊和pei服務(wù)模塊;該dxe階段中的驅(qū)動(dòng)主要包括chipset驅(qū)動(dòng)、cpu驅(qū)動(dòng)、smm驅(qū)動(dòng)、設(shè)備驅(qū)動(dòng)、bus驅(qū)動(dòng)和dxe服務(wù)驅(qū)動(dòng)。
進(jìn)一步地,該基于uefi標(biāo)準(zhǔn)的計(jì)算機(jī)系統(tǒng)進(jìn)入bds階段,uefibios本身按照bios啟動(dòng)過(guò)程再次初始化顯卡并進(jìn)行引導(dǎo)操作系統(tǒng)。具體地,直到biospost過(guò)程的最后階段bds階段,再將此前初始化配置信息去除(即pei階段和dxe階段),進(jìn)行常規(guī)的加載vbiosrom并對(duì)顯示卡重新初始化,后進(jìn)入bds常規(guī)的引導(dǎo)操作系統(tǒng)的階段。其中post為poweronselftest,也就是上電自檢。bios為baseinput/outputsystem,指的就是uefi。
進(jìn)一步地,該基于uefi標(biāo)準(zhǔn)的計(jì)算機(jī)系統(tǒng)包括一顯示控制器,并通過(guò)顯示控制器與顯示器連接。在pei階段的各模塊通過(guò)顯示模塊接口,調(diào)用第一顯示程序,在顯示器上顯示各模塊的狀態(tài)信息;在dxe階段的各驅(qū)動(dòng)通過(guò)顯示驅(qū)動(dòng)接口,調(diào)用第二顯示程序,在顯示器上顯示各驅(qū)動(dòng)的狀態(tài)信息。
在本實(shí)施例中,該基于uefi標(biāo)準(zhǔn)的計(jì)算機(jī)系統(tǒng)優(yōu)選為基于uefi標(biāo)準(zhǔn)的服務(wù)器系統(tǒng)。
在本實(shí)施例中,該顯示模塊接口為ppi接口,該顯示驅(qū)動(dòng)接口為protocol接口。
如圖2所示,本發(fā)明提供建立第一顯示程序和第二顯示程序的方法的較佳實(shí)施例。其中,圖2是本發(fā)明建立第一顯示程序和第二顯示程序的流程示意圖。
通過(guò)第一顯示程序或第二顯示程序的步驟包括:
s31、掛載顯示控制器;
s32、根據(jù)顯示控制器的橋接量,分配對(duì)應(yīng)級(jí)數(shù)的bus號(hào)碼;
s33、根據(jù)顯示控制器的內(nèi)存地址寄存器,分配內(nèi)存資源;
s34、根據(jù)顯示控制器的i/o地址寄存器,分配輸入/輸出資源。
進(jìn)一步地,該快速顯示狀態(tài)信息方法還包括步驟:
s35、初始化顯卡硬件的配置;
s36、設(shè)置顯示模式;
s37、裝填字符到顯存中。
在步驟s31中,對(duì)要掛載顯示控制器的pcierootport,進(jìn)行設(shè)置正確的帶寬,設(shè)置的帶寬由顯示控制器的帶寬來(lái)決定。
在步驟s32中,根據(jù)工業(yè)標(biāo)準(zhǔn)pcie協(xié)議,通過(guò)顯示控制器的headertype寄存器判斷顯示控制器是否有橋接。如果有橋接,先在pcierootport上分配第一級(jí)bus號(hào)碼;再進(jìn)一步基于第一級(jí)的分配原則,對(duì)第二個(gè)橋接進(jìn)行bus號(hào)碼的分配。如此類(lèi)推,有多少橋接,就需要進(jìn)行多少級(jí)的bus號(hào)碼分配,并根據(jù)工業(yè)標(biāo)準(zhǔn)pcie協(xié)議,分配對(duì)應(yīng)級(jí)數(shù)的bus號(hào)碼。
在步驟s33中,根據(jù)工業(yè)標(biāo)準(zhǔn)pcie協(xié)議,通過(guò)顯示控制器的內(nèi)存地址寄存器,通過(guò)寫(xiě)0ffffffffh到這個(gè)寄存器,然后將讀回來(lái)的值決定所需要的內(nèi)存大小,然后依據(jù)所計(jì)算出來(lái)的所需要的內(nèi)存大小分配內(nèi)存,將此內(nèi)存的基址寫(xiě)到這個(gè)寄存器中,然后將命令寄存器的內(nèi)存位置1允許內(nèi)存讀寫(xiě)有效。
在步驟s34中,根據(jù)工業(yè)標(biāo)準(zhǔn)pcie協(xié)議,通過(guò)顯示控制器的i/o地址寄存器,通過(guò)寫(xiě)0ffffffffh到這個(gè)寄存器,然后將讀回來(lái)的值決定所需要的i/o空間大小,然后依據(jù)所計(jì)算出來(lái)的所需的i/o大小分配i/o空間,將此i/o的基址寫(xiě)到這個(gè)寄存器中,然后將命令寄存器的i/o位置1允許i/o讀寫(xiě)有效。
在步驟s35中,包括步驟:1、首先通過(guò)i/o地址使能vga;2、水平和垂直掃描的同步極性選擇;3、顯卡內(nèi)部選通i/o和內(nèi)存的解碼;4、然后通過(guò)擴(kuò)展寄存器對(duì)vga,比如pci控制模式進(jìn)行i/o、內(nèi)存的訪問(wèn)模式進(jìn)行配置;5、進(jìn)行顯卡解鎖;6、最后初始化顯卡內(nèi)存。
在步驟s36中,包括步驟:1、在設(shè)置模式前,進(jìn)行關(guān)閉顯示功能設(shè)置,目的讓以下的設(shè)置生效;2、通過(guò)vgamisc.寄存器對(duì)i/o地址(3bx或者3dx)選擇、使能顯存、顯卡時(shí)鐘頻率選擇、屏幕水平/垂直掃描的極性設(shè)置;3、通過(guò)vgasequential寄存器對(duì)時(shí)鐘模式、字符映射選擇參數(shù)進(jìn)行設(shè)置;4、通過(guò)vgacrt寄存器對(duì)行,列,光標(biāo)顯示模式進(jìn)行設(shè)置;5、通過(guò)vgaattribute/graphicscontrol寄存器對(duì)調(diào)色,像素,圖形模式等進(jìn)行設(shè)置;6、通過(guò)ramdac寄存器進(jìn)行數(shù)模轉(zhuǎn)換設(shè)置;7、加載文本模式字庫(kù),將ascii碼表中的0x00-0xff放入到顯存0xa0000里面去;8、清空顯存0xb0000h;9、上面的設(shè)置完成之后,打開(kāi)顯示功能。
在步驟s37中,往顯存0xb8000h里面放入所需要顯示的字符,以便實(shí)現(xiàn)字符顯示在屏幕上。
如圖3和圖4所示,本發(fā)明提供一種快速顯示狀態(tài)信息方法的較佳實(shí)施例。其中,圖3是本發(fā)明pei階段快速顯示狀態(tài)信息方法的流程示意圖;圖4是本發(fā)明dxe階段快速顯示狀態(tài)信息方法的流程示意圖。
建立第一顯示程序?qū)?yīng)的顯示模塊接口或第而顯示程序?qū)?yīng)的顯示驅(qū)動(dòng)接口,通過(guò)顯示模塊接口調(diào)用第一顯示程序,以及通過(guò)顯示驅(qū)動(dòng)接口調(diào)用第二顯示程序。
參考圖3,如果用戶想知道pei階段的各模塊初始化狀態(tài),用戶就可以通過(guò)在各模塊中對(duì)應(yīng)的ppi接口調(diào)用第一顯示程序,從而實(shí)現(xiàn)對(duì)應(yīng)功能初始化狀態(tài)的動(dòng)態(tài)顯示,即如步驟s131,實(shí)現(xiàn)定義及調(diào)用,在步驟s132中,根據(jù)調(diào)用顯示狀態(tài)信息。參考圖4,如果用戶想知道dxe階段的各個(gè)驅(qū)動(dòng)初始化狀態(tài),用戶就可以通過(guò)在各驅(qū)動(dòng)中對(duì)應(yīng)的protocol接口調(diào)用第二顯示程序,從而實(shí)現(xiàn)對(duì)應(yīng)功能初始化狀態(tài)的動(dòng)態(tài)顯示,即如步驟s231,實(shí)現(xiàn)定義及調(diào)用,在步驟s232中,根據(jù)調(diào)用顯示狀態(tài)信息。
具體地,首先根據(jù)pi和uefi規(guī)范,pei和dxe這兩個(gè)階段的功能ppi和protocol,協(xié)議接口是不可以互相調(diào)用的,所以分兩步對(duì)顯卡做同樣的初始化工作,在pei階段建立第一顯示程序,并查找定位對(duì)應(yīng)的模塊,定位成功之后就該模塊可以調(diào)用第一顯示程序進(jìn)行顯示;在dxe階段建立第二顯示程序,并查找定位對(duì)應(yīng)的驅(qū)動(dòng),定位成功之后就該驅(qū)動(dòng)可以調(diào)用第二顯示程序進(jìn)行顯示。
在pei階段,設(shè)置3個(gè)入口參數(shù),其中兩個(gè)為“**peiservices”和“*this”,是uefi/pi在創(chuàng)建pei模塊時(shí)規(guī)定需要的;另一一個(gè)入口參數(shù)參數(shù)“*string”,就是顯示在屏幕上的字符,這個(gè)字符的內(nèi)容是由不同的模塊、不同的模塊設(shè)置結(jié)果狀態(tài)和根據(jù)客戶/用戶的需求來(lái)設(shè)定的。
另外定義六個(gè)必不可少的變量,其中“rp_bus”、“rp_dev”、“rp_fun”這三個(gè)變量確定在基于uefi標(biāo)準(zhǔn)的計(jì)算機(jī)系統(tǒng)系統(tǒng)上的顯卡,是掛在芯片上哪一個(gè)pcie根端口上的,通過(guò)上述步驟s31至s34實(shí)現(xiàn);其中,“displaymode”變量決定以什么樣的模式顯示字符。本發(fā)明支持文本和圖形兩種模式顯示字符,其中在文本模式下的設(shè)計(jì)為,中屏幕中間通過(guò)“#”字符的集合顯示開(kāi)發(fā)商或者客戶所需要的項(xiàng)目名稱(chēng)或者公司名稱(chēng),在屏幕的底部顯示pei階段各個(gè)功能模塊的狀態(tài)信息,在這種模式下,還可以控制字體的顏色和字體的閃爍屬性設(shè)置;如果以圖形模式顯示字符,本發(fā)明只支持pei狀態(tài)信息,這個(gè)狀態(tài)信息的顯示通過(guò)“x”和“y”這兩個(gè)變量確定字符顯示在屏幕上的任意位置。
在dxe階段,設(shè)置1個(gè)入口參數(shù)“*string”,就是顯示在屏幕上的字符,就是顯示在屏幕上的字符,這個(gè)字符的內(nèi)容是由不同的驅(qū)動(dòng)、不同的驅(qū)動(dòng)設(shè)置結(jié)果狀態(tài)和根據(jù)客戶/用戶的需求來(lái)設(shè)定的。
另外定義六個(gè)必不可少的變量,其中“rp_bus”、“rp_dev”、“rp_fun”這三個(gè)變量確定在基于uefi標(biāo)準(zhǔn)的計(jì)算機(jī)系統(tǒng)上的顯卡,是掛在芯片上哪一個(gè)pcie根端口上的,通過(guò)上述步驟s31至s34實(shí)現(xiàn);其中,“displaymode”變量決定以什么樣的模式顯示字符。顯示字符的方式與pei階段的顯示字符方式一致,再次就不一一描述。
通過(guò)步驟s31至s34,系統(tǒng)必須先把顯卡掛載上去,分配好內(nèi)存,輸入/輸出資源之后,系統(tǒng)才可以和顯卡做設(shè)置、數(shù)據(jù)等的傳輸交流;然后通過(guò)步驟s35至s36,初始化配置顯卡本身的顯示屬性參數(shù)了;最后通過(guò)變量“x”和“y”將參數(shù)“*string”的字符顯示在vga控制臺(tái)上面去。
如圖5和圖6所示,本發(fā)明提供一種基于uefi標(biāo)準(zhǔn)的計(jì)算機(jī)系統(tǒng)上電自檢時(shí)的快速顯示狀態(tài)信息系統(tǒng)的優(yōu)選實(shí)施例。
一種基于uefi標(biāo)準(zhǔn)的計(jì)算機(jī)系統(tǒng)上電自檢時(shí)的快速顯示狀態(tài)信息系統(tǒng),該基于uefi標(biāo)準(zhǔn)的計(jì)算機(jī)系統(tǒng)在上電自檢時(shí)依次進(jìn)入pei階段和dxe階段,該基于uefi標(biāo)準(zhǔn)的計(jì)算機(jī)系統(tǒng)在pei階段包括若干模塊11,該基于uefi標(biāo)準(zhǔn)的計(jì)算機(jī)系統(tǒng)在dxe階段包括若干驅(qū)動(dòng)12,該快速顯示狀態(tài)信息系統(tǒng)包括:
第一顯示程序31,用于顯示各模塊11的狀態(tài)信息;顯示模塊接口21,該顯示模塊接口21與第一顯示程序31連接,在pei階段的各模塊11通過(guò)顯示模塊接口21,調(diào)用第一顯示程序31;第二顯示程序32,用于顯示各驅(qū)動(dòng)12的狀態(tài)信息;顯示驅(qū)動(dòng)接口22,該顯示驅(qū)動(dòng)接口22與第二顯示程序32連接,在dxe階段的各驅(qū)動(dòng)12通過(guò)顯示驅(qū)動(dòng)接口22,調(diào)用第二顯示程序32。
進(jìn)一步的,該基于uefi標(biāo)準(zhǔn)的計(jì)算機(jī)系統(tǒng)包括一顯示控制器41,并通過(guò)顯示控制器41與顯示器42連接;其中,
在pei階段的各模塊11通過(guò)顯示模塊接口21,調(diào)用第一顯示程序31,在顯示器42上顯示各模塊11的狀態(tài)信息;在dxe階段的各驅(qū)動(dòng)12通過(guò)顯示驅(qū)動(dòng)接口22,調(diào)用第二顯示程序32,在顯示器42上顯示各驅(qū)動(dòng)12的狀態(tài)信息。
以以上所述者,僅為本發(fā)明最佳實(shí)施例而已,并非用于限制本發(fā)明的范圍,凡依本發(fā)明申請(qǐng)專(zhuān)利范圍所作的等效變化或修飾,皆為本發(fā)明所涵蓋。