版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
./PCIConfiguration名詞說明:PCI為PeripheralComponentInterconnect的縮寫,它是由Intel所發(fā)表的另一種局部總線<另一種為VESALocalBus>,以配合Pentium系列的微處理機(jī)為主,PCI的最大特點(diǎn)在于它是和主機(jī)板不相關(guān)的接口,而且一臺(tái)主機(jī)最多支持16臺(tái)使用PCI接口的外圍設(shè)備,這種總線架構(gòu)還支持PowerPC等機(jī)種,因此PCI適配卡將可在不同工作平臺(tái)上使用。PCI的數(shù)據(jù)總線<databus>是32位或是64位寬,工作頻率為33MHz,在64位寬的總線之下,每個(gè)clock可傳送8個(gè)字節(jié),因此最高的數(shù)據(jù)傳輸速率為每秒33×8=264MB。而PCI的改良版稱為PCI-X,采用六十四位的總線寬度與133MHz的傳輸速率,可以使得數(shù)據(jù)傳輸量為1.064GBps,而且可以使用于現(xiàn)有的PCI界面卡,PCI-X初期以工作站或是服務(wù)器為主。架構(gòu)說明:System<系統(tǒng)訊號(hào)>:CLK:CLK訊號(hào)為一個(gè)輸入訊號(hào),其提供所有交易,包括總線仲裁等的時(shí)序,PCI裝置的所有輸入都是在CLK訊號(hào)的上升邊緣被取樣的.PCI總線上的所有動(dòng)作都與PCICLK訊號(hào)同步,其訊號(hào)頻率的圍在0Mhz~33Mhz.RST<ResetSignal>當(dāng)重置訊號(hào)被驅(qū)動(dòng)成低態(tài)時(shí),它會(huì)強(qiáng)迫所有PCI組態(tài)緩存器,master及target狀態(tài)機(jī)器與輸出驅(qū)動(dòng)器回到初始化狀態(tài).DeviceIdentificationVendorID<Offset00h~01h>記錄PCI廠商識(shí)別碼,如IntelID是8086,VIAID是1106,AliID是10B8.DeviceID<Offset02h~03h>記錄PCI裝置識(shí)別碼.以BIOS觀點(diǎn)來看,通常為了避掉某些裝置與系統(tǒng)的兼容性常藉由判斷VendorID與DeviceID做不同的處理.DeviceControlCommandRegister<Offset04h~05h>指令緩存器它是一個(gè)16位緩存器,提供基本裝置響應(yīng)或進(jìn)行PCI存取能力的控制.位功能IO空間<IOSpace>.當(dāng)此位被設(shè)定為1時(shí),顯示該裝置需求IO地址.存空間<MemorySpace>.當(dāng)此位被設(shè)定為1時(shí),顯示該裝置需求存地址.BusMaster.當(dāng)被設(shè)定為1時(shí),此裝置能當(dāng)作busmaster來用,組態(tài)軟件用此位來決定裝置是否具有busmaster能力.特殊周期<SpecialCycle>.當(dāng)被設(shè)定為1時(shí),裝置可以監(jiān)視PCI特殊周期.MemoryWriteandInvalidateEnable.當(dāng)被設(shè)定為1時(shí),裝置可以產(chǎn)生MemoryWrite-and-Invalidate指令,當(dāng)設(shè)定為0時(shí),裝置使用MemoryWrite指令來取代,軟件不應(yīng)該致能此位,直到裝置的快取線大小組態(tài)緩存器以系統(tǒng)快取線大小來初始化,組態(tài)軟件可以用它及位2,BusMaster一起來偵測(cè)master是否能夠使用MemoryWrite-and-Invalidate指令,假設(shè)它可以的話,則快取線大小將會(huì)被寫入到master的快取線大小組態(tài)緩存器.VGA調(diào)色盤監(jiān)管<VGAPalleteSnoop>.當(dāng)此位被設(shè)定為1時(shí),此位指示其與VGA兼容的裝置去監(jiān)管對(duì)VGAColorPallete<調(diào)色盤>緩存器的IO寫入,在非VGA圖形裝置,重置會(huì)將此位設(shè)定為1,開啟調(diào)色盤監(jiān)管功能.同位錯(cuò)誤響應(yīng)<ParityErrorResponse>.當(dāng)此位被設(shè)定為1時(shí),裝置可以報(bào)告同位錯(cuò)誤<以驅(qū)動(dòng)PERR#到低組態(tài)的方式>,當(dāng)清除為0時(shí),裝置不會(huì)在發(fā)生同位錯(cuò)誤事件時(shí),驅(qū)動(dòng)PERR#到低組態(tài),不過,它仍必須設(shè)定在其狀態(tài)緩存器里的偵測(cè)到同位錯(cuò)誤狀態(tài)位.逐步驅(qū)動(dòng)控制<SteppingControl>.控制裝置是否可以進(jìn)行地址/數(shù)據(jù)逐步驅(qū)動(dòng),從不使用逐步驅(qū)動(dòng)的裝置必須將此位以硬件接線設(shè)定為0,一定要使用逐步驅(qū)動(dòng)的裝置必須將此位以硬件接線設(shè)定為1,能夠使用這兩種方式的裝置必須將此位實(shí)做成一個(gè)可讀/可寫的位,并且在重置后初始化為1.SERR#Enable.當(dāng)設(shè)定為1時(shí),裝置可以驅(qū)動(dòng)SERR#線,設(shè)定為0會(huì)關(guān)閉裝置的SERR#輸出驅(qū)動(dòng)器,此位與位6<同位錯(cuò)誤報(bào)告>必須被設(shè)定,以便報(bào)告地址同位錯(cuò)誤FastBack-to-BackEnable.假如BusMaster可以在第一次和第二次交易中,與不同的Target進(jìn)行FastBack-to-Back交易的話,此位可用來啟動(dòng)或關(guān)閉這功能,假如所有在BusMaster所在之PCI總線上的Target是可以進(jìn)行FastBack-to-Back交易的話,組態(tài)軟件可以設(shè)定此位來致能此Master進(jìn)行FastBack-to-Back交易的能力,無需擔(dān)心在第一次和第二次交易里是否尋址相同的Target..15:10保留StatusRegister狀態(tài)緩存器<Offset06h~07h>位R/W功能3:0R保留4R能力串行<CapabilitiesList>.它是一個(gè)硬件接線,只讀位,假如設(shè)定為1的話,則表示新能力串行指針緩存器必須在裝置組態(tài)空間的Offset34h里實(shí)作,在這種情況,組態(tài)程序執(zhí)行裝置應(yīng)該去讀取指針緩存器,以決定裝置是否支持額外的能力<AGP,VPD等等>,并且使用它們各自的組態(tài)緩存器,去組態(tài)它們.5R66Mhz能力<66MhzCapable>.1=裝置能夠在66Mhz速度下執(zhí)行.0=只能在33Mhz速度下執(zhí)行.6R保留7RFastBack-to-Back能力<FastBack-to-BackCapable>.此只讀位元表示Target裝置是否支持不同Target的FastBack-to-Back交易,1=裝置支持0=裝置不支持.8R/WMaster數(shù)據(jù)同位錯(cuò)誤<MasterDataParityError>.此位只在BusMaster里實(shí)作,并且只有在下列條件時(shí)才會(huì)被設(shè)定:報(bào)告的BusMaster是交易的initiator.<在讀取過程中>它自己設(shè)定PERR#,或<在寫入過程中>偵測(cè)到它被Target驅(qū)動(dòng)到低態(tài).在Master的指令緩存器里的同位錯(cuò)誤響應(yīng)位被設(shè)定為1.10:9R裝置選擇時(shí)序<DeviceSelect<DEVSEL#>Timing>.它定義了Target裝置最慢的DEVSEL#時(shí)序.00b=Fast<快速的>01b=Medium<中速的>10b=Slow<慢速的>11b=Reserved<保留>11R/W發(fā)出TargetAbort訊號(hào)<SignaledTargetAbort>.每當(dāng)Target裝置以TargetAbort終止交易時(shí),Target就會(huì)設(shè)定此位,不能發(fā)出TargetAbort訊號(hào)的裝置不需要實(shí)作此位.12R/W接收到TargetAbort訊號(hào)<ReceivedTargetAbort>.每當(dāng)BusMaster的交易是以目前尋址的Target發(fā)出的TargetAbort終止的時(shí)候,它就會(huì)設(shè)定此位.13R/W接收到MasterAbort訊號(hào)<ReceivedTargetAbort>.每當(dāng)BusMaster的交易是因MasterAbort而終止<特殊周期除外>的時(shí)候,它就會(huì)設(shè)定此位.14R/W發(fā)出系統(tǒng)錯(cuò)誤訊號(hào)<SignaledSystemError>.每當(dāng)裝置在SERR#在線產(chǎn)生一個(gè)錯(cuò)誤訊息<SystemError>時(shí),它應(yīng)該設(shè)定此位.15R/W偵測(cè)到同位錯(cuò)誤<DetectedParityError>.每當(dāng)裝置偵測(cè)到一個(gè)同位錯(cuò)誤時(shí),它應(yīng)該設(shè)定此位<實(shí)時(shí)同位錯(cuò)誤報(bào)告功能指令緩存器里的同位錯(cuò)誤響應(yīng)位關(guān)閉>.RevisionID<Offset08h>版本識(shí)別碼緩存器記錄PCI裝置版本序號(hào),由裝置制造商指派,假如制造商提供版本特定的驅(qū)動(dòng)程序,這可確保OS加載正確的驅(qū)動(dòng)程序.ClassCode類別碼<Offset09h~0Bh>它是一個(gè)24位只讀的緩存器,它被分成三個(gè)字段:基本類別<BaseClass>子類別<SubClass>及程序界面<ProgrammingInterface>,較高的字節(jié)定義功能的基本類別.中間的字節(jié)定義在基本類別里的子類別.較低的字節(jié)定義程序界面.當(dāng)OS嘗試找出一個(gè)可以配合類別驅(qū)動(dòng)程序<ClassDriver>一起工作的裝置時(shí),此暫存器是很有用的,如OS找到一個(gè)具有類別碼03h,以及子類別碼為01h的裝置<XGA>,則它必須提供與其兼容的顯示配接卡驅(qū)動(dòng)程序和該裝置一起工作.BaseClass00h在類別碼定義之前建立的裝置.00h00h所有非VGA裝置.00h01h與VGA兼容的裝置.BaseClass01h大量?jī)?chǔ)存媒體控制器.子類別程序界面描述00h00hSCSI控制器01hxxhIDE控制器02h00h軟式磁盤驅(qū)動(dòng)器控制器03h00hIPI控制器04h00hRAID控制器05h00h其它大量?jī)?chǔ)存媒體控制器BaseClass02h網(wǎng)絡(luò)控制器.子類別程序界面描述00h00hEthernet控制器01h00hTokenRing控制器02h00hFDDI控制器03h00hATM控制器04h00hISDN控制器80h00h其它網(wǎng)絡(luò)控制器BaseClass03h顯示控制器.子類別程序界面描述00h00h與VGA兼容的控制器,響應(yīng)存地址000A0000h到000BFFFh<VideoFrameBuffer,視訊畫面緩沖區(qū)>,以及IO地址03B0h到03BBh,及03C0h到03DFh,還有這些地址的所有別名<alias>.01h與8514兼容的控制器,響應(yīng)IO地址02E8h以及它的別名,02EAh和02EFH.01h00hXGA控制器.02h00h3D控制器.80h00h其它顯示控制器.BaseClass04h多媒體控制器.子類別程序界面描述00h00h視訊裝置.01h00h音效裝置.02h00h計(jì)算機(jī)裝置.80h00h其它多媒體裝置.BaseClass05h存控制器.子類別程序界面描述00h00hRAM存控制器.01h00hFlash<快閃>存控制器.80h00h其它存控制器.BaseClass06h橋接器裝置子類別程序界面描述00h00hHost/PCI橋接器01h00hPCI/ISA橋接器02h00hPCI/EISA橋接器03h00hPCI/MicroChannel橋接器04h00hPCI/PCI橋接器01h相減解碼PCI-to-PCI橋接器,支持除正常PCI-to-PCI功能之外的相減譯碼.05h00hPCI/PCMCIA橋接器06h00hPCI/NuBus橋接器07h00hPCI/CardBus橋接器08hxxhRACEway橋接器,RACEway是一個(gè)ANSI標(biāo)準(zhǔn)<ANSI/VITA5-1994>的交換架構(gòu)<SwitchingFabric>界面位7:1是保留,位0值為0表示橋接器是在通透模式<TransparentMode>,值為1表示它是再端點(diǎn)模式<End-PointMode>.80h00h其它橋接器型態(tài).BaseClass07h簡(jiǎn)單的通訊控制器子類別程序界面描述00h00h通用的XT兼容序列控制器.01h與16450兼容的序列控制器.02h與16550兼容的序列控制器.03h與16650兼容的序列控制器.04h與16750兼容的序列控制器.05h與16850兼容的序列控制器.06h與16950兼容的序列控制器.01h00h平行阜.01h雙向平行阜.02h遵循ECP1.X規(guī)格的平行阜.03hIEEE1284控制器.FehIEEE1284Target裝置<非控制器>.02h00h多阜序列控制器.03h00h通用調(diào)制解調(diào)器.01h與Hayes兼容的調(diào)制解調(diào)器,與16450兼容的界面,BAR0映像或IO映像<如BAR型態(tài)所指示>.02h與Hayes兼容的調(diào)制解調(diào)器,與16550兼容的界面,BAR0映像或IO映像<如BAR型態(tài)所指示>.03h與Hayes兼容的調(diào)制解調(diào)器,與16650兼容的界面,BAR0映像或IO映像<如BAR型態(tài)所指示>.04h與Hayes兼容的調(diào)制解調(diào)器,與16750兼容的界面,BAR0映像或IO映像<如BAR型態(tài)所指示>.80h00h其它通訊裝置.BaseClass08h基本的系統(tǒng)周邊裝置.子類別程序界面描述00h00h通用8259可程序中斷控制器<ProgrammableInterruptController,PIC>.01hISAPIC.02hEISAPIC.10hIOPIC.20hIO<x>APIC中斷控制器.01h00h通用8237DMA控制器.01hISADMA控制器.02hEISADMA控制器.02h00h通用8254定時(shí)器.01hISA系統(tǒng)定時(shí)器.02hEISA系統(tǒng)定時(shí)器.03h00h通用RTC控制器.01hISARTC控制器.04h00h通用熱插拔<PCIHot-Plug>.80hooh其它系統(tǒng)外圍裝置.BaseClass09h輸入裝置.子類別程序界面描述00h00h鍵盤控制器.01h00hDiditizer<pen>.02h00h鼠標(biāo)控制器.03h00h掃瞄器控制器.04h00h通用游戲連接阜控制器.10h游戲連接阜控制器.具有程序界面=10h的游戲連接阜控制器表示任何在這請(qǐng)求/指定IO地址空間之功能里的基地址緩存器,在該IO空間的緩存器符合標(biāo)準(zhǔn)的"傳統(tǒng)"游戲連接阜,在IO區(qū)域里位移為00h的字節(jié)其行為與傳統(tǒng)游戲連接阜界面相同,當(dāng)讀取此字節(jié)時(shí),會(huì)傳回游戲桿/手把<Joystick/Gamepad>的信息,在寫入此字節(jié)時(shí)會(huì)啟動(dòng)RC定時(shí)器,位移為01h的字節(jié)是位移為00h字節(jié)的別名,所有在IO區(qū)域里的其它字節(jié)是未指定的,且可以給制造商以自己特有的方式來使用.80h00h其它輸入控制器.BaseClass0Ah船屋系統(tǒng).子類別程序界面描述00h00h通用的船烏系統(tǒng).80h00h其它型態(tài)的船烏系統(tǒng).BaseClass0Bh處理器BaseClass0Ch序列總線控制器.子類別程序界面描述00h00hFirewire<IEEE1394>.10h使用1394OpenHCI規(guī)格的IEEE1394.01h00hACCESS.bus02h00hSSA<SerialStorageArchitecture,序列儲(chǔ)存架構(gòu)>.03h00h使用UniversalHostController規(guī)格的USB<UniversalSerialBus,通用序列阜>控制器.10h使用OpenHostController規(guī)格的USB<UniversalSerialBus,通用序列阜>控制器.80h無特定程序界面的USB控制器.FEhUSB裝置<非主控器<HostController>>04h00hFiber<光纖>Channel.05h00hSMBus<SystemManagementbus,系統(tǒng)管理匯流排>.BaseClass0Dh無線控制器子類別程序界面描述00h00h與iRDA兼容的控制器.01h00h消費(fèi)型IR控制器.02h00hRF控制器.80h00h其它型態(tài)無線控制器.BaseClass0Eh智能型IO控制器子類別程序界面描述00hxxh遵循I20架構(gòu)規(guī)格的智能型IO控制器.00h在相對(duì)地址<Offsset>40h的訊息FIFO.BaseClass0Fh衛(wèi)星通訊控制器子類別程序界面描述01h00hTV<電視>.02h00hAudio<音效>.03h00hVoice<語(yǔ)音>.04h00hData<資料>.BaseClass10h加密/解密<Encryption/Decryption>子類別程序界面描述00h00h網(wǎng)絡(luò)與運(yùn)算加密/解密.10h00h娛樂加密/解密.80h00h其它加密/解密.BaseClass11h數(shù)據(jù)擷取與訊號(hào)處理控制器子類別程序界面描述00h00hDPIO模塊80h00h其它數(shù)據(jù)擷取與訊號(hào)處理控制器.CacheLineSizeRegister快取線大小緩存器<Offset0Ch>此讀/寫組態(tài)緩存器指定了以dword為單位的系統(tǒng)快取線大小<例如:在P6的系統(tǒng)里此緩存器的值為08h,表示其快取線大小為8個(gè)dword,或32個(gè)字節(jié)>,實(shí)作了MemoryWrite-and-Invalidate指令的BusMaster必須實(shí)作此緩存器,因?yàn)樗仨氈揽烊【€大小,以便確保它從快取線邊界起始交易,并遵守它將整條線寫入存的約定,所以當(dāng)這緩存器被設(shè)定為0<表示組態(tài)軟件尚未把快取線大小告訴它>時(shí),BusMaster不可以使用MemoryWrite-and-Invalidate指令,在這種情況,Master只能夠使用MemoryWrite<存寫入>指令來更新存.裝置可以限制它所支持的快取線大小數(shù)目,假如組態(tài)軟件寫入一個(gè)未支持的數(shù)值,則裝置會(huì)將此數(shù)值當(dāng)作0來動(dòng)作.LatencyTimer等待時(shí)間<Offset0Dh>等待時(shí)間以PCI頻率周期為單位,定義了在busmaster起始新交易時(shí),它可保留總線有權(quán)的最小時(shí)間量,最理想的是,每一個(gè)busmaster都應(yīng)該將此緩存器實(shí)作為可讀/寫的緩存器,藉此給予組態(tài)軟件在busmaster群組間分配可用的總線時(shí)間上有最大的彈性,組態(tài)軟件以讀取功能的Min_Gnt<MinimumGrant最小授權(quán)>緩存器,決定busmaster想要的時(shí)間片段.HeaderType表頭型態(tài)緩存器<Offset0Eh>每一個(gè)PCI功能擁有保留給實(shí)作其組態(tài)緩存器用的64個(gè)組態(tài)dword區(qū)塊,前16個(gè)dword的格式<Offset00h~3Fh>與使用是由PCI規(guī)格預(yù)先定義的,這區(qū)域被稱為裝置的組態(tài)表頭區(qū)域<或表頭空間<HeaderSpace>>,規(guī)格目前定義了三種表頭格式,稱為HeaderTypeZero,One與Two:HeaderTypeOne是為PCI-to-PCI橋接器定義的<01h>.HeaderTypeTwo是為PCI-to-CardBus橋接器定義的<02h>.HeaderTypeZero是給所有除了PCI-to-PCI與CardBus橋接器以外的裝置使用的<00h>.HeaderType位7是用來表示此裝置含有除了橋接器功能以外的其它功能,固位7=1表示為多功能,0=表示為單功能.Built-inSelfTestBIST建自我測(cè)試<Offset0Fh>非必要的,假如裝置不支持BIST的話,在讀取此緩存器時(shí),它必須要傳回為0,裝置的BIST是以設(shè)定位6為1的方式來請(qǐng)求,在完成BIST后,裝置會(huì)將位6重置,但必須在二秒鐘完成重置,位0~3為0則表示成功,非零值代表裝置特定的錯(cuò)誤碼.BassAddress基地址緩存器<Offset10h~27h>在開機(jī)時(shí),系統(tǒng)必須自動(dòng)地組態(tài),以便讓所有IO與存能占用戶不相干的地址圍,為了達(dá)到此目標(biāo),系統(tǒng)必須有能力偵測(cè)到裝置需要多少個(gè)存與IO地址圍,以及每一個(gè)大小.當(dāng)位0傳回1則表示這是一個(gè)IO譯碼器,不是存譯碼器,位[31:2]是基地址字段,并且用來IO區(qū)塊所需的大小以及設(shè)定它的起始地址.區(qū)塊大小的決定與地址圍的指定:是否實(shí)作基地址緩存器?它是一個(gè)存,還是IO地址譯碼器?假如它是存譯碼器,它是一個(gè)32位還是64位的基地址緩存器?假如它是存譯碼器,與此緩存器相關(guān)的存是可預(yù)讀的還是不可預(yù)讀的?它需要多少存或地址空間,并且是以什么單位來排列?這所有信息可以很簡(jiǎn)單的用寫入一個(gè)全部為1的值到基地址緩存器里,然后讀取它來確認(rèn),傳回值為0表是沒有實(shí)作基地址緩存器,假設(shè)所讀取的值不為0,程序執(zhí)行裝置可從基地址欄的最低有效位向上掃瞄傳回值,以找出第一個(gè)被設(shè)定為1的位來決定所需的存或IO空間的大小.存例:假設(shè)FFFFFFFFh被寫入在組態(tài)13h~10h的基地址緩存器里,然后再讀取時(shí),所得的值為FFF00000h,由此可知有任何位可以被更改成1表示實(shí)作了基地址緩存器,位0=0表示這是一個(gè)存地址譯碼器.位[2:1]=00b表示它是一個(gè)32位存地址譯碼器.位3=0表示它不是可預(yù)讀的存.位20是在基地址字段里所找到的第一個(gè)1,此位的二進(jìn)制權(quán)值為1,048,576,表示這是一個(gè)1MB大小的存地址譯碼器.接下來,程序執(zhí)行裝置寫入32位基地址到緩存器里,不過只有位[31:20]是可寫入的,譯碼器接荍位[31:20]并假設(shè)所指定的基地址的位[19:0]為0,這表示基地址可以被1MB,既所請(qǐng)求的存圍大小整除,所指定的起始地址一定會(huì)被所請(qǐng)求的存圍大小整除是PCI譯碼器的特性.IO例:假設(shè)FFFFFFFFh被寫入在組態(tài)17h~14h的基地址緩存器里,然后再讀取時(shí),所得的值為FFFFFF01h,位0為1,表示這是一個(gè)IO地址譯碼器,從位2<基地址欄的最低有效位向上掃瞄>開始向上掃瞄,找到位8是第一個(gè)被成功地改成1的位,此二進(jìn)權(quán)值為256,表示此IO地址譯碼器大小為256B,或?qū)⑺玫闹底饕谎a(bǔ)碼運(yùn)算后再加1,易可得相同的值.CardBusCISPointerCardBus與PCI共享的裝置實(shí)作此非必要的緩存器,此字段指向CardBus卡的借面卡信息結(jié)構(gòu)<CardBusInformationStructure,CIS>,此緩存器是只讀的,并且包含在下列其中一個(gè)地方的CIS相對(duì)地址<offset>:在功能的裝置特定組態(tài)空間里<在功能的組態(tài)空間的Offset40h之后>的相對(duì)地址<Offset>.與其中一個(gè)裝置存基地址緩存器所指示的起始地址間之相對(duì)地址<offset>.在裝置擴(kuò)充ROM程序代碼影像<CodeImage>里的相對(duì)地址<offset>.CIS的詳細(xì)說明請(qǐng)參考"CardBusSystemArchitecture".SubsystemVendorIDandSubsystemIDSubsystemVendorID子系統(tǒng)制造商識(shí)別碼<Offset2Ch~2Dh>SubsystemID子系統(tǒng)識(shí)別碼<Offset2Eh~2Fh>PCI功能可以位于界面卡上或建裝置里,使用相同PCI核心邏輯<由third-party<其它廠商>生廠>的兩個(gè)界面卡或子系統(tǒng)可能會(huì)有相同制造商識(shí)別碼與裝置識(shí)別碼<假如核心邏輯制造商以硬件接線將它們自己的識(shí)別碼設(shè)定在這些緩存器里>,假如在這種情況下,在OS辨識(shí)要加載到存的真正裝置驅(qū)動(dòng)程序上,可能會(huì)有問題.這兩個(gè)強(qiáng)制性的緩存器被用來確認(rèn)裝置所在的附加卡或子系統(tǒng),使用這兩個(gè)緩存器,OS可以分辨在由不同制造商制造,但使用相同third-party核心邏輯的界面卡或子系統(tǒng)之間的差異,這使得隨插即用<Plug-and-Play>OS有能力去尋找要加載到存的正確驅(qū)動(dòng)程序.ExpansionROMBaseAddress擴(kuò)充ROM基地址緩存器<Offset30h~33h>對(duì)于含有裝置ROM的裝置來說是必要的,許多PCI裝置都含有一個(gè)含裝置的裝置驅(qū)動(dòng)程序之裝置ROM,在開機(jī)時(shí),系統(tǒng)必須自動(dòng)地組態(tài),以便讓所有IO與存能占用戶不相干的地址圍,為了達(dá)到此目標(biāo),系統(tǒng)必須有能力偵測(cè)到ROM需要多少個(gè)存空間,可以很簡(jiǎn)單的用寫入一個(gè)全部為1的值到基地址緩存器里,然后讀取它來確認(rèn),它必須檢查在ROM里的前兩個(gè)位置是否有擴(kuò)充ROM的簽名,以決定ROM是否真的被安裝,假如有安裝的話,組態(tài)程序必須SHADOW此ROM,并且執(zhí)行其初始化程序代碼.位0=1致能裝置的ROM地址譯碼器.位[10:1]保留.位[31:11]用來指定ROM的起始地址.假設(shè)FFFFFFFFh被寫入到ROM的基地址緩存器里<位0,既擴(kuò)充ROM致能位被清除,所以ROM地址譯碼器不會(huì)被致能,直到指定起始存地址之后>,隨后再讀取此緩存器,所得的值為FFFE0000h,這表示:位0=0,表示ROM地址譯碼器目前被關(guān)閉.位[10:1]保留.在基地址字段<位[31:11]>里,位17為程序執(zhí)行裝置可以設(shè)定為1的最低有效位,其二進(jìn)制權(quán)值為128K,表示ROM譯碼器需要128K的存地址,然后,程序執(zhí)行裝置寫入一個(gè)32位的起始地址到此緩存器中,指定128KB的地址邊界當(dāng)作ROM的起始地址.PCIExpansionROMHeaderFormatPCIDataStructureFormatROMHeaderExtensionsInterruptLine中斷訊號(hào)線<Offset3Ch>PCI裝置的中斷配置與繞線設(shè)定處理和此字段密不可分.PCI裝置對(duì)于中斷訊號(hào)的定義中,設(shè)計(jì)了以下四組中斷訊號(hào)線.INTA#,INTB#,INTC#,INTD#在今的許多PC系統(tǒng)里,崁在PCI/ISA橋接器的可程序化路由器都具有四個(gè)輸入端,用來連接PCI中斷線路,目前大多數(shù)的PCI裝置是單功能裝置,單功能PCI裝置只能用INTA#<不得使用INTB#,INTC#,INTD#>來產(chǎn)生中斷請(qǐng)求,在多功能PCI裝置上,裝置設(shè)計(jì)者可以實(shí)作最多四支中斷接腳,INTA#,INTB#,INTC#,INTD#,因其是含二到八個(gè)功能的實(shí)體套件,ISA中斷請(qǐng)求線是正緣觸發(fā)<Positiveedge-triggered>,且不可共享,但PCI中斷請(qǐng)求線是低態(tài)動(dòng)作的<Activelow>,準(zhǔn)位觸發(fā)的<Level-sensitive>,可共享的<Shareable>請(qǐng)求線,PCI中斷只能連接到未被ISA裝置占用的ISA中斷請(qǐng)求在線.在系統(tǒng)存F0000到FFFFF搜尋表格的簽名<Signature><$PIR>,便可偵測(cè)到PCI中斷路由表格.格式如下:從表格起點(diǎn)算起的相對(duì)字節(jié)大小說明04Signature42Version62TableSize81PCIInterruptRouter’sBus91PCIInterruptRouter’sDevFunc102PCIExclusiveIRQs124CompatiblePCIInterruptRouter164MiniportData2011Reserved311Checksum3216FirstSlotEntry4816SecondSlotEntry<N+1>*1616nthSlotEntryalign16publicms_irq_route_table_signms_irq_route_table_signlabelbytedb"$PIR"ms_irq_route_table_verdw0100hms_irq_route_table_sizedw32+<5*16>ms_irq_route_table_busdb00hms_irq_route_table_devdbVT586_P2I_DEV_FUNCms_irq_route_table_irqdw0hms_irq_route_table_iddd05861106h;VIA82C586;ms_irq_route_table_iddd05961106h;VIA82C596ms_irq_route_table_minidd0hms_irq_route_table_resddb11dup<0>ms_irq_route_table_cksmdb0緊接著是16字節(jié)的插槽項(xiàng)目格式,依系統(tǒng)主機(jī)板所使用的芯片組,建裝置與插槽數(shù)而有所不同.格式如下:從表格起點(diǎn)算起的相對(duì)字節(jié)大小說明01PCIBusNumber11PCIDeviceNumber21LinkValueforINTA#32IRQBitmapforINTA#51LinkValueforINTB#62IRQBitmapforINTB#81LinkValueforINTC#92IRQBitmapforINTC#111LinkValueforINTD#122IRQBitmapforINTD#141SlotNumber151ReservedInterruptPin中斷訊號(hào)腳<Offset3Dh>中斷訊號(hào)線記錄器其記錄該P(yáng)CI裝置使用何者INT#訊號(hào),BIOS則依其所提供的信息告知CHIPSET并給予正確中斷繞線設(shè)定.值為1表示其使用INTA,2則為INTB,3則為INTC,4則為INTD.此記錄器是只讀并無法寫入.MIN_GNTandMAX_LATMIN_GNT<MinimumGrant最小授權(quán)><Offset3Eh>此為只讀的組態(tài)緩存器,其值為0,代表此BusMaster對(duì)于指派給予的LT的設(shè)定值并沒有特定的要求,若非為0則表示master需要多長(zhǎng)的時(shí)間片段以得到適當(dāng)?shù)男?以250ns為單位.Max_LAT:Max_Lat<Offset3Fh>緩存器的值表示master多久會(huì)想要存取總線一次,此為只讀的組態(tài)緩存器,對(duì)于busmaster來說是非必要的.DeviceStatusPCI2.2新增新能力<NewCapabilities>組態(tài)緩存器offset06h~07h為裝置狀態(tài)緩存器,其位4=1表示支持新能力,新能力指針緩存器在組態(tài)緩存器offset34h,其細(xì)節(jié)如下:位0~7為能力識(shí)別碼位8~15為指向下一個(gè)新能力的指標(biāo).識(shí)別碼:說明00h保留01hPCIPowerManagementInterface02hAGP03hVDP<VitalProductData>04hSlotIdentification05hMSI<MessageSignaledInterrupt>06hCompactPCIHostSwap7~255d保留PMCRegister:位說明15:11PME支持<PME_Support>字段,表示功能可以在該狀態(tài)下,驅(qū)動(dòng)PME#到低態(tài)<電源管理事件PMEvent>的PM狀態(tài),位為0表示在這個(gè)PM狀態(tài)下不支持PME#產(chǎn)生.位對(duì)應(yīng)的PM狀態(tài)11D0D1D2D3hotD3cold<功能需要輔助電源來供應(yīng)PME邏輯電力>10D2支持位9D2支持位8:6輔助電流<Aux_Current>字段.裝置特定的初始化<Device-SpecificInitialization,簡(jiǎn)稱DSI>位.保留PME頻率<PMEClock>位,此位為1表示功能需要有PCI頻率存在,才能產(chǎn)生PME#,不需要頻率或不產(chǎn)生PME#的功能會(huì)以硬件接線將本位元設(shè)定為0.2:0版本字段<Version>.位遵循的規(guī)格版本2100011.01.1PM控制/狀態(tài)<PMCSR>緩存器假如功能實(shí)作PME能力的話,則此緩存器含有一個(gè)用來反應(yīng)先前致能之PME是否發(fā)生的PME狀態(tài)<PMEStatus>位.假如功能實(shí)作PME能力的話,則此緩存器含有一個(gè)PME致能<PMEEnable>位,它允許軟件去致能或關(guān)閉功能驅(qū)動(dòng)PME#訊號(hào)到低態(tài)的能力.假如實(shí)作了非必要的數(shù)據(jù)緩存器的話,則此緩存器含有兩個(gè)字段:允許軟件選擇可以透過數(shù)據(jù)緩存器來讀取的信息.并提供數(shù)據(jù)緩存器數(shù)值必須相乘的比例因子.軟件使用此緩存器的電源狀態(tài)<PowerState>字段,來決定功能目前的PM狀態(tài),以及把功能轉(zhuǎn)移到新PM狀態(tài).位讀/寫<R/W>說明15讀/寫,想要將PME狀態(tài)<PMEStatus>位,假如功能支持PME1清除為0的話,的話,此位會(huì)反應(yīng)功能是否遇到PME〔即使在把1寫入其中此緩存器里的PME_En位將功能在發(fā)生PME事件時(shí),驅(qū)動(dòng)PME#到低態(tài)的能力關(guān)閉>,假如設(shè)定為1,則功能遇到PME,而軟件可以用寫入1到其中的方式將它清除.14:13只讀數(shù)據(jù)比例<DataScale>字段.12:9讀/寫數(shù)據(jù)選擇<DataSelect>字段.8讀/寫PME致能<PME_En>位.1=致能功能在發(fā)生PME事件時(shí),驅(qū)動(dòng)PME#到低態(tài)的能力.0=關(guān)閉.7:2只讀保留.1:0讀/寫電源狀態(tài)<PowerState>字段,軟件用此字段來居決定功能目前的PM狀態(tài)<以讀取此字段的方式>或是將它放入到一個(gè)新的PM狀態(tài)<以寫入此字段的方式>,假如軟件選擇功能不支持的PM狀態(tài),則寫入必須正常地完成,但是寫入的數(shù)據(jù)會(huì)被丟棄,且狀態(tài)不變.10PM狀態(tài)00bD001bD110bD211bD3hot相關(guān)信息與實(shí)例當(dāng)客戶要求支持S5PMEWakeup功能但PCI裝置不支持時(shí),BIOS可利用下列程序來做到:STR_SAVE_PCI_DEVICELABELBYTEdwMKF_PCI_SLOT1_DEV_FUNC;<25-11>shl3dwMKF_PCI_SLOT2_DEV_FUNC;<26-11>shl3dwMKF_PCI_SLOT3_DEV_FUNC;<27-11>shl3dwMKF_PCI_SLOT4_DEV_FUNC;<28-11>shl3dwMKF_PCI_SLOT5_DEV_FUNC;<29-11>shl3NO_OF_STR_PCI_TABLEequ<$-offsetcgroup:STR_SAVE_PCI_DEVICE>/2movsi,offsetcgroup:STR_SAVE_PCI_DEVICEmovcx,NO_OF_STR_PCI_TABLEloop_for_pme_d3:pushcxmovdx,wordptrcs:[si]movah,00h;00hcallread_pcicmpal,0ffhjznext_for_pme_d3movah,PCI_REG_STATUS;06hcallread_pcitestal,CAPABILITIES_BIT;10hjznext_for_pme_d3movah,PCI_CAP_PTR;34hread_cap_id:callread_pcicmpal,00jznext_for_pme_d3movah,alcallread_pcicmpal,PME_CAP_ID;01hjzfound_for_pme_idincahjmpread_cap_idfound_for_pme_id:addah,PMECS_REG
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024版城市基礎(chǔ)設(shè)施安裝施工協(xié)議版B版
- 2024年股權(quán)投資合同:風(fēng)險(xiǎn)投資
- 2024離婚冷靜期子女撫養(yǎng)權(quán)合同一
- 職業(yè)學(xué)院學(xué)生預(yù)警教育實(shí)施辦法
- 2024年銷售返聘合同3篇
- 2025年度能源企業(yè)打字員技術(shù)文檔合同范本3篇
- 2024年貨物進(jìn)出口合同(簡(jiǎn)易版)
- 2025年度海外房產(chǎn)居間租賃代理協(xié)議3篇
- 2024年版企業(yè)房屋租賃合同綜合指南版B版
- 2024年離婚雙方債務(wù)確認(rèn)及解決方案3篇
- 基層管理者領(lǐng)導(dǎo)力培訓(xùn)課程
- 電除顫的并發(fā)癥預(yù)防及處理
- 《理想信念教育》課件
- 2023年高級(jí)EHS工程師年度總結(jié)及下年工作展望
- 《泰語(yǔ)基本用語(yǔ)》課件
- 學(xué)生成績(jī)通知書模板(寒假)
- 高中英語(yǔ)詞匯3500詞(必背)-excel版
- 劇本保密協(xié)議模板
- GB 4806.9-2023食品安全國(guó)家標(biāo)準(zhǔn)食品接觸用金屬材料及制品
- 寶馬Z4汽車說明書
- 物流管理與工程案例
評(píng)論
0/150
提交評(píng)論