專利名稱:一種bios遠(yuǎn)程網(wǎng)絡(luò)調(diào)試方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計算機(jī)技術(shù)領(lǐng)域,特別涉及對UEFI BIOS進(jìn)行的遠(yuǎn)程網(wǎng)絡(luò)調(diào)試方法。
背景技術(shù):
目前,BIOS源代碼調(diào)試依賴以下幾種方式實現(xiàn):
1、串口調(diào)試方式;
2、USB接口調(diào)試方式;
3、JTAG接口調(diào)試方式。
其中,第一種調(diào)試方式需要主板提供串口,而目前很多主板已經(jīng)取消SuperIO芯片,自然也就沒有 串口 ;第二種調(diào)試方式需要所使用的USB接口必須是調(diào)試接口,有時這一點并不能夠滿足;第三種調(diào)試方式使用的JTAG接口需要主板重新焊接JTAG接口,不具通用性。發(fā)明內(nèi)容
為解決上述問題,本發(fā)明提供了一種BIOS遠(yuǎn)程網(wǎng)絡(luò)調(diào)試方法。
根據(jù)本發(fā)明的一個方面,提供的一種BIOS遠(yuǎn)程網(wǎng)絡(luò)調(diào)試方法包括:
A)在被調(diào)試主機(jī)的狀態(tài)報告驅(qū)動器中安裝網(wǎng)絡(luò)調(diào)試引擎;
B)網(wǎng)絡(luò)調(diào)試引擎接收中斷消息,并根據(jù)所述中斷消息,中斷BIOS源代碼運行;
C)網(wǎng)絡(luò)調(diào)試引擎將所述BIOS源代碼和CPU所有寄存器組信息發(fā)送至遠(yuǎn)端調(diào)試主機(jī),以便遠(yuǎn)端調(diào)試主機(jī)下發(fā)調(diào)試任務(wù);
其中,BIOS是基本輸入輸出系統(tǒng),CPU是中央處理器。
優(yōu)選地,在所述步驟A)中,所述網(wǎng)絡(luò)調(diào)試引擎包括應(yīng)用于UEFI BIOS啟動期間PEI階段的PEI驅(qū)動器、應(yīng)用于UEFI BIOS啟動期間DXE階段和BDS階段的DXE驅(qū)動器,其中,UEFI是通用擴(kuò)展固件接口,PEI是預(yù)可擴(kuò)展固件接口初始化階段,DXE是驅(qū)動執(zhí)行環(huán)境階段,BDS是啟動設(shè)備選擇階段。
優(yōu)選地,在所述步驟B)中,所述中斷消息是BIOS源代碼中的斷點消息,所述斷點消息通過狀態(tài)報告驅(qū)動器攔截并發(fā)送至網(wǎng)絡(luò)調(diào)試引擎。
優(yōu)選地,在PEI階段或DXE/BDS階段,網(wǎng)絡(luò)調(diào)試引擎的PEI驅(qū)動器或DXE驅(qū)動器接收所述斷點消息,并根據(jù)所述斷點消息,保存當(dāng)前CPU工作環(huán)境參數(shù)信息,中斷BIOS源代碼運行。
優(yōu)選地,所述中斷消息是來自遠(yuǎn)端調(diào)試主機(jī)的用戶中斷指令,所述用戶中斷指令通過狀態(tài)報告驅(qū)動器攔截并發(fā)送至網(wǎng)絡(luò)調(diào)試引擎。
優(yōu)選地,在PEI階段或DXE/BDS階段,網(wǎng)絡(luò)調(diào)試引擎的PEI驅(qū)動器或DXE驅(qū)動器接收所述用戶中斷指令,并根據(jù)所述用戶中斷指令,保存當(dāng)前CPU工作環(huán)境參數(shù)信息,中斷BIOS源代碼運行。
優(yōu)選地,在所述步驟C)中,所述遠(yuǎn)程調(diào)試主機(jī)下發(fā)調(diào)試任務(wù)的步驟包括:
遠(yuǎn)端調(diào)試主機(jī)顯示其收到的被調(diào)試主機(jī)的BIOS源代碼和CPU所有寄存器組信息,并根據(jù)所述BIOS源代碼和CPU所有寄存器組信息,將用戶調(diào)試指令發(fā)送至被調(diào)試主機(jī),以便被調(diào)試主機(jī)按照所述用戶調(diào)試指令執(zhí)行調(diào)試任務(wù)。
優(yōu)選地,在所述步驟C)之后,還包括:
在BIOS遠(yuǎn)程網(wǎng)絡(luò)調(diào)試完成后,按照已保存的CPU工作環(huán)境參數(shù)信息,繼續(xù)運行UEFI BIOS。
優(yōu)選地,還包括:
D)在PEI階段或DXE/BDS階段,狀態(tài)報告驅(qū)動器攔截BIOS源代碼中的調(diào)試消息,并將所述調(diào)試消息發(fā)送至網(wǎng)絡(luò)調(diào)試引擎;
E)網(wǎng)絡(luò)調(diào)試引擎的PEI驅(qū)動器或DXE驅(qū)動器根據(jù)所述調(diào)試消息,將所述調(diào)試消息對應(yīng)的調(diào)試字符串發(fā)送至遠(yuǎn)端調(diào)試主機(jī),以便遠(yuǎn)端調(diào)試主機(jī)顯示所述調(diào)試字符串。
優(yōu)選地,在所述步驟A)前,還包括:
在PEI階段,安裝用于驅(qū)動網(wǎng)卡的網(wǎng)卡驅(qū)動器,以便網(wǎng)絡(luò)調(diào)試引擎對所述網(wǎng)卡進(jìn)行相應(yīng)操作。
與現(xiàn)有技術(shù)相比較,本發(fā)明的有益效果在于:
本發(fā)明實現(xiàn)了一種通用的BIOS源代碼的調(diào)試方法,被調(diào)試主機(jī)只需連接網(wǎng)絡(luò)即可實現(xiàn)遠(yuǎn)程調(diào)試,為用戶帶來便利。
圖1是本發(fā)明提供的BIOS遠(yuǎn)程調(diào)試方法流程;
圖2是本發(fā)明第一實施例提供的PEI階段調(diào)試流程圖3是本發(fā)明第二實施例提供的PEI階段調(diào)試流程圖4是本發(fā)明第三實施例提供的DXE階段和BDS階段調(diào)試流程圖5是本發(fā)明第四實施例提供的DXE階段和BDS階段調(diào)試流程圖。
具體實施方式
以下結(jié)合附圖對本發(fā)明的優(yōu)選實施例進(jìn)行詳細(xì)說明,應(yīng)當(dāng)理解,以下所說明的優(yōu)選實施例僅用于說明和解釋本發(fā)明,并不用于限定本發(fā)明。
圖1是本發(fā)明提供的BIOS遠(yuǎn)程調(diào)試方法流程,如圖1所示,步驟包括:
步驟101:在被調(diào)試主機(jī)的狀態(tài)報告驅(qū)動器Status Report Driver中安裝網(wǎng)絡(luò)調(diào)試引擎,進(jìn)一步說,當(dāng)前的UEFI架構(gòu)會提前掛好一個Status Report Driver,在該StatusReport Driver中接收所有的debug消息及斷點消息,故需要安裝網(wǎng)絡(luò)調(diào)試引擎在StatusReport driver的下一層,當(dāng)Status Report Driver收到Debug消息和斷點消息后,即可發(fā)給網(wǎng)絡(luò)調(diào)試引擎進(jìn)行處理,即BIOS將網(wǎng)絡(luò)調(diào)試引擎作為過濾器安裝到Status ReportDriver 中。
在所述步驟101之前,還包括網(wǎng)卡初始化步驟,即BIOS在PEI階段中完成網(wǎng)卡初始化,安裝網(wǎng)卡驅(qū)動程序。
步驟102:網(wǎng)絡(luò)調(diào)試引擎接收中斷消息,并根據(jù)所述中斷消息,中斷BIOS源代碼運行。具體地說,當(dāng)系統(tǒng) 需要進(jìn)行調(diào)試時,會呼叫Status Report driver,這時即可進(jìn)入網(wǎng)絡(luò)調(diào)試引擎,網(wǎng)絡(luò)調(diào)試引擎保存當(dāng)前CPU工作環(huán)境參數(shù)信息。
步驟103:網(wǎng)絡(luò)調(diào)試引擎將所述BIOS源代碼和CPU所有寄存器組信息發(fā)送至遠(yuǎn)端調(diào)試主機(jī),然后,開始接收遠(yuǎn)端調(diào)試主機(jī)通過網(wǎng)絡(luò)發(fā)送過來的用戶調(diào)試指令,并按照所述用戶調(diào)試指令,執(zhí)行相應(yīng)的調(diào)試任務(wù),例如單步運行、多步運行、設(shè)定斷點、重新啟動等。
由上述步驟可知,被調(diào)試機(jī)器可放置于任何位置,其只需與遠(yuǎn)程調(diào)試主機(jī)連接在網(wǎng)絡(luò)中(例如同一局域網(wǎng)內(nèi)),即可實現(xiàn)BIOS源代碼的遠(yuǎn)程網(wǎng)絡(luò)調(diào)試。
本發(fā)明設(shè)計了一個網(wǎng)絡(luò)調(diào)試引擎,并將此網(wǎng)絡(luò)調(diào)試引擎嵌入到BIOS ROM中,當(dāng)需要進(jìn)行調(diào)試時,利用網(wǎng)絡(luò)協(xié)議,即可實現(xiàn)網(wǎng)絡(luò)調(diào)試。
UEFI BIOS啟動分為SEC、PE1、DXE、BDS、RT五個階段。其中,SEC階段是機(jī)器最早的啟動階段,此段時間很短,代碼大約是上千行左右;PEI階段是UEFI BIOS運行中的第二階段,即預(yù)可擴(kuò)展固件接口初始化階段,該階段CPU工作在保護(hù)模式32位狀態(tài),啟動并初始化內(nèi)存控制器,完成一些最基本的硬件芯片初始化工作;DXE階段是UEFI BIOS運行中的第三階段,即驅(qū)動執(zhí)行環(huán)境階段,該階段CPU工作模式轉(zhuǎn)為64位保護(hù)模式中的長模式,BIOS裝載所有的硬件芯片驅(qū)動程序,完成所有硬件的初始化動作;BDS階段指啟動設(shè)備選擇階段,當(dāng)UEFI BIOS運行到此階段時,意味著將根據(jù)BIOS預(yù)先設(shè)定好的啟動順序,開始啟動操作系統(tǒng)。
因此,本發(fā)明所述的網(wǎng)絡(luò)調(diào)試引擎分別根據(jù)PEI階段和DXE階段的特點,進(jìn)行相應(yīng)設(shè)計。所設(shè)計的網(wǎng)絡(luò)調(diào)試引擎要包括兩個網(wǎng)絡(luò)調(diào)試驅(qū)動器,即在PEI階段使用的PEI驅(qū)動器,以及在DXE階段和BDS階段使用的DXE驅(qū)動器。所述PEI驅(qū)動器和所述DXE驅(qū)動器可以分別理解為PEI驅(qū)動程序和DXE驅(qū)動程序。以上兩個網(wǎng)絡(luò)調(diào)試驅(qū)動器會掛在StatusReport Driver的下一層,攔下所有的斷點消息和Debug消息。另外,所述兩個網(wǎng)絡(luò)調(diào)試驅(qū)動器也會不斷接收遠(yuǎn)端調(diào)試主機(jī)發(fā)來的用戶中斷指令,隨時中斷BIOS 源代碼運行,然后即可在遠(yuǎn)端調(diào)試主機(jī)的屏幕上顯示出當(dāng)前的BIOS源代碼和CPU寄存器組相關(guān)信息。
圖2是本發(fā)明第一實施例提供的PEI階段調(diào)試流程圖,如圖2所示,步驟包括:
步驟201:在UEFI BIOS啟動期間PEI階段,安裝PEI驅(qū)動器。
步驟202:PEI驅(qū)動器接收中斷消息,并根據(jù)所述中斷消息,中斷BIOS源代碼運行。
步驟203:PEI驅(qū)動器根據(jù)收到的所述中斷消息,保存當(dāng)前CPU工作環(huán)境參數(shù)信息,中斷BIOS源代碼運行,并向遠(yuǎn)端調(diào)試主機(jī)發(fā)送BIOS源代碼和CPU所有寄存器組相關(guān)信息,例如EAX、EBX、ECX、EDX、EBP、ESP、CS及EIP、APIC寄存器組和MSR寄存器組相關(guān)信息。
所述中斷消息可以是BIOS源代碼中的斷點消息,所述斷點消息通過狀態(tài)報告驅(qū)動器攔截并發(fā)送至PEI驅(qū)動器,PEI驅(qū)動器根據(jù)收到的所述斷點消息,保存當(dāng)前CPU工作環(huán)境參數(shù)信息,中斷BIOS源代碼運行。斷點消息即是ASSERT (條件)宏,當(dāng)條件為布爾值FALSE時,啟動網(wǎng)絡(luò)調(diào)試引擎,中斷當(dāng)前BIOS源代碼運行,以便進(jìn)行下一步調(diào)試。例如:PEI_ASSERT (PeiServices, EndpointIndex<=15) ;// 當(dāng) EndPointIndex>15 時,就會跳轉(zhuǎn)到 PEI驅(qū)動器,保存當(dāng)前CPU工作環(huán)境參數(shù)信息,中斷當(dāng)前主機(jī)運行,并且將當(dāng)前BIOS源代碼和CPU寄存器組通過局域網(wǎng)絡(luò)傳送到遠(yuǎn)程調(diào)試主機(jī),由用戶決定下一步調(diào)試工作。
所述中斷消息還可以是來自遠(yuǎn)端調(diào)試主機(jī)的用戶中斷指令,所述用戶中斷指令通過狀態(tài)報告驅(qū)動器攔截并發(fā)送至PEI驅(qū)動器。具體地說,遠(yuǎn)端調(diào)試主機(jī)可以通過局域網(wǎng)絡(luò)發(fā)出用戶中斷指令,網(wǎng)絡(luò)調(diào)試引擎的PEI驅(qū)動器收到所述用戶終端指令后,即可保存當(dāng)前CPU工作環(huán)境參數(shù)信息,中斷當(dāng)前BIOS源代碼運行,并將當(dāng)前BIOS源代碼和CPU所有寄存器組信息通過網(wǎng)絡(luò)傳送給遠(yuǎn)端調(diào)試主機(jī),以便進(jìn)行下一步調(diào)試。
步驟204:遠(yuǎn)端調(diào)試主機(jī)顯示其收到的被調(diào)試主機(jī)的BIOS源代碼和CPU所有寄存器組信息,并根據(jù)所述BIOS源代碼和CPU所有寄存器組信息,將用戶調(diào)試指令發(fā)送至被調(diào)試主機(jī)。
步驟205 =PEI驅(qū)動器按照所述用戶調(diào)試命令,對被調(diào)試主機(jī)進(jìn)行相應(yīng)的調(diào)試,例如單步運行、多步運行等等。
步驟206:調(diào)試完畢后,根據(jù)步驟203中所保存的CPU工作環(huán)境參數(shù)信息,繼續(xù)運行BIOS源代碼。
圖3是本發(fā)明第二實施例提供的PEI階段調(diào)試流程圖,如圖3所示,步驟包括:
步驟301:在PEI階段,狀態(tài)報告驅(qū)動器攔截BIOS源代碼中的調(diào)試Debug消息,并將所述Debug消息發(fā)送至PEI驅(qū)動器。
步驟302:網(wǎng)絡(luò)調(diào)試引擎的PEI驅(qū)動器根據(jù)所述Debug消息,將所述Debug消息對應(yīng)的調(diào)試字符串發(fā)送至遠(yuǎn)端調(diào)試主機(jī)。
步驟303:遠(yuǎn)端調(diào)試主機(jī)顯示所述調(diào)試字符串。
所述Debug消息格式為=Debug (“調(diào)試字符串”),是用來在運行BIOS時,不斷通過局域網(wǎng)絡(luò)將調(diào)試字符串輸出到遠(yuǎn)端調(diào)試主機(jī)的屏幕中,被調(diào)試主機(jī)并不會被中斷,而是會一直運行。
第一實施例中所述斷點消息和第二實施例中所述Debug消息均來源于UEFI BIOS源代碼,在BIOS源代碼調(diào)試開發(fā)階段,會在BIOS源代碼中加入大量的Debug消息及斷點消息,當(dāng)運行到此點時,即要呼叫Status Report Driver進(jìn)行處理。由于本發(fā)明在所述StatusReport Driver的下一層已經(jīng)安裝了網(wǎng)絡(luò)調(diào)試引擎,當(dāng)Status Report Driver收到消息后,即可發(fā)送給網(wǎng)絡(luò)調(diào)試引擎進(jìn)行處理。
圖4是本發(fā)明第三實施例提供的DXE階段和BDS階段調(diào)試流程圖,如圖4所示,步驟包括:
步驟401:在UEFI BIOS啟動期間DXE階段,安裝DXE驅(qū)動器。
步驟402:在DXE/BDS階段,DXE驅(qū)動器接收中斷消息,并根據(jù)所述中斷消息,中斷BIOS源代碼運行。
步驟403:DXE驅(qū)動器根據(jù)收到的所述中斷消息,保存當(dāng)前CPU工作環(huán)境參數(shù)信息,中斷BIOS源代碼運行,并向遠(yuǎn) 端調(diào)試主機(jī)發(fā)送BIOS源代碼和CPU所有寄存器組相關(guān)信息,例如EAX、EBX、ECX、EDX、EBP、ESP、CS及EIP、APIC寄存器組和MSR寄存器組相關(guān)信息。
所述中斷消息可以是BIOS源代碼中的斷點消息,所述斷點消息通過狀態(tài)報告驅(qū)動器攔截并發(fā)送至DXE驅(qū)動器,DXE驅(qū)動器根據(jù)收到的所述斷點消息,保存當(dāng)前CPU工作環(huán)境參數(shù)信息,中斷BIOS源代碼運行。斷點消息即是ASSERT (條件)宏,當(dāng)條件為布爾值FALSE時,啟動網(wǎng)絡(luò)調(diào)試引擎,中斷當(dāng)前BIOS源代碼運行,以便進(jìn)行下一步調(diào)試。
所述中斷消息還可以是來自遠(yuǎn)端調(diào)試主機(jī)的用戶中斷指令,所述用戶中斷指令通過狀態(tài)報告驅(qū)動器攔截并發(fā)送至DXE驅(qū)動器。具體地說,在DXE階段,CPU工作在64位保護(hù)橫式,然后BIOS在運行硬盤驅(qū)動程序,遠(yuǎn)端調(diào)試主機(jī)可以通過網(wǎng)絡(luò)發(fā)出用戶中斷指令,網(wǎng)絡(luò)調(diào)試引擎的DXE驅(qū)動器即可保存當(dāng)前CPU工作環(huán)境參數(shù)信息,中斷當(dāng)前BIOS源代碼運行,并將當(dāng)前BIOS源代碼和CPU所有寄存器組信息通過網(wǎng)絡(luò)傳送給遠(yuǎn)端調(diào)試主機(jī),以便進(jìn)行下一步調(diào)試。在BDS階段:CPU工作在64位保護(hù)橫式,然后BIOS試圖啟動WIN0,遠(yuǎn)端調(diào)試主機(jī)可以通過網(wǎng)絡(luò)發(fā)出用戶中斷指令,網(wǎng)絡(luò)調(diào)試引擎的DXE驅(qū)動器即可保存當(dāng)前CPU工作環(huán)境參數(shù)信息,中斷當(dāng)前BIOS源代碼運行,并將當(dāng)前BIOS源代碼和CPU所有寄存器組通過網(wǎng)絡(luò)傳給遠(yuǎn)端調(diào)試主機(jī),以便進(jìn)行下一步調(diào)試。
步驟404:DXE驅(qū)動器接收來自遠(yuǎn)端調(diào)試主機(jī)的用戶調(diào)試命令。
步驟405 =DXE驅(qū)動器按照所述用戶調(diào)試命令,對被調(diào)試主機(jī)進(jìn)行相應(yīng)的調(diào)試,例如單步運行、多步運行等等。
步驟406:調(diào)試完畢后,根據(jù)步驟403中所保存的CPU工作環(huán)境參數(shù)信息,繼續(xù)運行BIOS源代碼。
圖5是本發(fā)明第四實施例提供的DXE階段和BDS階段調(diào)試流程圖,如圖5所示,步驟包括:
步驟501:在DXE/BDS階段,狀態(tài)報告驅(qū)動器攔截BIOS源代碼中的調(diào)試Debug消息,并將所述Debug消息發(fā)送至DXE驅(qū)動器。
步驟502:網(wǎng)絡(luò)調(diào)試引擎的DXE驅(qū)動器根據(jù)所述Debug消息,將所述Debug消息對應(yīng)的調(diào)試字符串發(fā)送至遠(yuǎn)端調(diào)試主機(jī)。
步驟503:遠(yuǎn)端調(diào)試主機(jī)顯示所述調(diào)試字符串。
所述Debug消息格式為:Debug( “調(diào)試字符串”),是用來在運行BIOS時,不斷通過局域網(wǎng)絡(luò)將調(diào)試字符串輸出到遠(yuǎn)端調(diào)試主機(jī)的屏幕中,被調(diào)試主機(jī)并不會被中斷,而是會一直運行。例如,DXE_DEBUG(EFI_D_ERR0R, "PeiUsbSetDeviceAddress FailedXn")) ;//當(dāng)UEFI BIOS運行到此行代碼時,UEFI BIOS會調(diào)用網(wǎng)絡(luò)調(diào)試引擎的DXE驅(qū)動器,將"PeiUsbSetDeviceAddress Failed"字符串通過網(wǎng)絡(luò)發(fā)送到遠(yuǎn)端調(diào)試主機(jī),并在所述遠(yuǎn)端調(diào)試主機(jī)的屏幕上顯示,用戶可以據(jù)此判定當(dāng)前系統(tǒng)運行狀況,但是UEFI BIOS在輸出調(diào)試字符串后,仍會繼續(xù)運行,并不會中斷下來。
第三實施例中所述斷點消息和第四實施例中所述Debug消息均來源于UEFI BIOS源代碼,在BIOS源 代碼調(diào)試開發(fā)階段,會在BIOS源代碼中加入大量的Debug消息及斷點消息,當(dāng)運行到此點時,即要呼叫Status Report Driver進(jìn)行處理。由于本發(fā)明在所述StatusReport Driver的下一層已經(jīng)安裝了網(wǎng)絡(luò)調(diào)試引擎,當(dāng)Status Report Driver收到消息后,即可發(fā)送給網(wǎng)絡(luò)調(diào)試引擎進(jìn)行處理。
本發(fā)明中,由于所述網(wǎng)絡(luò)調(diào)試引擎需要對網(wǎng)卡進(jìn)行操作,例如,收發(fā)網(wǎng)絡(luò)數(shù)據(jù)包、查詢當(dāng)前網(wǎng)絡(luò)傳輸狀態(tài)(如網(wǎng)絡(luò)是否通暢)等,因此,在安裝網(wǎng)絡(luò)調(diào)試引擎前,BIOS在PEI階段安裝用于驅(qū)動網(wǎng)卡的網(wǎng)卡驅(qū)動器,以便網(wǎng)絡(luò)調(diào)試引擎對所述網(wǎng)卡進(jìn)行相應(yīng)操作。
本發(fā)明所述的利用網(wǎng)絡(luò)調(diào)試的技術(shù)目前并未出現(xiàn),本發(fā)明相當(dāng)于是增加了一種新的調(diào)試方法,并且利用所述網(wǎng)絡(luò)調(diào)試,用戶無需接近被調(diào)試主機(jī),比其它的調(diào)試方法更方便。
盡管上文對本發(fā)明進(jìn)行了詳細(xì)說明,但是本發(fā)明不限于此,本技術(shù)領(lǐng)域技術(shù)人員可以根據(jù)本發(fā)明的原理進(jìn)行各種修改。因此,凡按照本發(fā)明原理所作的修改,都應(yīng)當(dāng)理解為落入本發(fā)明的保護(hù)范圍。
權(quán)利要求
1.一種BIOS遠(yuǎn)程網(wǎng)絡(luò)調(diào)試方法,其特征在于,包括: A)在被調(diào)試主機(jī)的狀態(tài)報告驅(qū)動器中安裝網(wǎng)絡(luò)調(diào)試引擎; B)網(wǎng)絡(luò)調(diào)試引擎接收中斷消息,并根據(jù)所述中斷消息,中斷BIOS源代碼運行; C)網(wǎng)絡(luò)調(diào)試引擎將所述BIOS源代碼和CPU所有寄存器組信息發(fā)送至遠(yuǎn)端調(diào)試主機(jī),以便遠(yuǎn)端調(diào)試主機(jī)下發(fā)調(diào)試任務(wù); 其中,BIOS是基本輸入輸出系統(tǒng),CPU是中央處理器。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,在所述步驟A)中,所述網(wǎng)絡(luò)調(diào)試引擎包括應(yīng)用于UEFI BIOS啟動期間PEI階段的PEI驅(qū)動器、應(yīng)用于UEFI BIOS啟動期間DXE階段和BDS階段的DXE驅(qū)動器,其中,UEFI是通用擴(kuò)展固件接口,PEI是預(yù)可擴(kuò)展固件接口初始化階段,DXE是驅(qū)動執(zhí)行環(huán)境階段,BDS是啟動設(shè)備選擇階段。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,在所述步驟B)中,所述中斷消息是BIOS源代碼中的斷點消息,所述斷點消息通過狀態(tài)報告驅(qū)動器攔截并發(fā)送至網(wǎng)絡(luò)調(diào)試引擎。
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,在PEI階段或DXE/BDS階段,網(wǎng)絡(luò)調(diào)試引擎的PEI驅(qū)動器或DXE驅(qū)動器接收所述斷點消息,并根據(jù)所述斷點消息,保存當(dāng)前CPU工作環(huán)境參數(shù)信息,中斷BIOS源代碼運行。
5.根據(jù)權(quán)利要求2所述的方法,其特征在于,在所述步驟B)中,所述中斷消息是來自遠(yuǎn)端調(diào)試主機(jī)的用戶中斷指令,所述用戶中斷指令通過狀態(tài)報告驅(qū)動器攔截并發(fā)送至網(wǎng)絡(luò)調(diào)試引擎。
6.根據(jù)權(quán)利要求5所述的方法,其特征在于,在PEI階段或DXE/BDS階段,網(wǎng)絡(luò)調(diào)試引擎的PEI驅(qū)動器或 DXE驅(qū)動器接收所述用戶中斷指令,并根據(jù)所述用戶中斷指令,保存當(dāng)前CPU工作環(huán)境參數(shù)信息,中斷BIOS源代碼運行。
7.根據(jù)權(quán)利要求4或6所述的方法,其特征在于,在所述步驟C)中,所述遠(yuǎn)端調(diào)試主機(jī)下發(fā)調(diào)試任務(wù)的步驟包括: 遠(yuǎn)端調(diào)試主機(jī)顯示其收到的被調(diào)試主機(jī)的BIOS源代碼和CPU所有寄存器組信息,并根據(jù)所述BIOS源代碼和CPU所有寄存器組信息,將用戶調(diào)試指令發(fā)送至被調(diào)試主機(jī),以便被調(diào)試主機(jī)按照所述用戶調(diào)試指令執(zhí)行相應(yīng)的調(diào)試任務(wù)。
8.根據(jù)權(quán)利要求7所述的方法,其特征在于,在所述步驟C)之后,還包括: 在BIOS遠(yuǎn)程網(wǎng)絡(luò)調(diào)試完成后,按照已保存的CPU工作環(huán)境參數(shù)信息,繼續(xù)運行UEFIBIOS。
9.根據(jù)權(quán)利要求1所述的方法,其特征在于,還包括: D)在PEI階段或DXE/BDS階段,狀態(tài)報告驅(qū)動器攔截BIOS源代碼中的調(diào)試消息,并將所述調(diào)試消息發(fā)送至網(wǎng)絡(luò)調(diào)試引擎; E)網(wǎng)絡(luò)調(diào)試引擎的PEI驅(qū)動器或DXE驅(qū)動器根據(jù)所述調(diào)試消息,將所述調(diào)試消息對應(yīng)的調(diào)試字符串發(fā)送至遠(yuǎn)端調(diào)試主機(jī),以便遠(yuǎn)端調(diào)試主機(jī)顯示所述調(diào)試字符串。
10.根據(jù)權(quán)利要求1所述的方法,其特征在于,在所述步驟A)前,還包括: 在PEI階段,安裝用于驅(qū)動網(wǎng)卡的網(wǎng)卡驅(qū)動器,以便網(wǎng)絡(luò)調(diào)試引擎對所述網(wǎng)卡進(jìn)行相應(yīng)操作。
全文摘要
本發(fā)明公開了一種BIOS遠(yuǎn)程網(wǎng)絡(luò)調(diào)試方法,涉及計算機(jī)技術(shù)領(lǐng)域,所述方法包括A)在被調(diào)試主機(jī)的狀態(tài)報告驅(qū)動器中安裝網(wǎng)絡(luò)調(diào)試引擎;B)網(wǎng)絡(luò)調(diào)試引擎接收中斷消息,并根據(jù)所述中斷消息,中斷BIOS源代碼運行;C)網(wǎng)絡(luò)調(diào)試引擎將所述BIOS源代碼和CPU所有寄存器組信息發(fā)送至遠(yuǎn)端調(diào)試主機(jī),以便遠(yuǎn)端調(diào)試主機(jī)下發(fā)調(diào)試任務(wù);其中,所述BIOS是基本輸入輸出系統(tǒng),所述CPU是中央處理器。本發(fā)明實現(xiàn)了BIOS源代碼的遠(yuǎn)程網(wǎng)絡(luò)調(diào)試,被調(diào)試主機(jī)只需連接網(wǎng)絡(luò)即可實現(xiàn)遠(yuǎn)程調(diào)試,為用戶帶來便利。
文檔編號G06F11/36GK103235755SQ20131013152
公開日2013年8月7日 申請日期2013年4月16日 優(yōu)先權(quán)日2013年4月16日
發(fā)明者鄭紅文 申請人:合肥聯(lián)寶信息技術(shù)有限公司