PCI 配置空间中文Word格式文档下载.docx
《PCI 配置空间中文Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《PCI 配置空间中文Word格式文档下载.docx(27页珍藏版)》请在冰豆网上搜索。
6VGA调色盘监管<
VGAPalleteSnoop>
.当此位被设定为1时,此位指示其与VGA兼容的装置去监管对VGAColorPallete<
调色盘>
缓存器的IO写入,在非VGA图形装置,重置会将此位设定为1,开启调色盘监管功能.
7同位错误响应<
ParityErrorResponse>
.当此位被设定为1时,装置可以报告同位错误<
以驱动PERR#到低组态的方式>
当清除为0时,装置不会在发生同位错误事件时,驱动PERR#到低组态,不过,它仍必须设定在其状态缓存器里的侦测到同位错误状态位.
8逐步驱动控制<
SteppingControl>
.控制装置是否可以进行地址/数据逐步驱动,从不使用逐步驱动的装置必须将此位以硬件接线设定为0,一定要使用逐步驱动的装置必须将此位以硬件接线设定为1,能够使用这两种方式的装置必须将此位实做成一个可读/可写的位,并且在重置后初始化为1.
9SERR#Enable.当设定为1时,装置可以驱动SERR#线,设定为0会关闭装置的SERR#输出驱动器,此位与位6<
同位错误报告>
必须被设定,以便报告地址同位错误
10FastBack-to-BackEnable.假如BusMaster可以在第一次和第二次交易中,与不同的Target进行FastBack-to-Back交易的话,此位可用来启动或关闭这功能,假如所有在BusMaster所在之PCI总线上的Target是可以进行FastBack-to-Back交易的话,组态软件可以设定此位来致能此Master进行FastBack-to-Back交易的能力,无需担心在第一次和第二次交易里是否寻址相同的Target..
15:
10保留
StatusRegister
状态缓存器<
Offset06h~07h>
位R/W功能
3:
0R保留
4R能力串行<
CapabilitiesList>
.它是一个硬件接线,只读位,假如
设定为1的话,则表示新能力串行指针缓存器必须在装置组态空间的Offset34h里实作,在这种情况,组态程序执行装置应该去读取指针缓存器,以决定装置是否支持额外的能力<
AGP,VPD等等>
并且使用它们各自的组态缓存器,去组态它们.
5R66Mhz能力<
66MhzCapable>
.
1=装置能够在66Mhz速度下执行.
0=只能在33Mhz速度下执行.
6R保留
7RFastBack-to-Back能力<
FastBack-to-BackCapable>
.此只读位
元表示Target装置是否支持不同Target的FastBack-to-Back交易,1=装置支持0=装置不支持.
8R/WMaster数据同位错误<
MasterDataParityError>
.此位只在
BusMaster里实作,并且只有在下列条件时才会被设定:
●报告的BusMaster是交易的initiator.
●<
在读取过程中>
它自己设定PERR#,或<
在写入过程中>
侦测到它被Target驱动到低态.
●在Master的指令缓存器里的同位错误响应位被设定为1.
10:
9R装置选择时序<
DeviceSelect<
DEVSEL#>
Timing>
它定义了Target装置最慢的DEVSEL#时序.
00b=Fast<
快速的>
01b=Medium<
中速的>
10b=Slow<
慢速的>
11b=Reserved<
保留>
11R/W发出TargetAbort讯号<
SignaledTargetAbort>
.每当Target装
置以TargetAbort终止交易时,Target就会设定此位,不能发出
TargetAbort讯号的装置不需要实作此位.
12R/W接收到TargetAbort讯号<
ReceivedTargetAbort>
.每当Bus
Master的交易是以目前寻址的Target发出的TargetAbort终止
的时候,它就会设定此位.
13R/W接收到MasterAbort讯号<
Master的交易是因MasterAbort而终止<
特殊周期除外>
的时候,
它就会设定此位.
14R/W发出系统错误讯号<
SignaledSystemError>
.每当装置在SERR#
在线产生一个错误讯息<
SystemError>
时,它应该设定此位.
15R/W侦测到同位错误<
DetectedParityError>
.每当装置侦测到一
个同位错误时,它应该设定此位<
实时同位错误报告功能指
令缓存器里的同位错误响应位关闭>
RevisionID<
Offset08h>
版本识别码缓存器
记录PCI装置版本序号,由装置制造商指派,假如制造商提供版本特定的驱动程序,这可确保OS加载正确的驱动程序.
ClassCode
类别码<
Offset09h~0Bh>
它是一个24位只读的缓存器,它被分成三个字段:
基本类别<
BaseClass>
子类别<
SubClass>
及程序界面<
ProgrammingInterface>
●较高的字节定义功能的基本类别.
●中间的字节定义在基本类别里的子类别.
●较低的字节定义程序界面.
当OS尝试找出一个可以配合类别驱动程序<
ClassDriver>
一起工作的装置时,此暂
存器是很有用的,如OS找到一个具有类别码03h,以及子类别码为01h的装置<
XGA>
则它必须提供与其兼容的显示配接卡驱动程序和该装置一起工作.
BaseClass00h
在类别码定义之前建立的装置.
00h00h所有非VGA装置.
00h01h与VGA兼容的装置.
BaseClass01h
大量储存媒体控制器.
子类别程序界面描述
00h00hSCSI控制器
01hxxhIDE控制器
02h00h软式磁盘驱动器控制器
03h00hIPI控制器
04h00hRAID控制器
05h00h其它大量储存媒体控制器
BaseClass02h
网络控制器.
00h00hEthernet控制器
01h00hTokenRing控制器
02h00hFDDI控制器
03h00hATM控制器
04h00hISDN控制器
80h00h其它网络控制器
BaseClass03h
显示控制器.
00h00h与VGA兼容的控制器,响应存地址
000A0000h到000BFFFh<
VideoFrameBuffer,
视讯画面缓冲区>
以及IO地址03B0h到03BBh,
及03C0h到03DFh,还有这些地址的所有别名
<
alias>
01h与8514兼容的控制器,响应IO地址02E8h以及它
的别名,02EAh和02EFH.
01h00hXGA控制器.
02h00h3D控制器.
80h00h其它显示控制器.
BaseClass04h
多媒体控制器.
00h00h视讯装置.
01h00h音效装置.
02h00h计算机装置.
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是一个ANSI标准<
ANSI/VITA5-1994>
的交换架构<
SwitchingFabric>
界面位7:
1是保留,位0值为0表示桥接器是
在通透模式<
TransparentMode>
值为1表示它是再
端点模式<
End-PointMode>
80h00h其它桥接器型态.
BaseClass07h
简单的通讯控制器
00h00h通用的XT兼容序列控制器.
01h与16450兼容的序列控制器.
02h与16550兼容的序列控制器.
03h与16650兼容的序列控制器.
04h与16750兼容的序列控制器.
05h与16850兼容的序列控制器.
06h与16950兼容的序列控制器.
01h00h平行阜.
01h双向平行阜.
02h遵循ECP1.X规格的平行阜.
03hIEEE1284控制器.
FehIEEE1284Target装置<
非控制器>
02h00h多阜序列控制器.
03h00h通用调制解调器.
01h与Hayes兼容的调制解调器,与16450兼容的界面,BAR
0映像或IO映像<
如BAR型态所指示>
02h与Hayes兼容的调制解调器,与16550兼容的界面,BAR
03h与Hayes兼容的调制解调器,与16650兼容的界面,BAR
04h与Hayes兼容的调制解调器,与16750兼容的界面,BAR
80h00h其它通讯装置.
BaseClass08h
基本的系统周边装置.
00h00h通用8259可程序中断控制器<
Programmable
InterruptController,PIC>
01hISAPIC.
02hEISAPIC.
10hIOPIC.
20hIO<
x>
APIC中断控制器.
01h00h通用8237DMA控制器.
01hISADMA控制器.
02hEISADMA控制器.
02h00h通用8254定时器.
01hISA系统定时器.
02hEISA系统定时器.
03h00h通用RTC控制器.
01hISARTC控制器.
04h00h通用热插拔<
PCIHot-Plug>
80hooh其它系统外围装置.
BaseClass09h
输入装置.
00h00h键盘控制器.
01h00hDiditizer<
pen>
02h00h鼠标控制器.
03h00h扫瞄器控制器.
04h00h通用游戏连接阜控制器.
10h游戏连接阜控制器.具有程序界面=10h的游戏连
接阜控制器表示任何在这请求/指定IO地址空间
之功能里的基地址缓存器,在该IO空间的缓存器符合标准的"
传统"
游戏连接阜,在IO区域里位移为00h的字节其行为与传统游戏连接阜界面
相同,当读取此字节时,会传回游戏杆/手把<
Joystick/Gamepad>
的信息,在写入此字节时会启动RC定时器,位移为01h的字节是位移为00h
字节的别名,所有在IO区域里的其它字节是未指定的,且可以给制造商以自己特有的方式来使用.
80h00h其它输入控制器.
BaseClass0Ah
船屋系统.
00h00h通用的船乌系统.
80h00h其它型态的船乌系统.
BaseClass0Bh
处理器
BaseClass0Ch
序列总线控制器.
00h00hFirewire<
IEEE1394>
10h使用1394OpenHCI规格的IEEE1394.
01h00hACCESS.bus
02h00hSSA<
SerialStorageArchitecture,序列储存架
构>
03h00h使用UniversalHostController规格的USB
UniversalSerialBus,通用序列阜>
控制器.
10h使用OpenHostController规格的USB
80h无特定程序界面的USB控制器.
FEhUSB装置<
非主控器<
HostController>
>
04h00hFiber<
光纤>
Channel.
05h00hSMBus<
SystemManagementbus,系统管理汇流
排>
BaseClass0Dh
无线控制器
00h00h与iRDA兼容的控制器.
01h00h消费型IR控制器.
02h00hRF控制器.
80h00h其它型态无线控制器.
BaseClass0Eh
智能型IO控制器
00hxxh遵循I20架构规格的智能型IO控制器.
00h在相对地址<
Offsset>
40h的讯息FIFO.
BaseClass0Fh
卫星通讯控制器
01h00hTV<
电视>
02h00hAudio<
音效>
03h00hVoice<
语音>
04h00hData<
资料>
BaseClass10h
加密/解密<
Encryption/Decryption>
00h00h网络与运算加密/解密.
10h00h娱乐加密/解密.
80h00h其它加密/解密.
BaseClass11h
数据撷取与讯号处理控制器
00h00hDPIO模块
80h00h其它数据撷取与讯号处理控制器.
CacheLineSizeRegister
快取线大小缓存器<
Offset0Ch>
此读/写组态缓存器指定了以dword为单位的系统快取线大小<
例如:
在P6的系统
里此缓存器的值为08h,表示其快取线大小为8个dword,或32个字节>
实作了
MemoryWrite-and-Invalidate指令的BusMaster必须实作此缓存器,因为它必须
知道快取线大小,以便确保它从快取线边界起始交易,并遵守它将整条线写入存的约定,所以当这缓存器被设定为0<
表示组态软件尚未把快取线大小告诉它>
时,
BusMaster不可以使用MemoryWrite-and-Invalidate指令,在这种情况,Master
只能够使用MemoryWrite<
存写入>
指令来更新存.
装置可以限制它所支持的快取线大小数目,假如组态软件写入一个未支持的数值,
则装置会将此数值当作0来动作.
LatencyTimer
等待时间<
Offset0Dh>
等待时间以PCI频率周期为单位,定义了在busmaster起始新交易时,它可保留总线有权的最小时间量,最理想的是,每一个busmaster都应该将此缓存器实作为可读/写的缓存器,藉此给予组态软件在busmaster群组间分配可用的总线时间上有最大的弹性,组态软件以读取功能的Min_Gnt<
MinimumGrant最小授权>
缓存器,决定busmaster想要的时间片段.
HeaderType
表头型态缓存器<
Offset0Eh>
每一个PCI功能拥有保留给实作其组态缓存器用的64个组态dword区块,前16个dword的格式<
Offset00h~3Fh>
与使用是由PCI规格预先定义的,这区域被称为装置的组态表头区域<
或表头空间<
HeaderSpace>
规格目前定义了三种表头格式,称为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-inSelfTest
BIST建自我测试<
Offset0Fh>
非必要的,假如装置不支持BIST的话,在读取此缓存器时,它必须要传回为0,装置的BIST是以设定位6为1的方式来请求,在完成BIST后,装置会将位6重置,但必须在二秒钟完成重置,位0~3为0则表示成功,非零值代表装置特定的错误码.
BassAddress
基地址缓存器<
Offset10h~27h>
在开机时,系统必须自动地组态,以便让所有IO与存能占用户不相干的地址围,
为了达到此目标,系统必须有能力侦测到装置需要多少个存与IO地址围,以及每一个大小.当位0传回1则表示这是一个IO译码器,不是存译码器,位[31:
2]是基地址字段,并且用来IO区块所需的大小以及设定它的起始地址.
区块大小的决定与地址围的指定:
●是否实作基地址缓存器?
●它是一个存,还是IO地址译码器?
●假如它是存译码器,它是一个32位还是64位的基地址缓存器?
●假如它是存译码器,与此缓存器相关的存是可预读的还是不可预读的?
●它需要多少存或地址空间,并且是以什么单位来排列?
这所有信息可以很简单的用写入一个全部为1的值到基地址缓存器里,然后读取它来确认,传回值为0表是没有实作基地址缓存器,假设所读取的值不为0,程序执行装置可从基地址栏的最低有效位向上扫瞄传回值,以找出第一个被设定为1的位来决定所需的存或IO空间的大小.
存例:
假设FFFFFFFFh被写入在组态13h~10h的基地址缓存器里,然后再读取时,所得的值为FFF00000h,由此可知有任何位可以被更改成1表示实作了基地址缓存器,
●位0=0表示这是一个存地址译码器.
●位[2:
1]=00b表示它是一个32位存地址译码器.
●位3=0表示它不是可预读的存.
●位20是在基地址字段里所找到的第一个1,此位的二进制权值为1,048,576,表示这是一个1MB大小的存地址译码器.
接下来,程序执行装置写入32位基地址到缓存器里,不过只有位[31:
20]是可写入的,译码器接荍位[31:
20]并假设所指定的基地址的位[19:
0]为0,这表示基地址可以被1MB,既所请求的存围大小整除,所指定的起始地址一定会被所请求的存围大小整除是PCI译码器的特性.
IO例:
假设FFFFFFFFh被写入在组态17h~14h的基地址缓存器里,然后再读取时,所得的值为FFFFFF01h,位0为1,表示这是一个IO地址译码器,从位2<
基地址栏的最低有效位向上扫瞄>
开始向上扫瞄,找到位8是第一个被成功地改成1的位,此二进权值为256,表示此IO地址译码器大小为256B,或将所得的值作一补码运算后再加1,易可得相同的值.
CardBusCISPointer
CardBus与PCI共享的装置实作此非必要的缓存器,此字段指向CardBus卡的借面
卡信息结构<
CardBusInformationStructure,CIS>
此缓存器是只读的,并且包含在下列
其中一个地方的CIS相对地址<
offset>
●在功能的装置特定组态空间里<
在功能的组态空间的Offset40h之后>
的相对地址<
Offset>
●与其中一个装置存基地址缓存器所指示的起始地址间之相对地址<
●在装置扩充ROM程序代码影像<
CodeImage>
里的相对地址<
CIS的详细说明请参考"
CardBusSystemArchitecture"
Sub