1.一種基于非x86平臺在Linux操作系統(tǒng)下顯示的方法,其特征在于,包括如下步驟:
對非x86平臺的嵌入式系統(tǒng)進行擴展,將顯卡通過PCI總線接口接入非x86平臺的嵌入式系統(tǒng);
對非x86平臺的嵌入式系統(tǒng)上電,啟動系統(tǒng)初始化,并在系統(tǒng)初始化過程中對顯卡進行控制初始化;
基于PCI總線檢測顯卡是否與非x86平臺的嵌入式系統(tǒng)可通信,在檢測到顯卡處于可通信時,PCI總線接口獲取顯卡設備信息;
在系統(tǒng)初始化過程中,為非x86平臺加入x86模擬器,并完成x86模擬器初始化過程,X86模擬器模擬x86的硬件寄存器、操作碼、中斷向量,為模擬器分配內(nèi)存;
基于PCI總線將顯卡BIOS的物理地址和Frame buffer的物理地址進行PCI地址映射;
將顯卡中的BIOS鏡像拷貝到內(nèi)存,解除BIOS鏡像的地址映射;
將PCI總線信息和拷貝到內(nèi)存BIOS鏡像信息保存到X86模擬器的寄存器,X86模擬器模擬x86中斷,執(zhí)行顯卡BIOS代碼,完成Linux內(nèi)核代碼啟動前對顯卡初始化;
設置Linux內(nèi)核啟動參數(shù),啟動linux內(nèi)核;
啟動Linux操作系統(tǒng)內(nèi)核顯卡驅(qū)動,驅(qū)動顯卡正常工作,完成圖形界面的顯示。
2.如權利要求1所述的基于非x86平臺在Linux操作系統(tǒng)下顯示的方法,其特征在于,所述PCI總線接口獲取顯卡設備信息包括:
PCI總線接口獲取到顯卡設備ID、供應商、型號、顯卡屬性和地址空間信息。
3.如權利要求1所述的基于非x86平臺在Linux操作系統(tǒng)下顯示的方法,其特征在于,所述完成x86模擬器初始化過程中還包括:
記錄顯卡的IO寄存器和內(nèi)存的寫操作指令。
4.如權利要求1所述的基于非x86平臺在Linux操作系統(tǒng)下顯示的方法,其特征在于,所述基于PCI總線將顯卡BIOS的物理地址和Frame buffer的物理地址進行PCI地址映射包括:
根據(jù)PCI總線上的信息,查詢顯卡ROM中的BIOS鏡像的物理地址和Frame buffer的物理地址以及它們所對應的長度;
將顯卡中BIOS鏡像的物理地址、Frame buffer的物理地址和它們的長度保存在PCI總線上;
將BIOS鏡像的物理地址、Frame buffer的物理地址做PCI地址映射;
將BIOS鏡像和frame buffer映射后的地址和長度保存到PCI總線上,然后延時等待下一步的執(zhí)行。
5.如權利要求1至4任一項所述的基于非x86平臺在Linux操作系統(tǒng)下顯示的方法,其特征在于,所述方法還包括:
在基于PCI總線檢測到顯卡處于不可通信時,基于非x86平臺報警提醒顯卡故障。