10h 80h
00h 00h
ÓéÀÖ¼ÓÃÜ/½âÃÜ. ÆäËü¼ÓÃÜ/½âÃÜ.
Base Class 11h
Êý¾ÝߢȡÓëѶºÅ´¦Àí¿ØÖÆÆ÷
×ÓÀà±ð 00h 80h ³ÌÐò½çÃæ 00h 00h ÃèÊö
DPIOÄ£¿é
ÆäËüÊý¾ÝߢȡÓëѶºÅ´¦Àí¿ØÖÆÆ÷.
Cache Line Size Register ¿ìÈ¡Ïß´óС»º´æÆ÷(Offset 0Ch)
´Ë¶Á/д×é̬»º´æÆ÷Ö¸¶¨ÁËÒÔdwordΪµ¥Î»µÄϵͳ¿ìÈ¡Ïß´óС(ÀýÈç:ÔÚP6µÄϵͳ Àï´Ë»º´æÆ÷µÄֵΪ08h,±íʾÆä¿ìÈ¡Ïß´óСΪ8¸ödword,»ò32¸ö×Ö½Ú),ʵ×÷ÁË Memory Write-and-InvalidateÖ¸ÁîµÄBus Master±ØÐëʵ×÷´Ë»º´æÆ÷,ÒòΪËü±ØÐë
ÖªµÀ¿ìÈ¡Ïß´óС,ÒÔ±ãÈ·±£Ëü´Ó¿ìÈ¡Ï߽߱çÆðʼ½»Ò×,²¢×ñÊØËü½«ÕûÌõÏßдÈëÄÚ´æµÄÔ¼¶¨,ËùÒÔµ±Õ⻺´æÆ÷±»É趨Ϊ0(±íʾ×é̬Èí¼þÉÐδ°Ñ¿ìÈ¡Ïß´óС¸æËßËü)ʱ,
Bus Master²»¿ÉÒÔʹÓÃMemory Write-and-InvalidateÖ¸Áî,ÔÚÕâÖÖÇé¿ö,Master Ö»Äܹ»Ê¹ÓÃMemory Write(ÄÚ´æдÈë)Ö¸ÁîÀ´¸üÐÂÄÚ´æ.
×°ÖÿÉÒÔÏÞÖÆËüËùÖ§³ÖµÄ¿ìÈ¡Ïß´óСÊýÄ¿,¼ÙÈç×é̬Èí¼þдÈëÒ»¸öδ֧³ÖµÄÊýÖµ, Ôò×°ÖûὫ´ËÊýÖµµ±×÷0À´¶¯×÷.
Latency Timer µÈ´ýʱ¼ä(Offset 0Dh)
µÈ´ýʱ¼äÒÔPCIƵÂÊÖÜÆÚΪµ¥Î»,¶¨ÒåÁËÔÚbus masterÆðʼн»Ò×ʱ,Ëü¿É±£Áô×ÜÏßÓÐȨµÄ×îСʱ¼äÁ¿,×îÀíÏëµÄÊÇ,ÿһ¸öbus master¶¼Ó¦¸Ã½«´Ë»º´æÆ÷ʵ×÷Ϊ¿É¶Á/дµÄ»º´æÆ÷,½å´Ë¸øÓè×é̬Èí¼þÔÚbus masterȺ×é¼ä·ÖÅä¿ÉÓõÄ×ÜÏßʱ¼äÉÏÓÐ×î´óµÄµ¯ÐÔ,×é̬Èí¼þÒÔ¶ÁÈ¡¹¦ÄܵÄMin_Gnt(Minimum Grant×îСÊÚȨ)»º´æÆ÷,¾ö¶¨bus masterÏëÒªµÄʱ¼äƬ¶Î.
Header Type
±íÍ·ÐÍ̬»º´æÆ÷(Offset 0Eh)
ÿһ¸öPCI¹¦ÄÜÓµÓб£Áô¸øʵ×÷Æä×é̬»º´æÆ÷ÓõÄ64¸ö×é̬dwordÇø¿é,Ç°16¸ödwordµÄ¸ñʽ(Offset 00h~3Fh)ÓëʹÓÃÊÇÓÉPCI¹æ¸ñÔ¤Ïȶ¨ÒåµÄ,ÕâÇøÓò±»³ÆΪװÖõÄ×é̬±íÍ·ÇøÓò(»ò±íÍ·¿Õ¼ä(Header Space)),¹æ¸ñÄ¿Ç°¶¨ÒåÁËÈýÖÖ±íÍ·¸ñʽ,³ÆΪHeader Type Zero,OneÓëTwo: ? Header Type OneÊÇΪPCI-to-PCIÇŽÓÆ÷¶¨ÒåµÄ(01h).
? Header Type TwoÊÇΪPCI-to-CardBusÇŽÓÆ÷¶¨ÒåµÄ(02h).
? Header Type ZeroÊǸøËùÓгýÁËPCI-to-PCIÓëCardBusÇŽÓÆ÷ÒÔÍâµÄ×°ÖÃʹÓõÄ(00h).
Header Typeλ7ÊÇÓÃÀ´±íʾ´Ë×°Öú¬ÓгýÁËÇŽÓÆ÷¹¦ÄÜÒÔÍâµÄÆäËü¹¦ÄÜ, ¹Ìλ7=1±íʾΪ¶à¹¦ÄÜ,0=±íʾΪµ¥¹¦ÄÜ.
Built-in Self Test
BISTÄÚ½¨×ÔÎÒ²âÊÔ(Offset 0Fh)
·Ç±ØÒªµÄ,¼ÙÈç×°Öò»Ö§³ÖBISTµÄ»°,ÔÚ¶ÁÈ¡´Ë»º´æÆ÷ʱ,Ëü±ØÐëÒª´«»ØΪ0,×°ÖõÄBISTÊÇÒÔÉ趨λ6Ϊ1µÄ·½Ê½À´ÇëÇó,ÔÚÍê³ÉBISTºó,×°ÖûὫλ6ÖØÖÃ,µ«±ØÐëÔÚ¶þÃëÖÓÄÚÍê³ÉÖØÖÃ,λ0~3Ϊ0Ôò±íʾ³É¹¦,·ÇÁãÖµ´ú±í×°ÖÃÌض¨µÄ´íÎóÂë.
Bass Address
»ùµØÖ·»º´æÆ÷(Offset 10h~27h)
ÔÚ¿ª»úʱ,ϵͳ±ØÐë×Ô¶¯µØ×é̬,ÒÔ±ãÈÃËùÓÐIOÓëÄÚ´æÄÜÕ¼Óû§²»Ïà¸ÉµÄµØÖ··¶Î§,
ΪÁË´ïµ½´ËÄ¿±ê,ϵͳ±ØÐëÓÐÄÜÁ¦Õì²âµ½×°ÖÃÐèÒª¶àÉÙ¸öÄÚ´æÓëIOµØÖ··¶Î§,ÒÔ¼°Ã¿Ò»¸ö´óС.µ±Î»0´«»Ø1Ôò±íʾÕâÊÇÒ»¸öIOÒëÂëÆ÷,²»ÊÇÄÚ´æÒëÂëÆ÷,λ[31:2]ÊÇ»ùµØÖ·×Ö¶Î,²¢ÇÒÓÃÀ´IOÇø¿éËùÐèµÄ´óСÒÔ¼°É趨ËüµÄÆðʼµØÖ·.
Çø¿é´óСµÄ¾ö¶¨ÓëµØÖ··¶Î§µÄÖ¸¶¨:
? ÊÇ·ñʵ×÷»ùµØÖ·»º´æÆ÷?
? ËüÊÇÒ»¸öÄÚ´æ,»¹ÊÇIOµØÖ·ÒëÂëÆ÷?
? ¼ÙÈçËüÊÇÄÚ´æÒëÂëÆ÷,ËüÊÇÒ»¸ö32λ»¹ÊÇ64λµÄ»ùµØÖ·»º´æÆ÷? ? ¼ÙÈçËüÊÇÄÚ´æÒëÂëÆ÷,Óë´Ë»º´æÆ÷Ïà¹ØµÄÄÚ´æÊÇ¿ÉÔ¤¶ÁµÄ»¹ÊDz»¿ÉÔ¤¶ÁµÄ? ? ËüÐèÒª¶àÉÙÄÚ´æ»òµØÖ·¿Õ¼ä,²¢ÇÒÊÇÒÔʲôµ¥Î»À´ÅÅÁÐ?
ÕâËùÓÐÐÅÏ¢¿ÉÒԺܼòµ¥µÄÓÃдÈëÒ»¸öÈ«²¿Îª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]ÊÇ¿ÉдÈëµÄ,ÒëÂëÆ÷½ÓÇJλ[31:20]²¢¼ÙÉèËùÖ¸¶¨µÄ»ùµØÖ·µÄλ[19:0]Ϊ0,Õâ±íʾ»ùµØÖ·¿ÉÒÔ±»1MB,¼ÈËùÇëÇóµÄÄڴ淶Χ´óСÕû³ý,ËùÖ¸¶¨µÄÆðʼµØÖ·Ò»¶¨»á±»ËùÇëÇóµÄÄڴ淶Χ´óСÕû³ýÊÇPCIÒëÂëÆ÷µÄÌØÐÔ.
IO·¶Àý:
¼ÙÉèFFFFFFFFh±»Ð´ÈëÔÚ×é̬17h~14hµÄ»ùµØÖ·»º´æÆ÷Àï,È»ºóÔÙ¶Áȡʱ,ËùµÃµÄֵΪFFFFFF01h,λ0Ϊ1,±íʾÕâÊÇÒ»¸öIOµØÖ·ÒëÂëÆ÷,´Óλ2(»ùµØÖ·À¸µÄ×îµÍÓÐЧλÏòÉÏɨÃé)¿ªÊ¼ÏòÉÏɨÃé,ÕÒµ½Î»8ÊǵÚÒ»¸ö±»³É¹¦µØ¸Ä³É1µÄλ,´Ë¶þ½øȨֵΪ256,±íʾ´ËIOµØÖ·ÒëÂëÆ÷´óСΪ256B,»ò½«ËùµÃµÄÖµ×÷Ò»²¹ÂëÔËËãºóÔÙ¼Ó1,Ò׿ɵÃÏàͬµÄÖµ.
CardBus CIS Pointer
CardBusÓëPCI¹²ÏíµÄ×°ÖÃʵ×÷´Ë·Ç±ØÒªµÄ»º´æÆ÷,´Ë×Ö¶ÎÖ¸ÏòCardBus¿¨µÄ½èÃæ ¿¨ÐÅÏ¢½á¹¹(CardBus Information Structure,CIS),´Ë»º´æÆ÷ÊÇÖ»¶ÁµÄ,²¢ÇÒ°üº¬ÔÚÏÂÁÐ ÆäÖÐÒ»¸öµØ·½µÄCISÏà¶ÔµØÖ·(offset):
? ÔÚ¹¦ÄܵÄ×°ÖÃÌض¨×é̬¿Õ¼äÀï(ÔÚ¹¦ÄܵÄ×é̬¿Õ¼äµÄOffset 40hÖ®ºó)µÄÏà¶ÔµØÖ·(Offset).
? ÓëÆäÖÐÒ»¸ö×°ÖÃÄÚ´æ»ùµØÖ·»º´æÆ÷ËùָʾµÄÆðʼµØÖ·¼äÖ®Ïà¶ÔµØÖ·(offset). ? ÔÚ×°ÖÃÀ©³äROM³ÌÐò´úÂëÓ°Ïñ(Code Image)ÀïµÄÏà¶ÔµØÖ·(offset). CISµÄÏêϸ˵Ã÷Çë²Î¿¼¡±CardBus System Architecture¡±.
Subsystem Vendor ID and Subsystem ID
Subsystem Vendor ID
×ÓϵͳÖÆÔìÉÌʶ±ðÂë(Offset 2Ch~2Dh)
Subsystem ID
×Óϵͳʶ±ðÂë(Offset 2Eh~2Fh)
PCI¹¦ÄÜ¿ÉÒÔλÓÚ½çÃ濨ÉÏ»òÄÚ½¨×°ÖÃÀï,ʹÓÃÏàͬPCIºËÐÄÂß¼(ÓÉthird-party(ÆäËü³§ÉÌ)Éú³§)µÄÁ½¸ö½çÃ濨»ò×Óϵͳ¿ÉÄÜ»áÓÐÏàͬÖÆÔìÉÌʶ±ðÂëÓë×°ÖÃʶ±ðÂë(¼ÙÈçºËÐÄÂß¼ÖÆÔìÉÌÒÔÓ²¼þ½ÓÏß½«ËüÃÇ×Ô¼ºµÄʶ±ðÂëÉ趨ÔÚÕâЩ»º´æÆ÷Àï),¼ÙÈçÔÚÕâÖÖÇé¿öÏÂ,ÔÚOS±æʶҪ¼ÓÔص½ÄÚ´æµÄÕæÕý×°ÖÃÇý¶¯³ÌÐòÉÏ,¿ÉÄÜ»áÓÐÎÊÌâ.
ÕâÁ½¸öÇ¿ÖÆÐԵĻº´æÆ÷±»ÓÃÀ´È·ÈÏ×°ÖÃËùÔڵĸ½¼Ó¿¨»ò×Óϵͳ,ʹÓÃÕâÁ½¸ö»º´æÆ÷,OS¿ÉÒÔ·Ö±æÔÚÓɲ»Í¬ÖÆÔìÉÌÖÆÔì,µ«Ê¹ÓÃÏàͬthird-partyºËÐÄÂß¼µÄ½çÃ濨»ò×Óϵͳ֮¼äµÄ²îÒì,ÕâʹµÃËæ²å¼´ÓÃ(Plug-and-Play)OSÓÐÄÜÁ¦È¥Ñ°ÕÒÒª¼ÓÔص½ÄÚ´æµÄÕýÈ·Çý¶¯³ÌÐò.
Expansion ROM Base Address
À©³äROM»ùµØÖ·»º´æÆ÷(Offset 30h~33h)
¶ÔÓÚº¬ÓÐ×°ÖÃROMµÄ×°ÖÃÀ´ËµÊDZØÒªµÄ,Ðí¶àPCI×°Öö¼º¬ÓÐÒ»¸öÄÚº¬×°ÖõÄ×°ÖÃÇý¶¯³ÌÐòÖ®×°ÖÃROM, ÔÚ¿ª»úʱ,ϵͳ±ØÐë×Ô¶¯µØ×é̬,ÒÔ±ãÈÃËùÓÐIOÓëÄÚ´æÄÜÕ¼Óû§²»Ïà¸ÉµÄµØÖ··¶Î§,ΪÁË´ïµ½´ËÄ¿±ê,ϵͳ±ØÐëÓÐÄÜÁ¦Õì²âµ½ROMÐèÒª¶àÉÙ¸öÄÚ´æ¿Õ¼ä,¿ÉÒԺܼòµ¥µÄÓÃдÈëÒ»¸öÈ«²¿Îª1µÄÖµµ½»ùµØÖ·»º´æÆ÷Àï,È»ºó¶ÁÈ¡ËüÀ´È·ÈÏ,Ëü±ØÐë¼ì²éÔÚROMÀïµÄÇ°Á½¸öλÖÃÊÇ·ñÓÐÀ©³äROMµÄÇ©Ãû,ÒÔ¾ö¶¨ROMÊÇ·ñÕæµÄ±»°²×°,¼ÙÈçÓа²×°µÄ»°,×é̬³ÌÐò±ØÐëSHADOW´ËROM,²¢ÇÒÖ´ÐÐÆä³õʼ»¯³ÌÐò´úÂë.
? λ0 = 1 ÖÂÄÜ×°ÖõÄROMµØÖ·ÒëÂëÆ÷. ? λ[10:1]±£Áô.
? λ[31:11]ÓÃÀ´Ö¸¶¨ROMµÄÆðʼµØÖ·.
¼ÙÉèFFFFFFFFh±»Ð´Èëµ½ROMµÄ»ùµØÖ·»º´æÆ÷Àï(λ0,¼ÈÀ©³äROMÖÂÄÜλ±»Çå³ý,ËùÒÔROMµØÖ·ÒëÂëÆ÷²»»á±»ÖÂÄÜ,Ö±µ½Ö¸¶¨ÆðʼÄÚ´æµØÖ·Ö®ºó),ËæºóÔÙ¶ÁÈ¡´Ë»º´æÆ÷,ËùµÃµÄֵΪFFFE0000h,Õâ±íʾ:
? λ0 = 0 ,±íʾROMµØÖ·ÒëÂëÆ÷Ä¿Ç°±»¹Ø±Õ. ? λ[10:1]±£Áô.
? ÔÚ»ùµØÖ·×Ö¶Î(λ[31:11])Àï,λ17Ϊ³ÌÐòÖ´ÐÐ×°ÖÿÉÒÔÉ趨Ϊ1µÄ×îµÍÓÐЧλ,Æä¶þ½øÖÆȨֵ
Ϊ128K,±íʾROMÒëÂëÆ÷ÐèÒª128KµÄÄÚ´æµØÖ·,È»ºó,³ÌÐòÖ´ÐÐ×°ÖÃдÈëÒ»¸ö32λµÄÆðʼµØÖ·µ½´Ë»º´æÆ÷ÖÐ,Ö¸¶¨128KBµÄµØÖ·±ß½çµ±×÷ROMµÄÆðʼµØÖ·.