一種系統(tǒng)啟動方法和裝置制造方法
【專利摘要】本發(fā)明提供了一種系統(tǒng)啟動方法,該方法包括:根據(jù)存儲的槽位號,以及系統(tǒng)軟件進行硬件、驅(qū)動初始化;當硬件、驅(qū)動初始化完成時,獲取CB上存儲的PE系統(tǒng)軟件,并確定該PE系統(tǒng)軟件與本地存儲的系統(tǒng)軟件是否相同,如果是,開始平臺的初始化,完成系統(tǒng)啟動;否則,使用獲取的PE系統(tǒng)軟件更新本地存儲的系統(tǒng)軟件,并重新根據(jù)存儲的槽位號,以及系統(tǒng)軟件進行硬件、驅(qū)動初始化?;谕瑯拥陌l(fā)明構(gòu)思,本申請還提出一種系統(tǒng)啟動裝置,在不受光模塊類型限制的情況下,能夠兼容PE和CB上的不同系統(tǒng)軟件,使PE和CB能夠正常通信。
【專利說明】一種系統(tǒng)啟動方法和裝直
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及通信【技術(shù)領(lǐng)域】,特別涉及一種系統(tǒng)啟動方法和裝置。
【背景技術(shù)】
[0002] 端口擴展器(Port ExtendenPE)上的系統(tǒng)軟件加載有兩種方法,一是通過引導軟 件(Bootware)進行加載,二是通過PE系統(tǒng)上運行的系統(tǒng)軟件(APP)進行下載。
[0003] 目前市面上光模塊大約有幾十種,Bootware功能模塊對于光模塊無法進行有效的 識別,這個給設(shè)備初始加載任務(wù)帶來很大的風險,如果無法識別這些模塊,有可能會導致系 統(tǒng)軟件加載失敗等重大問題。而通過APP下載,需要PE上儲存的系統(tǒng)軟件能夠完全啟動, 而且與控制橋(Controller Bridge, CB)上的軟件版本一致,才能與CB正常通信。
【發(fā)明內(nèi)容】
[0004] 有鑒于此,本申請?zhí)峁┮环N系統(tǒng)啟動方法和裝置,以解決系統(tǒng)軟件不同時通過APP 方式進行系統(tǒng)啟動,導致CB與PE不能正常通信的問題。
[0005] 為解決上述技術(shù)問題,本申請的技術(shù)方案是這樣實現(xiàn)的:
[0006] -種系統(tǒng)啟動方法,所述方法包括:步驟
[0007] A、根據(jù)存儲的槽位號,以及系統(tǒng)軟件進行硬件、驅(qū)動初始化;
[0008] B、當硬件、驅(qū)動初始化完成時,獲取CB上存儲的PE系統(tǒng)軟件,并確定該PE系統(tǒng)軟 件與本地存儲的系統(tǒng)軟件是否相同,如果是,執(zhí)行步驟D;否則,執(zhí)行步驟C;
[0009] C、使用獲取的PE系統(tǒng)軟件更新本地存儲的系統(tǒng)軟件,執(zhí)行步驟A ;
[0010] D、開始平臺的初始化,完成系統(tǒng)啟動。
[0011] 一種系統(tǒng)啟動裝置,所述裝置包括:存儲單元、第一初始化單元、獲取單元、確定單 元和第二初始化單元;
[0012] 所述存儲單元,用于存儲槽位號和系統(tǒng)軟件;當所述確定單元確定獲取的PE系統(tǒng) 軟件與存儲的系統(tǒng)軟件不同時,使用獲取的PE系統(tǒng)軟件更新存儲的系統(tǒng)軟件并觸發(fā)所述 第一初始化單元執(zhí)行操作;
[0013] 所述第一初始化單元,用于根據(jù)所述存儲單元存儲的槽位號,以及系統(tǒng)軟件進行 硬件、驅(qū)動初始化;
[0014] 所述獲取單元,用于當所述第一初始化單元完成硬件、驅(qū)動初始化時,獲取CB上 存儲的PE系統(tǒng)軟件;
[0015] 所述確定單元,用于確定所述獲取單元獲取的PE系統(tǒng)軟件與所述存儲單元存儲 的系統(tǒng)軟件是否相同;
[0016] 所述第二初始化單元,用于當所述確定單元確定獲取的PE系統(tǒng)軟件與所述存儲 單元存儲的系統(tǒng)軟件相同時,開始平臺的初始化,完成系統(tǒng)啟動。
[0017] 綜上所述,本申請通過在進行系統(tǒng)啟動過程中,當完成硬件、驅(qū)動初始化時,不直 接進行平臺的初始化,而是獲取CB上存儲的PE系統(tǒng)軟件,當CB上的系統(tǒng)軟件與本設(shè)備初 始化的系統(tǒng)軟件相同時,才進行平臺的初始化,否則,使用從CB上獲取的PE系統(tǒng)軟件更新 本地存儲的系統(tǒng)軟件并重新進行硬件、驅(qū)動初始化。通過該方案進行系統(tǒng)啟動后,在不受光 模塊類型限制的情況下,能夠兼容PE和CB上的不同系統(tǒng)軟件,使PE和CB能夠正常通信。
【專利附圖】
【附圖說明】
[0018] 圖1為本申請中系統(tǒng)啟動方法流程示意圖;
[0019] 圖2為本申請具體實施例中系統(tǒng)啟動流程示意圖;
[0020] 圖3為本申請具體實施例中應(yīng)用于上述技術(shù)的裝置結(jié)構(gòu)示意圖。
【具體實施方式】
[0021] 為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點更加清楚明白,下面結(jié)合附圖并據(jù)實施例, 對本發(fā)明的技術(shù)方案進行詳細說明。
[0022] 本申請?zhí)岢鲆环N系統(tǒng)啟動方法,PE在進行系統(tǒng)啟動過程中,當完成硬件、驅(qū)動初始 化時,不直接進行平臺的初始化,而是獲取CB上存儲的PE系統(tǒng)軟件,當CB上的系統(tǒng)軟件與 本設(shè)備初始化的系統(tǒng)軟件相同時,才進行平臺的初始化,否則,使用從CB上獲取的PE系統(tǒng) 軟件更新本地存儲的系統(tǒng)軟件并重新進行硬件、驅(qū)動初始化。本申請?zhí)峁┑南到y(tǒng)啟動方法, 在不受光模塊類型限制的情況下,能夠兼容PE和CB上的不同系統(tǒng)軟件,使PE和CB能夠正 常通信。
[0023] 參見圖1,圖1為本申請中系統(tǒng)啟動方法流程示意圖。具體步驟為:
[0024] 步驟101,PE根據(jù)存儲的槽位號,以及系統(tǒng)軟件進行硬件、驅(qū)動初始化。
[0025] 在PE進行硬件、驅(qū)動初始化前,先確定本地是否存儲了槽位號,如果是,執(zhí)行步驟 101 ;否則,虛擬一個槽位號,并使用該槽位號以及存儲的系統(tǒng)軟件進行初始化,執(zhí)行步驟 102。
[0026] 在現(xiàn)有實現(xiàn)時,如果本地未存儲槽位號,則不能進行硬件、驅(qū)動初始化。通常的解 決方式是通過bootware引導,在本地的閃存中存儲一個槽位號,但是,如果本地不存在槽 位號,使用了 bootware進行槽位號加載,則會對PE中的光模塊進行限制;而本申請在具體 實現(xiàn)時,如果本地未存儲槽位號,則先虛擬一個槽位號,用于進行硬件、驅(qū)動的初始化,這樣 不會對PE中的光模塊進行限制。
[0027] 在具體實現(xiàn)時,通常將系統(tǒng)軟件和槽位號存儲在閃存中,實際上將系統(tǒng)軟件和槽 位號存儲在能讀取信息的任何非易失存儲器中即可。
[0028] 步驟102,當硬件、驅(qū)動初始化完成時,該PE獲取CB上存儲的PE系統(tǒng)軟件,并確 定該PE系統(tǒng)軟件與本地存儲的系統(tǒng)軟件是否相同,如果是,執(zhí)行步驟104 ;否則,執(zhí)行步驟 103。
[0029] 為了避免PE當前存儲的槽位號與CB為該PE分配的不同,在硬件、驅(qū)動初始化完 成后,該PE從CB獲取槽位號,并更新存儲的槽位號;再在向CB發(fā)送請求,以獲取CB上對應(yīng) 本PE進行系統(tǒng)啟動的系統(tǒng)軟件時,攜帶從CB上獲取的槽位號,以便CB將對應(yīng)系統(tǒng)軟件響 應(yīng)給該PE。
[0030] 在本申請的具體實現(xiàn)過程中,當硬件、驅(qū)動初始化完成時,不立即進行平臺的初始 化,而是將平臺初始化掛起。執(zhí)行步驟102即后續(xù)步驟,在使用與CB上相同的系統(tǒng)軟件完 成硬件、驅(qū)動初始化時,才將初始化掛起的平臺繼續(xù)進行初始化。
[0031] 步驟103,該PE使用獲取的PE系統(tǒng)軟件更新本地存儲的系統(tǒng)軟件,執(zhí)行步驟101。
[0032] 當PE與CB上對應(yīng)系統(tǒng)軟件不同時,需要使用從CB上獲取的PE系統(tǒng)軟件重新進 行硬件、驅(qū)動初始化。
[0033] 步驟104,該PE開始平臺的初始化,完成系統(tǒng)啟動。
[0034] 使用與從CB上獲取的PE系統(tǒng)軟件相同的系統(tǒng)軟件進行硬件、驅(qū)動初始化完成時, 將初始化掛起的平臺開始初始化,之后的操作同現(xiàn)有實現(xiàn)。
[0035] 下面結(jié)合附圖,詳細說明本申請具體實施例中如何實現(xiàn)系統(tǒng)啟動。
[0036] 參見圖2,圖2為本申請具體實施例中系統(tǒng)啟動流程示意圖。具體步驟為:
[0037] 步驟201,PE開始硬件、驅(qū)動初始化。
[0038] 步驟202,該PE確定閃存中是否存儲了槽位號,如果是,執(zhí)行步驟204 ;否則,執(zhí)行 步驟203。
[0039] 本實施例中以閃存中存儲槽位號和系統(tǒng)軟件為例。
[0040] 步驟203,該PE虛擬一個槽位號,使用該槽位號,以及閃存中存儲的系統(tǒng)軟件進行 硬件、驅(qū)動初始化,執(zhí)行步驟205。
[0041] 在現(xiàn)有實現(xiàn)時,如果本地未存儲槽位號,則不能進行硬件、驅(qū)動初始化。通常的解 決方式是通過bootware引導,在本地的閃存中存儲一個槽位號,但是,如果本地不存在槽 位號,使用了 bootware進行槽位號加載,則會對PE中的光模塊進行限制;而本申請在具體 實現(xiàn)時,如果本地未存儲槽位號,則先虛擬一個槽位號,用于進行硬件、驅(qū)動的初始化,這樣 不會對PE中的光模塊進行限制。
[0042] 步驟204,該PE讀取閃存中存儲的槽位號,以及系統(tǒng)軟件進行硬件、驅(qū)動初始化。
[0043] 步驟205,該PE完成硬件、驅(qū)動初始化,并將平臺的初始化掛起。
[0044] PE在完成硬件、驅(qū)動初始化后,端口管理、收發(fā)通道都已經(jīng)打通,此時需將平臺的 初始化掛起,防止由于CP和PE上的系統(tǒng)軟件版本不匹配造成掛死現(xiàn)象。
[0045] 步驟206,該PE向CB發(fā)送槽位號請求,獲取槽位號并更新到閃存中。
[0046] 當閃存中保存的槽位號,與當前CB分配的槽位號相同,步驟206也可以不執(zhí)行。
[0047] 步驟207,該PE獲取CB上存儲的PE系統(tǒng)軟件,并確定該PE系統(tǒng)軟件與本地存儲 的系統(tǒng)軟件是否相同,如果是,執(zhí)行步驟208 ;否則,執(zhí)行步驟209。
[0048] PE向CB發(fā)送請求系統(tǒng)軟件的請求報文,并在該請求報文中攜帶獲取的槽位號,CB 根據(jù)接收到請求報文,向該PE響應(yīng)對應(yīng)的系統(tǒng)軟件。
[0049] 在確定獲取的PE系統(tǒng)軟件與本地存儲的系統(tǒng)軟件是否相同時,具體實現(xiàn)時,可以 通過軟件版本、軟件特征等確定,本申請具體實施例中不做限制。
[0050] 步驟208,該PE確定當前存儲的槽位號與進行硬件、驅(qū)動初始化的槽位號是否相 同,如果是,執(zhí)行步驟211 ;否則,執(zhí)行步驟210。
[0051] 步驟207和步驟208可以不分先后順序執(zhí)行,在步驟207之后執(zhí)行步驟208這種 方式執(zhí)行時,執(zhí)行效率要更高,由于在步驟207中,如果確定系統(tǒng)軟件不同時,需要重啟,就 沒必要先執(zhí)行步驟208判斷中可能執(zhí)行到的在線更新槽位號的步驟。
[0052] 步驟209,該PE使用獲取到的PE系統(tǒng)軟件更新存儲在閃存中的系統(tǒng)軟件,并執(zhí)行 步驟201。
[0053] 步驟210,該PE在線更新槽位號。
[0054] 步驟211,該PE將初始化掛起的平臺執(zhí)行初始化,完成系統(tǒng)啟動。
[0055] 基于同樣的發(fā)明構(gòu)思,本申請還提出一種系統(tǒng)啟動裝置。參見圖3,圖3為本申請 具體實施例中應(yīng)用于上述技術(shù)的裝置結(jié)構(gòu)示意圖。該裝置包括:存儲單元301、第一初始化 單元302、獲取單元303、確定單元304和第二初始化單元305 ;
[0056] 存儲單元301,用于存儲槽位號和系統(tǒng)軟件;當確定單元304確定獲取的PE系統(tǒng) 軟件與存儲的系統(tǒng)軟件不同時,使用獲取的PE系統(tǒng)軟件更新存儲的系統(tǒng)軟件并觸發(fā)第一 初始化單元302執(zhí)行操作;
[0057] 第一初始化單元302,用于根據(jù)存儲單元301存儲的槽位號,以及系統(tǒng)軟件進行硬 件、驅(qū)動初始化;
[0058] 獲取單元303,用于當?shù)谝怀跏蓟瘑卧?02完成硬件、驅(qū)動初始化時,獲取CB上存 儲的PE系統(tǒng)軟件;
[0059] 確定單元304,用于確定獲取單元303獲取的PE系統(tǒng)軟件與存儲單元301存儲的 系統(tǒng)軟件是否相同;
[0060] 第二初始化單元305,用于當確定單元304確定獲取的PE系統(tǒng)軟件與存儲單元存 儲301存儲的系統(tǒng)軟件相同時,開始平臺的初始化,完成系統(tǒng)啟動。
[0061] 較佳地,
[0062] 確定單元304,進一步用于確定存儲單元301是否存儲了槽位號,如果是,觸發(fā)第 一初始化單元302執(zhí)行操作;
[0063] 獲取單元303,進一步用于當確定單元304確定本地未存儲槽位號時,虛擬一個槽 位號;并觸發(fā)第一初始化單元302執(zhí)行操作。
[0064] 較佳地,
[0065] 獲取單元303,進一步用于當?shù)谝怀跏蓟瘑卧?02完成硬件、驅(qū)動初始化完成時, 從CB獲取槽位號,并更新存儲的槽位號;
[0066] 確定單元304,進一步用于確定存儲單元301當前存儲的槽位號與進行硬件、驅(qū)動 初始化的槽位號是否相同,如果是,觸發(fā)第二初始化單元305執(zhí)行操作;否則,觸發(fā)第一初 始化單元302在線更新槽位號之后,觸發(fā)第二初始化單元305執(zhí)行操作。
[0067] 較佳地,
[0068] 第二初始化單元305,進一步用于在第一初始化單元302完成硬件、驅(qū)動初始化 時,將平臺初始化掛起。
[0069] 上述實施例的單元可以集成于一體,也可以分離部署;可以合并為一個單元,也可 以進一步拆分成多個子單兀。
[0070] 綜上所述,PE在進行系統(tǒng)啟動過程中,當完成硬件、驅(qū)動初始化時,不直接進行平 臺的初始化,而是獲取CB上存儲的PE系統(tǒng)軟件,當CB上的系統(tǒng)軟件與本設(shè)備初始化的系 統(tǒng)軟件相同時,才進行平臺的初始化,否則,使用從CB上獲取的PE系統(tǒng)軟件更新本地存儲 的系統(tǒng)軟件并重新進行硬件、驅(qū)動初始化。通過該方案進行系統(tǒng)啟動后,無論PE和CB上的 系統(tǒng)軟件是否相同,都能夠正常通信,并且支持光模塊類型廣泛。
[0071] 本申請在具體實現(xiàn)時,為了使PE不受光模塊的限制,在本地未存儲槽位號時,通 過虛擬槽位號實現(xiàn)硬件、驅(qū)動初始化,并在硬件、驅(qū)動初始化完成時,從CB上獲取真正的槽 位號,并進行在線更新。從而本申請中PE在系統(tǒng)啟動時,不受光模塊限制,進行多線程處 理,收包快,系統(tǒng)啟動效率高;并且能夠兼容PE、CB的異構(gòu)版本。
[0072] 以上所述僅為本發(fā)明的較佳實施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精 神和原則之內(nèi),所做的任何修改、等同替換、改進等,均應(yīng)包含在本發(fā)明保護的范圍之內(nèi)。
【權(quán)利要求】
1. 一種系統(tǒng)啟動方法,其特征在于,所述方法包括:步驟 A、 根據(jù)存儲的槽位號,以及系統(tǒng)軟件進行硬件、驅(qū)動初始化; B、 當硬件、驅(qū)動初始化完成時,獲取控制橋CB上存儲的端口擴展器PE系統(tǒng)軟件,并確 定該PE系統(tǒng)軟件與本地存儲的系統(tǒng)軟件是否相同,如果是,執(zhí)行步驟D ;否則,執(zhí)行步驟C ; C、 使用獲取的PE系統(tǒng)軟件更新本地存儲的系統(tǒng)軟件,執(zhí)行步驟A ; D、 開始平臺的初始化,完成系統(tǒng)啟動。
2. 根據(jù)權(quán)利要求1所述的方法,其特征在于,步驟A之前,所述方法進一步包括: 確定本地是否存儲了槽位號,如果是,執(zhí)行步驟A ;否則,虛擬一個槽位號,并使用該槽 位號以及存儲的系統(tǒng)軟件進行初始化,執(zhí)行步驟B。
3. 根據(jù)權(quán)利要求1所述的方法,其特征在于, 步驟B中當硬件、驅(qū)動初始化完成時,所述方法進一步包括:從CB獲取槽位號,并更新 存儲的槽位號; 步驟B中確定獲取的PE系統(tǒng)軟件與存儲的系統(tǒng)軟件相同,之后,步驟D之前,所述方法 進一步包括:確定當前存儲的槽位號與進行硬件、驅(qū)動初始化的槽位號是否相同,如果是, 執(zhí)行步驟D ;否則,執(zhí)行在線更新槽位號之后,執(zhí)行步驟D。
4. 根據(jù)權(quán)利要求1-3任意一項所述的方法,其特征在于,步驟B中當硬件、驅(qū)動初始化 完成時,所述方法進一步包括:將平臺初始化掛起。
5. -種系統(tǒng)啟動裝置,其特征在于,所述裝置包括:存儲單元、第一初始化單元、獲取 單元、確定單元和第二初始化單元; 所述存儲單元,用于存儲槽位號和系統(tǒng)軟件;當所述確定單元確定獲取的端口擴展器 PE系統(tǒng)軟件與存儲的系統(tǒng)軟件不同時,使用獲取的PE系統(tǒng)軟件更新存儲的系統(tǒng)軟件并觸 發(fā)所述第一初始化單元執(zhí)行操作; 所述第一初始化單元,用于根據(jù)所述存儲單元存儲的槽位號,以及系統(tǒng)軟件進行硬件、 驅(qū)動初始化; 所述獲取單元,用于當所述第一初始化單元完成硬件、驅(qū)動初始化時,獲取控制橋CB 上存儲的PE系統(tǒng)軟件; 所述確定單元,用于確定所述獲取單元獲取的PE系統(tǒng)軟件與所述存儲單元存儲的系 統(tǒng)軟件是否相同; 所述第二初始化單元,用于當所述確定單元確定獲取的PE系統(tǒng)軟件與所述存儲單元 存儲的系統(tǒng)軟件相同時,開始平臺的初始化,完成系統(tǒng)啟動。
6. 根據(jù)權(quán)利要求5所述的裝置,其特征在于, 所述確定單元,進一步用于確定所述存儲單元是否存儲了槽位號,如果是,觸發(fā)所述第 一初始化單元執(zhí)行操作; 所述獲取單元,進一步用于當所述確定單元確定本地未存儲槽位號時,虛擬一個槽位 號;并觸發(fā)所述第一初始化單元執(zhí)行操作。
7. 根據(jù)權(quán)利要求5所述的裝置,其特征在于, 所述獲取單元,進一步用于當所述第一初始化單元完成硬件、驅(qū)動初始化完成時,從CB 獲取槽位號,并更新存儲的槽位號; 所述確定單元,進一步用于確定所述存儲單元當前存儲的槽位號與進行硬件、驅(qū)動初 始化的槽位號是否相同,如果是,觸發(fā)所述第二初始化單元執(zhí)行操作;否則,觸發(fā)所述第一 初始化單元在線更新槽位號之后,觸發(fā)所述第二初始化單元執(zhí)行操作。
8.根據(jù)權(quán)利要求5-7任意一項所述的裝置,其特征在于, 所述第二初始化單元,進一步用于在所述第一初始化單元完成硬件、驅(qū)動初始化時,將 平臺初始化掛起。
【文檔編號】G06F9/445GK104102520SQ201410359148
【公開日】2014年10月15日 申請日期:2014年7月25日 優(yōu)先權(quán)日:2014年7月25日
【發(fā)明者】薛聰, 祁正林, 劉刀桂, 周孟韜, 袁洋 申請人:杭州華三通信技術(shù)有限公司