关闭

关闭

封号提示

内容

首页 PCI_配置空间(中文).doc

PCI_配置空间(中文).doc

PCI_配置空间(中文).doc

上传者: haoran 2012-01-08 评分 3 0 37 5 166 暂无简介 简介 举报

简介:本文档为《PCI_配置空间(中文)doc》,可适用于IT/计算机领域,主题内容包含PCIConfiguration名词说明:PCI为PeripheralComponentInterconnect的缩写它是由Intel所发表的另一种符等。

PCIConfiguration名词说明:PCI为PeripheralComponentInterconnect的缩写它是由Intel所发表的另一种局部总线(另一种为VESALocalBus)以配合Pentium系列的微处理机为主PCI的最大特点在于它是和主机板不相关的接口而且一台主机最多支持台使用PCI接口的外围设备这种总线架构还支持PowerPC等机种因此PCI适配卡将可在不同工作平台上使用。PCI的数据总线(databus)是位或是位宽工作频率为MHz在位宽的总线之下每个clock可传送个字节因此最高的数据传输速率为每秒=MB。而PCI的改良版称为PCIX采用六十四位的总线宽度与MHz的传输速率可以使得数据传输量为GBps而且可以使用于现有的PCI界面卡PCIX初期以工作站或是服务器为主。架构说明:System(系统讯号):CLK:CLK讯号为一个输入讯号,其提供所有交易,包括总线仲裁等的时序,PCI装置的所有输入都是在CLK讯号的上升边缘被取样的PCI总线上的所有动作都与PCICLK讯号同步,其讯号频率的范围在Mhz~MhzRST(ResetSignal)当重置讯号被驱动成低态时,它会强迫所有PCI组态缓存器,master及target状态机器与输出驱动器回到初始化状态DeviceIdentificationVendorID(Offseth~h)记录PCI厂商识别码,如IntelID是,VIAID是,AliID是BDeviceID(Offseth~h)记录PCI装置识别码以BIOS观点来看,通常为了避掉某些装置与系统的兼容性常藉由判断VendorID与DeviceID做不同的处理DeviceControlCommandRegister(Offseth~h)指令缓存器它是一个位缓存器,提供基本装置响应或进行PCI存取能力的控制位功能IO空间(IOSpace)当此位被设定为时,显示该装置需求IO地址内存空间(MemorySpace)当此位被设定为时,显示该装置需求内存地址BusMaster当被设定为时,此装置能当作busmaster来用,组态软件用此位来决定装置是否具有busmaster能力特殊周期(SpecialCycle)当被设定为时,装置可以监视PCI特殊周期MemoryWriteandInvalidateEnable当被设定为时,装置可以产生MemoryWriteandInvalidate指令,当设定为时,装置使用MemoryWrite指令来取代,软件不应该致能此位,直到装置的快取线大小组态缓存器以系统快取线大小来初始化,组态软件可以用它及位,BusMaster一起来侦测master是否能够使用MemoryWriteandInvalidate指令,假设它可以的话,则快取线大小将会被写入到master的快取线大小组态缓存器VGA调色盘监管(VGAPalleteSnoop)当此位被设定为时,此位指示其与VGA兼容的装置去监管对VGAColorPallete(调色盘)缓存器的IO写入,在非VGA图形装置,重置会将此位设定为,开启调色盘监管功能同位错误响应(ParityErrorResponse)当此位被设定为时,装置可以报告同位错误(以驱动PERR#到低组态的方式),当清除为时,装置不会在发生同位错误事件时,驱动PERR#到低组态,不过,它仍必须设定在其状态缓存器里的侦测到同位错误状态位逐步驱动控制(SteppingControl)控制装置是否可以进行地址数据逐步驱动,从不使用逐步驱动的装置必须将此位以硬件接线设定为,一定要使用逐步驱动的装置必须将此位以硬件接线设定为,能够使用这两种方式的装置必须将此位实做成一个可读可写的位,并且在重置后初始化为SERR#Enable当设定为时,装置可以驱动SERR#线,设定为会关闭装置的SERR#输出驱动器,此位与位(同位错误报告)必须被设定,以便报告地址同位错误FastBacktoBackEnable假如BusMaster可以在第一次和第二次交易中,与不同的Target进行FastBacktoBack交易的话,此位可用来启动或关闭这功能,假如所有在BusMaster所在之PCI总线上的Target是可以进行FastBacktoBack交易的话,组态软件可以设定此位来致能此Master进行FastBacktoBack交易的能力,无需担心在第一次和第二次交易里是否寻址相同的Target:保留StatusRegister状态缓存器(Offseth~h)位RW功能:R保留R能力串行(CapabilitiesList)它是一个硬件接线,只读位,假如设定为的话,则表示新能力串行指针缓存器必须在装置组态空间的Offseth里实作,在这种情况,组态程序执行装置应该去读取指针缓存器,以决定装置是否支持额外的能力(AGP,VPD等等),并且使用它们各自的组态缓存器,去组态它们RMhz能力(MhzCapable)=装置能够在Mhz速度下执行=只能在Mhz速度下执行R保留RFastBacktoBack能力(FastBacktoBackCapable)此只读位元表示Target装置是否支持不同Target的FastBacktoBack交易,=装置支持=装置不支持RWMaster数据同位错误(MasterDataParityError)此位只在BusMaster里实作,并且只有在下列条件时才会被设定:报告的BusMaster是交易的initiator(在读取过程中)它自己设定PERR#,或(在写入过程中)侦测到它被Target驱动到低态在Master的指令缓存器里的同位错误响应位被设定为:R装置选择时序(DeviceSelect(DEVSEL#)Timing)它定义了Target装置最慢的DEVSEL#时序b=Fast(快速的)b=Medium(中速的)b=Slow(慢速的)b=Reserved(保留)RW发出TargetAbort讯号(SignaledTargetAbort)每当Target装置以TargetAbort终止交易时,Target就会设定此位,不能发出TargetAbort讯号的装置不需要实作此位RW接收到TargetAbort讯号(ReceivedTargetAbort)每当BusMaster的交易是以目前寻址的Target发出的TargetAbort终止的时候,它就会设定此位RW接收到MasterAbort讯号(ReceivedTargetAbort)每当BusMaster的交易是因MasterAbort而终止(特殊周期除外)的时候,它就会设定此位RW发出系统错误讯号(SignaledSystemError)每当装置在SERR#在线产生一个错误讯息(SystemError)时,它应该设定此位RW侦测到同位错误(DetectedParityError)每当装置侦测到一个同位错误时,它应该设定此位(实时同位错误报告功能指令缓存器里的同位错误响应位关闭)RevisionID(Offseth)版本识别码缓存器记录PCI装置版本序号,由装置制造商指派,假如制造商提供版本特定的驱动程序,这可确保OS加载正确的驱动程序ClassCode类别码(Offseth~Bh)它是一个位只读的缓存器,它被分成三个字段:基本类别(BaseClass)子类别(SubClass)及程序界面(ProgrammingInterface),较高的字节定义功能的基本类别中间的字节定义在基本类别里的子类别较低的字节定义程序界面当OS尝试找出一个可以配合类别驱动程序(ClassDriver)一起工作的装置时,此暂存器是很有用的,如OS找到一个具有类别码h,以及子类别码为h的装置(XGA),则它必须提供与其兼容的显示配接卡驱动程序和该装置一起工作BaseClassh在类别码定义之前建立的装置hh所有非VGA装置hh与VGA兼容的装置BaseClassh大量储存媒体控制器子类别程序界面描述hhSCSI控制器 hxxhIDE控制器hh软式磁盘驱动器控制器 hhIPI控制器hhRAID控制器hh其它大量储存媒体控制器BaseClassh网络控制器子类别程序界面描述hhEthernet控制器hhTokenRing控制器hhFDDI控制器hhATM控制器hhISDN控制器hh其它网络控制器BaseClassh显示控制器子类别程序界面描述hh与VGA兼容的控制器,响应内存地址Ah到BFFFh(VideoFrameBuffer,视讯画面缓冲区),以及IO地址Bh到BBh,及Ch到DFh,还有这些地址的所有别名(alias)h与兼容的控制器,响应IO地址Eh以及它的别名,EAh和EFHhhXGA控制器hhD控制器 hh其它显示控制器BaseClassh多媒体控制器子类别程序界面描述hh视讯装置hh音效装置hh计算机电话装置hh其它多媒体装置BaseClassh内存控制器子类别程序界面描述hhRAM内存控制器hhFlash(快闪)内存控制器hh其它内存控制器BaseClassh桥接器装置子类别程序界面描述hhHostPCI桥接器hhPCIISA桥接器hhPCIEISA桥接器hhPCIMicroChannel桥接器hhPCIPCI桥接器h相减解碼PCItoPCI桥接器,支持除正常PCItoPCI功能之外的相减译码hhPCIPCMCIA桥接器hhPCINuBus桥接器hhPCICardBus桥接器hxxhRACEway桥接器,RACEway是一个ANSI标准(ANSIVITA)的交换架构(SwitchingFabric)界面位:是保留,位值为表示桥接器是在通透模式(TransparentMode),值为表示它是再端点模式(EndPointMode)hh其它桥接器型态BaseClassh简单的通讯控制器子类别程序界面描述hh通用的XT兼容序列控制器h与兼容的序列控制器h与兼容的序列控制器h与兼容的序列控制器h与兼容的序列控制器h与兼容的序列控制器h与兼容的序列控制器hh平行阜h双向平行阜 h遵循ECPX规格的平行阜 hIEEE控制器FehIEEETarget装置(非控制器)hh多阜序列控制器hh通用调制解调器h与Hayes兼容的调制解调器,与兼容的界面,BAR映像或IO映像(如BAR型态所指示)h与Hayes兼容的调制解调器,与兼容的界面,BAR映像或IO映像(如BAR型态所指示)h与Hayes兼容的调制解调器,与兼容的界面,BAR映像或IO映像(如BAR型态所指示)h与Hayes兼容的调制解调器,与兼容的界面,BAR映像或IO映像(如BAR型态所指示)hh其它通讯装置BaseClassh基本的系统周边装置子类别程序界面描述hh通用可程序中断控制器(ProgrammableInterruptController,PIC)hISAPIChEISAPIChIOPIChIO(x)APIC中断控制器hh通用DMA控制器hISADMA控制器hEISADMA控制器hh通用定时器hISA系统定时器hEISA系统定时器hh通用RTC控制器hISARTC控制器hh通用热插拔(PCIHotPlug)hooh其它系统外围装置BaseClassh输入装置子类别程序界面描述hh键盘控制器hhDiditizer(pen)hh鼠标控制器 hh扫瞄器控制器 hh通用游戏连接阜控制器 h游戏连接阜控制器具有程序界面=h的游戏连接阜控制器表示任何在这请求指定IO地址空间之功能里的基地址缓存器,在该IO空间的缓存器符合标准的”传统”游戏连接阜,在IO区域里位移为h的字节其行为与传统游戏连接阜界面相同,当读取此字节时,会传回游戏杆手把(JoystickGamepad)的信息,在写入此字节时会启动RC定时器,位移为h的字节是位移为h字节的别名,所有在IO区域里的其它字节是未指定的,且可以给制造商以自己特有的方式来使用hh其它输入控制器BaseClassAh船屋系统子类别程序界面描述hh通用的船乌系统hh其它型态的船乌系统BaseClassBh处理器BaseClassCh序列总线控制器子类别程序界面描述 hhFirewire(IEEE)h使用OpenHCI规格的IEEEhhACCESSbushhSSA(SerialStorageArchitecture,序列储存架构)hh使用UniversalHostController规格的USB(UniversalSerialBus,通用序列阜)控制器h使用OpenHostController规格的USB(UniversalSerialBus,通用序列阜)控制器h无特定程序界面的USB控制器FEhUSB装置(非主控器(HostController))hhFiber(光纤)ChannelhhSMBus(SystemManagementbus,系统管理汇流排)BaseClassDh无线控制器子类别程序界面描述hh与iRDA兼容的控制器hh消费型IR控制器hhRF控制器hh其它型态无线控制器BaseClassEh智能型IO控制器子类别程序界面描述 hxxh遵循I架构规格的智能型IO控制器h在相对地址(Offsset)h的讯息FIFOBaseClassFh卫星通讯控制器子类别程序界面描述hhTV(电视)hhAudio(音效)hhVoice(语音)hhData(资料)BaseClassh加密解密(EncryptionDecryption)子类别程序界面描述hh网络与运算加密解密hh娱乐加密解密 hh其它加密解密BaseClassh数据撷取与讯号处理控制器子类别程序界面描述 hhDPIO模块 hh其它数据撷取与讯号处理控制器CacheLineSizeRegister快取线大小缓存器(OffsetCh)此读写组态缓存器指定了以dword为单位的系统快取线大小(例如:在P的系统里此缓存器的值为h,表示其快取线大小为个dword,或个字节),实作了MemoryWriteandInvalidate指令的BusMaster必须实作此缓存器,因为它必须知道快取线大小,以便确保它从快取线边界起始交易,并遵守它将整条线写入内存的约定,所以当这缓存器被设定为(表示组态软件尚未把快取线大小告诉它)时,BusMaster不可以使用MemoryWriteandInvalidate指令,在这种情况,Master只能够使用MemoryWrite(内存写入)指令来更新内存装置可以限制它所支持的快取线大小数目,假如组态软件写入一个未支持的数值,则装置会将此数值当作来动作LatencyTimer等待时间(OffsetDh)等待时间以PCI频率周期为单位,定义了在busmaster起始新交易时,它可保留总线有权的最小时间量,最理想的是,每一个busmaster都应该将此缓存器实作为可读写的缓存器,藉此给予组态软件在busmaster群组间分配可用的总线时间上有最大的弹性,组态软件以读取功能的MinGnt(MinimumGrant最小授权)缓存器,决定busmaster想要的时间片段HeaderType表头型态缓存器(OffsetEh)每一个PCI功能拥有保留给实作其组态缓存器用的个组态dword区块,前个dword的格式(Offseth~Fh)与使用是由PCI规格预先定义的,这区域被称为装置的组态表头区域(或表头空间(HeaderSpace)),规格目前定义了三种表头格式,称为HeaderTypeZero,One与Two:HeaderTypeOne是为PCItoPCI桥接器定义的(h)HeaderTypeTwo是为PCItoCardBus桥接器定义的(h)HeaderTypeZero是给所有除了PCItoPCI与CardBus桥接器以外的装置使用的(h)HeaderType位是用来表示此装置含有除了桥接器功能以外的其它功能,固位=表示为多功能,=表示为单功能BuiltinSelfTestBIST内建自我测试(OffsetFh)非必要的,假如装置不支持BIST的话,在读取此缓存器时,它必须要传回为,装置的BIST是以设定位为的方式来请求,在完成BIST后,装置会将位重置,但必须在二秒钟内完成重置,位~为则表示成功,非零值代表装置特定的错误码BassAddress基地址缓存器(Offseth~h)在开机时,系统必须自动地组态,以便让所有IO与内存能占用户不相干的地址范围,为了达到此目标,系统必须有能力侦测到装置需要多少个内存与IO地址范围,以及每一个大小当位传回则表示这是一个IO译码器,不是内存译码器,位:是基地址字段,并且用来IO区块所需的大小以及设定它的起始地址区块大小的决定与地址范围的指定:是否实作基地址缓存器它是一个内存,还是IO地址译码器假如它是内存译码器,它是一个位还是位的基地址缓存器假如它是内存译码器,与此缓存器相关的内存是可预读的还是不可预读的它需要多少内存或地址空间,并且是以什么单位来排列这所有信息可以很简单的用写入一个全部为的值到基地址缓存器里,然后读取它来确认,传回值为表是没有实作基地址缓存器,假设所读取的值不为,程序执行装置可从基地址栏的最低有效位向上扫瞄传回值,以找出第一个被设定为的位来决定所需的内存或IO空间的大小内存范例:假设FFFFFFFFh被写入在组态h~h的基地址缓存器里,然后再读取时,所得的值为FFFh,由此可知有任何位可以被更改成表示实作了基地址缓存器,位=表示这是一个内存地址译码器位:=b表示它是一个位内存地址译码器位=表示它不是可预读的内存位是在基地址字段里所找到的第一个,此位的二进制权值为,,,表示这是一个MB大小的内存地址译码器接下来,程序执行装置写入位基地址到缓存器里,不过只有位:是可写入的,译码器接荍位:并假设所指定的基地址的位:为,这表示基地址可以被MB,既所请求的内存范围大小整除,所指定的起始地址一定会被所请求的内存范围大小整除是PCI译码器的特性IO范例:假设FFFFFFFFh被写入在组态h~h的基地址缓存器里,然后再读取时,所得的值为FFFFFFh,位为,表示这是一个IO地址译码器,从位(基地址栏的最低有效位向上扫瞄)开始向上扫瞄,找到位是第一个被成功地改成的位,此二进权值为,表示此IO地址译码器大小为B,或将所得的值作一补码运算后再加,易可得相同的值CardBusCISPointerCardBus与PCI共享的装置实作此非必要的缓存器,此字段指向CardBus卡的借面卡信息结构(CardBusInformationStructure,CIS),此缓存器是只读的,并且包含在下列其中一个地方的CIS相对地址(offset):在功能的装置特定组态空间里(在功能的组态空间的Offseth之后)的相对地址(Offset)与其中一个装置内存基地址缓存器所指示的起始地址间之相对地址(offset)在装置扩充ROM程序代码影像(CodeImage)里的相对地址(offset)CIS的详细说明请参考”CardBusSystemArchitecture”SubsystemVendorIDandSubsystemIDSubsystemVendorID子系统制造商识别码(OffsetCh~Dh)SubsystemID子系统识别码(OffsetEh~Fh)PCI功能可以位于界面卡上或内建装置里,使用相同PCI核心逻辑(由thirdparty(其它厂商)生厂)的两个界面卡或子系统可能会有相同制造商识别码与装置识别码(假如核心逻辑制造商以硬件接线将它们自己的识别码设定在这些缓存器里),假如在这种情况下,在OS辨识要加载到内存的真正装置驱动程序上,可能会有问题这两个强制性的缓存器被用来确认装置所在的附加卡或子系统,使用这两个缓存器,OS可以分辨在由不同制造商制造,但使用相同thirdparty核心逻辑的界面卡或子系统之间的差异,这使得随插即用(PlugandPlay)OS有能力去寻找要加载到内存的正确驱动程序ExpansionROMBaseAddress扩充ROM基地址缓存器(Offseth~h)对于含有装置ROM的装置来说是必要的,许多PCI装置都含有一个内含装置的装置驱动程序之装置ROM,在开机时,系统必须自动地组态,以便让所有IO与内存能占用户不相干的地址范围,为了达到此目标,系统必须有能力侦测到ROM需要多少个内存空间,可以很简单的用写入一个全部为的值到基地址缓存器里,然后读取它来确认,它必须检查在ROM里的前两个位置是否有扩充ROM的签名,以决定ROM是否真的被安装,假如有安装的话,组态程序必须SHADOW此ROM,并且执行其初始化程序代码位=致能装置的ROM地址译码器位:保留位:用来指定ROM的起始地址假设FFFFFFFFh被写入到ROM的基地址缓存器里(位,既扩充ROM致能位被清除,所以ROM地址译码器不会被致能,直到指定起始内存地址之后),随后再读取此缓存器,所得的值为FFFEh,这表示:位=,表示ROM地址译码器目前被关闭位:保留在基地址字段(位:)里,位为程序执行装置可以设定为的最低有效位,其二进制权值为K,表示ROM译码器需要K的内存地址,然后,程序执行装置写入一个位的起始地址到此缓存器中,指定KB的地址边界当作ROM的起始地址PCIExpansionROMHeaderFormatPCIDataStructureFormatROMHeaderExtensionsInterruptLine中断讯号线(OffsetCh)PCI装置的中断号码配置与绕线设定处理和此字段密不可分PCI装置对于中断讯号的定义中,设计了以下四组中断讯号线INTA#,INTB#,INTC#,INTD#在今的许多PC系统里,内崁在PCIISA桥接器内的可程序化路由器都具有四个输入端,用来连接PCI中断线路,目前大多数的PCI装置是单功能装置,单功能PCI装置只能用INTA#(不得使用INTB#,INTC#,INTD#)来产生中断请求,在多功能PCI装置上,装置设计者可以实作最多四支中断接脚,INTA#,INTB#,INTC#,INTD#,因其是内含二到八个功能的实体套件,ISA中断请求线是正缘触发(Positiveedgetriggered),且不可共享,但PCI中断请求线是低态动作的(Activelow),准位触发的(Levelsensitive),可共享的(Shareable)请求线,PCI中断只能连接到未被ISA装置占用的ISA中断请求在线在系统内存F到FFFFF搜寻表格的签名(Signature)($PIR),便可侦测到PCI中断路由表格格式如下:从表格起点算起的相对字节大小说明SignatureVersionTableSizePCIInterruptRouter’sBusPCIInterruptRouter’sDevFuncPCIExclusiveIRQsCompatiblePCIInterruptRouterMiniportDataReservedChecksumFirstSlotEntrySecondSlotEntry(N)*nthSlotEntryalignpublicmsirqroutetablesignmsirqroutetablesignlabelbytedb"$PIR"msirqroutetableverdwhmsirqroutetablesizedw(*)msirqroutetablebusdbhmsirqroutetabledevdbVTPIDEVFUNCmsirqroutetableirqdwhmsirqroutetableidddhVIACmsirqroutetableidddhVIACmsirqroutetableminiddhmsirqroutetableresddbdup()msirqroutetablecksmdb紧接着是字节的插槽项目格式,依系统主机板所使用的芯片组,内建装置与插槽数而有所不同格式如下:从表格起点算起的相对字节大小说明PCIBusNumberPCIDeviceNumberLinkValueforINTA#IRQBitmapforINTA#LinkValueforINTB#IRQBitmapforINTB#LinkValueforINTC#IRQBitmapforINTC#LinkValueforINTD#IRQBitmapforINTD#SlotNumberReservedInterruptPin中断讯号脚(OffsetDh)中断讯号线记录器其记录该PCI装置使用何者INT#讯号,BIOS则依其所提供的信息告知CHIPSET并给予正确中断绕线设定值为表示其使用INTA,则为INTB,则为INTC,则为INTD此记录器是只读并无法写入MINGNTandMAXLATMINGNT(MinimumGrant最小授权)(OffsetEh)此为只读的组态缓存器,其值为,代表此BusMaster对于指派给予的LT的设定值并没有特定的要求,若非为则表示master需要多长的时间片段以得到适当的效能,以ns为单位MaxLAT:MaxLat(OffsetFh)缓存器的值表示master多久会想要存取总线一次,此为只读的组态缓存器,对于busmaster来说是非必要的DeviceStatusPCI新增新能力(NewCapabilities)组态缓存器offseth~h为装置状态缓存器,其位=表示支持新能力,新能力指针缓存器在组态缓存器offseth,其细节如下:位~为能力识别码位~为指向下一个新能力的指标识别码:说明h保留hPCIPowerManagementInterfacehAGPhVDP(VitalProductData)hSlotIdentificationhMSI(MessageSignaledInterrupt)hCompactPCIHostSwap~d保留PMCRegister:位说明:PME支持(PMESupport)字段,表示功能可以在该状态下,驱动PME#到低态(电源管理事件PMEvent)的PM状态,位为表示在这个PM状态下不支持PME#产生位对应的PM状态DDDDhotDcold(功能需要辅助电源来供应PME逻辑电力)D支持位D支持位:辅助电流(AuxCurrent)字段装置特定的初始化(DeviceSpecificInitialization,简称DSI)位保留PME频率(PMEClock)位,此位为表示功能需要有PCI频率存在,才能产生PME#,不需要频率或不产生PME#的功能会以硬件接线将本位元设定为:版本字段(Version)位遵循的规格版本PM控制状态(PMCSR)缓存器假如功能实作PME能力的话,则此缓存器含有一个用来反应先前致能之PME是否发生的PME状态(PMEStatus)位假如功能实作PME能力的话,则此缓存器含有一个PME致能(PMEEnable)位,它允许软件去致能或关闭功能驱动PME#讯号到低态的能力假如实作了非必要的数据缓存器的话,则此缓存器含有两个字段:允许软件选择可以透过数据缓存器来读取的信息并提供数据缓存器数值必须相乘的比例因子软件使用此缓存器的电源状态(PowerState)字段,来决定功能目前的PM状态,以及把功能转移到新PM状态位读写(RW)说明读写,想要将PME状态(PMEStatus)位,假如功能支持PME清除为的话,的话,此位会反应功能是否遇到PME(即使在把写入其中此缓存器里的PMEEn位将功能在发生PME事件时,驱动PME#到低态的能力关闭),假如设定为,则功能遇到PME,而软件可以用写入到其中的方式将它清除:只读数据比例(DataScale)字段:读写数据选择(DataSelect)字段读写PME致能(PMEEn)位=致能功能在发生PME事件时,驱动PME#到低 态的能力=关闭:只读保留:读写电源状态(PowerState)字段,软件用此字段来居决定功能目前的PM状态(以读取此字段的方式)或是将它放入到一个新的PM状态(以写入此字段的方式),假如软件选择功能不支持的PM状态,则写入必须正常地完成,但是写入的数据会被丢弃,且状态不变PM状态bDbDbDbDhot相关信息与实例当客户要求支持SPMEWakeup功能但PCI装置不支持时,BIOS可利用下列程序来做到:STRSAVEPCIDEVICELABELBYTEdwMKFPCISLOTDEVFUNC()shldwMKFPCISLOTDEVFUNC()shldwMKFPCISLOTDEVFUNC()shldwMKFPCISLOTDEVFUNC()shldwMKFPCISLOTDEVFUNC()shlNOOFSTRPCITABLEequ($offsetcgroup:STRSAVEPCIDEVICE)movsi,offsetcgroup:STRSAVEPCIDEVICEmovcx,NOOFSTRPCITABLEloopforpmed:pushcxmovdx,wordptrcs:simovah,hhcallreadpcicmpal,ffhjznextforpmedmovah,PCIREGSTATUShcallreadpcitestal,CAPABILITIESBIThjznextforpmedmovah,PCICAPPTRhreadcapid:callreadpcicmpal,jznextforpmedmovah,alcallreadpcicmpal,PMECAPIDhjzfoundforpmeidincahjmpreadcapidfoundforpmeid:addah,PMECSREGhcallreadpciandal,fehClearDisablePMEcallwritepcidecahcallreadpciandbl,fchsetpoweronstatecallwritepciincahcallreadpcioral,hEnablePMEcallwritepcinextforpmed:incsiincsipopcxlooploopforpmedmovcx,callpmfixeddelaypopaforpmedisable:retSTACKREQUIREDInput:(AL)MaskofPCIregisterbitstotest(optional)(AH)IndexofPCIregistertoaccess(DL):PCIdevice#:PCIfunction#ondevice(DH):PCIbus#ofdeviceOutput:(AL)Valuereadfromchipsetregister(ZF)ZRCorrespondingbitsinchipsetregistertomaskareallzeroNZCorrespondingbitsinchipsetregistertomaskhasatleastonebitsetRegisterdestroyed:(AL)NOTE:*Donotinvokewith"retsp"Invokewith"call"only*DonotchangeIFstatusreadpciPROCNEARpushedxpusheaxpushfxchgax,dxmovzxeax,ax(eax)=devicefunc#shleax,(eax)=devfunc#inproperpositionbtseax,moval,dh(al)=reg#toaccessandal,fch(eax)=properconfigenbshledx,movdx,cfh(dx)=CONFIGADDRESSclioutdx,eaxjcxzshort$jcxzshort$shredx,(dl)=reg#toaccessanddl,h(dl)=bytetoaccessofregordx,cfch(dx)=CONFIGDATAinal,dx(al)=datareadfromregjcxzshort$jcxzshort$movdl,alpopfpopeaxtestal,dlForreturningproperflaginfomoval,dlpopedxretreadpciENDPHostPCIBridge:通常被称为北桥(NorthBridge),它连接主处理器总线与rootPCI总线PCItoISABridge:通常被称为南桥(SouthBridge),它连接rootPCI总线与ISA(或EISA)总线,南桥通常还整合中断控制器(InterruptController),IDE控制器(IDEController),USBHost控制器(USBController)与DMA控制器(DMAController)PCItoPCIBridge:它连接rootPCI总线与PCI总线EMBEDPBrushdocdoc

类似资料

编辑推荐

清汉文海卷13-14.pdf

新保险法全文下载.doc

葡萄牙的发现[1、2、3卷]有目录.pdf

土质边坡稳定分析—原理、方法、程序.pdf

精巧机构设计实例清晰版.pdf

职业精品

精彩专题

上传我的资料

精选资料

热门资料排行换一换

  • ARM Architecture…

  • 民族与民族主义-[霍布斯鲍姆].…

  • 日暮(美)艾萨克·阿西莫夫(美)…

  • !周易-繁体拼音校读本.pdf

  • 成语大全(拼音[1].释义.出处…

  • 社会生物学-新的综合 by [美…

  • 论语-拼音版.pdf

  • 张五常:我学英语的方法.pdf

  • [古文观止读本].pdf

  • 资料评价:

    / 31
    所需积分:2 立即下载

    意见
    反馈

    返回
    顶部