本發(fā)明涉及主板固件燒錄技術領域,特別是涉及一種基于龍芯處理器的主板固件快速燒錄方法及裝置。
背景技術:
在傳統(tǒng)的龍芯主板生產(chǎn)中,固件燒錄的方法一般是在貼片前先通過燒片器將BIOS(BIOS是計算機主板上最基本的軟件程序,對于龍芯主板使用的是擁有自主知識產(chǎn)權的Pmon)寫到BootFlash(BootFlash是在主板上用于存儲Bios的啟動Flash,對于龍芯主板一般是Spi接口的NorFlash),然后再進行貼片,然后再通過網(wǎng)絡將內核、文件系統(tǒng)等可執(zhí)行文件寫到NandFlash(或其他存儲器介質),然而這種方法存在以下不足:
(1)BootFlash和NandFlash燒錄不可同時、同地進行,需要的燒錄環(huán)境、燒錄工具也不同,搭建燒錄環(huán)境繁瑣費時、且需要兩次燒錄;
(2)燒錄BootFlash和NandFlash都需要人工在命令行敲命令和操作軟件界面,自動化程度不高、人工介入多、且操作繁瑣;
(3)燒片器較昂貴;
(4)燒錄Bios在貼片時進行,一般不在自己公司進行,不便過程管控。
龍芯主板軟件調試中,常因為Bios運行異常而需要頻繁燒錄Bios,目前一般有兩種方式實現(xiàn),通過龍芯提供的Ejatg仿真器或者燒片器。
然而Ejatg仿真器存在以下不足:
(1)不穩(wěn)定,經(jīng)常鏈接不上;
(2)不能燒錄除Bios以外數(shù)據(jù),不能一次性完成所有鏡像的燒錄;
(3)價格較貴,且容易損壞。
燒錄器存在以下不足:
(1)價格昂貴;
(2)儀器設備,體積大,需要配置軟件界面,使用不便;
(3)BootFlash芯片必須設計成可拆卸的,增加主板Bom(Bom是Bill of Materials物料清單的縮寫)成本,并降低穩(wěn)定性;
(4)BootFlash芯片會來回拆裝,有ESD(靜電損壞)風險;
(5)不能燒錄除Bios以外數(shù)據(jù),不能一次性完成所有鏡像的燒錄。
技術實現(xiàn)要素:
本發(fā)明的目的在于克服現(xiàn)有技術的不足,提供一種基于龍芯處理器的主板固件快速燒錄方法及裝置,實現(xiàn)了主板固件的快速、自動燒錄。
本發(fā)明的目的是通過以下技術方案來實現(xiàn)的:一種基于龍芯處理器的主板固件快速燒錄方法,包括:
S1.檢測燒錄板是否插接在主板上,若燒錄板插接在主板上,則龍芯CPU從燒錄板的BIOS存儲器中讀取BIOS程序啟動,否則龍芯CPU從主板的BIOS存儲器中讀取BIOS程序啟動;
S2.龍芯CPU從燒錄板中讀取燒錄對象,并將燒錄對象寫到主板上指定存儲器的指定分區(qū)。
所述步驟S1包括:
S11.為主板上電;
S12.檢測燒錄板是否插接在主板上:若燒錄板插接在主板上,則執(zhí)行步驟S13;否則執(zhí)行步驟S16;
S13.將片選控制信號CSC設置為高電平,主板上的片選控制開關K1斷開,燒錄板上的片選控制開關K2導通;
S14.龍芯CPU發(fā)出的片選信號CS選通燒錄板的BIOS存儲器;
S15.執(zhí)行燒錄板的BIOS存儲器中的BIOS程序;
S16.將主板的片選信號CSC設置為低電平,將主板上的片選開關K1導通;
S17.龍芯CPU發(fā)出的片選信號選通主板的BIOS存儲器;
S18.判斷主板的BIOS存儲器中的BIOS軟件是否正常:若BIOS軟件正常,則執(zhí)行步驟S19;否則CPU終止啟動;
S19.執(zhí)行主板的BIOS存儲器中的BIOS程序。
所述步驟S2包括:
S21.軟件引導流程:檢測燒錄板是否插接在主板上:若燒錄板插接在主板上,則執(zhí)行步驟S22;
S22.自動燒錄流程:龍芯CPU控制片選控制信號CSC,從燒錄板中讀取燒錄對象,并將燒錄對象寫到主板上指定存儲器的指定分區(qū)。
所述步驟S21包括:
S211.初始化龍芯CPU及其內存,初始化外設;
S212.檢測燒錄板是否插接在主板上:若燒錄板插接在主板上,則提示命令行輸入任意按鍵以停止自動安裝,然后執(zhí)行步驟S213;否則提示命令行輸入任意按鍵以停止自動啟動,然后執(zhí)行步驟S214;
S213.判斷命令行是否有輸入:若命令行有輸入,則停在BIOS命令行;否則正常引導Linux內核;
S214.判斷控制臺是否有輸入:若命令行有輸入,則進入BIOS命令行;否則執(zhí)行步驟S112。
所述步驟S22包括:
S221.初始化龍芯CPU與固件存儲器之間的通信接口;此處的通信接口包括CPU和燒錄板上BIOS存儲器之間的通信接口、CPU和主板上BIOS存儲器之間的通信接口,以及CPU和主板上除BIOS以外的固件(內核、系統(tǒng)數(shù)據(jù)等)存儲器。
S222.讀取燒錄板的BIOS存儲器中的BIOS程序到龍芯CPU的內存;
S223.將片選信號CSC設置為高電平,主板上的片選開關K1導通,燒錄板上的片選開關K2斷開,龍芯CPU接管主板的BIOS存儲器;
S224.擦除主板的BIOS存儲器中的內容,并將龍芯CPU的內存中的BIOS程序寫到主板的BIOS存儲器;
S225.將片選信號CSC設置為高電平,主板上的片選開關K1斷開,燒錄板上的片選開關K2導通,龍芯CPU接管燒錄板的BIOS存儲器;
S226.擦除主板閃存的內核分區(qū),然后讀取燒錄板的BIOS存儲器中的內核鏡像到龍芯CPU的內存,然后將龍芯CPU的內存中的內核鏡像寫到主板系統(tǒng)存儲器的內核分區(qū);
S227.擦除主板閃存的數(shù)據(jù)分區(qū),然后讀取燒錄板的BIOS存儲器中的數(shù)據(jù)鏡像到龍芯CPU的內存,然后將龍芯CPU的內存中的數(shù)據(jù)鏡像寫到主板系統(tǒng)存儲器的數(shù)據(jù)分區(qū);
S228.正常引導Linux內核。
進一步的,還包括燒錄板中固件裝載流程。
所述燒錄板中固件裝載流程包括:
a.燒錄板是否插接在主板上:若燒錄板插接在主板上,則執(zhí)行步驟b;否則,返回BIOS命令行;
b初始化龍芯CPU與固件存儲器之間的通信接口,將片選控制信號CSC設置為低電平,主板上的片選控制開關K1斷開,燒錄板上的片選控制開關K2導通,龍芯CPU接管燒錄板的BIOS存儲器;
c.擦除燒錄板的BIOS存儲器,并下載BIOS程序到龍芯CPU的內存,將龍芯CPU的內存中的BIOS文件寫到燒錄板的BIOS存儲器的BIOS文件分區(qū);
d.下載內核鏡像到龍芯CPU的內存,將龍芯CPU的內存中的內核鏡像寫到燒錄板的BIOS存儲器的內核分區(qū);
e.下載數(shù)據(jù)鏡像到龍芯CPU的內存,將龍芯CPU的內存中的數(shù)據(jù)鏡像寫到燒錄板的BIOS存儲器的數(shù)據(jù)分區(qū);
f.返回BIOS命令行。
一種基于龍芯處理器的主板固件快速燒錄裝置,包括:龍芯CPU、主板和燒錄板;龍芯CPU通過通信接口分別接主板的BIOS存儲器和主板上的第一多口插接件;主板上的第一多口插接件與燒錄板上的第二多口插接件匹配連接,第二多口插接件與燒錄板的BIOS存儲器連接。
所述第一多口插接件包括第一燒錄板檢測接口、第一接地接口、第一電源接口、第一SPI接口和第一片選控制信號接口;所述第一燒錄板檢測接口接第一下拉電阻,第一燒錄板檢測接口接龍芯CPU的第一通用輸入/輸出口,第一SPI接口接龍芯CPU的SPI接口,第一片選控制信號接口接第一上拉電阻,第一片選控制信號接口接龍芯CPU的第二通用輸入/輸出口;所述龍芯CPU的SPI接口還接主板的BIOS存儲器,龍芯CPU的SPI接口還通過片選控制開關K1接主板的BIOS存儲器,第一片選控制信號接口還與片選控制開關K1連接。
所述第二多口插接件包括第二燒錄板檢測接口、第二接地接口、第二電源接口、第二SPI接口和第二片選控制信號接口;所述第二燒錄板檢測接口接第二下拉電阻,第二SPI接口接燒錄板的BIOS存儲器,第二SPI接口還通過片選控制開關K2接燒錄板的BIOS存儲器,第二片選控制信號接口接第二上拉電阻,第二片選控制信號接口還與片選控制開關K2連接。
本發(fā)明的有益效果是:
(1)本發(fā)明的硬件結構簡單,燒錄時數(shù)據(jù)通過軟件校驗,保證了燒錄數(shù)據(jù)的正確性,功能穩(wěn)定可靠;
(2)燒錄板中的固件可根據(jù)需要刷成指定主板的固件,適配各種主板;
(3)裝置的物料成本主要集中在一顆Spi-NorFlash(BIOS存儲器),成本低;
(4)本發(fā)明中的燒錄板可一次性、自動化的燒錄主板固件,速度快、人工介入少;
(5)主板插上燒錄板上電即可自動工作、配置軟件的操作,使用方便;
(6)本發(fā)明的方法能夠適配目前所有龍芯系列處理器基于Spi-NorFlash存儲架構的主板。
附圖說明
圖1為本發(fā)明中方法的一個實施例的流程示意圖;
圖2為本發(fā)明中龍芯CPU啟動的一個實施例的流程示意圖;
圖3為本發(fā)明中軟件引導的一個實施例的流程示意圖;
圖4為本發(fā)明中自動燒錄的一個實施例的流程示意圖;
圖5為本發(fā)明中燒錄板裝載固件的一個實施例的流程示意圖;
圖6為本發(fā)明中主板連接的一個示意圖;
圖7為本發(fā)明中燒錄板連接的一個示意圖。
具體實施方式
下面結合附圖進一步詳細描述本發(fā)明的技術方案,但本發(fā)明的保護范圍不局限于以下所述。
如圖1所示,一種基于龍芯處理器的主板固件快速燒錄方法,包括:
S1.檢測燒錄板是否插接在主板上,若燒錄板插接在主板上,則龍芯CPU從燒錄板的BIOS存儲器中讀取BIOS程序啟動,否則龍芯CPU從主板的BIOS存儲器中讀取BIOS程序啟動;
如圖2所示,所述步驟S1包括:
S11.為主板上電;
S12.檢測燒錄板是否插接在主板上:若燒錄板插接在主板上,則執(zhí)行步驟S13;否則執(zhí)行步驟S16;
S13.將片選控制信號CSC設置為高電平,主板上的片選控制開關K1斷開,燒錄板上的片選控制開關K2導通;
S14.龍芯CPU發(fā)出的片選信號CS選通燒錄板的BIOS存儲器(Boot Flash);
S15.執(zhí)行燒錄板的BIOS存儲器中的BIOS程序;
S16.將主板的片選信號CSC設置為低電平,將主板上的片選開關K1導通;
S17.龍芯CPU發(fā)出的片選信號選通主板的BIOS存儲器;
S18.判斷主板的BIOS存儲器中的BIOS軟件是否正常:若BIOS軟件正常,則執(zhí)行步驟S19;否則CPU終止啟動;
S19.執(zhí)行主板的BIOS存儲器中的BIOS程序。
S2.龍芯CPU從燒錄板中讀取燒錄對象,并將燒錄對象寫到主板上指定存儲器的指定分區(qū)。
所述步驟S2包括:
S21.軟件引導流程:檢測燒錄板是否插接在主板上:若燒錄板插接在主板上,則執(zhí)行步驟S22。
如圖3所示,軟件引導流程主要是通過DET引腳探測燒錄板是否連接在主板上,如果燒錄板連接在主板上,則可以進入自動燒錄流程,所述步驟S21包括:
S211.初始化龍芯CPU及其內存,初始化外設;所述外設包括串口、GPIO等CPU外設。
S212.檢測燒錄板是否插接在主板上:若燒錄板插接在主板上,則提示命令行輸入任意按鍵以停止自動安裝,然后執(zhí)行步驟S213;否則提示命令行輸入任意按鍵以停止自動啟動,然后執(zhí)行步驟S214;
S213.判斷命令行是否有輸入:若命令行有輸入,則停在BIOS命令行;否則正常引導Linux內核;
S214.判斷控制臺是否有輸入:若命令行有輸入,則進入BIOS命令行;否則執(zhí)行步驟S112。
S22.自動燒錄流程:龍芯CPU控制片選控制信號CSC,從燒錄板中讀取燒錄對象,并將燒錄對象寫到主板上指定存儲器的指定分區(qū)。
如圖4所示,如果在軟件引導過程中,進入了自動燒錄流程,龍芯CPU以軟件控制的方式來控制片選信號,從燒錄板中讀取燒錄對象,寫到主板上指定存儲器的指定分區(qū),例如NandFlash存儲介質,所述步驟S22包括:
S221.初始化龍芯CPU與固件存儲器之間的通信接口;
S222.讀取燒錄板的BIOS存儲器中的BIOS程序到龍芯CPU的內存;
S223.將片選信號CSC設置為高電平,主板上的片選開關K1導通,燒錄板上的片選開關K2斷開,龍芯CPU接管主板的BIOS存儲器;
S224.擦除主板的BIOS存儲器中的內容,并將龍芯CPU的內存中的BIOS程序寫到主板的BIOS存儲器;
S225.將片選信號CSC設置為高電平,主板上的片選開關K1斷開,燒錄板上的片選開關K2導通,龍芯CPU接管燒錄板的BIOS存儲器;
S226.擦除主板閃存的內核分區(qū),然后讀取燒錄板的BIOS存儲器中的內核鏡像到龍芯CPU的內存,然后將龍芯CPU的內存中的內核鏡像寫到主板系統(tǒng)存儲器的內核分區(qū);
S227.擦除主板閃存的數(shù)據(jù)分區(qū),然后讀取燒錄板的BIOS存儲器中的數(shù)據(jù)鏡像到龍芯CPU的內存,然后將龍芯CPU的內存中的數(shù)據(jù)鏡像寫到主板系統(tǒng)存儲器的數(shù)據(jù)分區(qū);
S228.正常引導Linux內核。
如圖5所示,還包括燒錄板中固件裝載流程,燒錄板中BootFlash會分為Bios、內核、數(shù)據(jù)三個分區(qū)(可根據(jù)需要擴展),在Bios中執(zhí)行autoinstall命令自動的通過網(wǎng)絡(或者U盤)將固件以二進制流的方式寫到燒錄器BootFlash中。
所述燒錄板中固件裝載流程包括:
a.燒錄板是否插接在主板上:若燒錄板插接在主板上,則執(zhí)行步驟b;否則,返回BIOS命令行;
b初始化龍芯CPU與固件存儲器之間的通信接口,將片選控制信號CSC設置為低電平,主板上的片選控制開關K1斷開,燒錄板上的片選控制開關K2導通,龍芯CPU接管燒錄板的BIOS存儲器;
c.擦除燒錄板的BIOS存儲器,并從tftp服務器下載BIOS程序到龍芯CPU的內存,將龍芯CPU的內存中的BIOS文件寫到燒錄板的BIOS存儲器的BIOS文件分區(qū);
d.從tftp服務器下載內核鏡像到龍芯CPU的內存,將龍芯CPU的內存中的內核鏡像寫到燒錄板的BIOS存儲器的內核分區(qū);
e.從tftp服務器下載數(shù)據(jù)鏡像到龍芯CPU的內存,將龍芯CPU的內存中的數(shù)據(jù)鏡像寫到燒錄板的BIOS存儲器的數(shù)據(jù)分區(qū);
f.返回BIOS命令行。
如圖6和圖7所示,一種基于龍芯處理器的主板固件快速燒錄裝置,包括:龍芯CPU、主板和燒錄板;龍芯CPU通過通信接口分別接主板的BIOS存儲器和主板上的第一多口插接件;主板上的第一多口插接件與燒錄板上的第二多口插接件匹配連接,第二多口插接件與燒錄板的BIOS存儲器連接。
圖6中,將龍芯的SPI0分別與主板BootFlash和8pin接插件物理連接;K1是主板上BootFlash片選的控制開關,高電平導通;CSC(K1使能信號)連接10K上拉電阻,如果不插燒錄板,CSC表現(xiàn)為高電平,此時K1導通;DET用10K電阻下拉,用于檢測燒錄板是否存在;CS_CTRL用于軟件控制CSC的狀態(tài)。圖5中各接口的定義如表1所示:
表1主板接口定義
如圖7所示,燒錄板用一顆大容量Spi-NorFlash來存儲BSP文件,SPI接口通過與主板Pin-to-Pin的接插件引出,可通過排線與主板物理連接;DET連接1K上拉電阻,當插上燒錄板時,電阻分壓使DET電壓為0.9*Vcc,滿足TTL電平的高電平條件,表現(xiàn)為高;CS#通過開關K2控制(低導通),K2的控制端CSC連接1K下拉電阻,當插上燒錄板時,CSC電壓為0.1*Vcc,CS表現(xiàn)為低電平,此時K1關斷,K2導通,CPU接管燒錄板BootFlash。
所述第一多口插接件包括第一燒錄板檢測接口、第一接地接口、第一電源接口、第一SPI接口和第一片選控制信號接口。
所述第一燒錄板檢測接口接第一下拉電阻,第一燒錄板檢測接口接龍芯CPU的第一通用輸入/輸出口,第一SPI接口接龍芯CPU的SPI接口,第一片選控制信號接口接第一上拉電阻,第一片選控制信號接口接龍芯CPU的第二通用輸入/輸出口。
所述龍芯CPU的SPI接口還接主板的BIOS存儲器,龍芯CPU的SPI接口還通過片選控制開關K1接主板的BIOS存儲器,第一片選控制信號接口還與片選控制開關K1連接。
所述第二多口插接件包括第二燒錄板檢測接口、第二接地接口、第二電源接口、第二SPI接口和第二片選控制信號接口。
所述第二燒錄板檢測接口接第二下拉電阻,第二SPI接口接燒錄板的BIOS存儲器,第二SPI接口還通過片選控制開關K2接燒錄板的BIOS存儲器,第二片選控制信號接口接第二上拉電阻,第二片選控制信號接口還與片選控制開關K2連接。
以上所述僅是本發(fā)明的優(yōu)選實施方式,應當理解本發(fā)明并非局限于本文所披露的形式,不應看作是對其他實施例的排除,而可用于各種其他組合、修改和環(huán)境,并能夠在本文所述構想范圍內,通過上述教導或相關領域的技術或知識進行改動。而本領域人員所進行的改動和變化不脫離本發(fā)明的精神和范圍,則都應在本發(fā)明所附權利要求的保護范圍內。