home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Magazyn Enter 1999 January
/
enter_01_1999_2.iso
/
BIOS
/
ctchip34
/
INTELPCI.CFG
< prev
next >
Wrap
Text File
|
1997-02-03
|
40KB
|
1,219 lines
;**********************************************************
NAME=82430LX/NX/FX; (Mercury/Neptun/Triton)
;**********************************************************
ConfigAccess=1
MACRO OPEN =0CFBh:xxxxxxx1,0CFAh:00000000
MACRO CLOSE=0CFBh:xxxxxxx0
MODE=INDEX32 ;; alle Zugriffe 32-Bittig
INDEXPORT=0CF8h ;; CONFADDR
DATENPORT=0CFCh ;; CONFDATA
BASEADR=80000000h
*IF 0:<>$8086
WRITELN "CONFIGAccess 1 nicht implementiert"
MODE=DIRECT
ConfigAccess=0
MACRO OPEN=0CF8h:1111xxxx,0CFAh:00000000
MACRO CLOSE=0CF8h:0000xxxx,0CFAh:00000000
BASEADR=C000h
*IF 0:<>$8086
WRITELN "CONFIGAccess 0 nicht implementiert"
EXIT "Abbruch, kein PCI-Zugriff möglich"
*ELSE
WRITELN "CONFIGAccess 0 implementiert"
*ENDIF
*ELSE
WRITELN "CONFIGAccess 1 implementiert"
*ENDIF
;; Konditionen für IF-Abfragen (VerANDed)
MACRO INTEL = 0:==$8086
MACRO Mercury= INTEL, 2:==$04A3, 8:==0000xxxx
MACRO Neptun = INTEL, 2:==$04A3, 8:==0001xxxx
MACRO Triton = INTEL, 2:==$122D
MACRO Saturn = INTEL, 2:==$0483
MACRO HX = INTEL, 2:==$1250
MACRO VX = INTEL, 2:==$7030
MACRO Natoma = INTEL, 2:==$1237
*IF Mercury *OR Neptun *OR Triton *OR Saturn *OR VX *OR HX *OR Natoma
*IF Mercury
WRITELN "Intel Mercury 82434LX"
*ELSEIF Neptun
WRITELN "Intel Neptune 82434NX"
*ELSEIF Triton
WRITELN "Intel Triton"
*ELSEIF Saturn
WRITELN "Saturn"
*ELSEIF HX
WRITELN "82439HX"
*ELSEIF VX
WRITELN "82438VX"
*ELSEIF Natoma
WRITELN "82442FX"
*ENDIF
*ELSE
EXIT "**** Abort, Chipset unknown ****"
*ENDIF
*IF Mercury *OR Neptun *Or Saturn
MACRO FREEZE= FLUSH,50h:xxxxx0xx
MACRO CacheOFF = Freeze, WBINVD
MACRO CacheON = FLUSH,50h:xxxxx1xx, FLUSH,50h:xxxxx1xx
MACRO L1OFF = Cacheoff, CDNW:=11, WBINVD, CacheON
MACRO L1ON = Cacheoff, CDNW:=00, WBINVD, CacheON
MACRO L2OFF = Cacheoff, FLUSH, 52h:xxxxxxx0, CacheON
MACRO L2ON = Cacheoff, FLUSH, 52h:xxxxxxx1, CacheON
*IF Mercury *Or Saturn
MACRO L2WB = Cacheoff, FLUSH, 52h:xxxxxx11, CacheON
;; Immer WB bei Neptun
MACRO L2WT = Cacheoff, FLUSH, 52h:xxxxxx01, CacheON
*ENDIF
*ELSEIF Triton *Or VX *Or HX *Or Natoma
MACRO FREEZE = FLUSH,52h:xxxxxx00
MACRO xFLUSH = FLUSH,52h:xxxxxx10
MACRO CacheOFF = xFLUSH, Freeze, WBINVD
MACRO CacheON = xFLUSH, FLUSH, 52h:xxxxxx01
MACRO L1OFF = Cacheoff, CDNW:=11, WBINVD, CacheON
MACRO L1ON = Cacheoff, CDNW:=00, WBINVD, CacheON
MACRO L2OFF = Cacheoff, FLUSH, 52h:00xxxx1x
MACRO L256ON= Cacheoff, FLUSH, 52h:01xxxx0x, CacheON
MACRO L512ON= Cacheoff, FLUSH, 52h:10xxxx0x, CacheON
*ENDIF
Let rwc = x111 ;; read write Cacheable
Let rwn = x011 ;; read write not Cacheable
Let won = x010 ;; Write only not Cacheable
Let roc = x101 ;; Read only, cacheable
Let ron = x001 ;; Read only not Cacheable
Let bus = x000 ;; Read/Write to PCI Bus
MACRO SF0 = Cacheoff, 59h:#1#xxxx, Cacheon
MACRO sC0 = Cacheoff, 5Ah:xxxx#1#, Cacheon
MACRO sC4 = Cacheoff, 5Ah:#1#xxxx, Cacheon
MACRO sC8 = Cacheoff, 5Bh:xxxx#1#, Cacheon
MACRO sCC = Cacheoff, 5Bh:#1#xxxx, Cacheon
MACRO sD0 = Cacheoff, 5Ch:xxxx#1#, Cacheon
MACRO sD4 = Cacheoff, 5Ch:#1#xxxx, Cacheon
MACRO sD8 = Cacheoff, 5Dh:xxxx#1#, Cacheon
MACRO sDC = Cacheoff, 5Dh:#1#xxxx, Cacheon
MACRO sE0 = Cacheoff, 5Eh:xxxx#1#, Cacheon
MACRO sE4 = Cacheoff, 5Eh:#1#xxxx, Cacheon
MACRO sE8 = Cacheoff, 5Fh:xxxx#1#, Cacheon
MACRO sEC = Cacheoff, 5Fh:#1#xxxx, Cacheon
;; Allgemeiner PCI-Konfigurations-Bereich
*If Mercury *OR Neptun
Writeln HUHU
*endif
;**********************************************************
CR0 ; Prozessor Controll Register 0
;**********************************************************
BIT=30,29 ; L1-Cache CD, NW
00=Normal
01=Invalid (=> Protection Exception)
10=Cache freeze coherent
11=Cache freeze incoherent
BIT=18 ;0/1 Alignment-Check
BIT=16 ;0/1 Write Protect
*If Mercury *OR Neptun
Writeln HUHU
*endif
;**********************************************************
INDEX16=0 ; VID PCI Vendor Identification r/o
;**********************************************************
BIT=15..00 ; Vendor Identification
$8086= INTEL
else = other Vendor
;**********************************************************
INDEX16=2 ;DID PCI Divice Identification r/o
;**********************************************************
BIT=15..00 ; Device Identification
$04A3= Mercury/Neptun
$122D= Triton
$1250= HX
$7030= VX
$1237= Natoma
else= unknown
;**********************************************************
INDEX16=4 ; PCICMD PCI Command Register r/w
;**********************************************************
BIT=15..09 ; Reserved
BIT=09 ;0/1 Fast Back-to-Back (=>0)
BIT=08 ;0/1 SERRE (=>0)
BIT=07 ;0/1 Adress/Data Stepping (=>0)
BIT=06 ;0/1 Parity Error (Master Enable)
BIT=02 ;0/1 Bus Master Operations (=>1)
BIT=01 ;0/1 Memory Access (=>1)
BIT=00 ;0/1 I/O-Access (=>0)
;**********************************************************
INDEX16=6h ; PCISTS PCI Status Register (r/w)
;**********************************************************
BIT=15 ;Detected parity error (Natoma)
0= not detected
1= detected
BIT=14 ;Signaled System Error
BIT=13 ;Received Master Abort Status
BIT=12 ;Received Target Abort Status
BIT=11 ;reserved
BIT=10,09 ;DevSel Timing
00=FAST
01=Medium
10=SLOW
11=reserved
BIT=08 ;Data Parity
0= not detected
1= detected
BIT=07 ;0/1 Fast Back-to-Back
;**********************************************************
INDEX=8 ;RID Revision IDentification Register r/o
;**********************************************************
BIT=7..0 ;PCI Cache/Memory-Controller
*If Mercury *OR Neptun
0000xxxx= Mercury 82434LX
0001xxxx= Neptun 82434NX
xxxx0001= A1-Step
xxxx0010= A2-Step
xxxx0011= A3-Step
*ELSE
xxxxxxxx= Revision-ID
*ENDIF
;**********************************************************
INDEX=9 ;RLPI Register-Level Programming Interface r/o
;**********************************************************
BIT=7..0
00=no register-level Programming Interface
;**********************************************************
INDEX=0Ah ;SUBC Sub-Class-Code r/o
;**********************************************************
BIT=7..0
00=PCMC is host Bridge
;**********************************************************
INDEX=0Bh ;BASEC Base Class Code r/o
;**********************************************************
BIT=7..0
$06=PCMC is Bridge Device
;**********************************************************
INDEX=0Dh ; MLT Master Latency Timer Register r/w
;**********************************************************
BIT=7654 ;Master Latency Timer, bus clocks = 16 x this value
*IF VX *Or HX *Or Natoma
;**********************************************************
INDEX=0Eh ;HEDT Header Type-Register r/o
;**********************************************************
BIT=7..0 ;Header Type of TXC
00h= TVX is a single function device
XXh= Reserved
*ENDIF ;;VX/HX
;**********************************************************
INDEX=0Fh ;BIST BIST-Register r/o
;**********************************************************
BIT=7 ;0/1 BIST (ro), not supported by 8243xLX/NX/HX/VX/Natoma
BIT=6 ;Start BIST (r/w), not supported by 8243xLX/NX/HX/VX/Natoma
BIT=3..0 ;Completion Code (ro)
;; Triton 1 to 3-Register-Area 4Fh..58h
*IF VX
;**********************************************************
INDEX=4Fh ;Arbitration Control ;;VX
;**********************************************************
BIT=7 ;Extended CPU-PIIX signalling
0= Normal
1= Extended PHLDA# cycles
BIT=3 ;CPU priority enable
0= CPU gets priority after three PCI slots
1= CPU gets priority after two PCI slots(SMBA)
*ENDIF ;;VX
*IF Triton *Or VX *Or HX
*IF Triton
;**********************************************************
INDEX=50h ;PCI Control ;;Triton
;**********************************************************
BIT=765 ; CPU Inactivity Timer
xxx= ^dez (x+1) PCI-Clocks
BIT=3 ;0/1 Peer Concurrency
BIT=2 ;1/0 CPU-to-PCI Write Burst
BIT=1 ;1/0 PCI Streaming
BIT=0 ;1/0 Bus Concurrency Disable
*ENDIF ;;Triton
*IF HX
;**********************************************************
INDEX=50h ;PCI Control ;;Triton
;**********************************************************
BIT=7 ; ECC parity select
0= No parity (default)
1= ECC parity
BIT=6 ; ECC test enable
0= Normal Mode (default)
1= Test Mode
BIT=5 ; Shutdown to port 92 on PCI
0= Shutdown special cycle from host bus to PCI
1= TXC writes 01h to I/O address 92 on PCI to shutdown
BIT=4 ; Dual processor enable
0= FX NA# policies used
1= Modified NA# policies used to prevent deadlocks
BIT=3 ;0/1 Peer Concurrency
BIT=2 ;SERR# Output type
BIT=1 ;Reserved
BIT=0 ;Global TXC Enable must be 1 to enable new HX features
*ENDIF ;;HX
*IF VX
;**********************************************************
INDEX=50h ;PCI Control ;;Triton
;**********************************************************
BIT=3 ;0/1 Peer Concurrency enable
*ENDIF VX
;**********************************************************
INDEX=51h ;Reserved ;;Triton
;**********************************************************
;**********************************************************
INDEX=52h ;L2-Cache Control Register ;;Triton
;**********************************************************
BIT=76 ;L2-Cachesize
00=No L2-Cache or disabled
01=256 KBytes
10=512 KBytes
11=reserved
BIT=54 ;SRAM Type
00= Pipelined Burst
01= Burst
10= Standard Async
11= Pipeline Burst for 512K/Dual Bank
(3-1-1-1-2-1-1-1-Burst)
BIT=7610 ;Cache-enable/ Force misses
00x0=L1-Cache freeze
00x1=L1-Enable
x100=L1/L2 freeze
x101=L1/L2 enabled
x110=L1 freeze, L2 force miss on read
x111=L1 enabled, L2 force miss on read/write (incoherent!)
1x00=L1/L2 freeze
1x01=L1/L2 enabled
1x10=L1 freeze, L2 force miss on read
1x11=L1 enabled, L2 force miss on read/write (incoherent!)
*IF VX *Or HX
BIT=3 ;0/1 NA# Disable
*ENDIF ;;VX or HX
*IF HX
BIT=2 ; Extended Cache enable
0= 64Mbyte limit
1= 512Mbyte limit
*ENDIF ;;HX
*ENDIF ;;Triton or VX or HX
*IF VX
;**********************************************************
INDEX=53h ;Cache control extended register ;;Triton3
;**********************************************************
BIT=76 ;Reserved
BIT=5 ;DRAM Cache detect
0 = DRAM cache not present (KRQAK strapping)
1 = DRAM cache present (KRQAK strapping)
BIT=43210 ;DRAM Cache refresh timer (default 20 HCLKs)
;**********************************************************
INDEX16=54h ;SDRAM Control register ;;Triton3
;**********************************************************
BIT=15..09 ;Reserved
BIT=08..06 ;Special SDRAM Mode Select
000 = Normal SDRAM mode (default)
001 = NOP commands enabled
010 = All banks Precharge command enabled
011 = Mode Register Command Enable
100 = CBR cycle enable
101 = Reserved
11X = Reserved
BIT=05 ;Reserved
BIT=04 ;CAS latency
0 = CAS Latency == 3
1 = CAS Latency == 2
BIT=03 ;RAS Timing
0 = RAS P/C ==3, RAS act to PC == 5, Refresh to RAS act ==8
1 = RAS P/C ==3, RAS act to PC == 4, Refresh to RAS act ==7
BIT=02..00 ;Reserved
*ENDIF ;;VX
*IF VX *OR HX
;**********************************************************
INDEX=56h ;DRAM extended control register ;;Triton3
;**********************************************************
BIT=7 ;Reserved
BIT=6 ; Refresh RAS assertion VX only
0 = 4 clocks
1 = 5 clocks
BIT=5 ;Fast EDO path select VX only
0 = no fast path read
1 = fast path read
BIT=4 ;Speculative Leadoff Disable
0 = Speculative Leadoff enabled
1 = Speculative Leadoff disabled (default)
BIT=3 ;Turn Around Insertion enable HX only
0 = Same as back to back dram cycles as per FX
1 = One extra cycle of turn around after MWE#
*IF HX
BIT=21 ;Memory Address Drive Strength HX
00 = 8mA MAA/MAB[1:0] 8mA MA[11:2], MWE#
01 = 8mA MAA/MAB[1:0] 12mA MA[11:2], MWE#
10 = 12mA MAA/MAB[1:0] 8mA MA[11:2], MWE#
11 = 12mA MAA/MAB[1:0] 12mA MA[11:2], MWE#
BIT=0 ;6mMBit mode enable
0 = Normal
1 = 64MBit simms supported by changing address mux
*ENDIF ;;HX
*IF VX
BIT=21 ;Memory Address Drive Strength VX MA[11:0]
00 = Reserved
01 = 10mA (default)
10 = 16mA
11 = Reserved
BIT=0 ;DRAM symmetry detect
0 = Normal
1 = Force MA lines to detect symmetry
*ENDIF ;;VX
*ENDIF ;;VX or HX
*IF Triton *Or VX *Or HX
;**********************************************************
INDEX=57h ;DRAM Control Register ;;Triton
;**********************************************************
BIT=76 ; Hole Enable
00 = None
01 = 512-640 KByte
10 = 15-16 MByte
11 = 14-16 MByte
BIT=54 ;Reserved
BIT=3 ;0/1 EDO Detect mode enable
BIT=210 ;DRAM Refresh Rate
000=refresh disabled
001=50 MHz
010=60 MHz
011=66 MHz
1XX=reserved
;**********************************************************
INDEX=58h ; DRAM Timing Register ;;Triton
;**********************************************************
*IF HX
BIT=7 ;Turbo read leadoff
0= Disabled
1= Enabled, 1 clock pull in for cacheless systems
BIT=650 ; DRAM Read Burst Timing (Page Hit)
000=7-4-4-4
001=6-4-4-4
010=7-3-3-3 (EDO), 7-4-4-4 (Page Mode)
011=6-3-3-3 (EDO), 6-4-4-4 (Page Mode)
100=7-2-2-2 (EDO), 7-3-3-3 (Page Mode)
101=6-2-2-2 (EDO), 6-3-3-3 (Page Mode)
11x=reserved
BIT=430 ; DRAM Write Burst Timing (Page Hit)
000=6-4-4-4
001=5-4-4-4
010=6-3-3-3
011=5-3-3-3
100=6-2-2-2
101=5-2-2-2
11x=reserved
*ENDIF ;;HX
*IF VX
BIT=7 ; Fast MA to RAS delay
0= 2clocks MA setup to RAS# Assertion
1= 1 clock MA setup to RAS# Assertion
BIT=650 ; DRAM Read Burst Timing (Page Miss)
000=7-4-4-4
001=6-4-4-4
010=7-3-3-3 (EDO), 7-4-4-4 (Page Mode)
011=6-3-3-3 (EDO), 6-4-4-4 (Page Mode)
100=7-2-2-2 (EDO), 7-3-3-3 (Page Mode)
101=6-2-2-2 (EDO), 6-3-3-3 (Page Mode)
110=7-3-2-2 (EDO), 7-3-3-3 (Page Mode)
111=6-3-2-2 (EDO), 6-3-3-3 (Page Mode)
BIT=430 ; DRAM Write Burst Timing(Page Miss)
000=7-4-4-4
001=6-4-4-4
010=7-3-3-3
011=6-3-3-3
100=7-2-2-2
101=6-2-2-2
11x=reserved
*ENDIF ;;VX
*IF Triton
BIT=650 ; DRAM Read Burst Timing
000=8-4-4-4
001=7-4-4-4
010=8-3-3-3 (EDO), 8-4-4-4 (Page Mode)
011=7-3-3-3 (EDO), 7-4-4-4 (Page Mode)
100=7-2-2-2 (EDO), 7-3-3-3 (Page Mode)
101=8-2-2-2 (EDO), 8-3-3-3 (Page Mode)
11x=reserved
BIT=430 ; DRAM Write Burst Timing
000=6-4-4-4
001=7-4-4-4
010=6-3-3-3
011=7-3-3-3
100=6-2-2-2 (should not progr. at 66 MHz)
101=7-2-2-2 (should not progr. at 66 MHz)
11x=reserved
*ENDIF ;;Triton
BIT=2 ; RAS to CAS Delay
0= 3 Clocks
1= 2 Clocks
BIT=1 ;RAS# Precharge
0 = 3 Clocks
1= 4 Clocks
*ENDIF ;; Triton or VX Or HX
;; Natoma -Register-Area 50h..58h
*IF Natoma
;**********************************************************
INDEX16=50h ;Arbitration Control ;;Natoma
;**********************************************************
BIT=15 ;WSC protocol enable for dual processor system
0= Dual processor enabled(default)
1= Disabled (single processor)
BIT=14 ; Row select or extra copy of MAB on spare PMC pins
0= Pins are an extra copy of MAB[1:0]
1= Pins are two additional Row Selects RAS[7:6]
BIT=09..08 ; Host frequency select
00= RESERVED
01= 60MHz
10= 66MHz
11= Reserved
BIT=06 ; ECC/parity test enable
0= Normal
1= Test Mode
BIT=05..04 ;DRAM Data integrity Mode
00= No parity or ECC
01= Parity Generation and checking
10= ECC check/gen enabled, correction disabled
11= ECC check/gen, correction enabled
BIT=02 ; In order queue depth
0= queue depth of one
1= queue depth of four
;**********************************************************
INDEX=52h ;Deturbo Counter Register ;;Natoma
;**********************************************************
BIT=7..0 ; Deturbo count for slowing processor pipeline
;**********************************************************
INDEX=53h ;DBX Buffer Control ;;Natoma
;**********************************************************
BIT=7 ;Delayed transaction enable
0= disabled
1= Enabled, PCI to DRAM cycle retried due to CPU to PCI
BIT=6 ;CPU to PCI IDE Posting enable
0= Disable, cycles treated as normal I/O
1= Enabled (01F0h and 0170h)
BIT=5 ;USWC Write Post during I/O bridge access
0= Disable(default)
1= enable
BIT=4 ;PCI delayed transaction timer enable
0= enable(default),PCI transaction>32clocks retried
1= disabled
BIT=3 ;CPU to PCI Write post Enable
0= disable
1= enable posting
BIT=2 ;PCI to DRAM Pilpeline enable
0= disabled (default)
1= enabled
BIT=1 ;PCI Burst Write Combining enable
0= enable DBX to combine back to back writes into burst
1= disable (default)
BIT=0 ;Read around Write enable
0= disable, all posted writes are retired before read
1= enabled
;**********************************************************
INDEX=54h ;Auxiliary Control Register ;;Natoma
;**********************************************************
BIT=7 ;RAS Precharge enable
0= 3 host clocks (default)
1= 4 Host clocks
BIT=1 ;MAA[1:0] drive strength
0= 12mA
1= 8mA
;**********************************************************
INDEX16=55h ;DRAM Row Type register ;;Natoma
;**********************************************************
BIT=15..14 ; Row 7 DRAM type
00 = FPM DRAM
01 = EDO DRAM
10 = BEDO DRAM
11 = Empty Row
BIT=13..12 ; Row 6 DRAM type
00 = FPM DRAM
01 = EDO DRAM
10 = BEDO DRAM
11 = Empty Row
BIT=11..10 ; Row 5 DRAM type
00 = FPM DRAM
01 = EDO DRAM
10 = BEDO DRAM
11 = Empty Row
BIT=09..08 ; Row 4 DRAM type
00 = FPM DRAM
01 = EDO DRAM
10 = BEDO DRAM
11 = Empty Row
BIT=07..06 ; Row 3 DRAM type
00 = FPM DRAM
01 = EDO DRAM
10 = BEDO DRAM
11 = Empty Row
BIT=05..04 ; Row 2 DRAM type
00 = FPM DRAM
01 = EDO DRAM
10 = BEDO DRAM
11 = Empty Row
BIT=03..02 ; Row 1 DRAM type
00 = FPM DRAM
01 = EDO DRAM
10 = BEDO DRAM
11 = Empty Row
BIT=01..00 ; Row 0 DRAM type
00 = FPM DRAM
01 = EDO DRAM
10 = BEDO DRAM
11 = Empty Row
;**********************************************************
INDEX=55h ;DRAM Control register ;;Natoma
;**********************************************************
BIT=6 ;DRAM refresh queue enabled
0= all refresh requests are priority
1= 4 deep queue enabled with fourth request as priority
BIT=5 ; DRAM EDO Auto detect enable
0= disable (default)
1= enabled for BIOS to detect EDO
BIT=4 ; DRAM refresh type select
0= CAS before RAS
1= RAS only
BIT=210 ;DRAM refresh rate
000= refresh disabled
001= Normal
01x= Reserved
1xx= Reserved
111= Fast Refresh (every 32 clocks)
;**********************************************************
INDEX=58h ;DRAM Timing register ;;Natoma
;**********************************************************
BIT=6 ;WCBR Mode Enable (used by BIOS during EDO detect)
0= Disabled
1= Enabled
BIT=541 ; DRAM Read Burst Timing (Page Hit)
000=7-3-3-3 (BEDO) 7-4-4-4 (EDO) 7-4-4-4 (FPM)
001=6-3-3-3 (BEDO) 6-4-4-4 (EDO) 6-4-4-4 (FPM)
010=7-2-2-2 (BEDO) 7-3-3-3 (EDO) 7-4-4-4 (FPM)
011=6-2-2-2 (BEDO) 6-3-3-3 (EDO) 6-4-4-4 (FPM)
100=7-2-2-2 (BEDO) 7-2-2-2 (EDO) 7-3-3-3 (FPM)
101=6-2-2-2 (BEDO) 6-2-2-2 (EDO) 6-3-3-3 (FPM)
11x=reserved
BIT=321 ; DRAM Write Burst Timing (Page Hit)
000=6-4-4-4 (BEDO/EDO) 6-4-4-4 (FPM)
001=5-4-4-4 (BEDO/EDO) 5-4-4-4 (FPM)
010=6-3-3-3 (BEDO/EDO) 6-4-4-4 (FPM)
011=5-3-3-3 (BEDO/EDO) 5-4-4-4 (FPM)
100=6-3-3-3 (BEDO/EDO) 6-3-3-3 (FPM)
101=5-3-3-3 (BEDO/EDO) 5-3-3-3 (FPM)
110=6-2-2-2 (BEDO/EDO) 6-3-3-3 (FPM)
111=5-2-2-2 (BEDO/EDO) 5-3-3-3 (FPM)
BIT=1 ; RAS to CAS Delay
0= 2 Clocks
1= 1 Clock
BIT=0 ;Memory address wait state
0 = no wait states addded
1= one wait state addded before MAxx and RAS/CAS R/W cycles
*ENDIF ;;Natoma
*IF Saturn
;**********************************************************
INDEX=52h ;SCC L2-Cache Control Register r/w M/N
;**********************************************************
BIT=76 ;L2-Cachesize
00=64 KBytes
01=128 KBytes
10=256 KBytes
11=512 KBytes
BIT=5 ;Cache Present
0= No
1= yes
BIT=43 ;Tag Address Width
10= 7 Bit Tag
00= 8 Bit-Tag
01= 9 Bit-Tag
11= reserved
BIT=2 ;Cache Leadoff Cycle
0=3-1-1-1
1=2-1-1-1
BIT=1 ;L2 Write Policy
0=Write Through
1=Write Back
BIT=0 ;0/1 L2-Cache
*ELSE
*IF Mercury *Or Neptun
;; Reg 50..57h für Mercury und Neptun
;**********************************************************
INDEX=50h ;HCS HOST CPU Selection Register r/o, r/w M/N
;**********************************************************
BIT=765 ;Host CPU Type
100=Pentium r/o
ELSE= Unknown
BIT=2 ;0/1 L1-Cache Freeze, L2-Cache off
BIT=10 ;Host Operating Frequency
x1= 66 MHz
x0= 60 MHz
;**********************************************************
INDEX=51h ;DFC Deturbo Frequency Control Register r/w M/N
;**********************************************************
BIT=76 ;Deturbo Mode Frequency Adjustment Value
;**********************************************************
INDEX=52h ;SCC L2-Cache Control Register r/w M/N
;**********************************************************
BIT=76 ;L2-Cachesize
00=No Cache
01=reserved
10=256 KBytes
11=512 KBytes
BIT=5 ;SRAM Type
0= Standard Async SRAM
1= Burst SRAM
BIT=4 ;Secondary Cache Allocation
0=/Cache-Signal required for L2-caching
1=/Cache-Signal ignored for L2-caching
BIT=3 ;Cache Byte Control (for asynchron SRAMs)
0=use write enable
1=use byte select
*IF Neptun
BIT=2 ;SRAM Connectivity
0=82434LX compatible
*IF 52h:==xx0xxxxx ; Standard SRAM?
0=Disable Deselection of Async SRAM
1=Enable Deselection of Async SRAM
*ELSE
0=No external Address Latch
1=external Address Latch present
*ENDIF
*ENDIF
*IF Mercury
BIT=1 ;L2 Write Policy
0=Write Through
1=Write Back
*ENDIF
BIT=0 ;0/1 L2-Cache
;**********************************************************
INDEX=53h ;HBC Host Read/Write Buffer Control r/w M/N
;**********************************************************
BIT=7..4 ;Reserved
BIT=3 ;0/1 Read around Write
BIT=2 ;Reserved
BIT=1 ;0/1 Host-to-PCI Posting
BIT=0 ;0/1 Host-to-Memory Posting
;**********************************************************
INDEX=54h ;PBC PCI Read/Write Buffer Control Register M/N
;**********************************************************
BIT=2 ; LBXs connected to TRDY#
0= not internal connected, => CPU-to-PCI-Writes 2-2-2-2
1= internal connected => CPU-to PCI-Writes 2-1-1-1
BIT=1 ;0/1 PCI Burst Write
BIT=0 ;0/1 PCI Memory Posting
*IF Neptun
;**********************************************************
INDEX=55h ;SCCE L2 Cache Control Extension Register r/w M/N
;**********************************************************
BIT=0 ; Zero Waits State
0= read Hit (Burst-SRAM):2-1-1-1, (Standard):2-2-2-2
0= Write Hit (Burst-SRAM):2-1-1-1, (Standard):3-2-2-2
1= read Hit (Burst-SRAM):3-1-1-1, (Standard):3-2-2-2
1= Write Hit (Burst-SRAM):3-1-1-1, (Standard):4-2-2-2
*ENDIF
;**********************************************************
INDEX=57h ;DRAMC DRAM Control Register r/w M/N
;**********************************************************
*IF Neptun
BIT=76 ;DRAM Burst Timing
00=X-4-4-4 Read/Write Timing (60/66 MHz)
01=X-4-4-4 Read, X-3-3-3 Write timing
10=reserved
11=X-3-3-3 Read/Write timing (50 MHz)
*ENDIF
BIT=5 ;0/1 Parity Error Mask
BIT=4 ;0/1 0-Active RAS Mode
BIT=3 ;0/1 SMRAM Enable
BIT=2 ;0/1 Burst of Four Refresh
BIT=1 ;Refresh Type
0=RAS Only
1=Ras before CAS
BIT=0 ;0/1 Refresh Enable
;**********************************************************
INDEX=58h ;DRAMT DRAM Timing Register r/w M/N
;**********************************************************
*IF Neptun
BIT=1 ;0/1 RAS# Wait-State
*ENDIF
BIT=0 ;0/1 CAS# Wait State
*ENDIF ;; Mercury/Neptun
;**********************************************************
INDEX=59h ;PAM0 Programmable Attribute Register 0 r/w
;**********************************************************
BIT=7654 ; F0000h..FFFFFh, 64 KB
xx00= DRAM Disabled, Accesses directed to PCI
x001= Read Only DRAM Write Protected, Non-Cacheable
x101= Read Only, DRAM Write Protected, Cacheable for Code
x010= Write Only
x011= Read/write,Non-Cacheable
x111= Read/write,Cacheable
BIT=3210 ; 80000h..9FFFFh, 128 KB
xx00= DRAM Disabled, Accesses directed to PCI
x001= Read Only DRAM Write Protected, Non-Cacheable
x101= Read Only, DRAM Write Protected, Cacheable for Code
x010= Write Only
x011= Read/write,Non-Cacheable
x111= Read/write,Cacheable
;**********************************************************
INDEX=5Ah ;PAM1 Programmable Attribute Register 1 r/w
;**********************************************************
BIT=7654 ; C4000h..C7FFFh, 16 KB
xx00= DRAM Disabled, Accesses directed to PCI
x001= Read Only DRAM Write Protected, Non-Cacheable
x101= Read Only, DRAM Write Protected, Cacheable for Code
x010= Write Only
x011= Read/write,Non-Cacheable
x111= Read/write,Cacheable
BIT=3210 ; C0000h..C3FFFh, 16 KB
xx00= DRAM Disabled, Accesses directed to PCI
x001= Read Only DRAM Write Protected, Non-Cacheable
x101= Read Only, DRAM Write Protected, Cacheable for Code
x010= Write Only
x011= Read/write,Non-Cacheable
x111= Read/write,Cacheable
;**********************************************************
INDEX=5Bh ;PAM2 Programmable Attribute Register 2 r/w
;**********************************************************
BIT=7654 ; CC000h..CFFFFh, 16 KB
xx00= DRAM Disabled, Accesses directed to PCI
x001= Read Only DRAM Write Protected, Non-Cacheable
x101= Read Only, DRAM Write Protected, Cacheable for Code
x010= Write Only
x011= Read/write,Non-Cacheable
x111= Read/write,Cacheable
BIT=3210 ; C8000h..CBFFFh, 16 KB
xx00= DRAM Disabled, Accesses directed to PCI
x001= Read Only DRAM Write Protected, Non-Cacheable
x101= Read Only, DRAM Write Protected, Cacheable for Code
x010= Write Only
x011= Read/write,Non-Cacheable
x111= Read/write,Cacheable
;**********************************************************
INDEX=5Ch ;PAM3 Programmable Attribute Register 3 r/w
;**********************************************************
BIT=7654 ; D4000h..D7FFFh, 16 KB
xx00= DRAM Disabled, Accesses directed to PCI
x001= Read Only DRAM Write Protected, Non-Cacheable
x101= Read Only, DRAM Write Protected, Cacheable for Code
x010= Write Only
x011= Read/write,Non-Cacheable
x111= Read/write,Cacheable
BIT=3210 ; D0000h..D3FFFh, 16 KB
xx00= DRAM Disabled, Accesses directed to PCI
x001= Read Only DRAM Write Protected, Non-Cacheable
x101= Read Only, DRAM Write Protected, Cacheable for Code
x010= Write Only
x011= Read/write,Non-Cacheable
x111= Read/write,Cacheable
;**********************************************************
INDEX=5Dh ;PAM4 Programmable Attribute Register 4 r/w
;**********************************************************
BIT=7654 ; DC000h..DFFFFh, 16 KB
xx00= DRAM Disabled, Accesses directed to PCI
x001= Read Only DRAM Write Protected, Non-Cacheable
x101= Read Only, DRAM Write Protected, Cacheable for Code
x010= Write Only
x011= Read/write,Non-Cacheable
x111= Read/write,Cacheable
BIT=3210 ; D8000h..DBFFFh, 16 KB
xx00= DRAM Disabled, Accesses directed to PCI
x001= Read Only DRAM Write Protected, Non-Cacheable
x101= Read Only, DRAM Write Protected, Cacheable for Code
x010= Write Only
x011= Read/write,Non-Cacheable
x111= Read/write,Cacheable
;**********************************************************
INDEX=5Eh ;PAM5 Programmable Attribute Register 5 r/w
;**********************************************************
BIT=7654 ; E4000h..E7FFFh, 16 KB
xx00= DRAM Disabled, Accesses directed to PCI
x001= Read Only DRAM Write Protected, Non-Cacheable
x101= Read Only, DRAM Write Protected, Cacheable for Code
x010= Write Only
x011= Read/write,Non-Cacheable
x111= Read/write,Cacheable
BIT=3210 ; E0000h..E3FFFh, 16 KB
xx00= DRAM Disabled, Accesses directed to PCI
x001= Read Only DRAM Write Protected, Non-Cacheable
x101= Read Only, DRAM Write Protected, Cacheable for Code
x010= Write Only
x011= Read/write,Non-Cacheable
x111= Read/write,Cacheable
;**********************************************************
INDEX=5Fh ;PAM6 Programmable Attribute Register 6 r/w
;**********************************************************
BIT=7654 ; EC000h..EFFFFh, 16 KB
xx00= DRAM Disabled, Accesses directed to PCI
x001= Read Only DRAM Write Protected, Non-Cacheable
x101= Read Only, DRAM Write Protected, Cacheable for Code
x010= Write Only
x011= Read/write,Non-Cacheable
x111= Read/write,Cacheable
BIT=3210 ; E8000h..EBFFFh, 16 KB
xx00= DRAM Disabled, Accesses directed to PCI
x001= Read Only DRAM Write Protected, Non-Cacheable
x101= Read Only, DRAM Write Protected, Cacheable for Code
x010= Write Only
x011= Read/write,Non-Cacheable
x111= Read/write,Cacheable
;**********************************************************
*IF TRITON *Or VX *Or HX
WRITELN following DRAM Boundary Values in 4 MByte
*ELSE
WRITELN following DRAM Boundary Values in 1 MByte
*ENDIF
INDEX=60h ; DRB0, DRAM Row Boundary r/w
INDEX=61h ; DRB1, DRAM Row Boundary r/w
INDEX=62h ; DRB2, DRAM Row Boundary r/w
INDEX=63h ; DRB3, DRAM Row Boundary r/w
INDEX=64h ; DRB4, DRAM Row Boundary r/w
*IF HX
INDEX=65h ; DRB5, DRAM Row Boundary r/w
INDEX=66h ; DRB6, DRAM Row Boundary r/w
INDEX=67h ; DRB7, DRAM Row Boundary r/w
*ENDIF
*IF Neptun *or Mercury
INDEX=65h ; DRB5, DRAM Row Boundary r/w
*ENDIF
*IF Neptun
INDEX=66h ; DRB6, DRAM Row Boundary r/w
INDEX=67h ; DRB7, DRAM Row Boundary r/w
*ENDIF
*IF VX
;**********************************************************
INDEX=67h ;DRAM Row type register (High) r/w
;**********************************************************
BIT=765321;Reserved
BIT=40 ; Row 4 DRAM type
00 = FPM DRAM
01 = EDO DRAM
10 = SDRAM
11 = Row 4 disabled by TVX
*ENDIF ;;VX
*IF VX *or HX
;**********************************************************
INDEX=68h ;DRAM Row Type Register (Low) r/w
;**********************************************************
BIT=73 ; Row 3 DRAM type
00 = FPM DRAM
01 = EDO DRAM
10 = SDRAM (VX Only)
11 = Reserved
BIT=62 ; Row 2 DRAM type
00 = FPM DRAM
01 = EDO DRAM
10 = SDRAM (VX Only)
11 = Reserved
BIT=51 ; Row 1 DRAM type
00 = FPM DRAM
01 = EDO DRAM
10 = SDRAM (VX Only)
11 = Reserved
BIT=40 ; Row 0 DRAM type
00 = FPM DRAM
01 = EDO DRAM
10 = SDRAM (VX Only)
11 = Reserved
*ENDIF ;;VX or HX
*IF HX
;**********************************************************
INDEX=69h ;DRAM Row Type Register (High) r/w
;**********************************************************
BIT=73 ; Row 7 DRAM type
00 = FPM DRAM
01 = EDO DRAM
10 = SDRAM (VX Only)
11 = Reserved
BIT=62 ; Row 6 DRAM type
00 = FPM DRAM
01 = EDO DRAM
10 = SDRAM (VX Only)
11 = Reserved
BIT=51 ; Row 5 DRAM type
00 = FPM DRAM
01 = EDO DRAM
10 = SDRAM (VX Only)
11 = Reserved
BIT=40 ; Row 4 DRAM type
00 = FPM DRAM
01 = EDO DRAM
10 = SDRAM (VX Only)
11 = Reserved
*ENDIF ;;HX
*IF VX
;**********************************************************
INDEX=69h ;PCI TRDY Timer VX r/w
;**********************************************************
BIT=2..0 ;TRDY time out value in PCICLKS
000 = 2
001 = 4
010 = 6
011 = 8 (default)
1xx = Reserved
;**********************************************************
INDEX=70h ;Multi transaction timer Register, r/w
;**********************************************************
BIT=7..2 ;MTT time out Value PCICLKS x4
*ENDIF ;;VX
*IF VX *or HX
;**********************************************************
INDEX=72h ;System Management RAM Control Register, r/w
;**********************************************************
BIT=6 ;SMM Space open -DOPEN
0= DOPEN is Read only
1= Open for access
BIT=5 ;SMM Space Closed -DCLS
1 = SMM space not accessible
BIT=4 ;SMM space locked
0 = Unlocked
1 = Locked, DOPEN is set to 0, DOPEN and DCLS-RO
BIT=3 ;SMRAM Enable 128Kbytes at A0000h
0 = Disabled
1 = Enabled
BIT=2..0 ;SMM space base segment, only one value
010= SMM space A0000-BFFFFh
xxx= Reserved
*ENDIF ;;VX or HX
*IF VX
;**********************************************************
INDEX=73h ;SMB Control Register, r/w
;**********************************************************
BIT=1..0 ;Shared Memory Buffer Enable/access redirect
11= DRAM from SMBSA to top of memory is SMBA
10= As above but SMBA is a hole in memory direct to PCI
01= All accesses treated as fourth PCI request
00= All accesses treated as fourth PCI request
;**********************************************************
INDEX=74h ;SMB Start Address Register, SMBSA r/w
;**********************************************************
BIT=7..0 ;SMB Start address ranges up to the top of mem
xxh= Correspond to A[26:19] respectively
;**********************************************************
INDEX=78h ;Graphics controller latency timer Register, r/w
;**********************************************************
BITS=5..3 ;GC Latency for PCI reads in HCLKs
000= 0 HCLKs
001= 4 HCLKs
010= 8 HCLKs
011= 12 HCLKS
100= 16 HCLKs (default)
101= 20 HCLKs
110= 24 HCLKs
111= 28 HCLKs
BITS=2..0 ;GC Latency for CPU/PCI writes in HCLKs
000= 0 HCLKs
001= 4 HCLKs
010= 8 HCLKs
011= 12 HCLKS (default)
100= 16 HCLKs
101= 20 HCLKs
110= 24 HCLKs
111= 28 HCLKs
*ENDIF ;;VX
*IF Triton *Or Mercury *Or Neptun *Or Saturn
;**********************************************************
INDEX=70h ;ERRCMD Error Command Register, r/w
;**********************************************************
BIT=7 ;0/1 SERR# on Received Target Abort
BIT=6 ;0/1 SERR# on Transmitted PCI Data Parity Error
BIT=5 ;0/1 SERR# on Received PCI Data Parity Error
BIT=4 ;0/1 SERR# on PCI Address Parity Error
BIT=3 ;0/1 PERR# on Receving a Data Parity Error
BIT=2 ;0/1 L2 Cache Parity
BIT=1 ;0/1 SERR on DRAM/L2 Cache Data Parity Error
BIT=0 ;0/1 MCHK on DRAM/L2 Cache Data Parity Error
;**********************************************************
INDEX=71h ;ERRSTS Error Status Register R/clear
;**********************************************************
;**********************************************************
INDEX=72h ;SMRS SMRAM Space Register r/w
;**********************************************************
BIT=54 ;SMRAM Space
0x=All accesses directed to PCI-Bus
10=All accesses directed to SMRAM
11=Code access to SMRAM, Data access to PCI
BIT=3 ;Lock Bit for SRAM Space (Bit 5)
0=ok, bit is not locked
1=oh dear!, Bit is locked, no chance for Unlock
1=only per power-on reset
BIT=210 ;SMM Base Segment
000=Top of Main Memory
010=A000h-AFFFFh
011=B000h-BFFFFh
else reserved
;**********************************************************
INDEX16=78h ;MSG Memory Space Gap Register r/w
;**********************************************************
BIT=15 ;0/1 Memory Space Gap
BIT=14..12 ;Memory Space Gap
000= 1 MByte
001= 2 MByte
011= 4 MByte
111= 8 MByte
BIT=07..04 ; Memory Space Gap Starting Address
xxxx= ^dez(x) MByte
;**********************************************************
INDEX32=7Ch ;FBR Frame Buffer Range Register r/w
;**********************************************************
BIT=31..20 ; Frame Buffer Offset à 1MB ab
x= ^dez(x) MByte
BIT=13 ; 0/1 Byte Merging CPU to PCI
BIT=12 ; 0/1 128K VGA Range Attribute
BIT=09 ; 0/1 No Lock Request
BIT=08 ; 0/1 CPU-to-PCI-Prefetch
BIT=07 ; 0/1 Transparent Buffer Writes
BIT=03..00 ; Buffer Range
0000= 1 MB
0001= 2 MB
0011= 4 MB
0111= 8 MB
1111=16 MB
Else reserved
*ENDIF ;;Triton *Or Mercury *Or Neptun *Or Saturn
*IF HX
;**********************************************************
INDEX=90h ;ERRCMD Error Command Register, r/w
;**********************************************************
BIT=7 ;0/1 SERR# on Received Target Abort
BIT=2 ;0/1 Multiple Parity error, uncorrectable
BIT=1 ;0/1 SERR on Multiple Parity Error
BIT=0 ;0/1 SERR on single bit correctable Parity Error
;**********************************************************
INDEX=91h ;ERRSTS Error Status Register R/clear
;**********************************************************
BIT=7..5 ;Multi bit first row error
XXX= encoded value of DRAM row with multi bit error
BIT=4 ;Uncorrectable error flag
1= uncorrectable error
BIT=3..1 ;Single bit first row error
XXX= encoded value of DRAM row with error
BIT=0 ;Single bit error correct flag
0 = No error
1 = Single bit error corrected
;**********************************************************
INDEX=92h ;ERRSYN Error Syndrome Register RO
;**********************************************************
BIT=7..0 ;Hamming Syndrome assosciated with latest error
*ENDIF ;;HX