PCI Configuration 下载本文

记录PCI厂商识别码,如Intel ID是 8086, VIA ID是 1106,Ali ID是 10B8.

Device ID(Offset 02h~03h)

记录PCI装置识别码.

以BIOS观点来看,通常为了避掉某些装置与系统的兼容性常藉由判断Vendor ID与Device ID 做

不同的处理.

Device Control

Command Register(Offset 04h~05h) 指令缓存器

它是一个16位缓存器,提供基本装置响应或进行PCI存取能力的控制.

位 0 1 2 3 4

功能

IO空间(IO Space).当此位被设定为1时,显示该装置需求IO地址.

内存空间(Memory Space).当此位被设定为1时,显示该装置需求内存地址.

Bus Master.当被设定为1时,此装置能当作bus master来用,组态软件用此位来决定装置是否具有bus master能力.

特殊周期(Special Cycle). 当被设定为1时,装置可以监视PCI特殊周期.

Memory Write and Invalidate Enable. 当被设定为1时,装置可以产生Memory

Write-and-Invalidate指令, 当设定为0时,装置使用Memory Write指令来取代,软件不应该致能此位,直到装置的快取线大小组态缓存器以系统快取线大小来初始化,组态软件可以用它及位2,Bus Master一起来侦测master是否能够使用Memory Write-and-Invalidate指令,假设它可以的话,则快取线大小将会被写入到master的快取线大小组态缓存器. VGA调色盘监管(VGA Pallete Snoop). 当此位被设定为1时,此位指示其与VGA兼容的装置去监管对VGA Color Pallete(调色盘)缓存器的IO写入,在非VGA图形装置,重置会将此位设定为1,开启调色盘监管功能.

5

6 同位错误响应(Parity Error Response). 当此位被设定为1时,装置可以报告同位错误(以驱动PERR#到低组态的方式),当清除为0时,装置不会在发生同位错误事件时,驱动PERR#到低组态,不过,它仍必须设定在其状态缓存器里的侦测到同位错误状态位.

逐步驱动控制(Stepping Control).控制装置是否可以进行地址/数据逐步驱动,从不使用逐步驱动的装置必须将此位以硬件接线设定为0,一定要使用逐步驱动的装置必须将此位以硬件接线设定为1,能够使用这两种方式的装置必须将此位实做成一个可读/可写的位,并且在重置后初始化为1.

SERR# Enable.当设定为1时,装置可以驱动SERR#线,设定为0会关闭装置的SERR#输出驱动器,此位与位6(同位错误报告)必须被设定,以便报告地址同位错误

Fast Back-to-Back Enable.假如Bus Master可以在第一次和第二次交易中,与不同的Target进行Fast Back-to-Back交易的话,此位可用来启动或关闭这功能,假如所有在Bus

7

8 9

Master所在之PCI总线上的Target是可以进行Fast Back-to-Back交易的话,组态软件可以设定此位来致能此Master进行Fast Back-to-Back交易的能力,无需担心在第一次和第二次交易里是否寻址相同的Target..

15:10 保留

Status Register

状态缓存器(Offset 06h~07h)

位 R/W 3:0 R 4 R

5 R

功能 保留

能力串行(Capabilities List).它是一个硬件接线,只读位,假如

设定为1的话,则表示新能力串行指针缓存器必须在装置组态空间的Offset 34h里实作,在这种情况,组态程序执行装置应该去读取指针缓存器,以决定装置是否支持额外的能力(AGP,VPD等等),并且使用它们各自的组态缓存器,去组态它们. 66Mhz能力(66Mhz Capable). 1=装置能够在66Mhz速度下执行.

6 7

0=只能在33Mhz速度下执行.

保留

Fast Back-to-Back能力(Fast Back-to-Back Capable).此只读位

元表示Target装置是否支持不同Target的Fast Back-to-Back交易,1=装置支持 0=装置不支持.

Master数据同位错误(Master Data Parity Error).此位只在 Bus Master里实作,并且只有在下列条件时才会被设定: ? 报告的Bus Master是交易的initiator.

? (在读取过程中)它自己设定PERR#,或(在写入过程中)侦测到它被Target驱

动到低态.

? 在Master的指令缓存器里的同位错误响应位被设定为1.

R R

8 R/W

10:9 11 R R/W

12

装置选择时序(Device Select (DEVSEL#)Timing). 它定义了Target装置最慢的DEVSEL#时序. 00b=Fast(快速的) 01b=Medium(中速的) 10b=Slow(慢速的) 11b=Reserved(保留)

发出Target Abort讯号(Signaled Target Abort).每当Target装 置以Target Abort终止交易时,Target就会设定此位,不能发出 Target Abort讯号的装置不需要实作此位.

R/W 接收到Target Abort讯号(Received Target Abort).每当Bus

13

14 15

Master的交易是以目前寻址的Target发出的Target Abort终止 的时候,它就会设定此位.

R/W 接收到Master Abort讯号(Received Target Abort).每当Bus

Master的交易是因Master Abort而终止(特殊周期除外)的时候, 它就会设定此位.

R/W 发出系统错误讯号(Signaled System Error).每当装置在SERR# 在线产生一个错误讯息(System Error)时,它应该设定此位. R/W 侦测到同位错误(Detected Parity Error).每当装置侦测到一 个同位错误时, 它应该设定此位(实时同位错误报告功能指

令缓存器里的同位错误响应位关闭).

Revision ID(Offset 08h) 版本识别码缓存器

记录PCI装置版本序号,由装置制造商指派,假如制造商提供版本特定的驱动程序,这可确保OS加载正确的驱动程序.

Class Code

类别码(Offset 09h~0Bh)

它是一个24位只读的缓存器,它被分成三个字段:基本类别(Base Class)子类别(Sub Class)及程序界面(Programming Interface),

? 较高的字节定义功能的基本类别.

? 中间的字节定义在基本类别里的子类别. ? 较低的字节定义程序界面.

当OS尝试找出一个可以配合类别驱动程序(Class Driver)一起工作的装置时,此暂

存器是很有用的,如OS找到一个具有类别码03h,以及子类别码为01h的装置(XGA),则它必须提供与其兼容的显示配接卡驱动程序和该装置一起工作.

Base Class 00h

在类别码定义之前建立的装置. 00h 00h 所有非VGA装置. 00h 01h 与VGA兼容的装置.

Base Class 01h 大量储存媒体控制器.