AMD SB600
Register Reference Manual
(Public Version)
Technical Reference Manual
Rev. 3.03
P/N: 46155_sb600_rrg_pub_3.03
©2008 Advanced Micro Devices, Inc.
Table of Contents
1 Introduction .............................................................................................................7
2 Register Descriptions: PCI Devices.....................................................................13
BAR0/BAR2/BAR1/BAR3 Registers (SATA I/O Register for IDE mode)..............................................24
BAR4 Registers (SATA I/O Register for IDE mode).............................................................................24
Host Controller Operational Registers (EOR_Reg).............................................................................................. 82
USB2.0 Debug Port Registers.............................................................................................................................. 92
SMBus Module and ACPI Block (Device 20, Function 0)............................................................ 96
Legacy ISA and ACPI Controller........................................................................................................126
©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual
Table of Contents
Page 3
Proprietary
Audio Registers (Device 20, Function 5)............................................................................................198
Modem Registers (Device 20, Function 6).........................................................................................213
HD Audio Controller PCI Configuration Space Registers (Device 20 Function 2)..............................227
3 Register Descriptions: PCI Bridges...................................................................249
4 Register Descriptions: General Purpose Functions/Interrupt Controllers/Support
Function Pins.............................................................................................................277
GPIO..................................................................................................................................................277
General Purpose Event (GPE)...........................................................................................................283
ExtEvent to Generate SMI#................................................................................................................................ 287
THRMTRIP/TALERT.................................................................................................................. 288
Real Time Clock (RTC).............................................................................................................. 289
Direct Access Registers.....................................................................................................................296
Appendix A: AC97 Audio FAQs ...............................................................................299
Appendix B: Revision History..................................................................................300
©2008 Advanced Micro Devices, Inc.
List of Figures
Page 4
AMD SB600 Register Reference Manual
Proprietary
List of Figures
Figure 4 SMBus/ACPI PCI Configuration Space Function Block Association..............................................................96
©2008 Advanced Micro Devices, Inc.
List of Figures
Page 5
AMD SB600 Register Reference Manual
Proprietary
List of Tables
Table 1-1: Register Description Table Notation—Example............................................................................................7
Table 2-6 HceStatus Register......................................................................................................................................69
Table 2-8 IDE Device Registers Mapping..................................................................................................................196
Table 4-1: GPIO Pins.................................................................................................................................................277
Table 4-6: THRMTRIP Pin.........................................................................................................................................288
©2008 Advanced Micro Devices, Inc.
List of Tables
Page 6
AMD SB600 Register Reference Manual
Proprietary
1 Introduction
1.1
About this Manual
This manual is a register reference guide for the AMD SB600 Southbridge. It integrates the key I/O,
communications, and audio features required in a state-of-the-art PC into a single device. It is specifically
designed to operate with AMD’s RADEON IGP Xpress family of integrated graphics processor products in
both desktop and mobile PCs.
1.2 Nomenclature and Conventions
1.2.1
Recent Updates
Updates recent to each revision are highlighted in red.
1.2.2
Numeric Representations
•
•
Hexadecimal numbers are prefixed with “0x” or suffixed with “h,” whenever there is a possibility
of confusion. Other numbers are decimal.
Registers (or fields) of an identical function are sometimes indicated by a single expression in
which the part of the signal name that changes is enclosed in square brackets. For example,
registers HOST_DATA0 through to HOST_DATA7 is represented by the single expression
HOST_DATA[7:0].
1.2.3
Register Description
All registers in this document are described with the format of the sample table below. All offsets are
in hexadecimal notation, while programmed bits are in either binomial or hexadecimal notation.
Table 1-1: Register Description Table Notation—Example
Latency Timer – RW – 8 bits – [Offset: 0Dh]
Field Name
Bits
Default
Description
Latency Timer (R/W)
7:0
00h
This bit field is used to specify the time in number of PCI
clocks, the SATA controller as a master is still allowed to
control the PCI bus after its GRANT_L is deasserted. The
lower three bits [0A:08] are hardwired to 0 h , resulting in a
time granularity of 8 clocks.
Latency Timer. Reset Value: 00h
©2008 Advanced Micro Devices, Inc.
About this Manual
AMD SB600 Register Reference Manual
Proprietary
Page 7
Register Information
Value/Content in the Example
Register name
Latency Timer
Read / Write capability
R = Readable
W = Writable
RW
RW = Readable and Writable
Register size
8 bits
Register address(es)*
Field name
Offset: 0Dh
Latency Timer (R/W)
Field position/size
Field default value
Field description
7:0
00h
“This bit … 8 clocks.”
Field mirror information
Brief register description
Latency Timer. Reset Value: 00h
* Note: There maybe more than one address; the convention used is as follows:
[aperName:offset] - single mapping, to one aperture/decode and one offset
[aperName1, aperName2, …, aperNameN:offset] - multiple mappings to different apertures/decodes but same
offset
[aperName:startOffset-endOffset] - mapped to an offset range in the same aperture/decode
Warning: Do not attempt to modify values of registers or bit fields marked "Reserved." Doing so may cause
the system to behave in unexpected manners.
©2008 Advanced Micro Devices, Inc.
Nomenclature and Conventions
Page 8
AMD SB600 Register Reference Manual
Proprietary
1.3 Features of the SB600
CPU Interface
Supports serial interrupt on quiet and
continuous modes
Supports both Single and Dual core AMD
CPUs
DMA Controller
Desktop: Athlon 64, Athlon 64 FX, Athlon
64 X2, Sempron, Opteron, dual-core
Opteron
Two cascaded 8237 DMA controllers
Supports PC/PCI DMA
Mobile: Athlon XP-M, Mobile Athlon 64,
Supports LPC DMA
Turion 64, Mobile Sempron
Supports type F DMA
PCI Host Bus Controller
LPC host bus controller
Supports PCI Rev. 2.3 specification
Supports PCI bus at 33MHz
Supports LPC based super I/O and flash
devices
Supports up to 6 bus master devices
Supports 40-bit addressing
Supports two master/DMA devices
Supports TPM version 1.1/1.2 devices for
enhanced security
Supports interrupt steering for plug-n-play
devices
Supports SPI devices
Supports concurrent PCI operations
Supports hiding of PCI devices by
BIOS/hardware
SATA II AHCI Controller
Supports four SATA ports, complying with the
SATA 2.0 specification
Supports spread spectrum on PCI clocks
Supports SATA II 3.0GHz PHY, with
backward compatibility with 1.5GHz
USB controllers
5 OHCI and 1 EHCI Host controllers to
support 10 USB ports
Supports RAID striping (RAID 0) across all 4
ports
All 10 ports are USB 1.1 (“Low Speed”, “Full
Speed”) and 2.0 (“High Speed”) compatible
Supports RAID mirroring (RAID 1) across all 4
ports
Supports ACPI S1~S5
Supports RAID 10 (4 ports needed)
Supports legacy keyboard/mouse
Supports USB debug port
Supports both AHCI mode and IDE mode
Supports advanced power management with
ACHI mode
Supports port disable with individual control
SMBus Controller
IDE Controller
SMBus Rev. 2.0 compliant
Single PATA channel support
Support SMBALERT # signal / GPIO
Supports PIO, Multi-word DMA, and Ultra
DMA 33/66/100/133 modes
Interrupt Controller
32x32byte buffers on each channel for
buffering
Supports IOAPIC/X-IO APIC mode for 24
channels of interrupts
Swap bay support by tri-state IDE signals
Supports Message Signaled Interrupt (MSI)
Integrated IDE series resistors
Supports 8259 legacy mode for 15 interrupts
Supports programmable level/edge triggering
on each channels
©2008 Advanced Micro Devices, Inc.
Features of the SB600
AMD SB600 Register Reference Manual
Proprietary
Page 9
AC Link interface
Supports for both audio and modem codecs
Compliant with AC-97 codec Rev. 2.3
6/8 channel support on audio codec
RTC (Real Time Clock)
256-byte battery-backed CMOS RAM
Hardware supported century rollover
RTC battery monitoring feature
Multiple functions for audio and modem
Codec operations
Power Management
Bus master logic
ACPI specification 2.0 compliant power
management schemes
Supports up to 3 codecs simultaneously
Supports SPDIF output
Supports C2, C3, C4, ACPI states
Supports C1e and C3 pop-up
Separate bus from the HD audio
Supports S0, S1, S2, S3, S4, and S5
HD Audio
Wakeup events for S1, S2, S3, S4/S5
generated by:
4 Independent output streams (DMA)
Any GEVENT pin
Any GPM pin
USB
4 Independent input streams (DMA)
Up to 16 channels of audio output per stream
Supports up to 4 codecs
Power button
Internal RTC wakeup
SMI# event
Up to 192kHz sample rate
Up to 32-bit per sample
Message Signaled Interrupt (MSI) capability
64-bit addressing capability for MSI
Full support for On-Now™
Supports CPU SMM, generating SMI# signal
upon power management events
64-bit addressing capability for DMA bus
master
GPIO supports on external wake up events
Unified Audio Architecture (UAA) compatible
Supports CLKRUN# on PCI power
management
HD Audio registers can be located anywhere
in the 64-bit address space
Provides clock generator and CPU STPCLK#
control
Timers
Support for ASF
8254-compatible timer
Microsoft High Precision Event Timer (HPET)
ACPI power management timer
©2008 Advanced Micro Devices, Inc.
Features of the SB600
AMD SB600 Register Reference Manual
Proprietary
Page 10
1.4
Block Diagrams
This section contains two block diagrams for the SB600. Figure 1 shows the SB600 internal PCI devices with
their assigned bus, device, and function numbers. Figure 2 shows the SB600 internal PCI devices and the
major function blocks.
ALINK-EXPRESS II
AC97 Audio
AB
Bus 0 DEV 20
Function 5
Device ID 4382h
AC97
B-LINK
A-LINK
PORT 1
PORT 0
4 PORTS
SATA Controller 1
AC97 Modem
Bus 0 DEV 18 Function 0
Device ID 4380h
Bus 0 DEV 20
Function 6
Device ID 438Eh
USB:OHCI x5
Bus 0 DEV 19 Function 0:4
Device ID 4387h : 4388h :
B-LINK
HD Audio
10 PORTS
Bus 0 DEV 20
Function 2
4389h : 438Ah : 438Bh
USB:EHCI
Device ID 4383h
Bus 0 DEV 19 Function 5
Device ID 4386h
Debug port
ALINK
IDE
1 CHANNEL
PCI Bridge
Bus 0 DEV 20
Function 1
Device ID 438Ch
Bus 0 DEV 20
Function 4
6 PCI SLOTS
Device ID 4384h
LPC
LPC bus
SPI bus
Bus 0 DEV 20
Function 3
Device ID 438Dh
SMBUS /ACPI
Bus 0 DEV 20 Function 0
Device ID 4385h
Figure 1 SB600 PCI Internal Devices
©2008 Advanced Micro Devices, Inc.
Block Diagrams
Page 11
AMD SB600 Register Reference Manual
Proprietary
ALINK-EXPRESS II
AB
B-LINK
A-LINK
PORT 1
PORT 0
AC97 Audio
4 PORTS
SATA
Controller
AC97
AC97 Modem
B-LINK
HD Audio
USB:OHCI
10 PORTS
USB:EHCI
Debug port
ALINK
1
CHANNEL
IDE
LPC bus
SPI bus
SMBUS /ACPI
BUS Controler
LPC
ROM
GPIO
PCI Bridge
6 PCI SLOTS
RTC
X1/X2
SIRQ
SERIRQ#
PICD[0]
RTC_IRQ#,
PIDE_INTRQ,
SIDE_INTRQ,
USB_IRQ#,
AC97INTAB,
AC97INTBB
APIC
PIC
BM
SPEAKER
8250 TIMER
INTERRUPT
controller
ACPI / HW
Monitor
SMI
SMBUS
PM
INTR
PWRGOOD
CPURST,
IGNNE#,
FERRB#,
INT# F:A
GEVENT[7:0],SLPBUTTON
TEMPDEAD, TEMPCAUT,
SHUTDOWN,DC_STOP#
SCIOUT, SLP#,
INIT#,
RESET#
CPUSTP#, PCISTP#,
STPCLK#, SOFF#, SMI#,
SMIACT#
Figure 2 SB600 PCI Internal Devices and Major Function Blocks
©2008 Advanced Micro Devices, Inc.
Block Diagrams
Page 12
AMD SB600 Register Reference Manual
Proprietary
2 Register Descriptions: PCI Devices
2.1 SATA Registers (Device 18, Function 0)
Note: Some SATA functions are controlled by, and associated with, certain PCI configuration registers in the
SMBus/ACPI device. For more information refer to section 2.3: SMBus Module and ACPI Block (Device 20,
Function 0). The diagram below lists these SATA functions and the associated registers.
SATA
SATA Enables
SATA power saving
SATA Interrupt Map register
SATA Smart Power Control
PCI_Reg:
AC/AFh
5Ch
98h
2.1.1
PCI Configuration Space
The PCI Configuration Space registers define the operation of the SB600’s SATA controller on the PCI bus.
These registers are accessible only when the SATA controller detects a Configuration Read or Write
operation, with its IDSEL asserted, on the 32-bit PCI bus.
Register Name
Vendor ID
Offset Address
00h
Device ID
02h
Command
04h
Status
06h
Revision ID/Class Code
Cache Link Size
Master Latency Timer
Header Type
08h
0Ch
0Dh
0Eh
0Fh
10h
BIST Mode Type
Base Address 0
Base Address 1
14h
Base Address 2
18h
Base Address 3
1Ch
20h
24h
2Ch
34h
3Ch
3Dh
3Eh
3Fh
40h
Bus Master Interface Base Address
AHCI Base Address
Subsystem ID and Subsystem Vendor ID
Capabilities Pointer
Interrupt Line
Interrupt Pin
Min_gnt
Max_latency
Misc control
Watch Dog Control And Status
Watch Dog Counter
MSI Control
44h
46h
50h
MSI Address
54h
MSI Upper Address
MSI Data
Power Management Capability ID
Power Management Capability
Power Management Control And Status
58h
5Ch
60h
62h
64h
©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual
SATA Registers (Device 18, Function 0)
Proprietary
Page 13
Register Name
Serial ATA Capability Register 0
Serial ATA Capability Register 1
IDP Index
Offset Address
70h
74h
78h
7Ch
88h
8Ch
90h
94h
C0h
C4h
IDP Data
PHY Port0 Control
PHY Port1 Control
PHY Port2 Control
PHY Port3 Control
BIST pattern Count
PCI Target Control TimeOut Counter
Vendor ID - R - 16 bits - [PCI_Reg:00h]
Field Name
Vendor ID
Bits
15:0
Default
Description
1002h
This register holds a unique 16-bit value assigned to a vendor.
Combined with the device ID, it identifies any PCI device.
Device ID - R - 16 bits - [PCI_Reg:02h]
Field Name
Device ID
Bits
15:0
Default
Description
4380h
This register holds a unique 16-bit value assigned to a device.
Combined with the vendor ID, it identifies any PCI device.
4380h for the non-Raid5 controller
4381h for the Raid5 controller.
Bonding option default to the non-Raid 5 controller.
Command - RW - 16 bits - [PCI_Reg:04h]
Field Name
Bits
Default
Description
I/O Access Enable
0
1
2
0b
This bit controls access to the I/O space registers. When this
bit is 1, it enables the SATA controller to respond to PCI IO
space access.
This bit controls access to the memory space registers. When
this bit is 1, it enables the SATA controller to respond to PCI
memory space access
Memory Access Enable
Bus Master Enable
0b
0b
Bus master function enable.
1 = Enable
0 = Disable.
Special Cycle
3
4
5
6
0b
0b
0b
0b
Read Only. Hardwired to ‘0’
Recognition Enable
Memory Write and
Invalidate Enable
VGA Palette Snoop
Enable
Read Only. Hardwired to ‘0’
Read Only. Hard-wired to ‘0’ indicating that the SATA host
controller does not need to snoop VGA palette cycles.
If set to 1, the IDE host controller asserts PERR- when it is the
agent receiving data AND it detects a parity error. PERR- is
not asserted if this bit is 0.
PERR- Detection Enable
Wait Cycle Enable
SERR- Enable
7
0b
0b
Read Only.
Hard-wired to ‘0’ to indicate that the SATA controller does not
need to insert a wait state between the address and data on
the AD lines.
If set to 1, and bit 6 is set, then the SATA controller asserts
SERR- when it detects an address parity error. SERR- is not
asserted if this bit is 0.
Read Only. Hard-wired to ‘0’ to indicate that fast back to back
is only allowed to the same agent.
Complies with the PCI 2.3 specification.
Reserved.
8
9
Fast Back-to-Back
Enable
Interrupt Disable
Reserved
0b
0b
10
15:11
©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual
SATA Registers (Device 18, Function 0)
Proprietary
Page 14
Status - RW - 16 bits - [PCI_Reg:06h]
Field Name
Reserved
Interrupt Status
Capabilities List
Bits
2:0
3
Default
Description
Reserved.
0b
1b
Interrupt status bit. Complies with the PCI 2.3 specification.
Read Only. Hardwired to 1 to indicate that the Capabilities
Pointer is located at 34h.
4
66MHz Support
5
1b
66MHz capable. This feature is supported in the SATA
controller.
Reserved
Fast Back-to-Back
Capable
6
7
Reserved.
0b
0b
Read Only. Hard-wired to ‘0’ to indicate that it is fast back to
back incapable.
Data Parity reported. Set to 1 if the SATA controller detects
PERR- asserted while acting as the PCI master (whether
PERR- was driven by the SATA controller or not.). Write ‘1’ to
clear this bit.
Data Parity Error
8
DEVSEL- Timing
10:9
01b
Read only.
These bits indicate DEVSEL- timing when performing a
positive decode. Since DEVSEL- is asserted to meet the
medium timing, these bits are encoded as 01b.
Signaled Target Abort. This bit is set to 1, when the SATA
controller signals Target Abort. Write ‘1’ to clear this bit.
Received Target Abort. This bit is set to 1 when the SATA
controller that generated the PCI cycle (SATA controller is the
PCI master) is aborted by a PCI target. Write ‘1’ to clear this
bit.
Signaled Target Abort
Received Target Abort
11
12
0b
0b
Received Master Abort
Status
13
0b
Received Master Abort Status. Set to 1 when the SATA
controller, acting as a PCI master, aborts a PCI bus memory
cycle. Write ‘1’ to clear this bit..
SERR- Status
14
15
0b
0b
SERR- status. This bit is set to 1 when the SATA controller
detects a PCI address parity error. Write ‘1’to clear this bit.
Detected Parity Error. This bit is set to 1 when the SATA
controller detects a parity error. Write ‘1’ to clear this bit.
Detected Parity Error
Revision ID/Class Code- R - 32 bits - [PCI_Reg:08h]
Field Name
Revision ID
Bits
Default
Description
These bits are hardwired to 00h to indicate the revision level of
the chip design.
7:0
00h
Operating Mode
Selection
15:8
8Fh
RW
Programmable I/F.
Bit [15] = Master IDE Device. Always 1.
Bits [14:12] = Reserved. Always read as 0’s.
Bit [11] = Programmable indicator for Secondary. Always 1 to
indicate that both modes are supported.
Bit [10] = Operating Mode for Secondary.
1 = Native PCI-mode.
0 = Compatibility Mode
Bit [9] = Programmable indicator for Primary. Always 1 to
indicate that both modes are supported.
Bit [8] = Operating Mode for Primary.
1 = Native PCI-mode.
0 = Compatibility
Sub-Class Code
Class Code
23:16
31:24
01h
01h
Sub-Class Code. 01h to indicate an IDE Controller. See Note.
Class Code. These 8 bits are read only and wired to 01h to
indicate a Mass-Storage Controller.
©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual
SATA Registers (Device 18, Function 0)
Proprietary
Page 15
Revision ID/Class Code- R - 32 bits - [PCI_Reg:08h]
Field Name
Bits
Default
Description
Note: This field is only writeable when PCI_Reg:40h[0] is set.
Sub-Class Code Program Interface Controller Type
01
06
04
8F
01
00
IDE
AHCI
RAID
Cache Line Size - RW - 8 bits - [PCI_Reg:0Ch]
Field Name
Reserved
Cache Line Size Register
Bits
Default
Description
3:0
7:4
Reserved.
If the value is 1, then the cache line size is 16 DW (64 byte).
0h
Master Latency Timer - RW - 8 bits - [PCI_Reg:0Dh]
Field Name
Reserved
Bits
Default
Description
2:0
Reserved.
Master Latency Timer
7:3
00h
Master Latency Timer. This number, in units of clocks,
represents the guaranteed time slice allowed to the IDE host
controller for burst transactions.
Header Type - R - 8 bits - [PCI_Reg:0Eh]
Field Name
Bits
Default
Description
Header Type
7:0
00h
Header Type. Since the IDE host controller is a single-function
device, this register contains a value of 00h.
BIST Mode Type - RW - 8 bits - [PCI_Reg:0Fh]
Field Name
Bits
Default
Description
Completion Code
3:0
0h
Read Only.
Indicates the completion code status of BIST. A non-zero
value indicates a failure.
Reserved
Start BIST
BIST Capable
5:4
6
7
Reserved.
0b
0b
Since bit [7] is 0, program this bit take no effect.
Read Only. Hard-wired to ‘0’ indicating that there is no HBA
related BIST function.
Base Address 0 - RW - 32 bits - [PCI_Reg:10h]
Field Name
Resource Type Indicator
Bits
Default
Description
RTE (Resource Type Indicator). This bit is wired to 1 to
indicate that the base address field in this register maps to I/O
space.
0
1b
Reserved
2:1
Reserved.
Primary IDE CS0 Base
Address
31:3
0000_
0000h
Base Address for Primary IDE Bus CS0. This register is used
for native mode only. Base Address 0 is not used in
compatibility mode.
Base Address 1 - RW - 32 bits - [PCI_Reg:14h]
Field Name
Resource Type Indicator
Bits
Default
Description
RTE (Resource Type Indicator). This bit is wired to 1 to
indicate that the base address field in this register maps to I/O
space.
0
1b
Reserved
1
Reserved.
Primary IDE CS1 Base
Address
31:2
0000_
0000h
Base Address for Primary IDE Bus CS1. This register is used
for native mode only. Base Address 1 is not used in
compatibility mode.
©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual
SATA Registers (Device 18, Function 0)
Proprietary
Page 16
Base Address 2 - RW - 32 bits - [PCI_Reg:18h]
Field Name
Resource Type Indicator
Bits
Default
Description
This bit is wired to 1 to indicate that the base address field in
this register maps to I/O space.
0
1b
Reserved
2:1
Reserved.
Secondary IDE CS0
Base Address
31:3
0000_
0000h
Base Address for Secondary IDE Bus CS0. This register is
used for native mode only. Base Address 2 is not used in
compatibility mode.
Base Address 3 - RW - 32 bits - [PCI_Reg:1Ch]
Field Name
Resource Type Indicator
Bits
Default
Description
This bit is wired to 1 to indicate that the base address field in
this register maps to I/O space.
0
1b
Reserved
1
Reserved.
Secondary IDE CS1
Base Address
31:2
0000_
0000h
Base Address for Secondary IDE Bus CS1. This register is
used for native mode only. Base Address 3 is not used in
compatibility mode.
Bus Master Interface Base Address - RW - 32 bits - [PCI_Reg:20h]
Field Name
Bits
0
Default
Description
This bit is wired to 1 to indicate that the base address field in
this register maps to I/O space.
Resource Type Indicator
1b
Reserved
3:1
Reserved.
Bus Master Interface
Register Base Address
31:4
0000_
000h
Base Address for the Bus Master interface registers, and
corresponds to AD[15:4].
AHCI Base Address - RW - 32 bits - [PCI_Reg:24h]
Field Name
Bits
Default
Description
Resource Type Indicator
0
0b
This bit is wired to 0 to indicate a request for register memory
space.
Reserved
9:1
Reserved.
AHCI Base Address
31:10
000000h Base address of register memory space. This represents a
memory space for support of 4 ports.
Subsystem ID and Subsystem Vendor ID - RW - 32 bits - [PCI_Reg:2Ch]
Field Name
Bits
Default
Description
Subsystem Vendor ID
15:0
0000h
Subsystem Vendor ID. This can only be written once by the
software.
Subsystem ID
31:16
0000h
Subsystem ID. This can only be written once by the software.
Capabilities Pointer - R - 8 bits - [PCI_Reg:34h]
Field Name
Bits
Default
Description
Capabilities Pointer
7:0
60h
The first pointer of the Capability block
Interrupt Line - RW - 8 bits - [PCI_Reg:3Ch]
Field Name
Bits
Default
Description
Interrupt Line
7:0
00h
Identifies which input on the interrupt controller the function’s
PCI interrupt request pin (as specified in its Interrupt Pin
register) is routed to.
Interrupt Pin - R - 8 bits - [PCI_Reg:3Dh]
Field Name
Bits
Default
Description
Interrupt Pin
7:0
01h
Hard-wired to 01h.
©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual
SATA Registers (Device 18, Function 0)
Proprietary Page 17
Min_gnt - R - 8 bits - [PCI_Reg:3Eh]
Field Name
Minimum Grant
Bits
7:0
Default
Description
00h
This register specifies the desired settings for how long of a
burst the SATA controller needs. The value specifies a period
of time in units of ¼ microseconds.
Hard-wired to 0’s and always read as 0’s.
Max_latency - R - 8 bits - [PCI_Reg:3Fh]
Field Name
Bits
Default
Description
Maximum Latency
7:0
00h
This register specifies the Maximum Latency time required
before the SATA controller as a bus-master can start an
accesses
Hard-wired to 0’s and always read as 0’s.
Misc Control - RW - 32 bits - [PCI_Reg:40h]
Field Name
Subclass code write
Enable
Bits
Default
Description
0
1
2
0b
Once set, Program Interface register (PCI_Reg:09h), subclass
code register (PCI_Reg:0Ah) and Multiple Message Capable
bits (PCI_Reg50h[19:17]) can be programmable.
When clear, dynamic power saving function for SATA internal
memory macros will be performed to reduce power
consumption.
When set, dynamic power saving function for SATA core clock
will be performed during partial/slumber mode to reduce power
consumption.
Disable Dynamic Sata
Memory Power Saving
0b
0b
Enable dynamic Sata
Core Power Saving
Reserved
Disable Speed up XP
Boot
3
4
Reserved.
0b
When clear, it fastens XP boot up in IDE mode. However, this
bit needs to be set, when enable SATA partial/slumber power
function is in IDE mode.
When set, the SATA partial/slumber power function can be
enabled in IDE mode, but the BIOS IO trap is needed to speed
up XP boot-up in IDE mode.
Please refer to BAR5 + offset 12C/1Ac/22C/2AC[11:8] for the
SATA partial/slumber modes that are allowed.
Reserved
Reserved
Reserved
5
15:6
16
17
18
0b
Reserved.
Disable port0
Disable port1
Disable port2
Disable port3
Reserved
0b
0b
0b
0b
When set, port0 is disabled and port0 clock is shut down.
When set, port1 is disabled and port1 clock is shut down.
When set, port2 is disabled and port2 clock is shut down.
When set, port3 is disabled and port3 clock is shut down.
Reserved.
19
31:20
Watch Dog Control And Status - RW - 16 bits - [PCI_Reg:44h]
Field Name
Watchdog Enable
Bits
Default
Description
Set this bit to enable the watchdog counter for all the PCI
down stream transaction.
0
0b
Watchdog Timeout
Status
1
0b
Watchdog Counter Timeout Status bit. This bit indicates that
the watchdog counter has expired for PCI down stream
transaction and the transaction got aborted due to counter has
expired.
Software writes 1 to clear the status.
Reserved
15:2
Reserved.
Watch Dog Counter - RW - 16 bits - [PCI_Reg:46h]
Field Name
Watchdog Counter
Reserved
Bits
Default
Description
Specifies the timeout retry count for PCI down stream retries.
Reserved.
7:0
80h
15:8
©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual
SATA Registers (Device 18, Function 0)
Proprietary
Page 18
MSI Control - RW- 32 bits - [PCI_Reg:50h]
Field Name
Capability ID
Bits
Default
Description
7:0
05h
Read-Only.
Capability ID. It indicates that this is and MSI capability ID.
Capability Next Pointer
15:8
70h
Read-Only.
Next Pointer (hard wired to 70h, points to Index Data pair
capability
Message Signaled
Interrupt Enable
Multiple Message
Capable
16
0b
MSI Enable.
19:17
010b
Multiple Message Capable.
Multiple Message Enable
MSI 64-bit Address
22:20
23
000b
1b
Multiple Message Enable.
Read-Only
Support 64-bit address.
Reserved
31:24
Reserved.
MSI Address - RW- 32 bits - [PCI_Reg:54h]
Field Name
Reserved
Bits
Default
Description
1:0
Reserved.
MSI Address
31:2
0000_0000h Lower 32 bits of the system specified message address
always DW aligned.
MSI Upper Address - RW- 32 bits - [PCI_Reg:58h]
Field Name
Bits
Default
Description
MSI Upper Address
31:0
0000_0000h Upper 32 bits of the system specified message address.
This register is optional and only implemented if
MC.C64=1.
MSI Data - RW- 16 bits - [PCI_Reg:5Ch]
Field Name
Bits
Default
Description
MSI Data
15:0
0000h
MSI Data
Power Management Capability ID - R- 16 bits - [PCI_Reg:60h]
Field Name
Capability ID
Bits
Default
Description
7:0
01h
Capability ID. Indicates this is power management capability
ID.
Capability Next Pointer
15:8
50h
Next Pointer.
Power Management Capability - R- 16 bits - [PCI_Reg:62h]
Field Name
Bits
Default
Description
Version
2:0
010b
Indicates support for Revision 1.1 of the PCI Power
Management Specification.
PME Clock
Reserved
Device Specific
Initialization
Aux_Current
3
4
5
0b
1b
Indicates that PCI clock is not required to generate PME#.
Reserved
Indicates whether device-specific initialization is required.
8:6
000b
Reports the maximum Suspend well current required when
in the D3COLD state. Hard wired to 000b.
The D1 state is not supported.
The D2 state is not supported.
Read-Only.
D1_Support
D2_Support
PME_Support
9
10
15:11
0b
0b
00h
©2008 Advanced Micro Devices, Inc.
SATA Registers (Device 18, Function 0)
AMD SB600 Register Reference Manual
Proprietary
Page 19
PCI Power Management Control And Status - RW- 16 bits - [PCI_Reg:64h]
Field Name
Bits
Default
Description
Power State
1:0
00b
This field is used both to determine the current power state
of the HBA and to set a new power state. The values are:
00 – D0 state
11 – D3HOT state
The D1 and D2 states are not supported. When in the
D3HOT state, the configuration space is available, but the
register memory spaces are not. Additionally, interrupts
are blocked.
Reserved
PME Enable
Reserved
7:2
8
14:9
15
Reserved
0b
0b
Read-only. Hard-wired to ‘0’ indicates PME disable
Reserved.
Read-only. Hard-wired to ‘0’ as PME disable
PME Status
Serial ATA Capability Register 0 - R- 32 bits - [PCI_Reg:70h]
Field Name
Capability ID
Bits
7:0
15:8
19:16
Default
12h
00h
0h
Description
Capability ID. Indicates this is a Serial ATA Capability ID.
Next Pointer, end of the list.
Minor revision number of the SATA Capability Pointer
implemented.
Capability Next Pointer
Minor Revision
Major Revision
Reserved
23:20
31:24
1h
Major revision number of the SATA Capability Pointer
implemented.
Reserved
Serial ATA Capability Register 1 - R- 32 bits - [PCI_Reg:74h]
Field Name
Bits
Default
Description
BAR Location
3:0
1111b
Value 1111b indicates that the Index-Data Pair is implemented
in Dwords directly following SATACR1 in the PCI configuration
space.
BAR Offset
Reserved
23:4
00000h
Indicates the offset into the BAR where the Index-Data Pair
are located in Dword granularity. Since the BAR location is
setting at 1111b, this field is not used anymore.
Reserved
31:24
IDP Index Register - RW- 32 bits - [PCI_Reg:78h]
Field Name
Reserved
Bits
Default
Description
1:0
Reserved
IDP Index
9:2
00h
This register selects the Dword offset of the memory mapped
AHCI register to be accessed. The IDP Index should be sized
such that it can access the entire ABAR register space for the
particular implementation. See Note.
Reserved
31:10
Reserved
Note: ABAR is AHCI memory map registers located at AHCI base address (BAR5) space.
IDP Data Register - RW- 32 bits - [PCI_Reg:7Ch]
Field Name
IDP Data
Bits
Default
Description
31:0
This register is a “window” through which data is read or
written to the memory mapped register pointed to by the IDP
Index register. Note that a physical register is not actually
implemented as the data is actually stored in the memory
mapped registers.
Since this is not a physical register, the “default” value is the
same as the default value of the register pointed to by IDP
Index.
All register accesses to IDP Data are Dword granularity
©2008 Advanced Micro Devices, Inc.
SATA Registers (Device 18, Function 0)
Proprietary Page 20
AMD SB600 Register Reference Manual
PHY Port0 Control - RW- 32 bits - [PCI_Reg:88h]
Field Name
Port0 PHY
TX main driver swing
Bits
23:0
4:0
Default
B40014h PHY port0 fine-tune register.
10100b Port0 Tx driving swing[4:0] is valid for SATA 1.5G. It sets the
Description
TX main driver swing. The user can program the optimum
value for each SATA port.
Bit 4
1
Bit 3
0
Bit 2
0
Bit 1
0
Bit0 Nominal Output
0
0
0
0
0
0
0
0
400mv
450mv
500mv
550mv
600mv
650mv
700mv
750mv
1
0
0
1
1
0
1
0
1
0
1
1
1
1
0
0
1
1
0
1
1
1
1
0
1
1
1
1
Note: This applies to all the ASIC Revisions A11 and above.
Port0 Tx driving swing[7:5] is valid for both SATA 3G and
1.5G. It sets the TX pre-emphasis driver strength. The user
can program the optimum pre-emphasis value for each SATA
port if TX pre-emphasis enable bit is turned on.
TX pre-emphasis driver
swing
7:5
000b
Bit 7
0
Bit 6
0
Bit 5 pre-emphasis amount
0
1
0
1
0
1
0
1
0mv
0
0
25mv
50mv
75mv
100mv
125mv
150mv
175mv
0
1
0
1
1
0
1
0
1
1
1
1
Note: This applies to all the ASIC Revisions A11 and above.
TX pre-emphasis enable
Reserved
13
0b
Turns on TX pre-emphasis output
1: Enable pre-emphasis
0: Disable pre-emphasis
Reserved.
31:24
PHY Port1 Control - RW- 32 bits - [PCI_Reg:8Ch]
Field Name
Port1 PHY
TX main swing
Bits
23:0
4:0
Default
B40014h PHY port1 fine-tune register.
10100b Port1 Tx driving swing[4:0] is valid at SATA 1.5G. It sets the
Description
TX main driver swing. The user can program the optimum
value for each SATA port.
Bit 4
1
Bit 3
0
Bit 2
0
Bit 1
0
Bit 0 Nominal Output
0
0
0
0
0
0
0
0
400mv
450mv
500mv
550mv
600mv
650mv
700mv
750mv
1
0
0
1
1
0
1
0
1
0
1
1
1
1
0
0
1
1
0
1
1
1
1
0
1
1
1
1
Note: This applies to all the ASIC Revisions A11 and above.
©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual
SATA Registers (Device 18, Function 0)
Proprietary
Page 21
PHY Port1 Control - RW- 32 bits - [PCI_Reg:8Ch]
Field Name
TX pre-emphasis driver
swing
Bits
Default
Description
7:5
000b
Port1 Tx driving swing[7:5] is valid for both SATA 3G and
1.5G. It sets the TX pre-emphasis driver strength. The user
can program the optimum pre-emphasis value for each SATA
port if TX pre-emphasis enable bit turned on.
Bit 7
0
Bit 6
0
Bit 5 pre-emphasis amount
0
1
0
1
0
1
0
1
0mv
0
0
25mv
50mv
75mv
100mv
125mv
150mv
175mv
0
1
0
1
1
0
1
0
1
1
1
1
Note: This applies to all the ASIC Revisions A11 and above.
Turns on port1 TX pre-emphasis output.
1: Enable pre-emphasis
TX pre-emphasis enable
13
0b
0: Disable pre-emphasis
PHY Port2 Control - RW- 32 bits - [PCI_Reg:90h]
Field Name
Port2 PHY
TX main swing
Bits
23:0
4:0
Default
B40014h PHY port2 fine-tune register.
10100b Port2 Tx driving swing[4:0] is valid at SATA 1.5G.
Description
Bit 4
1
Bit 3
0
Bit 2
0
Bit 1
0
Bit 0 Nominal Output
0
0
0
0
0
0
0
0
400mv
450mv
500mv
550mv
600mv
650mv
700mv
750mv
1
0
0
1
1
0
1
0
1
0
1
1
1
1
0
0
1
1
0
1
1
1
1
0
1
1
1
1
Note: This applies to all the ASIC Revisions A11 and above.
Port2 Tx driving swing[7:5] is valid for both SATA 3G and
1.5G. It sets the TX pre-emphasis driver strength. The user
can program the optimum pre-emphasis value for each SATA
port if TX pre-emphasis enable bit turned on.
TX pre-emphasis driver
swing
7:5
000b
Bit 7
0
Bit 6
0
Bit 5 pre-emphasis amount
0
1
0
1
0
1
0
1
0mv
0
0
25mv
50mv
75mv
100mv
125mv
150mv
175mv
0
1
0
1
1
0
1
0
1
1
1
1
Note: This applies to all the ASIC Revisions A11 and above.
Turns on port2 TX pre-emphasis output
1: Enable pre-emphasis
TX pre-emphasis enable
13
0b
0: Disable pre-emphasis
©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual
SATA Registers (Device 18, Function 0)
Proprietary
Page 22
PHY Port3 Control - RW- 32 bits - [PCI_Reg:94h]
Field Name
Port3 PHY
TX main swing
Bits
23:0
4:0
Default
B40014h PHY port3 fine-tune register.
10100b Port3 Tx driving swing[4:0] is valid at SATA 1.5G.
Description
Bit 4
1
Bit 3
0
Bit 2
0
Bit 1
0
Bit 0 Nominal Output
0
0
0
0
0
0
0
0
400mv
450mv
500mv
550mv
600mv
650mv
700mv
750mv
1
0
0
1
1
0
1
0
1
0
1
1
1
1
0
0
1
1
0
1
1
1
1
0
1
1
1
1
Note: This applies to all the ASIC Revisions A11 and above.
Port3 Tx driving swing[7:5] is valid for both SATA 3G and
1.5G. It sets the TX pre-emphasis driver strength. The user
can program the optimum pre-emphasis value for each SATA
port if TX pre-emphasis enable bit turned on.
TX pre-emphasis driver
swing
7:5
000b
Bit 7
0
Bit 6
0
Bit 5 pre-emphasis amount
0
1
0
1
0
1
0
1
0mv
0
0
25mv
50mv
75mv
100mv
125mv
150mv
175mv
0
1
0
1
1
0
1
0
1
1
1
1
Note: This applies to all the ASIC Revisions A11 and above.
Turns on port3 TX pre-emphasis output
1: Enable pre-emphasis
TX pre-emphasis enable
13
0b
0: Disable pre-emphasis
BIST Pattern Count - RW - 32 bits - [PCI_Reg:C0h]
Field Name
Bits
Default
Description
BIST Pattern Count
31:0
0000_20 This count specifies how many Octal WORD pattern need to
00h
be checked before BIST Done bit be set. This count value is
used fro all the 4 ports. 400h default value would be used for
tester, which means 32K DWORD pattern would be compared
for BIST test. Value of “0000_0000”h means the maximum
patterns (16,000, 000, 000) checked.
PCI Target Control TimeOut Counter - RW – 8 bits - [PCI_Reg:C4h]
Field Name
PCI Target Control
TimeOut Count
Bits
7:0
Default
80h
Description
This register is used for programming the PCI Target Control
TimeOut Count used to clear any stale target commands to
the hosts controller. Granularity is 15.5us (Count * 15.5 us)
The counter will be disabled if the count is programmed to 0x0.
©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual
SATA Registers (Device 18, Function 0)
Proprietary
Page 23
2.1.2
BAR0/BAR2/BAR1/BAR3 Registers (SATA I/O Register for IDE mode)
BAR0/BAR2 uses 8 bytes of I/O space. BAR0 is used for Primary channel and BAR2 is used for Secondary
channel during IDE native mode. BAR1/BAR3 uses 2 bytes of I/O space. BAR1 is used for Primary channel
and BAR3 is used for Secondary channel during IDE native mode.
Address (hex)
Compatibility Mode
Name and Function
Read Function
Native Mode (Offset)
Write Function
IDE Command Block Registers
Primary
Secondary
BAR0/BAR2
1F0
170
(Primary or Secondary)
Base Address 0 + 0
(Primary or Secondary)
Base Address 0 + 1
(Primary or Secondary)
Base Address 0 + 2
(Primary or Secondary)
Base Address + 3
(Primary or Secondary)
Base Address + 4
(Primary or Secondary)
Base Address + 5
Data (16 bit)
Error register
Sector Count
Sector Number
Cylinder Low
Cylinder High
Drive/Head
Status
Data (16 bit)
Features register
Sector Count
Sector Number
Cylinder Low
Cylinder High
Drive/Head
1F1
1F2
1F3
1F4
1F5
1F6
1F7
171
172
173
174
175
176
177
(Primary or Secondary)
Base Address + 6
(Primary or Secondary)
Base Address + 7
Command
IDE Control Block Registers
Primary
Secondary
BAR1/BAR3
3F6
376
(Primary or Secondary)
Base Address + 2
Alternate Status
Device Control
2.1.3
BAR4 Registers (SATA I/O Register for IDE mode)
BAR4 uses 16 bytes of I/O space. The Bus-master interface base address register (BAR4) defines the base
address of the IO spare.
Register Name
Offset Address
[Primary/Secondary]
00h/08h
Bus-master IDE Command
Bus-master IDE Status
Descriptor Table Pointer
02h/0Ah
04h/0Ch
Bus-master IDE Command - RW- 8 bits - [IO_Reg: BAR4 + 00/08h]
Field Name
Bus Master IDE
Start/Stop
Bits
Default
Description
0
0b
Bus Master IDE Start (1)/Stop (0).
This bit will not be reset by interrupt from IDE device. This must
be reset by soft ware (device driver).
Reserved.
Bus Master IDE r/w (direction) control
0 = Memory -> IDE
Reserved
2:1
3
Bus Master Read/Write
0b
1 = IDE -> Memory
This bit should not change during Bus Master transfer cycle, even
if terminated by Bus Master IDE stop.
Reserved.
Reserved
7:4
©2008 Advanced Micro Devices, Inc.
SATA Registers (Device 18, Function 0)
AMD SB600 Register Reference Manual
Proprietary
Page 24
Bus-master IDE Status - RW- 8 bits - [IO_Reg: BAR4 + 02/0Ah]
Field Name
Bits
Default
Description
Bus Master Active
0
0b
Bus Master IDE active. This bit is set to 1 when bit 0 in the Bus
Master IDE command address register is set to 1. The IDE host
controller sets this bit to 0 when the last transfer for a region is
performed. This bit is also set to 0 when bit 0 of the Bus Master
IDE command register is set to 0.
Bus Master DMA Error
IDE Interrupt
1
2
0b
0b
IDE DMA error. This bit is set when the IDE host controller
encounters a target abort, master abort, or Parity error while
transferring data on the PCI bus. Write ‘1’ clears this bit
IDE Interrupt. Indicates when an IDE device has asserted its
interrupt line. IRQ14 is used for the Primary channel and IRQ15 is
used for the secondary channel. If the interrupt status bit is set to
0, by writing a 1 to this bit while the interrupt line is still at the
active level, this bit remains 0 until another assertion edge is
detected on the interrupt line.
Reserved
Master Device DMA
Capable
Slave Device DMA
Capable
Simplex Only
4:3
5
Reserved.
Device 0 (Master) DMA capable.
0b
0b
0b
6
7
Device 1 (Slave) DMA capable.
Read Only
Simplex only. This bit is hard-wired as 0.
Descriptor Table Pointer - RW- 32 bits - [IO_Reg: BAR4 + 04/0Ch]
Field Name
Reserved
Bits
Default
Description
1:0
0h
Reserved. Always read as 0’s.
Descriptor Table Base
Address
31:2
0000_0000h Base Address of Descriptor Table. These bits correspond to
Address [31-02].
2.1.4
BAR5 Registers
These are the AHCI memory map registers. The base address is defined through the ABAR (BAR5) register.
Register Name
Generic Host Control
Offset Address
00h-23h
Reserved
24h-9Fh
Vendor Specific registers
Port 0 port control registers
Port 1 port control registers
Port 2 port control registers
Port 3 port control registers
A0h-FFh
100h-17Fh
180h-1FFh
200h-27Fh
280h-2FFh
2.1.4.1 Generic Host Control
The following registers apply to the entire HBA.
Register Name
Host Capabilities(CAP)
Global Host Control(GHC)
Interrupt Status(IS)
Ports Implemented(PI)
Offset Address
00h-03h
04h-07h
08h-0Bh
0Ch-0Fh
10h-13h
14h-17h
18h-1Bh
1Ch-1Fh
20h-23h
Version(VS)
Command Completion Coalescing Control(CCC_CTL)
Command Completion Coalescing Ports(CCC_PORTS)
Enclosure Management Location(EM_LOC)
Enclosure Management Control(EM_CTL)
©2008 Advanced Micro Devices, Inc.
SATA Registers (Device 18, Function 0)
Proprietary Page 25
AMD SB600 Register Reference Manual
HBA Capabilities – R - 32bits [Mem_reg: ABAR + 00h]
Field Name
Bits
Default
Description
Number of Ports(NP)
4:0
00011b
0’s based value indicating the maximum number of ports
supported by the HBA silicon. A maximum of 32 ports can be
supported. A value of ‘0h’, indicating one port, is the
minimum requirement. Note that the number of ports
indicated in this field may be more than the number of ports
indicated in the GHC.PI register.
Supports External SATA
(SXS)
5
0b
When set to ‘1’, indicates that the HBA has one or more
Serial ATA ports that has a signal only connector that is
externally accessible. If this bit is set to ‘1’, software may
refer to the PxCMD.ESP bit to determine whether a specific
port has its signal connector externally accessible as a signal
only connector (i.e. power is not part of that connector).
When the bit is cleared to ‘0’, indicates that the HBA has no
Serial ATA ports that have a signal only connector externally
accessible.
Enclosure Management
Supported (EMS)
6
7
0b
1b
When set to ‘1’, indicates that the HBA supports enclosure
management. When enclosure management is supported,
the HBA has implemented the EM_LOC and EM_CTL global
HBA registers. When cleared to ‘0’, indicates that the HBA
does not support enclosure management and the EM_LOC
and EM_CTL global HBA registers are not implemented.
When set to ‘1’, indicates that the HBA supports command
completion coalescing. When command completion
coalescing is supported, the HBA has implemented the
CCC_CTL and the CCC_PORTS global HBA registers.
When cleared to ‘0’, indicates that the HBA does not support
command completion coalescing and the CCC_CTL and
CCC_PORTS global HBA registers are not implemented.
0’s based value indicating the number of command slots per
port supported by this HBA. A minimum of 1 and maximum
of 32 slots per port can be supported. The same number of
command slots is available on each implemented port.
Indicates whether the HBA can support transitions to the
Partial state. When cleared to ‘0’, software must not allow
the HBA to initiate transitions to the Partial state via
aggressive link power management nor the PxCMD.ICC field
in each port, and the PxSCTL.IPM field in each port must be
programmed to disallow device initiated Partial requests.
When set to ‘1’, HBA and device initiated Partial requests can
be supported.
Command Completion
Coalescing Supported
(CCCS)
Number of Command
Slots (NCS)
12:8
11111b
1b
Partial State Capable
(PSC)
13
Slumber State Capable
(SSC)
14
1b
Indicates whether the HBA can support transitions to the
Slumber state. When cleared to ‘0’, software must not allow
the HBA to initiate transitions to the Slumber state via
aggressive link power management nor the PxCMD.ICC field
in each port, and the PxSCTL.IPM field in each port must be
programmed to disallow device initiated Slumber requests.
When set to ‘1’, HBA and device initiated Slumber requests
can be supported.
PIO Multiple DRQ Block
(PMD)
15
16
1b
0b
If set to ‘1’, the HBA supports multiple DRQ block data
transfers for the PIO command protocol. If cleared to ‘0’ the
HBA only supports single DRQ block data transfers for the
PIO command protocol.
When set to ‘1’, indicates that the HBA supports Port
Multiplier FIS-based switching. When cleared to ‘0’, indicates
that the HBA does not support FIS-based switching. AHCI
1.0 and 1.1 HBAs shall have this bit cleared to ‘0’.
FIS-based Switching
Supported (FBSS)
©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual
SATA Registers (Device 18, Function 0)
Proprietary
Page 26
HBA Capabilities – R - 32bits [Mem_reg: ABAR + 00h]
Field Name
Supports Port Multiplier
(SPM)
Bits
Default
Description
17
1b
Indicates whether the HBA can support a Port Multiplier.
When set, a Port Multiplier using command-based switching
is supported. When cleared to ‘0’, a Port Multiplier is not
supported, and a Port Multiplier may not be attached to this
HBA.
Supports AHCI mode
only (SAM)
18
0b
The SATA controller may optionally support AHCI access
mechanisms only. A value of '0' indicates that in addition to
the native AHCI mechanism (via ABAR), the SATA controller
implements a legacy, task-file based register interface such
as SFF-8038i. A value of '1' indicates that the SATA
controller does not implement a legacy, task-file based
register interface.
Supports Non-Zero DMA
Offsets (SNZO)
19
0b
2h
When set to ‘1’, indicates that the HBA can support non-zero
DMA offsets for DMA Setup FISes. This bit is reserved for
future AHCI enhancements. AHCI 1.0 and 1.1 HBAs shall
have this bit cleared to ‘0’.
Interface Speed Support
(ISS)
23:20
Indicates the maximum speed the HBA can support on its
ports. These encodings match the system software
programmable PxSCTL.DET.SPD field. Values are:
Bits
0000
0001
Definition
Reserved
Gen 1 (1.5 Gbps)
Gen 1 (1.5 Gbps) and Gen 2 (3
Gbps)
0010
0011 - 1111
Reserved
Supports Command List
Override (SCLO)
24
1b
When set to ‘1’, the HBA supports the PxCMD.CLO bit and its
associated function. When cleared to ‘0’, the HBA is not
capable of clearing the BSY and DRQ bits in the Status
register in order to issue a software reset if these bits are still
set from a previous operation.
Supports Activity LED
(SAL)
25
26
1b
1b
When set to ‘1’, the HBA supports a single activity indication
output pin. This pin can be connected to an LED on the
platform to indicate device activity on any drive. When
cleared to ‘0’, this function is not supported.
When set to ‘1’, the HBA can support auto-generating link
requests to the Partial or Slumber states when there are no
commands to process. When cleared to ‘0’, this function is
not supported and software shall treat the PxCMD.ALPE and
PxCMD.ASP bits as reserved.
Supports Aggressive
Link Power Management
(SALP)
Supports Staggered
Spin-up (SSS)
27
28
29
0b
1b
1b
When set to ‘1’, the HBA supports staggered spin-up on its
ports, for use in balancing power spikes. When cleared to ‘0’,
this function is not supported. This value is loaded by the
BIOS prior to OS initialization.
When set to ‘1’, the HBA supports mechanical presence
switches on its ports for use in hot plug operations. When
cleared to ‘0’, this function is not supported. This value is
loaded by the BIOS prior to OS initialization.
When set to ‘1’, the HBA supports the PxSNTF
(SNotification) register and its associated functionality.
When cleared to ‘0’, the HBA does not support the
PxSNTF (SNotification) register and its associated
functionality.
Supports Mechanical
Presence Switch (SMPS)
Supports SNotification
Register (SSNTF)
©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual
SATA Registers (Device 18, Function 0)
Proprietary
Page 27
HBA Capabilities – R - 32bits [Mem_reg: ABAR + 00h]
Field Name
Supports Native
Command Queuing
(SNCQ)
Bits
Default
Description
30
1b
Indicates whether the HBA supports Serial ATA native
command queuing. If set to ‘1’, an HBA shall handle DMA
Setup FISes natively, and shall handle the auto-activate
optimization through that FIS. If cleared to ‘0’, native
command queuing is not supported and software should not
issue any native command queuing commands.
Indicates whether the HBA can access 64-bit data structures.
When set to ‘1’, the HBA shall make the 32-bit upper bits of
the port DMA Descriptor, the PRD Base, and each PRD entry
read/write. When cleared to ‘0’, these are read-only and
treated as ‘0’ by the HBA.
Supports 64-bit
Addressing (S64A)
31
1b
Global HBA Control – RW - 32bits [Mem_reg: ABAR + 04h]
Field Name
Bits
Default
Description
HBA Reset (HR)
0
0b
When set by SW, this bit causes an internal reset of the HBA.
All state machines that relate to data transfers and queuing
shall return to an idle condition, and all ports shall be re-
initialized via COMRESET (if staggered spin-up is not
supported). If staggered spin-up is supported, then it is the
responsibility of software to spin-up each port after the reset
has completed.
When the HBA has performed the reset action, it shall reset
this bit to ‘0’. A software write of ‘0’ shall have no effect. For
a description on which bits are reset when this bit is set.
This global bit enables interrupts from the HBA. When
cleared (reset default), all interrupt sources from all ports are
disabled. When set, interrupts are enabled.
Interrupt Enable (IE)
1
2
0b
0b
MSI Revert to Single
Message (MRSM)
Read Only
When set to ‘1’ by hardware, indicates that the HBA
requested more than one MSI vector but has reverted to
using the first vector only. When this bit is cleared to ‘0’, the
HBA has not reverted to single MSI mode (i.e. hardware is
already in single MSI mode, software has allocated the
number of messages requested, or hardware is sharing
interrupt vectors if MC.MME < MC.MMC).
The HBA may revert to single MSI mode when the number of
vectors allocated by the host is less than the number
requested. This bit shall only be set to ‘1’ when the following
conditions hold:
•
•
•
•
MC.MSIE = ‘1’ (MSI is enabled)
MC.MMC > 0 (multiple messages requested)
MC.MME > 0 (more than one message allocated)
MC.MME != MC.MMC (messages allocated not
equal to number requested)
When this bit is set to ‘1’, single MSI mode operation is in use
and software is responsible for clearing bits in the IS register
to clear interrupts.
This bit shall be cleared to ‘0’ by hardware when any of the
four conditions stated is false. This bit is also cleared to ‘0’
when MC.MSIE = ‘1’ and MC.MME = 0h. In this case, the
hardware has been programmed to use single MSI mode,
and is not “reverting” to that mode.
Reserved
30:3
Reserved.
©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual
SATA Registers (Device 18, Function 0)
Proprietary
Page 28
Global HBA Control – RW - 32bits [Mem_reg: ABAR + 04h]
Field Name
Bits
Default
Description
AHCI Enable (AE)
31
0b
When set, indicates that communication to the HBA shall be
via AHCI mechanisms. This can be used by an HBA that
supports both legacy mechanisms (such as SFF-8038i) and
AHCI to know when the HBA is running under an AHCI
driver.
When set, software shall only communicate with the HBA
using AHCI. When cleared, software shall only communicate
with the HBA using legacy mechanisms. When cleared
FISes are not posted to memory and no commands are sent
via AHCI mechanisms.
Software shall set this bit to ‘1’ before accessing other AHCI
registers.
Interrupt Status - RW -32 bits [Mem_reg: ABAR + 08h]
Field Name
Interrupt Pending Status
(IPS)
Bits
Default
0000_
0000h
Description
31:0
If set, indicates that the corresponding port has an interrupt
pending. Software can use this information to determine
which ports require service after an interrupt.
The IPS[x] bit is only defined for ports that are implemented
or for the command completion coalescing interrupt defined
by CCC_CTL.INT. All other bits are reserved.
Write 1 to clear these status bits.
Ports Implemented Register - R -32 bits [Mem_reg: ABAR + 0Ch]
Field Name
Bits
Default
Description
Port Implemented (PI)
31:0
0000000Fh
This register is bit significant. If a bit is set to ‘1’, the
corresponding port is available for software to use. If a bit is
cleared to ‘0’, the port is not available for software to use.
The maximum number of bits set to ‘1’ shall not exceed
CAP.NP + 1, although the number of bits set in this register
may be fewer than CAP.NP + 1. At least one bit shall be set
to ‘1’.
AHCI Version- R – 32 bits [Mem_reg: ABAR + 10h]
Field Name
Minor Version Number
(MNR)
Bits
Default
Description
15:0
0100h
Indicates the minor version is “10”.
Major Version Number
(MJR)
31:16
0001h
Indicates the major version is “1”
Version: V1.10
Command Completion Coalescing Control(CCC_CTL) - RW – 32 bits [Mem_reg: ABAR + 14h]
Field Name
Bits
Default
Description
CCC_CTL Enable
0
0b
When cleared to ‘0’, the command completion coalescing
feature is disabled and no CCC interrupts are generated.
When set to ‘1’, the command completion coalescing feature
is enabled and CCC interrupts may be generated based on
timeout or command completion conditions. Software shall
only change the contents of the TV and CC fields when EN is
cleared to ‘0’. On transition of this bit from ‘0’ to ‘1’, any
updated values for the TV and CC fields shall take effect.
Reserved
Reserved
2:1
©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual
SATA Registers (Device 18, Function 0)
Proprietary
Page 29
Command Completion Coalescing Control(CCC_CTL) - RW – 32 bits [Mem_reg: ABAR + 14h]
Field Name
Bits
Default
Description
CCC Interrupt (INT)
7:3
1Fh
Read Only
Specifies the interrupt used by the CCC feature. This
interrupt must be marked as unused in the Ports
Implemented (PI) register by the corresponding bit being set
to ‘0’. Thus, the CCC interrupt corresponds to the interrupt
for an unimplemented port on the controller. When a CCC
interrupt occurs, the IS.IPS[INT] bit shall be asserted to ‘1’.
This field also specifies the interrupt vector used for MSI.
Specifies the number of command completions that are
necessary to cause a CCC interrupt. The HBA has an
internal command completion counter, hCccComplete.
hCccComplete is incremented by one each time a selected
port has a command completion. When hCccComplete is
equal to the command completions value, a CCC interrupt is
signaled. The internal command completion counter is reset
to ‘0’ on the assertion of each CCC interrupt. A value of ‘0’
for this field shall disable CCC interrupts being generated
based on the number of commands completed, i.e. CCC
interrupts are only generated based on the timer in this case.
The timeout value is specified in 1 millisecond intervals. The
timer accuracy shall be within 5%. hCccTimer is loaded with
this timeout value. The hCccTimer is only decremented when
commands are outstanding on selected ports. The HBA will
signal a CCC interrupt when hCccTimer has decremented to
‘0’. The hCccTimer is reset to the timeout value on the
assertion of each CCC interrupt. A timeout value of ‘0’ is
reserved.
Command Completions
(CC)
15:8
01h
Timeout Value (TV)
31:16
0001h
Command Completion Coalescing Ports - RW – 32 bits [Mem_reg: ABAR + 18h]
Field Name
Bits
Default
Description
Ports (PRT)
31:0
00000000h
This register is bit significant. Each bit corresponds to a
particular port, where bit 0 corresponds to port 0. If a bit is
set to ‘1’, the corresponding port is part of the command
completion coalescing feature. If a bit is cleared to ‘0’, the
port is not part of the command completion coalescing
feature. Bits set to ‘1’ in this register must also have the
corresponding bit set to ‘1’ in the Ports Implemented register.
An updated value for this field shall take effect within one
timer increment (1 millisecond).
©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual
SATA Registers (Device 18, Function 0)
Proprietary
Page 30
2.1.4.2 Port Registers (One Set Per Port)
The algorithm for the software to determine the offset is as follows:
•
Port offset = 100h + (PI Asserted Bit Position * 80h)
Register Name
Port-N Command List Base Address(PNCLB)
Port-N Command List Base Address Upper 32-
Bits(PNCLBU)
Offset Address
00h-03h + Port offset
04h-07h + Port offset
Port-N FIS Base Address(PNFB)
08h-0Bh + Port offset
0Ch-0Fh + Port offset
10h-13h + Port offset
14h-17h + Port offset
18h-1Bh + Port offset
1Ch-1Fh + Port offset
20h-23h + Port offset
24h-27h + Port offset
28h-2Bh + Port offset
2Ch-2Fh + Port offset
30h-33h + Port offset
34h-37h + Port offset
38h-3Bh + Port offset
3Ch-3Fh + Port offset
40h-43h + Port offset
44h-6Fh + Port offset
70h-7Fh + Port offset
Port-N FIS Base Address Upper 32-Bits(PNFBU)
Port-N Interrupt Status(PNIS)
Port-N Interrupt Enable(PNIE)
Port-N Command and Status(PNCMD)
Reserved
Port-N Task File Data(PNTFD)
Port-N Signature(PNSIG)
Port-N Serial ATA Status (PNSSTS)
Port-N Serial ATA Control (PNSCTL)
Port-N Serial ATA Error (PNSERR)
Port-N Serial ATA Active (PNSACT)
Port-N Command Issue(PNCI)
Port-N SNotification (PNSNTF)
Reserved for FIS-based Switching Definition
Reserved
Port-N Vendor Specific(PNVS)
*N is the port number, 0 ~ 3
Port-N Command List Base Address -RW -32 bits [Mem_reg: ABAR + port offset + 00h]
Field Name
Bits
Default
Description
Reserved
9:0
Reserved.
Command List Base
Address (CLB)
31:10
000000h
Indicates the 32-bit base physical address for the command
list for this port. This base is used when fetching commands
to execute. The structure pointed to by this address range is
1K-bytes in length. This address must be 1K-byte aligned as
indicated by bits 09:00 being read only.
Port-N Command List Base Upper Address -RW - 32 bits [Mem_reg: ABAR + port offset + 04h]
Field Name
Bits
Default
Description
Command List Base
Address Upper (CLBU)
31:0
00000000h
Indicates the upper 32-bits for the command list base
physical address for this port. This base is used when
fetching commands to execute.
This register shall be read only ‘0’ for HBAs that do not
support 64-bit addressing.
Port–N FIS Base Address -RW -32 bits [Mem_reg: ABAR + port offset + 08h]
Field Name
Reserved
FIS Base Address (FB)
Bits
7:0
31:8
Default
Description
Reserved.
000000h
Indicates the 32-bit base physical address for received FISes.
The structure pointed to by this address range is 256 bytes in
length. This address must be 256-byte aligned as indicated
by bits 07:00 being read only.
©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual
SATA Registers (Device 18, Function 0)
Proprietary
Page 31
Port-N FIS Base Address Upper –RW – 32 bits [Mem_reg: ABAR + port offset + 0Ch]
Field Name
FIS Base Address Upper
(FBU)
Bits
31:0
Default
0000_
0000h
Description
Indicates the upper 32-bits for the received FIS base physical
address for this port.
This register shall be read only ‘0’ for HBAs that do not
support 64-bit addressing.
Port–N Interrupt Status - RW - 32 bits [Mem_reg: ABAR + port offset + 10h]
Field Name
Device to Host Register
FIS Interrupt (DHRS)
PIO Setup FIS Interrupt
(PSS)
Bits
0
Default
Description
0b
A D2H Register FIS has been received with the ‘I’ bit set, and
has been copied into system memory.
A PIO Setup FIS has been received with the ‘I’ bit set, it has
been copied into system memory, and the data related to that
FIS has been transferred. This bit shall be set even if the
data transfer resulted in an error.
1
0b
DMA Setup FIS Interrupt
(DSS)
Set Device Bits Interrupt
(SDBS)
Unknown FIS Interrupt
(UFS)
2
3
4
0b
0b
0b
A DMA Setup FIS has been received with the ‘I’ bit set and
has been copied into system memory.
A Set Device Bits FIS has been received with the ‘I’ bit set
and has been copied into system memory.
Read Only
When set to ‘1’, indicates that an unknown FIS was received
and has been copied into system memory. This bit is cleared
to ‘0’ by software clearing the PxSERR.DIAG.F bit to ‘0’.
Note that this bit does not directly reflect the PxSERR.DIAG.F
bit. PxSERR.DIAG.F is set immediately when an unknown
FIS is detected, whereas this bit is set when that FIS is
posted to memory. Software should wait to act on an
unknown FIS until this bit is set to ‘1’ or the two bits may
become out of sync.
Descriptor Processed
(DPS)
Port Connect Change
Status (PCS)
5
6
0b
0b
A PRD with the ‘I’ bit set has transferred all of its data.
Read Only
1=Change in Current Connect Status. 0=No change in
Current Connect Status. This bit reflects the state of
PxSERR.DIAG.X. This bit is only cleared when
PxSERR.DIAG.X is cleared.
Device Mechanical
Presence Status (DMPS)
7
0b
When set, indicates that a mechanical presence switch
attached to this port has been opened or closed, which may
lead to a change in the connection state of the device. This
bit is only valid if both CAP.SMPS and P0CMD.MPSP are set
to ‘1’.
Reserved
PhyRdy Change Status
(PRCS)
21:8
22
Reserved
Read Only
0b
0b
When set to ‘1’ indicates the internal PhyRdy signal changed
state. This bit reflects the state of P0SERR.DIAG.N. To
clear this bit, software must clear P0SERR.DIAG.N to ‘0’.
Indicates that the HBA received a FIS from a device whose
Port Multiplier field did not match what was expected. The
IPMS bit may be set during enumeration of devices on a Port
Multiplier due to the normal Port Multiplier enumeration
process. It is recommended that IPMS only be used after
enumeration is complete on the Port Multiplier.
Indicates that the HBA received more bytes from a device
than was specified in the PRD table for the command.
Reserved
Incorrect Port Multiplier
Status (IPMS)
23
24
Overflow Status (OFS)
0b
Reserved
Interface Non-fatal Error
Status (INFS)
Interface Fatal Error
Status (IFS)
25
26
0b
0b
Indicates that the HBA encountered an error on the Serial
ATA interface but was able to continue operation.
Indicates that the HBA encountered an error on the Serial
ATA interface which caused the transfer to stop.
27
©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual
SATA Registers (Device 18, Function 0)
Proprietary
Page 32
Port–N Interrupt Status - RW - 32 bits [Mem_reg: ABAR + port offset + 10h]
Field Name
Host Bus Data Error
Status (HBDS)
Bits
28
Default
Description
0b
Indicates that the HBA encountered a data error
(uncorrectable ECC / parity) when reading from or writing to
system memory.
Host Bus Fatal Error
Status (HBFS)
29
0b
Indicates that the HBA encountered a host bus error that it
cannot recover from, such as a bad software pointer. In PCI,
such an indication would be a target or master abort.
This bit is set whenever the status register is updated by the
device and the error bit (bit 0) is set.
When set, a device status has changed as detected by the
cold presence detect logic. This bit can either be set due to a
non-connected port receiving a device, or a connected port
having its device removed. This bit is only valid if the port
supports cold presence detect as indicated by PxCMD.CPD
set to ‘1’.
Task File Error Status
(TFES)
Cold Port Detect Status
(CPDS)
30
31
0b
0b
Write 1 to clear these status bits.
Port-N Interrupt Enable - RW -32 bits [Mem_reg: ABAR + port offset + 14h]
Field Name
Device to Host Register
FIS Interrupt Enable
(DHRE)
Bits
0
Default
Description
When set, GHC.IE is set, and P0IS.DHRS is set, the HBA
shall generate an interrupt.
0b
PIO Setup FIS Interrupt
Enable (PSE)
DMA Setup FIS Interrupt
Enable (DSE)
Set Device Bits FIS
Interrupt Enable (SDBE)
Unknown FIS Interrupt
Enable (UFE)
Descriptor Processed
Interrupt Enable (DPE)
Port Change Interrupt
Enable (PCE)
1
2
3
4
5
6
7
0b
0b
0b
0b
0b
0b
0b
When set, GHC.IE is set, and P0IS.PSS is set, the HBA shall
generate an interrupt.
When set, GHC.IE is set, and P0IS.DSS is set, the HBA shall
generate an interrupt.
When set, GHC.IE is set, and P0IS.SDBS is set, the HBA
shall generate an interrupt.
When set, GHC.IE is set, and P0IS.UFS is set to ‘1’, the HBA
shall generate an interrupt.
When set, GHC.IE is set, and P0IS.DPS is set, the HBA shall
generate an interrupt.
When set, GHC.IE is set, and P0IS.PCS is set, the HBA shall
generate an interrupt.
Device Mechanical
Presence Enable
(DMPE)
When set, and GHC.IE is set to ‘1’, and P0IS.DMPS is set,
the HBA shall generate an interrupt.
For systems that do not support a mechanical presence
switch, this bit shall be a read-only ‘0’.
Reserved
When set to ‘1’, and GHC.IE is set to ‘1’, and P0IS.PRCS is
set to ‘1’, the HBA shall generate an interrupt.
When set, and GHC.IE and P0IS.IPMS are set, the HBA shall
generate an interrupt.
Reserved
PhyRdy Change Interrupt
Enable (PRCE)
Incorrect Port Multiplier
Enable (IPME)
Overflow Enable (OFE)
21:8
22
0b
0b
0b
23
24
When set, and GHC.IE and P0IS.OFS are set, the HBA shall
generate an interrupt.
Reserved
Interface Non-fatal Error
Enable (INFE)
Interface Fatal Error
Enable (IFE)
Host Bus Data Error
Enable (HBDE)
Host Bus Fatal Error
Enable (HBFE)
Task File Error Enable
(TFEE)
25
26
Reserved
0b
0b
0b
0b
0b
When set, GHC.IE is set, and P0IS.INFS is set, the HBA shall
generate an interrupt.
When set, GHC.IE is set, and P0IS.IFS is set, the HBA shall
generate an interrupt.
When set, GHC.IE is set, and P0IS.HBDS is set, the HBA
shall generate an interrupt.
When set, GHC.IE is set, and P0IS.HBFS is set, the HBA
shall generate an interrupt.
27
28
29
30
When set, GHC.IE is set, and P0S.TFES is set, the HBA shall
generate an interrupt.
©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual
SATA Registers (Device 18, Function 0)
Proprietary
Page 33
Port-N Interrupt Enable - RW -32 bits [Mem_reg: ABAR + port offset + 14h]
Field Name
Cold Presence Detect
Enable (CPDE)
Bits
31
Default
Description
0b
When set, GHC.IE is set, and P0S.CPDS is set, the HBA
shall generate an interrupt.
For systems that do not support cold presence detect, this bit
shall be a read-only ‘0’.
Port-N Command and Status - R - 32 bits [Mem_reg: ABAR + port offset + 18h]
Field Name
Bits
Default
Description
Start (ST)
0
0b
RW
When set, the HBA may process the command list. When
cleared, the HBA may not process the command list.
Whenever this bit is changed from a ‘0’ to a ‘1’, the HBA
starts processing the command list at entry ‘0’. Whenever
this bit is changed from a ‘1’ to a ‘0’, the PxCI register is
cleared by the HBA upon the HBA putting the controller into
an idle state. This bit shall only be set to ‘1’ by software after
PxCMD.FRE has been set to ‘1’.
Spin-Up Device (SUD)
Power On Device (POD)
1
1b
This bit is read/write for HBAs that support staggered spin-up
via CAP.SSS. This bit is read only ‘1’ for HBAs that do not
support staggered spin-up. On an edge detect from ‘0’ to ‘1’,
the HBA shall start a COMRESET initialization sequence to
the device. Clearing this bit to ‘0’ does not cause any OOB
signal to be sent on the interface. When this bit is cleared to
‘0’ and PxSCTL.DET=0h, the HBA will enter listen mode.
This bit is read/write for HBAs that support cold presence
detection on this port as indicated by PxCMD.CPD set to ‘1’.
This bit is read only ‘1’ for HBAs that do not support cold
presence detect. When set, the HBA sets the state of a pin
on the HBA to ‘1’ so that it may be used to provide power to a
cold-presence detectable port.
2
3
1b
0b
Command List Override
(CLO)
RW
Setting this bit to ‘1’ causes PxTFD.STS.BSY and
PxTFD.STS.DRQ to be cleared to ‘0’. This allows a software
reset to be transmitted to the device regardless of whether
the BSY and DRQ bits are still set in the PxTFD.STS register.
The HBA sets this bit to ‘0’ when PxTFD.STS.BSY and
PxTFD.STS.DRQ have been cleared to ‘0’. A write to this
register with a value of ‘0’ shall have no effect.
This bit shall only be set to ‘1’ immediately prior to setting the
PxCMD.ST bit to ‘1’ from a previous value of ‘0’. Setting this
bit to ‘1’ at any other time is not supported and will result in
indeterminate behavior. Software must wait for CLO to be
cleared to ‘0’ before setting PxCMD.ST to ‘1’.
FIS Receive Enable
(FRE)
4
0b
RW
When set, the HBA may post received FISes into the FIS
receive area pointed to by PxFB (and for 64-bit HBAs,
PxFBU). When cleared, received FISes are not accepted by
the HBA, except for the first D2H register FIS after the
initialization sequence, and no FISes are posted to the FIS
receive area.
System software must not set this bit until PxFB (PxFBU)
have been programmed with a valid pointer to the FIS receive
area, and if software wishes to move the base, this bit must
first be cleared, and software must wait for the FR bit in this
register to be cleared
Reserved
7:5
Reserved
©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual
SATA Registers (Device 18, Function 0)
Proprietary
Page 34
Port-N Command and Status - R - 32 bits [Mem_reg: ABAR + port offset + 18h]
Field Name
Current Command Slot
(CCS)
Bits
12:8
Default
00h
Description
This field is valid when P0CMD.ST is set to ‘1’ and shall be
set to the command slot value of the command that is
currently being issued by the HBA. When P0CMD.ST
transitions from ‘1’ to ‘0’, this field shall be reset to ‘0’. After
P0CMD.ST transitions from ‘0’ to ‘1’, the highest priority slot
to issue from next is command slot 0. After the first
command has been issued, the highest priority slot to issue
from next is P0CMD.CCS + 1. For example, after the HBA
has issued its first command, if CCS = 0h and P0CI is set to
3h, the next command that will be issued is from command
slot 1.
Mechanical Presence
Switch State (MPSS)
13
1b
The MPSS bit reports the state of a mechanical presence
switch attached to this port. If CAP.SMPS is set to ‘1’ and the
mechanical presence switch is closed then this bit is cleared
to ‘0’. If CAP.SMPS is set to ‘1’ and the mechanical presence
switch is open then this bit is set to ‘1’. If CAP.SMPS is set to
‘0’ then this bit is cleared to ‘0’. Software should only use this
bit if both CAP.SMPS and P0CMD.MPSP are set to ‘1’.
When set, the FIS Receive DMA engine for the port is
running.
When this bit is set, the command list DMA engine for the
port is running. See the AHCI state machine in section.
The CPS bit reports whether a device is currently detected on
this port via cold presence detection. If CPS is set to ‘1’, then
the HBA detects via cold presence that a device is attached
to this port. If CPS is cleared to ‘0’ , then the HBA detects via
cold presence that there is no device attached to this port.
RW
This bit is read/write for HBAs that support a Port Multiplier
(CAP.SPM = ‘1’). This bit is read-only for HBAs that do not
support a port Multiplier (CAP.SPM = ‘0’). When set to ‘1’ by
software, a Port Multiplier is attached to the HBA for this port.
When cleared to ‘0’ by software, a Port Multiplier is not
attached to the HBA for this port. Software is responsible for
detecting whether a Port Multiplier is present; hardware does
not auto-detect the presence of a Port Multiplier.
When set to ‘1’, indicates that this port’s signal and power
connectors are externally accessible via a joint signal and
power connector for blindmate device hot plug. When
cleared to ‘0’, indicates that this port’s signal and power
connectors are not externally accessible via a joint signal and
power connector.
FIS Receive Running
(FR)
Command List Running
(CR)
Cold Presence State
(CPS)
14
15
16
0b
0b
0b
Port Multiplier Attached
(PMA)
17
0b
Hot Plug Capable Port
(HPCP)
18
19
1b
0b
Mechanical Presence
Switch Attached to Port
(MPSP)
If set to ‘1’, the platform supports an mechanical presence
switch attached to this port. If cleared to ‘0’, the platform
does not support a mechanical presence switch attached to
this port. When this bit is set to ‘1’, P0CMD.HPCP should
also be set to ‘1’.
Cold Presence Detection
(CPD)
20
21
0b
0b
If set to ‘1’, the platform supports cold presence detection on
this port. If cleared to ‘0’, the platform does not support cold
presence detection on this port. When this bit is set to ‘1’,
P0CMD.HPCP should also be set to ‘1’.
When set to '1', indicates that this port’s signal connector is
externally accessible on a signal only connector. When set to
'1', CAP.SXS shall be set to '1'. When cleared to ‘0’, indicates
that this port’s signal connector is not externally accessible
on a signal only connector. ESP is mutually exclusive with
the HPCP bit in this register.
External SATA Port
(ESP)
Reserved
23:22
Reserved
©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual
SATA Registers (Device 18, Function 0)
Proprietary
Page 35
Port-N Command and Status - R - 32 bits [Mem_reg: ABAR + port offset + 18h]
Field Name
Bits
Default
Description
Device is ATAPI (ATAPI)
24
0b
RW
When set to ‘1’, the connected device is an ATAPI device.
This bit is used by the HBA to control whether or not to
generate the desktop LED when commands are active.
RW
When set to ‘1’, the HBA shall drive the LED pin active for
commands regardless of the state of P0CMD.ATAPI. When
cleared, the HBA shall only drive the LED pin active for
commands if P0CMD.ATAPI set to ‘0’.
Drive LED on ATAPI
Enable (DLAE)
25
26
0b
0b
Aggressive Link Power
Management Enable
(ALPE)
RW
When set to ‘1’, the HBA shall aggressively enter a lower link
power state (Partial or Slumber) based upon the setting of the
ASP bit. Software shall only set this bit to ‘1’ if CAP.SALP is
set to ‘1’; if CAP.SALP is cleared to ‘0’ software shall treat
this bit as reserved.
Aggressive Slumber /
Partial (ASP)
27
0b
RW
When set to ‘1’, and ALPE is set, the HBA shall aggressively
enter the Slumber state when it clears the PxCI register and
the PxSACT register is cleared or when it clears the PxSACT
register and PxCI is cleared. When cleared, and ALPE is set,
the HBA shall aggressively enter the Partial state when it
clears the PxCI register and the PxSACT register is cleared
or when it clears the PxSACT register and PxCI is cleared. If
CAP.SALP is cleared to ‘0’ software shall treat this bit as
reserved.
©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual
SATA Registers (Device 18, Function 0)
Proprietary
Page 36
Port-N Command and Status - R - 32 bits [Mem_reg: ABAR + port offset + 18h]
Field Name
Interface Communication
Control (ICC)
Bits
31:28
Default
Description
0h
RW
This field is used to control power management states of the
interface. If the Link layer is currently in the L_IDLE state,
writes to this field shall cause the HBA to initiate a transition
to the interface power management state requested. If the
Link layer is not currently in the L_IDLE state, writes to this
field shall have no effect.
Value
Fh - 7h Reserved
6h
Slumber: This shall cause the HBA to
Definition
request a transition of the interface to the
Slumber state. The SATA device may
reject the request and the interface shall
remain in its current state.
5h - 3h Reserved
2h
Partial: This shall cause the HBA to
request a transition of the interface to the
Partial state. The SATA device may reject
the request and the interface shall remain
in its current state.
1h
0h
Active: This shall cause the HBA to
request a transition of the interface into the
active state.
No-Op / Idle: When software reads this
value, it indicates the HBA is ready to
accept a new interface control command,
although the transition to the previously
selected state may not yet have occurred.
When the system software writes a non-reserved value other
than No-Op (0h), the HBA shall perform the action and
update this field back to Idle (0h).
If software writes to this field to change the state to a state
the link is already in (i.e. interface is in the active state and a
request is made to go to the active state), the HBA shall take
no action and return this field to Idle. If the interface is in a
low power state and software wants to transition to a different
low power state, software must first bring the link to active
and then initiate the transition to the desired low power state.
©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual
SATA Registers (Device 18, Function 0)
Proprietary
Page 37
Port-N Task Fike Data – R – 32 bits [Mem_reg: ABAR + port offset + 20h]
Field Name
Bits
Default
Description
Status (STS)
7:0
7Fh
Contains the latest copy of the task file status register. Fields
of note in this register that affect AHCI hardware operation
are:
Bit
7
Field Definition
BSY
cs
Indicates the interface is busy
Command specific
6:4
3
DRQ Indicates a data transfer is requested
cs Command specific
ERR Indicates an error during the transfer.
2:1
0
ERROR
Reserved
15:8
31:16
00h
Contains the latest copy of the task file error register.
Reserved
Port-N Signature – R – 32 bits [Mem_reg: ABAR + port offset + 24h]
Field Name
Bits
Default
Description
Signature (SIG)
31:0
FFFFFFFFh
Contains the signature received from a device on the first
D2H Register FIS. The bit order is as follows:
Bit
Field
31:24 LBA High Register
23:16 LBA Mid Register
15:08 LBA Low Register
07:00 Sector Count Register
It is updated once after a reset sequence.
Port-N Serial ATA Status – R – 32 bits [Mem_reg: ABAR + port offset + 28h]
Field Name
Bits
Default
Description
Device Detection (DET)
3:0
0h
Indicates the interface device detection and Phy state.
0h
No device detected and Phy communication not
established
1h
Device presence detected but Phy communication
not established
3h
Device presence detected and Phy communication
established
4h
Phy in offline mode as a result of the interface
being disabled or running in a BIST loopback mode
All other values reserved. Read Only
Current Interface Speed
(SPD)
7:4
0h
Indicates the negotiated interface communication speed.
0h
Device not present or communication not
established
1h
2h
Generation 1 communication rate negotiated
Generation 2 communication rate negotiated
All other values reserved. Read Only
©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual
SATA Registers (Device 18, Function 0)
Proprietary Page 38
Port-N Serial ATA Status – R – 32 bits [Mem_reg: ABAR + port offset + 28h]
Field Name
Bits
Default
Description
Interface Power
Management (IPM)
11:8
0h
Indicates the current interface state:
0h
Device not present or communication not
established
1h
2h
6h
Interface in active state
Interface in Partial power management state
Interface in Slumber power management state
All other values reserved. Read Only
Reserved
Reserved
31:12
Port-N Serial ATA Control – RW – 32 bits [Mem_reg: ABAR + port offset + 2Ch]
Field Name
Device Detection
Initialization (DET)
Bits
3:0
Default
Description
0h
Controls the HBA’s device detection and interface
initialization.
0h
No device detection or initialization action
requested
1h
Perform interface communication initialization
sequence to establish communication. This is
functionally equivalent to a hard reset and results
in the interface being reset and communications
reinitialized. While this field is 1h, COMRESET is
transmitted on the interface. Software should
leave the DET field set to 1h for a minimum of 1
millisecond to ensure that a COMRESET is sent
on the interface.
4h
Disable the Serial ATA interface and put Phy in
offline mode.
All other values reserved
This field may only be modified when P0CMD.ST is ‘0’.
Changing this field while the P0CMD.ST bit is set to ‘1’
results in undefined behavior. When P0CMD.ST is set to ‘1’,
this field should have a value of 0h.
Note: It is permissible to implement any of the Serial ATA
defined behaviors for transmission of COMRESET when
DET=1h.
Speed Allowed (SPD)
7:4
0h
Indicates the highest allowable speed of the interface.
0h
1h
No speed negotiation restrictions
Limit speed negotiation to Generation 1
communication rate
2h Limit speed negotiation to a rate not greater than
Generation 2 communication rate
All other values reserved
©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual
SATA Registers (Device 18, Function 0)
Proprietary Page 39
Port-N Serial ATA Control – RW – 32 bits [Mem_reg: ABAR + port offset + 2Ch]
Field Name
Bits
Default
Description
Interface Power
Management Transitions
Allowed (IPM)
11:8
0h
Indicates which power states the HBA is allowed to transition
to. If an interface power management state is disabled, the
HBA is not allowed to initiate that state and the HBA must
PMNAKP any request from the device to enter that state.
0h
1h
2h
No interface restrictions
Transitions to the Partial state disabled
Transitions to the Slumber state disabled
Transitions to both Partial and Slumber states
3h
disabled
All other values reserved
Read Only
Select Power
Management (SPM)
Port Multiplier Port
(PMP)
15:12
19:16
31:20
0h
0h
Read Only
Reserved
Reserved
©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual
SATA Registers (Device 18, Function 0)
Proprietary Page 40
Port-N Serial ATA Error – RW – 32 bits [Mem_reg: ABAR + port offset + 30h]
Field Name
Bits
Default
Description
ERROR
15:0
0000h
The ERR field contains error information for use by host
software in determining the appropriate response to the error
condition.
15:12 Reserved
Internal Error (E): The host bus adapter
experienced an internal error that caused the
operation to fail and may have put the host bus
adapter into an error state. The internal error
may include a master or target abort when
attempting to access system memory, an
11
elasticity buffer overflow, a primitive mis-
alignment, a synchronization FIFO overflow, and
other internal error conditions. Typically when an
internal error occurs, a non-fatal or fatal status bit
in the PxIS register will also be set to give
software guidance on the recovery mechanism
required.
Protocol Error (P): A violation of the Serial ATA
protocol was detected.
10
9
Persistent Communication or Data Integrity
Error (C): A communication error that was not
recovered occurred that is expected to be
persistent. Persistent communications errors
may arise from faulty interconnect with the
device, from a device that has been removed or
has failed, or a number of other causes.
Transient Data Integrity Error (T): A data
integrity error occurred that was not recovered by
the interface. This bit is set upon any error when
a Data FIS is received, including reception FIFO
overflow, CRC error or 10b8b decoding error.
8
7:2
Reserved
Recovered Communications Error (M):
Communications between the device and host
was temporarily lost but was re-established. This
can arise from a device temporarily being
removed, from a temporary loss of Phy
synchronization, or from other causes and may
be derived from the PhyNRdy signal between the
Phy and Link layers.
1
0
Recovered Data Integrity Error (I): A data
integrity error occurred that was recovered by the
interface through a retry operation or other
recovery action. This bit is set upon any error
when a Data FIS is received, including reception
FIFO overflow, CRC error or 10b8b decoding
error.
Write 1 to clear these bits.
©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual
SATA Registers (Device 18, Function 0)
Proprietary Page 41
Port-N Serial ATA Error – RW – 32 bits [Mem_reg: ABAR + port offset + 30h]
Field Name
Bits
Default
Description
Diagnostics (DIAG)
31:16
0000h
Contains diagnostic error information for use by diagnostic
software in validating correct operation or isolating failure
modes:
Write ‘1’ clears these bits
31:27 Reserved
Exchanged (X): When set to one this bit
26
25
indicates a COMINIT signal was received. This
bit is reflected in the P0IS.PCS bit.
Unknown FIS Type (F): Indicates that one or
more FISs were received by the Transport layer
with good CRC, but had a type field that was not
recognized/known.
Transport state transition error (T): Indicates
that an error has occurred in the transition from
one state to another within the Transport layer
since the last time this bit was cleared. This bit is
always 0 in current implementation.
24
23
Link Sequence Error (S): Indicates that one or
more Link state machine error conditions was
encountered. The Link Layer state machine
defines the conditions under which the link layer
detects an erroneous transition. This bit is always
0 in current implementation.
Handshake Error (H): Indicates that one or more
R_ERR handshake response was received in
response to frame transmission. Such errors may
be the result of a CRC error detected by the
recipient, a disparity or 8b/10b decoding error, or
other error condition leading to a negative
handshake on a transmitted frame.
22
CRC Error (C): Indicates that one or more CRC
errors occurred with the Link Layer.
21
20
Disparity Error (D): This field is not used by
AHCI. This bit is always 0 in current
implementation.
10B to 8B Decode Error (B): Indicates that one
or more 10B to 8B decoding errors occurred.
19
18
Comm Wake (W): Indicates that a Comm Wake
signal was detected by the Phy.
Phy Internal Error (I): Indicates that the Phy
detected some internal error. This bit is always 0
in current implementation.
17
16
PhyRdy Change (N): Indicates that the PhyRdy
signal changed state. This bit is reflected in the
P0IS.PRCS bit.
©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual
SATA Registers (Device 18, Function 0)
Proprietary
Page 42
Port-N Serial ATA Active – RW – 32 bits [Mem_reg: ABAR + port offset + 34h]
Field Name
Bits
Default
Description
Device Status (DS)
31:0
00000000h
This field is bit significant. Each bit corresponds to the TAG
and command slot of a native queued command, where bit 0
corresponds to TAG 0 and command slot 0. This field is set
by software prior to issuing a native queued command for a
particular command slot. Prior to writing PxCI[TAG] to ‘1’,
software will set DS[TAG] to ‘1’ to indicate that a command
with that TAG is outstanding. The device clears bits in this
field by sending a Set Device Bits FIS to the host. The HBA
clears bits in this field that are set to ‘1’ in the SActive field of
the Set Device Bits FIS. The HBA only clears bits that
correspond to native queued commands that have completed
successfully.
Software should only write this field when PxCMD.ST is set to
‘1’. This field is cleared when PxCMD.ST is written from a ‘1’
to a ‘0’ by software. This field is not cleared by a
COMRESET or a software reset.
Port-N Command Issue – RW – 32 bits [Mem_reg: ABAR + port offset + 38h]
Field Name
Bits
Default
Description
Commands Issued (CI)
31:0
00000000h
This field is bit significant. Each bit corresponds to a
command slot, where bit 0 corresponds to command slot 0.
This field is set by software to indicate to the HBA that a
command has been built in system memory for a command
slot and may be sent to the device. When the HBA receives
a FIS which clears the BSY, DRQ, and ERR bits for the
command, it clears the corresponding bit in this register for
that command slot. Bits in this field shall only be set to ‘1’ by
software when PxCMD.ST is set to ‘1’.
This field is also cleared when PxCMD.ST is written from a ‘1’
to a ‘0’ by software.
Port- N SNotification – RWC – 32 bits [Mem_reg: ABAR + port offset + 3Ch]
Field Name
Bits
Default
Description
PM Notify (PMN)
15:0
0000h
This field indicates whether a particular device with the
corresponding PM Port number issued a Set Device Bits FIS
to the host with the Notification bit set.
PM Port 0h sets bit 0
…
PM Port Fh sets bit 15
Individual bits are cleared by software writing 1’s to the
corresponding bit positions.
This field is reset to default on a HBA Reset, but it is not reset
by COMRESET or software reset.
Reserved
31:16
Reserved
©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual
SATA Registers (Device 18, Function 0)
Proprietary
Page 43
2.2
OCHI USB 1.1 and EHCI USB 2.0 Controllers
Note: Some USB functions are controlled by, and associated with, certain PCI configuration registers in the
SMBus/ACPI device. For more information refer to section 2.3: SMBus Module and ACPI Block (Device 20,
Function 0). The diagram below lists these USB functions and the associated registers.
USB
OHCI / EHCI Controller Enables
USB Reset / PowerDown
USB Legacy control
USB Smart Power Control
USB PM & SMI Control
PCI_Reg:
61/64/65/68/6Bh
ACh
0Fh 78h
3Ch
BEh
5B/5Ch
2.2.1
OHCI Registers (Device 19, Function 0, 1, 2, 3, 4)
2.2.1.1 PCI Configuration Registers (PCI_Reg)
There are 5 Open-HCI compatible USB host controllers present (functions 0, 1, 2, 3, and 4), and each has
their own set of registers. This section describes the configuration registers necessary for the OpenHCI-
compliant USB Host Controllers to interface with other system components in a PCI-based PC host. These
registers are accessed for set-up during PCI initialization or through special cycles during normal system
runtime. Below is summary of the registers that are necessary for the OpenHCI-compliant USB Host
Controller to be successfully configured in a PCI-based PC host.
OHCI0 – PCI config
Register Name
Device / Vendor ID
Command
Offset Address
00h
04h
Status
06h
Revision ID / Class Code
Miscellaneous
08h
0Ch
BAR_OHCI
10h
Subsystem Vendor ID / Subsystem ID
Capability Pointer
Interrupt Line
2Ch
34h
3Ch
Config Timers / MSI Disable
Port Disable Control
OHCI Misc Control
Over Current Control 1
Over Current Control 2
OHCI OverCurrent Enable
Target Timeout Control
MSI Control
40h – 41h
42h – 43h
50h
58h
5Ch
68h – 69h
74h
D0h
MSI Address
D4h
MSI Data
D8h
HT MSI Support
E4h
OHCI1/2/3/4 – PCI config
©2008 Advanced Micro Devices, Inc.
OCHI USB 1.1 and EHCI USB 2.0 Controllers
AMD SB600 Register Reference Manual
Proprietary
Page 44
Register Name
Device / Vendor ID
Command
Offset Address
00h
04h
06h
08h
0Ch
10h
2Ch
34h
3Ch
D0h
D4h
D8h
Status
Revision ID / Class Code
Miscellaneous
BAR_OHCI
Subsystem Vendor ID / Subsystem ID
Capability Pointer
Interrupt Line
MSI Control
MSI Address
MSI Data
Figure 3 PCI Configuration Spaces for OHCI
There are 5 OHCI compatible USB host controllers present (functions 0, 1, 2, 3 and 4), and each has their
own set of registers.
Device / Vendor ID – R - 32 bits - [PCI_Reg : 00h]
Field Name
VEND_ID
Bits
15:0
Default
Description
1002h
Vendor ID
©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual
OCHI USB 1.1 and EHCI USB 2.0 Controllers
Proprietary Page 45
Device / Vendor ID – R - 32 bits - [PCI_Reg : 00h]
Field Name
DEV_ID
Bits
31:16
Default
Description
Function 0: 4387h
Function 1: 4388h
Function 2: 4389h
Function 3: 438Ah
Function 4: 438Bh
Device ID
Command – RW - 16 bits - [PCI_Reg : 04h]
Field Name
IO Space
Bits
0
Default
Description
0b
A value of 0 disables the device response.
Accesses
A value of 1 allows the device to respond to I/O Space accesses.
Memory Space
Accesses
Bus Master
1
2
0b
0b
A value of 0 disables the device response.
A value of 1 allows the device to respond to Memory Space accesses.
A value of 0 disables the device from generating PCI accesses.
A value of 1 allows the device to behave as a bus master.
Hard-wired to 0, indicating no Special Cycle support.
When it is 0, Memory Write must be used.
Special Cycle
Memory Write
and Invalidate
Command
3
4
0b
0b
When it is 1, masters may generate the command.
VGA Palette
Register
Accesses
5
6
0b
0b
Hard-wired to 0, indicating the device should treat palette write accesses
like all other accesses.
Parity Enable
When it is 1, the device must take its normal action when a parity error is
detected.
When it is 0, the device sets its Detected Parity Error status bit (bit 15 in
the Status register) when an error is detected, but continues normal
operations without asserting PERR#.
Reserved
SERR# Enable
7
8
0b
0b
Hard-wired to 0 per PCI2.3 spec.
A value of 0 disables the SERR# driver.
A value of 1 enables the SERR# driver.
Address parity errors are reported only if this bit and bit [6] are 1.
A value of 0 means that only fast back-to-back transactions to the same
agent are allowed.
A value of 1 means the master is allowed to generate fast back-to-back
transactions to different agents.
A value of 0 enables the assertion of the device/function’s INTx# signal.
A value of 1 disables the assertion of the device/function’s INTx# signal.
Reserved
Fast Back-to-
Back Enable
9
0b
0b
Interrupt Disable
Reserved
10
15:11
Status – R - 16 bits - [PCI_Reg : 06h]
Field Name
Reserved
Interrupt Status
Bits
2:0
3
Default
Description
Reserved
0b
This bit reflects the state of the interrupt in the device/function. Only
when the Interrupt Disable bit in the command register is a 0 and this
Interrupt Status bit is a 1 will the device’s/function’s INTx# signal be
asserted. Setting the Interrupt Disable bit to a 1 has no effect on the
state of this bit.
Capabilities List
4
1b
A value of 0 indicates that no New Capabilities linked list is available.
A value of 1 indicates that the value read at offset 34h is a pointer in
Configuration Space to a linked list of new capabilities.
Hard-wired to 1, indicating 66MHz capable.
66 MHz Capable
Reserved
Fast Back-to-
Back Capable
5
6
7
1b
1b
Reserved
Hard-wired to 1, indicating Fast Back-to-Back capable.
©2008 Advanced Micro Devices, Inc.
OCHI USB 1.1 and EHCI USB 2.0 Controllers
AMD SB600 Register Reference Manual
Proprietary
Page 46
Status – R - 16 bits - [PCI_Reg : 06h]
Field Name
Master Data
Parity Error
Bits
8
Default
Description
0b
This bit is set only when three conditions are met: 1) the bus agent
asserted PERR# itself (on a read) or observed PERR# asserted (on a
write); 2) the agent setting the bit acted as the bus master for the
operation in which the error occurred; and 3) the Parity Error Response
bit (Command register) is set.
DEVSEL timing
Signaled Target
Abort
10:9
11
01b
0b
Hard-wired to 01b – medium timing
This bit is set by a target device whenever it terminates a transaction
with Target-Abort.
Received Target
Abort
Received Master
Abort
Signaled System
Error
Detected Parity
Error
12
13
14
15
0b
0b
0b
0b
This bit is set by a master device whenever its transaction is terminated
with Target-Abort.
This bit is set by a master device whenever its transaction (except for
Special Cycle) is terminated with Master-Abort.
This bit is set whenever the device asserts SERR#.
This bit is set by the device whenever it detects a parity error, even if
parity error handling is disabled (as controlled by bit 6 in the Command
register).
Revision ID / Class Code – R - 32 bits - [PCI_Reg : 08h]
Field Name
Revision ID
PI
Bits
Default
Description
7:0
00h
Revision ID.
15:8
10h
Programming Interface. A constant value of ‘10h’ indentifies the device
being an OpenHCI Host Controller.
SC
BC
23:16
31:24
03h
0Ch
Sub Class. A constant value of ‘03h’ indentifies the device being of
Universal Serial Bus.
Base Class. A constant value of ‘0Ch’ identifies the device being a Serial
Bus Controller.
Miscellaneous – RW/R - 32 bits - [PCI_Reg : 0Ch]
Field Name
Bits
Default
Description
Cache Line Size
7:0
00h
This read/write field specifies the system cacheline size in units of
DWORDs and must be initialized to 00h.
Latency Timer
Header Type
15:8
00h
[9:8] hard-wired to 00b, resulting in a timer granularity of at least four
clocks. This field specifies, in units of PCI bus clocks, the value of the
Latency Timer for this PCI bus master.
This field identifies the layout of the second part of the predefined header
(beginning at byte 10h in Configuration Space) and also whether or not
the device contains multiple functions.
23:16
80h/00h
Function 0: Bit[23] hard-wired to 1 Æ the device has multiple functions.
Function 1: Bit[23] hard-wired to 0 Æ the device is single function.
Function 2: Bit[23] hard-wired to 0 Æ the device is single function.
Function 3: Bit[23] hard-wired to 0 Æ the device is single function.
Function 4: Bit[23] hard-wired to 0 Æ the device is single function.
Bits [22:16] are hard-wired to 00h.
BIST
31:24
00h
Hard-wired to 00h, indicating no build-in BIST support.
Bar_OHCI – RW - 32 bits - [PCI_Reg : 10h]
Field Name
Bits
Default
Description
IND
0
0b
Indicator. A constant value of ‘0’ indicates that the operational registers
of the device are mapped into memory space of the main memory of the
PC host system. Read Only.
TP
2:1
0h
Type. A constant value of ‘00b’ indicates that the base register is 32-bit
wide and can be placed anywhere in the 32-bit memory space; i.e., lower
4 GB of the main memory of the PC host. Read Only.
©2008 Advanced Micro Devices, Inc.
OCHI USB 1.1 and EHCI USB 2.0 Controllers
AMD SB600 Register Reference Manual
Proprietary
Page 47
Bar_OHCI – RW - 32 bits - [PCI_Reg : 10h]
Field Name
PM
Bits
3
Default
Description
0b
Prefetch memory. A constant value of ‘0’ indicates that there is no
support for “prefetchable memory”. Read Only.
11:4
00h
Represents a maximum of 4-KB addressing space for the OpenHCi’s
operational registers. Read Only.
BAR
31:12
000h
Base Address. Specifies the upper 20 bits of the 32-bit starting base
address. This represent a maximum of 4-KB addressing space for the
OpenHCI’s operational registers.
Subsystem Vendor ID / Subsystem ID – RW - 32 bits - [PCI_Reg : 2Ch]
Field Name
Subsystem Vendor ID
Subsystem ID
Bits
15:0
31:16
Default
0000h
0000h
Description
Can only be written once by software.
Can only be written once by software.
Capability Pointer – R - 8 bits - [PCI_Reg : 34h]
Field Name
Capability Pointer
Bits
Default
Description
7:0
D0h
Address of the 1st element of capability link.
Interrupt Line – RW – 32 bits - [PCI_Reg : 3Ch]
Field Name
Bits
Default
Description
Interrupt Line
7:0
00h
The Interrupt Line register is an eight-bit register used to
communicate interrupt line routing information. The register
is read/write and must be implemented by any device (or
device function) that uses an interrupt pin. POST software
will write the routing information into this register as it
initializes and configures the system.
The value in this register tells which input of the system
interrupt controller(s) the device's interrupt pin is connected
to. The device itself does not use this value; rather it is used
by device drivers and operating systems. Device drivers
and operating systems can use this information to determine
priority and vector information. Values in this register are
system architecture specific.
Interrupt Pin
15:8
Read Only by default.
01h
02h
03h
02h
03h
OHCI0: Hard-wired to 01h, corresponding to using INTA#.
OHCI1: Hard-wired to 02h, corresponding to using INTB#.
OHCI2: Hard-wired to 03h, corresponding to using INTC#.
OHCI3: Hard-wired to 02h, corresponding to using INTB#.
OHCI4: Hard-wired to 03h, corresponding to using INTC#.
MIN_GNT
MAX_LAT
23:16
31:24
00h
00h
Read Only. Hardwired to 00h to indicate no major
requirements for the settings of Latency Timers.
Read Only. Hardwired to 00h to indicate no major
requirements for the settings of the Latency Timers.
Config Timers / MSI Disable (OHCI0 only) – RW - 16 bits - [PCI_Reg : 40h]
Field Name
Bits
Default
Description
TRDY Timer
7:0
80h
Target Ready timer to timeout non-responding target.
©2008 Advanced Micro Devices, Inc.
OCHI USB 1.1 and EHCI USB 2.0 Controllers
AMD SB600 Register Reference Manual
Proprietary
Page 48
Config Timers / MSI Disable (OHCI0 only) – RW - 16 bits - [PCI_Reg : 40h]
Field Name
MSI Disable
Bits
12:8
Default
00h
Description
When these bits are set MSI capability will be disabled for
the corresponding Host Controller.
Bit 8 – OHCI0
Bit 9 – OHCI1
Bit 10 – OHCI2
Bit 11 – OHCI3
Bit 12 – OHCI4
Reserved
15:13
0h
Reserved
Port Disable (OHCI0 only) – RW - 16 bits - [PCI_Reg : 42h]
Field Name
Bits
Default
Description
Port_disable
9:0
00h
When these bits are set the corresponding ports are
disabled. For example, if bit-0 is set, then port-0 (its
corresponding port) is disabled; if bit-1 is set, then its
corresponding port (port-1) is disabled (and so on).
Reserved
Reserved
15:10
00h
OHCI Misc Control (OHCI0 only) – RW - 16 bits - [PCI_Reg: 50h]
Field Name
Reserved
DisUsbS3OvrCur
Bits
7:0
8
Default
00h
Description
Reserved.
0b
Set to 1 to disable over-current detection for both EHCII and
OHCI.
Reserved
9
0b
1b
1b
0b
Reserved.
OHCI Cache Enable
OHCI Prefetch Enable
SMI Handshake Disable
10
11
12
Enable bit for 64 byte OHCI DMA cache.
Enable bit to prefetch next cache line for OHCI DMA reads.
If this bit is set the Handshake between USB and ACPI is
disabled when SMI is requested by USB
Reserved.
Reserved
15: 13
0h
Over Current Control 1 (OHCI0 only) – R - 32 bits - [PCI_Reg : 58h]
Field Name
Bits
Default
Description
Port0 OverCurrent Control
3:0
Fh
The register is to control the OverCurrent pin mapping for
Port-0. There are 10 OverCurrent pins (USB_OC0 ~
USB_OC9), any value greater than 0x9h will disable the
OverCurrent function for port-0.
Port1 OverCurrent Control
Port2 OverCurrent Control
Port3 OverCurrent Control
Port4 OverCurrent Control
7:4
Fh
Fh
Fh
Fh
The register is to control the OverCurrent pin mapping for
Port-1. There are 10 OverCurrent pins (USB_OC0 ~
USB_OC9), any value greater than 0x9h will disable the
OverCurrent function for port-1.
The register is to control the OverCurrent pin mapping for
Port-2. There are 10 OverCurrent pins (USB_OC0 ~
USB_OC9), any value greater than 0x9h will disable the
OverCurrent function for port-2.
The register is to control the OverCurrent pin mapping for
Port-3. There are 10 OverCurrent pins (USB_OC0 ~
USB_OC9), any value greater than 0x9h will disable the
OverCurrent function for port-3.
The register is to control the OverCurrent pin mapping for
Port-4. There are 10 OverCurrent pins (USB_OC0 ~
USB_OC9), any value greater than 0x9h will disable the
OverCurrent function for port-4.
11:8
15:12
19:16
©2008 Advanced Micro Devices, Inc.
OCHI USB 1.1 and EHCI USB 2.0 Controllers
AMD SB600 Register Reference Manual
Proprietary
Page 49
Over Current Control 1 (OHCI0 only) – R - 32 bits - [PCI_Reg : 58h]
Field Name
Bits
Default
Description
Port5 OverCurrent Control
23:20
Fh
The register is to control the OverCurrent pin mapping for
Port-5. There are 10 OverCurrent pins (USB_OC0 ~
USB_OC9), any value greater than 0x9h will disable the
OverCurrent function for port-5.
Port6 OverCurrent Control
Port7 OverCurrent Control
27:24
31:28
Fh
Fh
The register is to control the OverCurrent pin mapping for
Port-6. There are 10 OverCurrent pins (USB_OC0 ~
USB_OC9), any value greater than 0x9h will disable the
OverCurrent function for port-6.
The register is to control the OverCurrent pin mapping for
Port-7. There are 10 OverCurrent pins (USB_OC0 ~
USB_OC9), any value greater than 0x9h will disable the
OverCurrent function for port-7.
There are 10 pins can be used as USB OverCurrent function –
USB_OC0#/GPM0# USB_OC1#/GPM1# USB_OC2#/GPM2# USB_OC3#/GPM3#
USB_OC4#/GPM4# USB_OC5#/GPM5# USB_OC6#/GEVENT6# USB_OC7#/GEVENT7#
USB_OC8#/GPM8# USB_OC9#/SLP_S2/GPM9#
Register value-to-OverCurrent Pin mapping:
USB_OC0# = 0000, USB_OC1# = 0001, USB_OC2# = 0010, USB_OC3# = 0011,
USB_OC4# = 0100, USB_OC5# = 0101, USB_OC6# = 0110, USB_OC7# = 0111,
USB_OC8# = 1000, USB_OC9# = 1001
* Note: Since OverCurrent pins can be used as GPM# as well, the corresponding register bits to set the pin as
OverCurrent have to be set in Smbus Controller.
Over Current Control 2 (OHCI0 only) – R - 32 bits - [PCI_Reg : 5Ch]
Field Name
Bits
Default
Description
Port8 OverCurrent Control
3:0
Fh
The register is to control the OverCurrent pin mapping for
Port-8. There are 10 OverCurrent pins (USB_OC0 ~
USB_OC9), any value greater than 0x9h will disable the
OverCurrent function for port-8.
Port9 OverCurrent Control
7:4
Fh
The register is to control the OverCurrent pin mapping for
Port-9. There are 10 OverCurrent pins (USB_OC0 ~
USB_OC9), any value greater than 0x9h will disable the
OverCurrent function for port-9.
Reserved
31:8
Reserved
There are 10 pins can be used as USB OverCurrent function –
USB_OC0#/GPM0# USB_OC1#/GPM1# USB_OC2#/GPM2# USB_OC3#/GPM3#
USB_OC4#/GPM4# USB_OC5#/GPM5# USB_OC6#/GEVENT6# USB_OC7#/GEVENT7#
USB_OC8#/GPM8# USB_OC9#/SLP_S2/GPM9#
Register value-to-OverCurrent Pin mapping:
USB_OC0# = 0000, USB_OC1# = 0001, USB_OC2# = 0010, USB_OC3# = 0011,
USB_OC4# = 0100, USB_OC5# = 0101, USB_OC6# = 0110, USB_OC7# = 0111,
USB_OC8# = 1000, USB_OC9# = 1001
*Note: Since OverCurrent pins can be used as GPM# as well, the corresponding register bits to set the pin as
OverCurrent have to be set in Smbus Controller.
OHCI OverCurrent Enable (OHCI0 only) – RW - 16 bits - [PCI_Reg : 68h]
Field Name
OHCI OverCurrent Enable
Bits
9:0
Default
00h
Description
Writing this bit to a one enables the respective port to be
sensitive to over-current conditions as wake-up events when
it is owned by OHCI.
Reserved
15:10
00h
Reserved
©2008 Advanced Micro Devices, Inc.
OCHI USB 1.1 and EHCI USB 2.0 Controllers
AMD SB600 Register Reference Manual
Proprietary
Page 50
Target Timeout Control (OHCI0 only) – RW - 32 bits - [PCI_Reg : 74h]
Field Name
Bits
Default
Description
Retry counter
7:0
FFh
Counter to control the purge of the delay queue when the
host controller does not return the ack. After the counter
expires the transaction is target aborted.
The retry counter can be disabled by writing 00h in this
Register.
Reserved
Timeout Timer
23:8
31:24
0000h
80h
Reserved
Timer to control the purge of the delay queue when the
master that has initiated the access does not return to
complete the transaction. After the timer expires the queue
is invalidated and the next transaction is serviced.
MSI Control – RW - 32 bits - [PCI_Reg : D0h]
Field Name
MSI USB
Bits
7:0
Default
05h
00h
0b
Description
MSI USB ID. Read only.
Pointer to next capability structure
Set to 1 to disable IRQ. Use MSI instead.
Reserved
Next Item Pointer
MSI Control Out
Reserved
MSI Control
Reserved
15:8
16
19:17
22:20
31:23
0h
0h
MSI control field
00h
Reserved
MSI Address – RW - 32 bits - [PCI_Reg : D4h]
Field Name
Bits
Default
Description
MSI Address
31:0
0h
System-specified message address.
MSI Data – RW - 16 bits - [PCI_Reg : D8h]
Field Name
Bits
Default
Description
MSI Data
15:0
0h
System-specified message.
2.2.1.2 OHCI Operational Registers (MEM_Reg)
The Host Controller (HC) contains a set of on-chip operational registers, which are mapped into a non-
cacheable portion of the system addressable space. These registers are used by the Host Controller Driver
(HCD) and should be read and written as Dwords.
Reserved bits may be allocated in future releases and should not be assumed to contain 0. The Host
Controller Driver should always preserve the value(s) of the reserved field. When a write to set/clear register
is written, bits written to reserved fields should be 0.
Register Name
HcRevision
Offset Address
0h
4h
HcControl
HcCommandStatus
HcInterruptStatus
HcInterruptEnable
HcInterruptDisable
HcHCCA
HcPeriodCurrentED
HcControlHeadED
HcControlCurrentED
HcBulkHeadED
8h
Ch
10h
14h
18h
1Ch
20h
24h
28h
©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual
OCHI USB 1.1 and EHCI USB 2.0 Controllers
Proprietary
Page 51
Register Name
HcBulkCurrentED
HcDoneHead
Offset Address
2Ch
30h
HcFmInterval
34h
HcFmRemaining
HcFmNumber
38h
3Ch
40h
44h
48h
HcPeriodicStart
HcLSThreshold
HcRhDescriptorA
HcRhDescriptorB
HCRhStatus
4Ch
50h
HcRhPortStatus[1]
…
54h
…
HcRhPortStatus[NDP]
54+4*NDP
HcRevision – R - 32 bits - [MEM_Reg : 00h]
Field Name
REV
Bits
7:0
Default
Description
10h
Revision.
This read-only field contains the version of HCI specification.
L
8
1b
Legacy
This read-only field is 1, indicating that the legacy support registers are
present in this HC.
Reserved
31:9
Reserved
HcControl - 32 bits - [MEM_Reg : 04h]
Field Name
CBSR
Bits
1:0
Default
HCD
HC
Description
00b
RW
R
ControlBulkServiceRatio
This specifies the service ratio between Control and
Bulk Eds. Before processing any of the non-periodic
lists, HC must compare the ratio specified with its
internal count on how many nonempty Control Eds
have been processed, in determining whether to
continue serving another Control ED or switching to
Bulk Eds.
CBSR
No. of Control Eds Over Bulk Eds Served
0
1:1
1
2:1
2
3:1
3
4:1
PLE
2
0b
RW
R
PeriodicListEnable
This bit is set to enable the processing of the periodic
list in the next Frame. If cleared by HCD, processing
of the periodic list does not occur after the next SOF.
HC must check this bit before it starts processing the
list.
©2008 Advanced Micro Devices, Inc.
OCHI USB 1.1 and EHCI USB 2.0 Controllers
AMD SB600 Register Reference Manual
Proprietary
Page 52
HcControl - 32 bits - [MEM_Reg : 04h]
Field Name
Bits
Default
HCD
HC
Description
IE
3
0b
RW
R
IsochronousEnable
This bit is used by HCD to enable/disable processing
of isochronous Eds. While processing the periodic list
in a Frame, HC checks he status of this bit when it
finds an Isochronous ED (F=1). If set (enabled), HC
continues processing the Eds. If cleared (disabled),
HC halts processing of the periodic list (which now
contains only isochronous Eds) and begins
processing the Bulk/Control lists. Setting this bit is
guaranteed to take effect in the next Frame (not the
current Frame).
CLE
4
0b
RW
R
ControlListEnable
This bit is set to enable the processing of the Control
list in the next Frame. If cleared by HCD, processing
of the Control list does not occur after the next SOF.
HC must check this bit whenever it determines to
process the list. When disabled, HCD may modify the
list. If HcControlCurrentED is pointing to an ED to be
removed, HCD must advance the pointer by updating
HcControlCurrentED before re-enabling processing of
the list.
BLE
5
0b
RW
R
BulkListEnable
This bit is set to enable the processing of the Bulk list
in the next Frame. If cleared by HCD, processing of
the Bulk list does not occur after the next SOF. HC
checks this bit whenever it determines to process the
list. When disabled, HCD may modify the list. If
HcBulkCurrentED is pointing to an ED to be removed,
HCD must advance the pointer by updating
HcBulkCurrentED before re-enabling processing of
the list.
HCFS
7:6
00b
RW
RW
HostControllerFunctionalState for USB
00b: USBRESET
01b: USBRESUME
10b: USBOPERATIONAL
11b: USBSUSPEND
A transition to USBOPERATIONAL from another
state causes SOF generation to begin 1 ms
later. HCD may determine whether HC has
begun sending SOFs by reading the
StartofFrame field of HcInterruptStatus.
This field may be changed by HC only when in
the USBSUSPEND state. HC may move from the
USBSUSPEND state to the USBRESUME state after
detecting the resume signaling from a
downstream port.
HC enters USBSUSPEND after a software reset,
whereas it enters USBRESET after a hardware
reset. The latter also resets the Root Hub and
asserts subsequent reset signaling to
downstream ports.
©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual
OCHI USB 1.1 and EHCI USB 2.0 Controllers
Proprietary
Page 53
HcControl - 32 bits - [MEM_Reg : 04h]
Field Name
Bits
Default
HCD
HC
Description
IR
8
0b
RW
R
InterruptRouting
This bit determines the routing of interrupts generated
by events registered in HcInterruptStatus. If clear, all
interrupts are routed to the normal host bus interrupt
mechanism. If set, interrupts are routed to the System
Management Interrupt. HCD clears this bit upon a
hardware reset, but it does not alter this bit upon a
software reset. HCD uses this bit as a tag to indicate
the ownership of HC.
RWC
9
0b
RW
RW
RemoteWakeupConnected
This bit indicates whether HC supports remote
wakeup signaling. If remote wakeup is supported and
used by the system it is the responsibility of system
firmware to set this bit during POST. HC clears the bit
upon a hardware reset but does not alter it upon a
software reset. Remote wakeup signaling of the host
system is host-bus-specific and is not described in
this specification.
RWE
10
0b
RW
R
RemoteWakeupEnable
This bit is used by HCD to enable or disable the
remote wakeup feature upon the detection of
upstream resume signaling. When this bit is set and
the ResumeDetected bit in HcInterruptStatus is set, a
remote wakeup is signaled to the host system.
Setting this bit has no impact on the generation of
hardware interrupt.
Reserved
31:11
Reserved
HcCommandStatus - 32 bits - [MEM_Reg : 08h]
Field Name
HCR
Bits
0
Default
HCD
HC
Description
0b
RW
RW
HostControllerReset
This bit is set by HCD to initiate a software reset of
HC.Regardless of the functional state of HC, it moves
to the USBSUSPEND state in which most of the
operational registers are reset except those stated
otherwise; e.g., the InterruptRouting field of
HcControl, and no Host bus accesses are allowed.
This bit is cleared by HC upon the completion of the
reset operation. The reset operation must be
completed within 10 ms. This bit, when set, should
not cause a reset to the Root Hub and no subsequent
reset signaling should be asserted to its downstream
ports.
©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual
OCHI USB 1.1 and EHCI USB 2.0 Controllers
Proprietary
Page 54
HcCommandStatus - 32 bits - [MEM_Reg : 08h]
Field Name
CLF
Bits
1
Default
HCD
HC
Description
0b
RW
RW
ControlListFilled
This bit is used to indicate whether there are any TDs
on the Control list. It is set by HCD whenever it adds
a TD to an ED in the Control list. When HC begins to
process the head of the Control list, it checks CLF. As
long as ControlListFilled is 0, HC will not start
processing the Control list. If CF is 1, HC will start
processing the Control list and will set
ControlListFilled to 0. If HC finds a TD on the list,
then HC will set ControlListFilled to 1 causing
the Control list processing to continue. If no TD is
found on the Control list, and if the HCD does not set
ControlListFilled, then ControlListFilled will still be 0
when HC completes processing the Control list and
Control list processing will stop.
BLF
2
0b
RW
RW
BulkListFilled
This bit is used to indicate whether there are any TDs
on the Bulk list. It is set by HCD whenever it adds a
TD to an ED in the Bulk list. When HC begins to
process the head of the Bulk list, it checks BF. As
long as BulkListFilled is 0, HC will not start
processing the Bulk list. If BulkListFilled is 1, HC will
start processing the Bulk list and will set BF to 0. If
HC finds a TD on the list, then HC will set
BulkListFilled to 1 causing the Bulk list processing to
continue. If no TD is found on the Bulk list, and if
HCD does not set BulkListFilled, then BulkListFilled
will still be 0 when HC completes processing the Bulk
list and Bulk list processing will stop. BulkListFilled
This bit is used to indicate whether there are any TDs
on the Bulk list. It is set by HCD whenever it adds a
TD to an ED in the Bulk list. When HC begins to
process the head of the Bulk list, it checks BF. As
long as BulkListFilled is 0, HC will not start
processing the Bulk list. If BulkListFilled is 1, HC will
start processing the
Bulk list and will set BF to 0. If HC finds a TD on the
list, then HC will set BulkListFilled to 1 causing the
Bulk list processing to continue. If no TD is found on
the Bulk list, and if HCD does not set BulkListFilled,
then BulkListFilled will still be 0 when HC completes
processing the Bulk list and Bulk list processing will
stop.
OCR
3
0b
RW
RW
OwnershipChangeRequest
This bit is set by an OS HCD to request a change of
control of the HC. When set HC will set the
OwnershipChange field in HcInterruptStatus. After
the changeover, this bit is cleared and remains so
until the next request from OS HCD.
Reserved
SOC
15:4
17:16
00b
R
RW
SchedulingOverrunCount
These bits are incremented on each scheduling
overrun error. It is initialized to 00b and wraps around
at 11b. This will be incremented when a scheduling
overrun is detected even if SchedulingOverrun in
HcInterruptStatus has already been set. This is used
by HCD to monitor any persistent scheduling
problems.
Reserved
31:18
Reserved
©2008 Advanced Micro Devices, Inc.
OCHI USB 1.1 and EHCI USB 2.0 Controllers
AMD SB600 Register Reference Manual
Proprietary
Page 55
HcInterruptStatus – RW - 32 bits - [MEM_Reg : 0Ch]
Field Name
SO
Bits
0
Default
HCD
HC
Description
0b
RW
RW
SchedulingOverrun
This bit is set when the USB schedule for the current
Frame overruns and after the update of
HccaFrameNumber. A scheduling overrun will also
cause the SchedulingOverrunCount of
HcCommandStatus to be incremented.
WritebackDoneHead
WDH
1
0b
RW
RW
This bit is set immediately after HC has written
HcDoneHead to HccaDoneHead. Further updates of
the HccaDoneHead will not occur until this bit has
been cleared. HCD should only clear this bit after it
has saved the content of HccaDoneHead.
StartofFrame
This bit is set by HC at each start of a frame and after
the update of HccaFrameNumber. HC also generates
a SOF token at the same time.
SF
2
3
0b
0b
RW
RW
RW
RW
RD
ResumeDetected
This bit is set when HC detects that a device on the
USB is asserting resume signaling. It is the transition
from no resume signaling to resume signaling
causing this bit to be set. This bit is not set when
HCD sets the USBRESUME state.
UE
4
0b
RW
RW
UnrecoverableError
This bit is set when HC detects a system error not
related to USB. HC should not proceed with any
processing nor signaling before the system error has
been corrected. HCD clears this bit after HC has
been reset.
FNO
5
6
0b
0b
RW
RW
RW
RW
FrameNumberOverflow
This bit is set when the MSb of HcFmNumber (bit 15)
changes value, from 0 to 1 or from 1 to 0, and after
HccaFrameNumber has been updated.
RootHubStatusChange
RHSC
This bit is set when the content of HcRhStatus or the
content of any of HcRhPortStatus
[NumberofDownstreamPort] has changed.
Reserved
OC
29:7
30
Reserved
OwnershipChange
0b
RW
RW
This bit is set by HC when HCD sets the
OwnershipChangeRequest field in
HcCommandStatus. This event, when unmasked, will
always generate an System Management Interrupt
(SMI) immediately.
This bit is tied to 0b when the SMI pin is not
implemented.
Reserved
31
Reserved
HcInterruptEnable - 32 bits - [MEM_Reg : 10h]
Field Name
Bits
Default
HCD
HC
Description
SO
0
0b
RW
RW
0 - Ignore
1 - Enable interrupt generation due to Scheduling
Overrun.
WDH
SF
1
2
0b
0b
RW
RW
RW
RW
0 - Ignore
1 - Enable interrupt generation due to HcDoneHead
Writeback.
0 - Ignore
1 - Enable interrupt generation due to Start of Frame.
©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual
OCHI USB 1.1 and EHCI USB 2.0 Controllers
Proprietary
Page 56
HcInterruptEnable - 32 bits - [MEM_Reg : 10h]
Field Name
RD
Bits
3
Default
HCD
HC
Description
0b
RW
W
0 - Ignore
1 - Enable interrupt generation due to Resume
Detect.
UE
4
5
6
0b
0b
0b
RW
RW
RW
RW
RW
RW
0 - Ignore
1 - Enable interrupt generation due to Unrecoverable
Error.
0 - Ignore
1 - Enable interrupt generation due to Frame Number
Overflow.
0 - Ignore
FNO
RHSC
1 - Enable interrupt generation due to Root Hub
Status Change.
Reserved
OC
29:7
30
Reserved
0 - Ignore
0b
0b
RW
RW
RW
R
1 - Enable interrupt generation due to Ownership
Change.
A ‘0’ written to this field is ignored by HC. A '1' written
to this field enables interrupt generation due to events
specified in the other bits of this register. This is used
by HCD as a Master Interrupt Enable.
MIE
31
HcInterruptDisable - 32 bits - [MEM_Reg : 14h]
Field Name
Bits
Default
HCD
HC
Description
SO
0
0b
RW
R
0 - Ignore
1 - Disable interrupt generation due to Scheduling
Overrun.
WDH
1
0b
RW
R
0 - Ignore
1 - Disable interrupt generation due to HcDoneHead
Writeback.
SF
2
3
0b
0b
RW
RW
R
R
0 - Ignore
1 - Disable interrupt generation due to Start of Frame.
0 - Ignore
RD
1 - Disable interrupt generation due to Resume
Detect.
UE
4
5
6
0b
0b
0b
RW
RW
RW
R
R
R
0 - Ignore
1 - Disable interrupt generation due to Unrecoverable
Error.
0 - Ignore
1 - Disable interrupt generation due to Frame Number
Overflow.
0 - Ignore
FNO
RHSC
1 - Disable interrupt generation due to Root Hub
Status Change.
Reserved
OC
29:7
30
Reserved
0 - Ignore
0b
0b
RW
RW
R
R
1 - Disable interrupt generation due to Ownership
Change.
A '0' written to this field is ignored by HC. A '1' written
to this field disables interrupt generation due to
events specified in the other bits of this register. This
field is set after a hardware or software reset.
MIE
31
HcHCCA - 32 bits - [MEM_Reg : 18h]
Field Name
Reserved
HCCA
Bits
7:0
31:8
Default
HCD
HC
Description
Reserved
000000h
RW
R
This is the base address of the Host Controller
Communication Area
©2008 Advanced Micro Devices, Inc.
OCHI USB 1.1 and EHCI USB 2.0 Controllers
AMD SB600 Register Reference Manual
Proprietary
Page 57
HcPeriodCurrentED - 32 bits - [MEM_Reg : 1Ch]
Field Name
Reserved
PCED
Bits
3:0
31:4
Default
HCD
HC
Description
Reserved
0000000
h
R
RW
PeriodCurrentED
This is used by HC to point to the head of one of the
Periodic lists which will be processed in the current
Frame. The content of this register is updated by HC
after a periodic ED has been processed. HCD may
read the content in determining which ED is currently
being processed at the time of reading.
HcControlHeadED- 32 bits - [MEM_Reg : 20h]
Field Name
Reserved
CHED
Bits
3:0
31:4
Default
HCD
HC
Description
Reserved
0000000
h
RW
R
ControlHeadED
HC traverses the Control list starting with the
HcControlHeadED pointer. The content is loaded
from HCCA during the initialization of HC.
HcControlCurrentED - 32 bits - [MEM_Reg : 24h]
Field Name
Reserved
CCED
Bits
3:0
31:4
Default
HCD
HC
Description
Reserved
0000000 RW
h
RW
ControlCurrentED
This pointer is advanced to the next ED after serving
the present one. HC will continue processing the list
from where it left off in the last Frame. When it
reaches the end of the Control list, HC checks the
ControlListFilled of in HcCommandStatus. If set, it
copies the content of HcControlHeadED to
HcControlCurrentED and clears the bit. If not set, it
does nothing. HCD is allowed to modify this register
only when the ControlListEnable of HcControl is
cleared. When set, HCD only reads the
instantaneous value of this register. Initially, this is set
to zero to indicate the end of the Control list.
HcBulkHeadED - 32 bits - [MEM_Reg : 28h]
Field Name
Reserved
BHED
Bits
3:0
31:4
Default
HCD
HC
Description
Reserved
0b
RW
R
BulkHeadED
HC traverses the Bulk list starting with the
HcBulkHeadED pointer. The content is loaded from
HCCA during the initialization of HC.
HcBulkCurrentED - 32 bits - [MEM_Reg : 2Ch]
Field Name
Reserved
Bits
3:0
Default
HCD
HC
Description
Reserved
©2008 Advanced Micro Devices, Inc.
OCHI USB 1.1 and EHCI USB 2.0 Controllers
Proprietary Page 58
AMD SB600 Register Reference Manual
HcBulkCurrentED - 32 bits - [MEM_Reg : 2Ch]
Field Name
BCED
Bits
31:4
Default
0000000
h
HCD
RW
HC
RW
Description
BulkCurrentED
This is advanced to the next ED after the HC has
served the present one. HC continues processing the
list from where it left off in the last Frame. When it
reaches the end of the Bulk list, HC checks the
ControlListFilled of HcControl. If set, it copies the
content of HcBulkHeadED to HcBulkCurrentED and
clears the bit. If it is not set, it does nothing. HCD is
only allowed to modify this register when the
BulkListEnable of HcControl is cleared. When set,
the HCD only reads the instantaneous value of this
register. This is initially set to zero to indicate the end
of the Bulk list.
HcDoneHead - 32 bits - [MEM_Reg : 30h]
Field Name
Reserved
DH
Bits
3:0
31:4
Default
HCD
HC
Description
Reserved
0b
R
RW
DoneHead
When a TD is completed, HC writes the content of
HcDoneHead to the NextTD field of the TD. HC then
overwrites the content of HcDoneHead with the
address of this TD. This is set to zero whenever HC
writes the content of this register to HCCA. It also
sets the WritebackDoneHead of HcInterruptStatus.
HcFmInterval - 32 bits - [MEM_Reg : 34h]
Field Name
Bits
Default
HCD
HC
Description
FI
13:0
2EDFh
RW
R
FrameInterval
This specifies the interval between two consecutive
SOFs in bit times. The nominal value is set to be
11,999.
HCD should store the current value of this field before
resetting HC. By setting the HostControllerReset
field of HcCommandStatus as this will cause the HC
to reset this field to its nominal value. HCD may
choose to restore the stored value upon the
completion of the Reset sequence.
Reserved
FSMPS
15:14
30:16
Reserved
FSLargestDataPacket
0000h
RW
RW
R
R
This field specifies a value which is loaded into the
Largest Data Packet Counter at the beginning of
each frame. The counter value represents the largest
amount of data in bits which can be sent or received
by the HC in a single transaction at any given time
without causing scheduling overrun. The field value is
calculated by the HCD.
FIT
31
0b
FrameIntervalToggle
HCD toggles this bit whenever it loads a new value to
FrameInterval
©2008 Advanced Micro Devices, Inc.
OCHI USB 1.1 and EHCI USB 2.0 Controllers
AMD SB600 Register Reference Manual
Proprietary
Page 59
HcFmRemaining - 32 bits - [MEM_Reg : 38h]
Field Name
FR
Bits
13:0
Default
HCD
HC
Description
0000h
R
RW
FrameRemaining
This counter is decremented at each bit time. When it
reaches zero, it is reset by loading the FrameInterval
value specified in HcFmInterval at the next bit time
boundary. When entering the USBOPERATIONAL
state, HC re-loads the content with the
FrameInterval of HcFmInterval and uses the updated
value from the next SOF.
Reserved
FRT
30:14
31
Reserved
FrameRemainingToggle
0b
R
RW
This bit is loaded from the FrameIntervalToggle field
of HcFmInterval whenever FrameRemaining
reaches 0. This bit is used by HCD for the
synchronization between FrameInterval and
FrameRemaining.
HcFmNumber - 32 bits - [MEM_Reg : 3Ch]
Field Name
Bits
Default
HCD
HC
Description
FN
15:0
0000h
R
RW
This is incremented when HcFmRemaining is re-
loaded. It will be rolled over to 0h after ffffh. When
entering the USBOPERATIONAL state, this will be
incremented automatically. The content will be written
to HCCA after HC has incremented the
FrameNumber at each frame boundary and sent a
SOF but before HC reads the first ED in that Frame.
After writing to HCCA, HC will set the
StartofFrame in HcInterruptStatus.
Reserved
31:16
Reserved
HcPeriodicStart - 32 bits - [MEM_Reg : 40h]
Field Name
Bits
Default
HCD
HC
Description
PS
13:0
0000h
RW
R
PeriodicStart
After a hardware reset, this field is cleared. This is
then set by HCD during the HC initialization. The
value is calculated roughly as 10% off from
HcFmInterval. A typical value will be 3E67h. When
HcFmRemaining reaches the value specified,
processing of the periodic lists will have priority over
Control/Bulk processing. HC will therefore start
processing the Interrupt list after completing the
current Control or Bulk transaction that is in progress.
Reserved
31:14
Reserved
HcLSThreshold - 32 bits - [MEM_Reg : 44h]
Field Name
Bits
Default
HCD
HC
Description
LST
11:0
0628h
RW
R
LSThreshold
This field contains a value which is compared to the
FrameRemaining field prior to initiating a Low Speed
transaction. The transaction is started only if
FrameRemaining this field. The value is calculated
by HCD with the consideration of transmission and
setup overhead.
Reserved
31:12
Reserved
©2008 Advanced Micro Devices, Inc.
OCHI USB 1.1 and EHCI USB 2.0 Controllers
AMD SB600 Register Reference Manual
Proprietary
Page 60
HcRhDescriptorA - 32 bits - [MEM_Reg : 48h]
Field Name
NDP
Bits
7:0
Default
HCD
HC
Description
02h
R
R
NumberDownstreamPorts
These bits specify the number of downstream ports
supported by the Root Hub.
PSM
8
0b
RW
R
PowerSwitchingMode
This bit is used to specify how the power switching of
the Root Hub ports is controlled. It is implementation-
specific. This field is only valid if the
NoPowerSwitching field is cleared.
0: all ports are powered at the same time.
1: each port is powered individually. This mode
allows port power to be controlled by either the global
switch or per-port switching. If the
PortPowerControlMask bit is set, the port responds
only to port power commands
(Set/ClearPortPower). If the port mask is cleared,
then the port is controlled only by the global power
switch (Set/ClearGlobalPower).
NPS
9
1b
RW
R
NoPowerSwitching
These bits are used to specify whether power
switching is supported or port are always powered. It
is implementation- specific. When this bit is cleared,
the PowerSwitchingMode specifies global or per-
port switching.
0: Ports are power switched
1: Ports are always powered on when the HC is
powered on
DT
10
11
0b
1b
R
R
R
DeviceType
This bit specifies that the Root Hub is not a
compound device. The Root Hub is not permitted to
be a compound device. This field should always
read/write 0.
OCPM
RW
OverCurrentProtectionMode
This bit describes how the overcurrent status for the
Root Hub ports are reported. At reset, this field
should reflect the same mode as
PowerSwitchingMode. This field is valid only if the
NoOverCurrentProtection field is cleared.
0: over-current status is reported collectively for all
downstream ports
1: over-current status is reported on a per-port basis
NOCP
12
0b
RW
R
NoOverCurrentProtection
This bit describes how the overcurrent status for the
Root Hub ports are reported. When this bit is cleared,
the OverCurrentProtectionMode field specifies
global or per-port reporting.
0: Over-current status is reported collectively for all
downstream ports
1: No overcurrent protection supported
Reserved
POTPGT
23:13
31:24
Reserved
PowerOnToPowerGoodTime
02h
RW
R
This byte specifies the duration HCD has to wait
before accessing a powered-on port of the Root Hub.
It is implementation-specific. The unit of time is 2 ms.
The duration is calculated as POTPGT * 2 ms.
©2008 Advanced Micro Devices, Inc.
OCHI USB 1.1 and EHCI USB 2.0 Controllers
AMD SB600 Register Reference Manual
Proprietary
Page 61
HcRhDescriptorB - 32 bits - [MEM_Reg : 4Ch]
Field Name
Bits
Default
HCD
HC
Description
DR
15:0
0000h
RW
R
DeviceRemovable
Each bit is dedicated to a port of the Root Hub. When
cleared, the attached device is removable. When set,
the attached device is not removable.
bit 0: Reserved
bit 1: Device attached to Port #1
bit 2: Device attached to Port #2
...
bit15: Device attached to Port #15
PPCM
31:16
0000h
RW
R
PortPowerControlMask
Each bit indicates if a port is affected by a global
power control command when
PowerSwitchingMode is set. When set, the port's
power state is only affected by per-port power control
(Set/ClearPortPower). When cleared, the port is
controlled by the global power switch
(Set/ClearGlobalPower). If the device is configured
to global switching mode
(PowerSwitchingMode=0), this field is not valid.
bit 0: Reserved
bit 1: Ganged-power mask on Port #1
bit 2: Ganged-power mask on Port #2
...
bit15: Ganged-power mask on Port #15
HcRhStatus - 32 bits - [MEM_Reg : 50h]
Field Name
LPS
Bits
0
Default
HCD
HC
Description
0b
RW
R
(Read) LocalPowerStatus
The Root Hub does not support the local power
status feature; thus, this bit is always read as ‘0’.
(Write) ClearGlobalPower
In global power mode (PowerSwitchingMode=0),
This bit is written to ‘1’ to turn off power to all ports
(Clear)
PortPowerStatus). In per-port power mode, it clears
PortPowerStatus only on ports whose
PortPowerControlMask bit is not set. Writing a ‘0’
has no effect.
OCI
1
0b
0b
R
RW
OverCurrentIndicator
This bit reports overcurrent conditions when the
global reporting is implemented. When set, an
overcurrent condition exists. When cleared, all power
operations are normal. If per-port overcurrent
protection is implemented this bit is always ‘0’
Reserved
(Read) DeviceRemoteWakeupEnable
This bit enables a ConnectStatusChange bit as a
resume event, causing a USBSUSPEND to
USBRESUME state transition and setting the
ResumeDetected interrupt.
Reserved
DRWE
14:2
15
RW
R
0 = ConnectStatusChange is not a remote wakeup
event.
1 = ConnectStatusChange is a remote wakeup
event.
(Write) SetRemoteWakeupEnable
Writing a '1' sets DeviceRemoveWakeupEnable.
Writing a '0' has no effect.
©2008 Advanced Micro Devices, Inc.
OCHI USB 1.1 and EHCI USB 2.0 Controllers
AMD SB600 Register Reference Manual
Proprietary
Page 62
HcRhStatus - 32 bits - [MEM_Reg : 50h]
Field Name
LPSC
Bits
16
Default
HCD
HC
Description
0b
RW
R
(Read) LocalPowerStatusChange
The Root Hub does not support the local power
status feature; thus, this bit is always read as ‘0’.
(Write) SetGlobalPower
In global power mode (PowerSwitchingMode=0),
This bit is written to ‘1’ to turn on power to all ports
(Clear)
PortPowerStatus). In per-port power mode, it sets
PortPowerStatus only on ports whose
PortPowerControlMask bit is not set. Writing a ‘0’
has no effect.
OCIC
17
0b
RW
W
RW
OverCurrentIndicatorChange
This bit is set by hardware when a change has
occurred to the OCI field of this register. The HCD
clears this bit by writing a ‘1’. Writing a ‘0’ has no
effect.
Reserved
CRWE
30:18
31
Reserved
-
R
(Write) ClearRemoteWakeupEnable
Writing a '1' clears DeviceRemoveWakeupEnable.
Writing a '0' has no effect.
HcRhPortStatus - 32 bits - [MEM_Reg : 50h+4*(1:NDP)]
Field Name
CCS
Bits
Default
HCD
HC
Description
(Read) CurrentConnectStatus
This bit reflects the current state of the downstream
port.
0
0b
RW
RW
0 = No device connected
1 = Device connected
(Write) ClearPortEnable
The HCD writes a ‘1’ to this bit to clear the
PortEnableStatus bit.
Writing a ‘0’ has no effect. The
CurrentConnectStatus is not affected by any write.
Note: This bit is always read ‘1b’ when the attached
device is non-removable
(DeviceRemoveable[NDP]).
©2008 Advanced Micro Devices, Inc.
OCHI USB 1.1 and EHCI USB 2.0 Controllers
AMD SB600 Register Reference Manual
Proprietary
Page 63
HcRhPortStatus - 32 bits - [MEM_Reg : 50h+4*(1:NDP)]
Field Name
PES
Bits
Default
HCD
HC
Description
1
0b
RW
RW
(Read) PortEnableStatus
This bit indicates whether the port is enabled or
disabled. The Root Hub may clear this bit when an
overcurrent condition, disconnect event, switched-off
power, or operational bus error such as babble is
detected. This change also causes
PortEnabledStatusChange to be set. HCD sets this
bit by writing SetPortEnable and clears it by writing
ClearPortEnable. This bit cannot be set when
CurrentConnectStatus is cleared. This bit is also
set, if not already, at the completion of a port reset
when ResetStatusChange is set or port suspend
when SuspendStatusChange is set.
0 = Port is disabled
1 = Port is enabled
(Write) SetPortEnable
The HCD sets PortEnableStatus by writing a ‘1’.
Writing a ‘0’ has no effect. If CurrentConnectStatus
is cleared, this write does not set PortEnableStatus,
but instead sets ConnectStatusChange. This
informs the driver that it attempted to enable a
disconnected port.
PSS
2
0b
RW
RW
(Read) PortSuspendStatus
This bit indicates the port is suspended or in the
resume sequence. It is set by a SetSuspendState
write and cleared when PortSuspendStatusChange
is set at the end of the resume interval. This bit
cannot be set if CurrentConnectStatus is cleared.
This bit is also cleared when
PortResetStatusChange is set at the end of the port
reset or when the HC is placed in the USBRESUME
state. If an upstream resume is in progress, it should
propagate to the HC.
0 = Port is not suspended
1 = Port is suspended
(Write) SetPortSuspend
The HCD sets the PortSuspendStatus bit by writing
a ‘1’ to this bit. Writing a ‘0’ has no effect. If
CurrentConnectStatus is cleared, this write does
not set PortSuspendStatus; instead it sets
ConnectStatusChange. This informs the driver that
it attempted to suspend a disconnected port.
(Read) PortOverCurrentIndicator
POCI
3
0b
RW
RW
This bit is only valid when the Root Hub is configured
in such a way that overcurrent conditions are
reported on a per-port basis. If per-port overcurrent
reporting is not supported, this bit is set to 0. If
cleared, all power operations are normal for this port.
If set, an overcurrent condition exists on this port.
This bit always reflects the overcurrent input signal
0 = No overcurrent condition.
1 = Overcurrent condition detected.
(Write) ClearSuspendStatus
The HCD writes a ‘1’ to initiate a resume. Writing a ‘0’
has no effect. A resume is initiated only if
PortSuspendStatus is set.
©2008 Advanced Micro Devices, Inc.
OCHI USB 1.1 and EHCI USB 2.0 Controllers
AMD SB600 Register Reference Manual
Proprietary
Page 64
HcRhPortStatus - 32 bits - [MEM_Reg : 50h+4*(1:NDP)]
Field Name
PRS
Bits
Default
HCD
HC
Description
4
0b
RW
RW
(Read) PortResetStatus
When this bit is set by a write to SetPortReset, port
reset signaling is asserted. When reset is completed,
this bit is cleared when PortResetStatusChange is
set. This bit cannot be set if CurrentConnectStatus
is cleared.
0 = Port reset signal is not active
1 = Port reset signal is active
(Write) SetPortReset
The HCD sets the port reset signaling by writing a ‘1’
to this bit. Writing a ‘0’ has no effect. If
CurrentConnectStatus is cleared, this write does
not set PortResetStatus, but instead sets
ConnectStatusChange. This informs the driver that
it attempted to reset a disconnected port.
Reserved
Reserved
PPS
7:5
8
0b
RW
RW
(Read) PortPowerStatus
This bit reflects the port’s power status, regardless of
the type of power switching implemented. This bit is
cleared if an overcurrent condition is detected. HCD
sets this bit by writing SetPortPower or
SetGlobalPower. HCD clears this bit by writing
ClearPortPower or ClearGlobalPower. Which
power control switches are enabled is determined by
PowerSwitchingMode and
PortPortControlMask[NDP]. In global switching
mode, (PowerSwitchingMode=0), only
Set/ClearGlobalPower controls this bit. In per-port
power switching (PowerSwitchingMode=1), if the
PortPowerControlMask[NDP] bit for the port is set,
only Set/ClearPortPower commands are enabled. If
the mask is not set, only Set/ClearGlobalPower
commands are enabled. When port power is
disabled, CurrentConnectStatus,
PortEnableStatus, PortSuspendStatus, and
PortResetStatus should be reset.
0 = Port power is off
1 = Port power is on
(Write) SetPortPower
The HCD writes a ‘1’ to set the PortPowerStatus bit.
Writing a ‘0’ has no effect.
Note: This bit is always reads ‘1b’ if power switching
is not supported.
LSDA
9
X
RW
RW
(Read) LowSpeedDeviceAttached
This bit indicates the speed of the device attached to
this port. When set, a Low Speed device is attached
to this port. When clear, a Full Speed device is
attached to this port. This field is valid only when the
CurrentConnectStatus is set.
0 = Full speed device attached
1 = Low speed device attached
(Write) ClearPortPower
The HCD clears the PortPowerStatus bit by writing a
‘1’ to this bit. Writing a ‘0’ has no effect.
Reserved
Reserved
15:10
©2008 Advanced Micro Devices, Inc.
OCHI USB 1.1 and EHCI USB 2.0 Controllers
AMD SB600 Register Reference Manual
Proprietary
Page 65
HcRhPortStatus - 32 bits - [MEM_Reg : 50h+4*(1:NDP)]
Field Name
CSC
Bits
Default
HCD
HC
Description
16
0b
RW
RW
ConnectStatusChange
This bit is set whenever a connect or disconnect
event occurs. The HCD writes a ‘1’ to clear this bit.
Writing a ‘0’ has no effect. If CurrentConnectStatus
is cleared when a SetPortReset, SetPortEnable, or
SetPortSuspend write occurs, this bit is set to force
the driver to re-evaluate the connection status since
these writes should not occur if the port is
disconnected.
0 = No change in CurrentConnectStatus
1 = Change in CurrentConnectStatus
Note: If the DeviceRemovable[NDP] bit is set, this
bit is set only after a Root Hub reset to inform the
system that the device is attached.
PESC
PSSC
17
18
0b
0b
RW
RW
RW
RW
PortEnableStatusChange
This bit is set when hardware events cause the
PortEnableStatus bit to be cleared. Changes from
HCD writes do not set this bit. The HCD writes a ‘1’ to
clear this bit. Writing a ‘0’ has no effect.
0 = No change in PortEnableStatus
1 = Change in PortEnableStatus
PortSuspendStatusChange
This bit is set when the full resume sequence has
been completed. This sequence includes the 20-s
resume pulse, LS EOP, and 3-ms resychronization
delay. The HCD writes a ‘1’ to clear this bit. Writing a
‘0’ has no effect. This bit is also cleared when
ResetStatusChange is set.
0 = Resume is not completed
1 = Resume completed
OCIC
19
0b
0b
RW
RW
RW
RW
PortOverCurrentIndicatorChange
This bit is valid only if overcurrent conditions are
reported on a per-port basis. This bit is set when Root
Hub changes the PortOverCurrentIndicator bit. The
HCD writes a ‘1’ to clear this bit. Writing a ‘0’ has no
effect.
0 = No change in PortOverCurrentIndicator
1 = PortOverCurrentIndicator has changed
PortResetStatusChange
PRSC
20
This bit is set at the end of the 10-ms port reset
signal.
The HCD writes a ‘1’ to clear this bit. Writing a ‘0’ has
no effect.
0 = Port reset is not complete
1 = Port reset is complete
Reserved
31:21
Reserved
2.2.2
USB Legacy Keyboard Operation
2.2.2.1 Overview
To support applications and drivers in non-USB-aware environments (e.g., DOS), the Host Controller needs
to provide some amount of hardware support for the emulation of a PS/2 keyboard and/or mouse by their
USB equivalents. For Open HCI, this emulation support is provided by a set of registers that are controlled
by code running in SMM. Working in conjunction, this hardware and software produces approximately the
same behavior-to-application code as would be produced by a PS/2-compatible keyboard and/or mouse
interface.
To minimize hardware impact, the Host Controller accesses a USB keyboard and/or mouse using the
©2008 Advanced Micro Devices, Inc.
OCHI USB 1.1 and EHCI USB 2.0 Controllers
Proprietary Page 66
AMD SB600 Register Reference Manual
standard OpenHCI descriptor-based accesses. The emulation code sets up the appropriate Endpoint
Descriptors and Transfer Descriptors that cause data to be sent to or received from a USB keyboard/mouse
using the normal USB protocols. When data is received from the keyboard/mouse, the emulation code is
notified and becomes responsible for translating the USB keyboard/mouse data into a data sequence that is
equivalent to what would be produced by a PS/2-compatible keyboard/mouse interface. The translated data
is made available to the system through the legacy keyboard interface I/O addresses at 60h and 64h.
Likewise, when data/control is to be sent to the keyboard (as indicated by the system writing to the legacy
keyboard interface), the emulation code is notified and becomes responsible for translating the information
into appropriate data to be sent to the USB keyboard/mouse through the transfer descriptor mechanism.
On the PS/2 keyboard/mouse interface, a read of I/O port 60h returns the current contents of the keyboard
output buffer; a read of I’O port 64h returns the contents of the keyboard status register. An I/O write to port
60h or 64h puts data into the keyboard input buffer (data is being input into the keyboard subsystem). When
emulation is enabled, reads and writes of registers 60h and 64h are captured in HceOutput, HceStatus,
and/or HceInput operational registers.
The emulation hardware described in this document supports a mixed environment in which either the
keyboard or mouse is located on USB, and the other device is attached to a standard PS/2 interface.
2.2.2.2 System Requirements
The sections below define the system requirements that must be met in order for the OpenHCI legacy
support to function properly.
Host Controller Mapping
The Host Controller uses memory addresses to enable system software to access its operational registers.
In a PCI implementation, the address of the Host Controller operations registers is set in BAR_OHCI. The
address range specified in BAR_OHCI must be accessible to SMM code. The address in BAR_OHCI should
not be modified by any software while the emulation software has control of the Host Controller. The only
exception to this is when the OS is booting and is trying to interrogate the PCI bus. It is common for an OS,
as it is loaded, to enumerate and ‘size’ the various buses on the machine. For a PCI system, the OS typically
writes a value to each card’s BAR to determine the memory space occupied by that card. If emulation is
running during enumeration, the Host Controller may generate an SMI as the OS is changing the BAR from
the value that the emulation code is using.
Intercept Port 60h and 64h Accesses
When emulation is enabled, I/O accesses of I/O ports 60h and 64h must be handled by the Host Controller.
The Host Controller must be positioned in the system so that it can do a positive decode of accesses to I/O
addresses 60h and 64h on the PCI bus. If a keyboard controller is present in the system, it must either use
subtractive decode or have provisions to disable its decode of ports 60h and 64h. If the legacy keyboard
controller uses positive decode and is turned off during emulation, it must be possible for the emulation code
to quickly re-enable and disable the legacy keyboard controller’s 60h and 64h decode. This is necessary to
support a mixed operating environment.
Interrupts
The Host Controller must connect to IRQ1 and IRQ12 on the system board and be wired OR with other non-
legacy IRQ1 and IRQ12 sources. IRQ1 and IRQ12 from the legacy keyboard controller (if present) must be
routed through the Host Controller.
Run-time Memory
Legacy emulation requires that the Host Controller have read/write access to a portion of system memory
that is not used by a system OS for any purpose. In addition, this memory must be accessible by the host
CPU while the host CPU is in SMM.
©2008 Advanced Micro Devices, Inc.
OCHI USB 1.1 and EHCI USB 2.0 Controllers
Proprietary Page 67
AMD SB600 Register Reference Manual
2.2.2.3 Programming Interface
The following modification is needed for the HcRevision register:
Table 2-1 HcRevision Register
HcRevision - 32 bits
Field Name
Revision
Bits
7:0
Reset
10h
HCD
HC
Description
R
R
This read-only field contains the BCD representation
of the version of the HCI specification that is
implemented by this HC. For example, a value of 11h
corresponds to version 1.1. All of the HC
implementations that are compliant with this
specification will have a value of 10h.
This read-only field is 1 to indicate that the legacy
support registers are present in this HC.
Reserved
Legacy
8
1b
R
R
Reserved
31:9
Legacy Support Registers
Four operational registers are used to provide the legacy support. Each of these registers is located on a 32-
bit boundary. The offset of these registers is relative to the base address of the Host Controller operational
registers with HceControl located at offset 100h.
Table 2-2 Legacy Support Registers
Offset
Register
Description
100h
HceControl
Used to enable and control the emulation hardware and report various status
information.
104h
108h
10Ch
HceInput
The emulation side of the legacy Input Buffer register.
HceOutput
HceStatus
The emulation side of the legacy Output Buffer register where the keyboard and
mouse data is to be written by software.
The emulation side of the legacy Status register.
Three of the operational registers (HceStatus, HceInput, HceOutput) are accessible at I/O address 60h and
64h when emulation is enabled. Reads and writes to the registers using I/O addresses have side effects as
Table 2-3 Emulated Registers
I/O
Address
Cycle Type Register Contents
Accessed/Modified
Side Effects
60h
60h
64h
64h
IN
HceOutput
HceInput
HceStatus
HceInput
IN from port 60h will set OutputFull in
HceStatus to 0
OUT
IN
OUT to port 60h will set InputFull to 1 and
CmdData to 0 in HceStatus.
IN from port 64h returns current value of
HceStatus with no other side effect.
OUT
OUT to port 64h will set InputFull to 0 and
CmdData in HceStatus to 1.
HceInput Register
©2008 Advanced Micro Devices, Inc.
OCHI USB 1.1 and EHCI USB 2.0 Controllers
AMD SB600 Register Reference Manual
Proprietary
Page 68
Table 2-4 HceInput Registers
HceInput – RW - 32 bits
Field Name
InputData
Reserved
Bits
7:0
31:8
Default
00h
Description
This register holds data that is written to I/O ports 60h and 64h.
Reserved
I/O data that is written to ports 60h and 64h is captured in this register when emulation is enabled. This
register may be read or written directly by accessing it with its memory address in the Host Controller’s
operational register space. When accessed directly with a memory cycle, reads and writes of this register
have no side effects.
HceOutput Register
Table 2-5 HceOutput Register
HceOutput – RW - 32 bits
Description
This register hosts data that is returned when an I/O read of port 60h
is performed by application software.
Reserved
Field Name
OutputData
Bits
7:0
Default
00h
Reserved
31:8
The data placed in this register by the emulation software is returned when I/O port 60h is read and
emulation is enabled. On a read of this location, the OutputFull bit in HceStatus is set to 0.
HceStatus Register
Table 2-6 HceStatus Register
HceStatus – RW - 32 bits
Field Name
Bits
Default
Description
OutputFull
0
0b
The HC sets this bit to 0 on a read of I/O port 60h. If IRQEn is set and
AuxOutputFull is set to 0, then an IRQ1 is generated as long as this bit
is set to 1. If IRQEn is set and AuxOutputFull is set to 1, then an IRQ12
is generated as long as this bit is set to 1. While this bit is 0 and
CharacterPending in HceControl is set to 1, an emulation interrupt
condition exists.
InputFull
1
0b
Except for the case of a Gate A20 sequence, this bit is set to 1 on an
I/O write to address 60h or 64h. While this bit is set to 1 and emulation
is enabled, an emulation interrupt condition exists.
Nominally used as a system flag by software to indicate a warm or cold
boot.
The HC sets this bit to 0 on an I/O write to port 60h and to 1 on an I/O
write to port 64h.
This bit reflects the state of the keyboard inhibit switch and is set if the
keyboard is NOT inhibited.
Flag
2
3
4
5
0b
0b
0b
0b
CmdData
Inhibit Switch
AuxOutputFull
IRQ12 is asserted whenever this bit is set to 1 and OutputFull is set to 1
and the IRQEn bit is set.
Time-out
Parity
Reserved
6
7
31:8
0b
0b
Used to indicate a time-out
Indicates parity error on keyboard/mouse data.
Reserved
The contents of the HceStatus Register are returned on an I/O Read of port 64h when emulation is enabled.
Reads and writes of port 60h and writes to port 64h can cause changes in this register. Emulation software
can directly access this register through its memory address in the Host Controller’s operational register
space. Accessing this register through its memory address produces no side effects.
©2008 Advanced Micro Devices, Inc.
OCHI USB 1.1 and EHCI USB 2.0 Controllers
Proprietary Page 69
AMD SB600 Register Reference Manual
HceControl Register
Table 2-7 HceControl Register
HceControl - 32 bits
Field Name
Bits
Reset
Description
EmulationEnable
0
0b
When set to 1, the HC is enabled for legacy emulation.
The HC decodes accesses to I/O registers 60h and 64h and
generates IRQ1 and/or IRQ12 when appropriate.
Additionally, the HC generate s an emulation interrupt at
appropriate times to invoke the emulation software.
This bit is a static decode of the emulation interrupt
condition. [Read-only]
When set, an emulation interrupt is generated when the
OutputFull bit of the HceStatus register is set to 0.
When set, the HC generates IRQ1 or IRQ12 as long as the
OutputFull bit in HceStatus is set to 1. If the
EmulationInterrupt
CharacterPending
IRQEn
1
2
3
-
0b
0b
AuxOutputFull bit of HceStatus is 0, then IRQ1 is
generated; if it is 1, then an IRQ12 is generated.
When set to 1, IRQ1 and IRQ12 from the keyboard
controller causes an emulation interrupt. The function
controlled by this bit is independent of the setting of the
EmulationEnable bit in this register.
ExternalIRQEn
4
0b
GateA20Sequence
IRQ1Active
IRQ12Active
A20State
5
6
0b
0b
0b
0b
-
Set by HC when a data value of D1h is written to I/O port
64h. Cleared by HC on write to I/O port 64h of any value
other than D1h.
Indicates that a positive transition on IRQ1 from keyboard
controller has occurred. SW may write a 1 to this bit to
clear it (set it to 0). SW write of a 0 to this bit has no effect.
Indicates that a positive transition on IRQ12 from keyboard
controller has occurred. SW may write a 1 to this bit to
clear it (set it to 0). SW write of a 0 to this bit has no effect.
Indicates current state of Gate A20 on keyboard controller.
Used to compare against value written to 60h when
GateA20Sequence is active.
7
8
Reserved
31:9
Must read as 0s.
2.2.3
EHCI Registers (Device 19, Function 5)
The Enhanced USB Host Controller contains two sets of software accessible hardware registers—Memory-
mapped Host Controller Registers and optional PCI configuration registers (PCI_Reg).
Mapping into non-cacheable memory, Memory-mapped USB Host Controller Registers consists of a set of
read-only Capability registers (MEM_Reg) , a set of read/write operational registers(EOR_Reg) and a set of
read/write Debug Port registers (DBUG_Reg). Implemented as memory-mapped I/O space, the operational
registers are 32 bits in length and should be read and written as Dwords.
2.2.3.1 PCI Configuration Registers
Registers Name
Device / Vendor ID
Command
Offset Address
00h
04h
06h
08h
0Ch
Status
Revision ID / Class Code
Miscellaneous
©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual
OCHI USB 1.1 and EHCI USB 2.0 Controllers
Proprietary
Page 70
Base Address – BAR_EHCI
Subsystem ID / Subsystem Vendor ID
Capability Pointer
Interrupt Line
EHCI Misc Control
Serial Bus Release Number – SBRN
Frame Length Adjustment – FLADJ
PME Control
10h
2Ch
34h
3Ch
50h
60h
61h
C0h
C4h
PME Data / Status
MSI Control
MSI Address
D0h
D4h
MSI Data
D8h
EHCI Debug Port Support
E4h
USB Legacy Support Extended Capability – USBLEGSUP
USB Legacy Support Control/Status - USBLEGCTLSTS
1The EECP field is in the read-only HCCPARAMS register [MEM_Reg: 08h] with the value of A0h.
EECP+0h1
EECP+4h1
DEVICE / VENDOR ID – R - 32 bits - [PCI_Reg : 00h]
Field Name
VEND_ID
DEV_ID
Bits
15:0
31:16
Default
Description
1002h
Function 5: 4386h
Vendor ID
Device ID
Command – RW - 16 bits - [PCI_Reg : 04h]
Field Name
IO Space Accesses
Bits
Default
Description
0
0b
A value of 0 disables the device response.
A value of 1 allows the device to respond to I/O Space
accesses.
Memory Space Accesses
Bus Master
1
2
0b
0b
A value of 0 disables the device response.
A value of 1 allows the device to respond to Memory Space
accesses.
A value of 0 disables the device from generating PCI
accesses.
A value of 1 allows the device to behave as a bus master.
Hard-wired to 0, indicating no Special Cycle support.
When it is 0, Memory Write must be used.
When it is 1, masters may generate the command.
Hard-wired to 0, indicating the device should treat palette
write accesses like all other accesses.
When it is 1, the device must take its normal action when a
parity error is detected.
Special Cycle
3
4
0b
0b
Memory Write and
Invalidate Command
VGA Palette Register
Accesses
5
6
0b
0b
Parity Enable
When it is 0, the device sets its Detected Parity Error status
bit (bit 15 in the Status register) when an error is detected,
but does not assert PERR# and continues normal operation.
Hard-wired to 0 per PCI2.3 spec.
A value of 0 disables the SERR# driver.
A value of 1 enables the SERR# driver.
Address parity errors are reported only if this bit and bit [6]
are 1.
Reserved
SERR# Enable
7
8
0b
0b
Fast Back-to-Back Enable
Interrupt Disable
Reserved
9
0b
0b
A value of 0 means fast back-to-back transactions to the
same agent only are allowed.
A value of 1 means the master is allowed to generate fast
back-to-back transactions to different agents.
A value of 0 enables the assertion of the device/function’s
INTx# signal.
A value of 1 disables the assertion of the device/function’s
INTx# signal.
Reserved
10
15:11
©2008 Advanced Micro Devices, Inc.
OCHI USB 1.1 and EHCI USB 2.0 Controllers
AMD SB600 Register Reference Manual
Proprietary
Page 71
Status – R - 16 bits - [PCI_Reg : 06h]
Field Name
Reserved
Interrupt Status
Bits
Default
Description
2:0
3
Reserved
0b
This bit reflects the state of the interrupt in the
device/function. Only when the Interrupt Disable bit in the
command register is a 0 and this Interrupt Status bit is a 1,
will the device’s/function’s INTx# signal be asserted. Setting
the Interrupt Disable bit to a 1 has no effect on the state of
this bit.
Capabilities List
4
1b
A value of 0 indicates that no New Capabilities linked list is
available.
A value of 1 indicates that the value read at offset 34h is a
pointer in Configuration Space to a linked list of new
capabilities.
66 MHz Capable
Reserved
Fast Back-to-Back
Capable
5
6
7
1b
1b
0b
Hard-wired to 1, indicating 66MHz capable.
Reserved
Hard-wired to 1, indicating Fast Back-to-Back capable.
Master Data Parity Error
8
This bit is set only when three conditions are met: 1) the bus
agent asserted PERR# itself (on a read) or observed PERR#
asserted (on a write); 2) the agent setting the bit acted as the
bus master for the operation in which the error occurred; and
3) the Parity Error Response bit (Command register) is set.
Hard-wired to 01b – medium timing
DEVSEL timing
Signaled Target Abort
10:9
11
01b
0b
This bit is set by a target device whenever it terminates a
transaction with Target-Abort.
Received Target Abort
Received Master Abort
12
13
0b
0b
This bit is set by a master device whenever its transaction is
terminated with Target-Abort.
This bit is set by a master device whenever its transaction
(except for Special Cycle) is terminated with Master-Abort.
This bit is set whenever the device asserts SERR#.
This bit is set by the device whenever it detects a parity error,
even if parity error handling is disabled (as controlled by bit 6
in the Command register).
Signaled System Error
Detected Parity Error
14
15
0b
0b
Revision ID / Class Code – R - 32 bits - [PCI_Reg : 08h]
Field Name
Revision ID
PI
Bits
Default
Description
7:0
00h
Revision ID.
15:8
20h
Programming Interface. A constant value of ‘20h’ indentifies
the device being an EHCI Host Controller.
SC
BC
23:16
31:24
03h
0Ch
Sub Class. A constant value of ‘03h’ indentifies the device
being of Universal Serial Bus.
Base Class. A constant value of ‘0Ch’ identifies the device
being a Serial Bus Controller.
Miscellaneous – RW - 32 bits - [PCI_Reg : 0Ch]
Field Name
Bits
Default
Description
Cache Line Size
7:0
00h
This read/write field specifies the system cacheline size in
units of DWORDs and must be initialized to 00h.
[9:8] hard-wired to 00b, resulting in a timer granularity of at
least four clocks. This field specifies, in units of PCI bus
clocks, the value of the Latency Timer for this PCI bus
master.
Latency Timer
15:8
00h
©2008 Advanced Micro Devices, Inc.
OCHI USB 1.1 and EHCI USB 2.0 Controllers
AMD SB600 Register Reference Manual
Proprietary
Page 72
Miscellaneous – RW - 32 bits - [PCI_Reg : 0Ch]
Field Name
Header Type
Bits
Default
Description
23:16
00h
This field identifies the layout of the second part of the
predefined header (beginning at byte 10h in Configuration
Space) and also whether or not the device contains multiple
functions.
EHCI has single function and bit[23:16] hard-wired to 00h.
Read Only.
BIST
31:24
00h
Hard-wired to 00h, indicating no build-in BIST support.
BAR_EHCI – RW - 32 bits - [PCI_Reg : 10h]
Field Name
Bits
Default
Description
Indicator. A constant value of ‘0’ indicates that the
operational registers of the device are mapped into memory
space of the main memory of the PC host system.
Read Only.
IND
TP
0
0b
2:1
3
0h
0b
Type. A constant value of ‘00b’ indicates that the base
register is 32-bit wide and can be placed anywhere in the
32-bit memory space; i.e., lower 4 GB of the main memory
of the PC host.
Read Only.
PM
Prefetch Memory. A constant value of ‘0’ indicates that
there is no support for “prefetchable memory”.
Read Only.
Reserved
BA
7:4
31:8
0h
0h
Read Only.
Base Address. Corresponds to memory address signals
[31:8].
BAR register. Base address used for the memory mapped capability and operational registers.
Subsystem ID / Subsystem Vendor ID – RW - 32 bits - [PCI_Reg : 2Ch]
Field Name
Subsystem Vendor ID
Subsystem ID
Bits
15:0
31:16
Default
0000h
0h
Description
Can only be written once by software.
Can only be written once by software.
Capability Pointer – R - 8 bits - [PCI_Reg : 34h]
Field Name
Capability Pointer
Bits
Default
Description
7:0
C0h
Address of the 1st element of capability link.
©2008 Advanced Micro Devices, Inc.
OCHI USB 1.1 and EHCI USB 2.0 Controllers
Proprietary Page 73
AMD SB600 Register Reference Manual
Interrupt Line - RW - 32 bits - [PCI_Reg : 3Ch]
Field Name
Interrupt Line
Bits
Default
Description
7:0
00h
The Interrupt Line is a field used to communicate interrupt
line routing information. The register is read/write and must
be implemented by any device (or device function) that uses
an interrupt pin. POST software will write the routing
information into this register as it initializes and configures
the system.
The value in this field tells which input of the system
interrupt controller(s) the device's interrupt pin is connected
to. The device itself does not use this value; rather it is used
by device drivers and operating systems. Device drivers
and operating systems can use this information to determine
priority and vector information. Values in this register are
system architecture specific.
Interrupt Pin
MIN_GNT
MAX_LAT
15:8
23:16
31:24
04h
00h
00h
Read Only by default.
Hard-wired to 04h, which corresponds to using INTD#.
Read Only. Hard-wired to 00h to indicate no major
requirements for the settings of Latency Timers.
Read Only. Hard-wired to 00h to indicate no major
requirements for the settings of Latency Timers.
EHCI Misc Control – RW - 32 bits - [PCI_Reg : 50h]
Field Name
Reserved
PME Disable
MSI Disable
Reserved
Bits
4:0
5
Default
00h
0b
0b
000h
Eh
Description
Reserved
Set to 1 to disable EHCI PME support
Set to 1 to disable EHCI MSI support
Reserved
6
15:7
19:16
Cache Timer Control
Control the purge timeout timer if HC doesn't come back to
request the data.
Counter
Max Time (ns)
45
Min Time (ns)
0
1
2
3
4
5
6
7
8
9
30
60
90
180
120
360
240
720
480
1440
960
2880
1920
3840
7680
5760
11520
23040
46080
92160
184320
368640
737280
No limit
15360
30720
A
B
C
D
E
F
61440
122880
245760
491520
Cache Prefetch Disable
20
0b
0b
0: Enable EHCI cache prefetch.
1: Disable EHCI cache prefetch.
Reserved
Disable Async QH Cache
on IN xfer
23:21
24
Set to 1 to disable async QH/QTD cache during IN xfer.
©2008 Advanced Micro Devices, Inc.
OCHI USB 1.1 and EHCI USB 2.0 Controllers
AMD SB600 Register Reference Manual
Proprietary
Page 74
EHCI Misc Control – RW - 32 bits - [PCI_Reg : 50h]
Field Name
Disable Async QH Cache
on OUT xfer
Bits
Default
Description
25
0b
Set to 1 to disable async QH/QTD cache during OUT xfer.
Disable Async Data
Cache
Disable Periodic List
Cache
26
27
0b
0b
0h
Set to 1 to disable async data cache request.
Set to 1 to disable periodic list cache.
Reserved
Reserved
31:28
SBRN – R - 8 bits - [PCI_Reg : 60h]
Default Description
Field Name
Bits
SBRN
7:0
20h
Hard-wired to 20h.
FLADJ – RW - 8 bits - [PCI_Reg : 61h]
Field Name
Bits
Default
Description
FLADJ
5:0
20h
Frame Length Timing Value. Each decimal value change to
this register corresponds to 16 high-speed
bit times. The SOF cycle time (number of SOF counter clock
periods to generate a SOF micro-frame length) is equal to
59488 + value in this field. The default value is decimal 32
(20h), which gives a SOF cycle time of 60000.
FLADJ Value in decimals
[hexadecimal value]
Frame Length
(# High Speed bit
times in decimals)
59488
0 [00h]
1 [01h]
59504
2 [02h]
59520
…
…
31 [1Fh]
32 [20h]
…
59984
60000
…
62 [3Eh]
63 [3Fh]
Reserved.
60480
60496
Reserved
7:6
PME Control – RW - 32 bits - [PCI_Reg : C0h]
Field Name
Bits
Default
Description
Cap_ID
7:0
01h
Read only.
A value of “01h” identifies the linked list item as being the
PCI Power Management registers.
Next ItemPointer
Version
15:8
D0h
Read only.
This field provides an offset into the function’s PCI
Configuration Space pointing to the location of next item in
the function’s capability list. If there are no additional items
in the Capabilities List, this register is set to 00h.
Read only.
A value of “010b” indicates that this function complies with
Revision 1.1 of the PCI Power Management Interface
Specification.
18:16
010b
0b
PME clock
Reserved
19
20
Read only.
When this bit is a “0”, it indicates that no PCI clock is
required for the function to generate PME#.
Reserved
©2008 Advanced Micro Devices, Inc.
OCHI USB 1.1 and EHCI USB 2.0 Controllers
AMD SB600 Register Reference Manual
Proprietary
Page 75
PME Control – RW - 32 bits - [PCI_Reg : C0h]
Field Name
Bits
Default
Description
DSI
21
0b
Read only.
The Device Specific Initialization bit indicates whether
special initialization of this function is required (beyond the
standard PCI configuration header) before the generic class
device driver is able to use it.
Aux_Current
24:22
000b
Read only.
This 3 bit field reports the 3.3Vaux auxiliary current
requirements for the PCI function.
If the Data Register has been implemented by this function:
• Reads of this field must return a value of “000b”.
• The Data Register takes precedence over this field for
3.3Vaux current requirement reporting.
D1_Support
D2_Support
PME_Support
25
26
1b
1b
If this bit is a “1”, this function supports the D1
Power Management State.
If this bit is a “1”, this function supports the D2
Power Management State.
31:27
0Fh
Read only.
This 5-bit field indicates the power states in which the
function may assert PME#. A value of 0b for any bit
indicates that the function is not capable of asserting the
PME# signal while in that power state.
bit(31) 1XXXXb - PME# can be asserted from D3cold bit(30)
X1XXXb - PME# can be asserted from D3hot
bit(29) XX1XXb - PME# can be asserted from D2
bit(28) XXX1Xb - PME# can be asserted from D1
bit(27) XXXX1b - PME# can be asserted from D0
PME Data / Status – RW - 32 bits - [PCI_Reg : C4h]
Field Name
Bits
Default
Description
PowerState
1:0
00b
This 2-bit field is used both to determine the current power
state of a function and to set the function into a new power
state. The definition of the field values is given below.
00b - D0
01b - D1
10b - D2
11b - D3hot
If software attempts to write an unsupported, optional state to
this field, the write operation must be completed normally on
the bus; however, the data is discarded and no state change
occurs.
Reserved
PME_En
7:2
8
Reserved
0b
A “1” enables the function to assert PME#. When “0”, PME#
assertion is disabled. This bit defaults to “0” if the function
does not support PME# generation from D3cold.
This 4-bit field is used to select which data is to be reported
through the Data register and Data_Scale field.
This 2-bit read-only field indicates the scaling factor to be
used when interpreting the value of the Data register. The
value and meaning of this field will vary depending on which
data value has been selected by the Data_Select field.
This bit is set when the function would normally assert the
PME# signal independent of the state of the PME_En bit.
Reserved
Data_Select
Data_Scale
12:9
0000b
00b
14:13
PME_Status
Reserved
15
0b
21:16
©2008 Advanced Micro Devices, Inc.
OCHI USB 1.1 and EHCI USB 2.0 Controllers
AMD SB600 Register Reference Manual
Proprietary
Page 76
PME Data / Status – RW - 32 bits - [PCI_Reg : C4h]
Field Name
B2_B3#
Bits
Default
Description
22
1b
Read only.
The state of this bit determines the action that is to occur as a
direct result of programming the function to D3hot.. A “1”
indicates that when the bridge function is programmed to
D3hot, its secondary bus’s PCI clock will be stopped (B2).
Read only.
A “0” indicates that the bus power/clock control policies are
disabled. When the Bus Power/Clock Control mechanism is
disabled, the bridge’s PMCSR PowerState field cannot be
used by the system software to control the power or clock of
the bridge’s secondary bus.
BPCC_En
Data
23
0b
31:24
00h
Read only.
This register is used to report the state dependent data
requested by the Data_Select field. The value of this register
is scaled by the value reported by the Data_Scale field.
MSI Control – RW - 32 bits - [PCI_Reg : D0h]
Field Name
MSI USB
Next Item Pointer
MSI Control Out
Reserved
Bits
7:0
Default
05h
E4h
0b
Description
MSI USB ID. Read only.
Pointer to next capability structure
Set to 1 to disable IRQ. Use MSI instead.
Reserved
15:8
16
19:17
22:20
23
0h
MSI Control
64-bit Address Capable
0h
MSI control field
0b
If EHCI is in 64 bit address mode as specified by 64-bit
Addressing Capability bit in HCCPARAMS register [MEM
Reg: 08h] , this bit is set to 1 indicating that EHCI is capable
of generating a 64-bit message address. Otherwise it is set
to 0 indicating the EHCI is not capable of generating a 64-bit
address.
Read only
Reserved
31:24
00h
Reserved
MSI Address – RW - 32 bits - [PCI_Reg : D4h]
Field Name
Bits
Default
Description
MSI Address
31:0
0h
System-specified message address.
MSI Data – RW - 16 bits - [PCI_Reg : D8h]
Field Name
Bits
Default
Description
MSI Data
15:0
0h
System-specified message
DBUG_PRT Control – R - 32 bits - [PCI_Reg : E4h]
Field Name
Bits
Default
Description
CAP_ID
7:0
0Ah
The value of 0Ah in this field identifies that the function
supports a Debug Port.
Next Item Pointer
Offset
15:8
28:16
00h
0E0h
Pointer to next capability structure
This 12 bit field indicates the byte offset (up to 4K) within the
BAR indicated by BAR#. This offset is required to be
DWORD aligned and therefore bits 16 and 17 are always
zero.
©2008 Advanced Micro Devices, Inc.
OCHI USB 1.1 and EHCI USB 2.0 Controllers
AMD SB600 Register Reference Manual
Proprietary
Page 77
DBUG_PRT Control – R - 32 bits - [PCI_Reg : E4h]
Field Name
Bits
Default
Description
Bar #
31:29
1h
A 3-bit field, which indicates which one of the possible 6
Base Address Register offsets, contains the Debug Port
registers. For example, a value of 1h indicates the first BAR
(offset 10h) while a value of 5 indicates that the BAR at 20h.
This offset is independent as to whether the BAR is 32 or 64
bit. For example, if the offset were 3 indicating that the BAR
at offset 18h contains the Debug Port. BARs at offset 10 and
14h may or may not be implemented. This field is read only
and only values 1-6h are valid. (A 64-bit BAR is allowed.)
Only a memory BAR is allowed.
USBLEGSUP – RW - 32 bits - [PCI_Reg : EECP + 00h]
Field Name
Bits
Default
Description
Capability ID
7:0
01h
This field identifies the extended capability. A value of 01h
identifies the capability as Legacy Support. This extended
capability requires one additional 32-bit register for
control/status information, and this register is located at
offset EECP+04h.
Read Only.
Next EHCI Extended
Capability Pointer
15:8
16
00h
0b
This field points to the PCI configuration space offset of the
next extended capability pointer. A value of 00h indicates
the end of the extended capability list.
Read Only.
HC BIOS Owned
Semaphore
The BIOS sets this bit to establish ownership of the EHCI
controller. System BIOS will set this bit to a zero in
response to a request for ownership of the EHCI controller
by system software.
Reserved
HC OS Owned Semaphore
23:17
24
These bits are reserved and must be set to zero.
System software sets this bit to request ownership of the
EHCI controller. Ownership is obtained when this bit reads
as one and the HC BIOS Owned Semaphore bit reads as 0.
These bits are reserved and must be set to zero.
0b
Reserved
31:25
USBLEGCTLSTS – RW - 32 bits - [PCI_Reg : EECP + 04h]
Field Name
Bits
Default
Description
USB SMI Enable
0
0b
When this bit is a one, and the SMI on USB Complete bit
(above) in this register is a one, the host controller will issue
an SMI immediately.
SMI on USB Error Enable
1
2
0b
0b
0b
0b
0b
When this bit is a one, and the SMI on USB Error bit (above)
in this register is a one, the host controller will issue an SMI
immediately.
When this bit is a one, and the SMI on Port Change Detect
bit (above) in this register is a one, the host controller will
issue an SMI immediately.
When this bit is a one, and the SMI on Frame List Rollover
bit (above) in this register is a one, the host controller will
issue an SMI immediately.
When this bit is a one, and the SMI on Host System Error bit
(above) in this register is a one, the host controller will issue
an SMI immediately.
SMI on Port Change
Enable
SMI on Frame List Rollover
Enable R/W
3
SMI on Host System Error
Enable
4
SMI on Async Advance
Enable
5
When this bit is a one, and the SMI on Async Advance bit
(above) in this register is a one, the host controller will issue
an SMI immediately.
Reserved.
12:6
These bits are reserved and must be set to zero.
©2008 Advanced Micro Devices, Inc.
OCHI USB 1.1 and EHCI USB 2.0 Controllers
AMD SB600 Register Reference Manual
Proprietary
Page 78
USBLEGCTLSTS – RW - 32 bits - [PCI_Reg : EECP + 04h]
Field Name
SMI on OS Ownership
Enable
SMI on PCI Command
Enable
Bits
Default
Description
13
0b
When this bit is a one AND the OS Ownership Change bit is
one, the host controller will issue an SMI.
When this bit is one and SMI on PCI Command is one, then
the host controller will issue an SMI.
When this bit is one and SMI on BAR is one, then the host
controller will issue an SMI.
Shadow bit of USB Interrupt (USBINT) bit in the USBSTS
register. To set this bit to a zero, system software must
write a one to the USB Interrupt bit in the USBSTS register.
Read Only.
14
15
16
0b
0b
0b
SMI on BAR Enable
SMI on USB Complete
SMI on USB Error
17
0b
Shadow bit of USB Error Interrupt (USBERRINT) bit in the
USBSTS register. To set this bit to a zero, system software
must write a one to the USB Error Interrupt bit in the
USBSTS register.
Read Only.
SMI on Port Change
Detect.
18
19
20
21
0b
0b
0b
0b
Shadow bit of Port Change Detect bit in the USBSTS
register. To set this bit to a zero, system software must write
a one to the Port Change Detect bit in the USBSTS register.
Read Only.
Shadow bit of Frame List Rollover bit in the USBSTS
register. To set this bit to a zero, system software must write
a one to the Frame List Rollover bit in the USBSTS register.
Read Only.
Shadow bit of Host System Error bit in the USBSTS register.
To set this bit to a zero, system software must write a one to
the Host System Error bit in the USBSTS register.
Read Only.
Shadow bit of the Interrupt on Async Advance bit in the
USBSTS register. To set this bit to a zero, system software
must write a one to the Interrupt on Async
Advance bit in the USBSTS register.
SMI on Frame List Rollover
SMI on Host System Error
SMI on Async Advance
Read Only.
Reserved.
SMI on OS Ownership
Change
28:22
29
These bits are reserved and must be set to zero.
This bit is set to one whenever the HC OS Owned
Semaphore bit in the USBLEGSUP register transitions from
1 to 0 or 0 to 1.
0b
SMI on PCI Command
30
31
0b
0b
This bit is set to one whenever the PCI Command Register
is written.
This bit is set to one whenever the Base Address Register
(BAR) is written.
SMI on BAR R/WC
2.2.3.2 Host Controller Capability Registers (MEM_Reg)
This block of registers is memory-mapped. Access address is equal to offset address plus base address defined in
BAR[PCI_Reg : 10h].
Registers Name
Capability Register Length - CAPLENGTH
Reserved
Offset Address
00h
01h
02h
04h
08h
0Ch
Host Controller Interface Version – HCIVERSION
Structural Parameters – HCSPARAMS
Capability Parameters - HCCPARMAS
Companion Port Route Description – HCSP-PORTROUTE
©2008 Advanced Micro Devices, Inc.
OCHI USB 1.1 and EHCI USB 2.0 Controllers
Proprietary Page 79
AMD SB600 Register Reference Manual
CAPLENGTH – R - 8 bits - [MEM_Reg : 00h]
Description
This register is used as an offset to add to register base to find the beginning of the Operational Register Space.
Default value = 20h.
HCIVERSION – R - 16 bits - [MEM_Reg : 02h]
Field Name
HCIVERSION
Bits
Default
Description
15:0
0100h
This is a two-byte register containing a BCD encoding of the
version number of interface to which this host controller
interface conforms.
HCSPARAMS – R - 32 bits - [MEM_Reg : 04h]
Field Name
N_PORTS
Bits
Default
Description
3:0
Ah
This field specifies the number of physical downstream ports
implemented on this host controller. The value of this field
determines how many port registers are addressable in the
Operational Register Space. Valid values are in the range
of 1H to FH. A zero in this field is undefined.
Port Power Control (PPC)
4
0b
0b
This field indicates whether the host controller
implementation includes port power control. A one in this bit
indicates the ports have port power switches. A zero in this
bit indicates the port does not have port power switches.
The value of this field affects the functionality of the Port
Power field in each port status and control register.
These bits are reserved and should be set to zero.
This field indicates the method used by this implementation
for how all ports are mapped to companion controllers. The
value of this field has the following interpretation:
0 = The first N_PCC ports are routed to the lowest
numbered function companion host controller, the next
N_PCC port are routed to the next lowest function
companion controller, and so on.
Reserved
Port Routing Rules
6:5
7
1 = The port routing is explicitly enumerated by the first
N_PORTS elements of the HCSP-PORTROUTE array.
This field indicates the number of ports supported per
companion host controller. It is used to indicate the port
routing configuration to system software. For example, if
N_PORTS has a value of 6 and N_CC has a value of 2 then
N_PCC could have a value of 3. The convention is that the
first N_PCC ports are assumed to be routed to companion
controller 1, the next N_PCC ports to companion controller
2, etc. In the previous example, the N_PCC could have
been 4, where the first 4 are routed to companion controller
1 and the last two are routed to companion controller 2. The
number in this field must be consistent with N_PORTS and
N_CC.
Number of Ports per
Companion Controller
(N_PCC)
11:8
2h
Number of Companion
Controller (N_CC)
15:12
5h
This field indicates the number of companion controllers
associated with this USB 2.0 host controller. A zero in this
field indicates there are no companion host controllers.
Port-ownership hand-off is not supported. Only high-speed
devices are supported on the host controller root ports. A
value larger than zero in this field indicates there are
companion USB 1.1 host controller(s). Port-ownership
hand-offs are supported. High, Full- and Low-speed devices
are supported on the host controller root ports.
Port Indicators
(P_INDICATOR)
16
0b
This bit indicates whether the ports support port indicator
control. When this bit is a one, the port status and control
registers include a read/writeable field for controlling the
state of the port indicator.
©2008 Advanced Micro Devices, Inc.
OCHI USB 1.1 and EHCI USB 2.0 Controllers
AMD SB600 Register Reference Manual
Proprietary
Page 80
HCSPARAMS – R - 32 bits - [MEM_Reg : 04h]
Field Name
Reserved
Debug Port Number
Bits
19:17
23:20
Default
Description
These bits are reserved and should be set to zero.
Optional. This register identifies which of the host controller
ports is the debug port. The value is the port number (one-
based) of the debug port. A non-zero value in this field
indicates the presence of a debug port. The value in this
register must not be greater than N_PORTS.
1h
Reserved
31:24
These bits are reserved and should be set to zero.
HCCPARAMS – R - 32 bits - [MEM_Reg : 08h]
Field Name
64-bit Addressing
Capability
Bits
Default
Description
0
0b
This field documents the addressing range capability of this
implementation.
0 = Data structures using 32-bit address memory pointers
1 = Data structures using 64-bit address memory pointers
If this bit is set to a zero, then system software must use a
frame list length of 1024 elements with this host controller.
The USBCMD register Frame List Size field is a read-only
register and should be set to zero. If set to a one, then
system software can specify and use a smaller frame list
and configure the host controller via the USBCMD register
Frame List Size field. The frame list must always be aligned
on a 4K page boundary. This requirement ensures that the
frame list is always physically contiguous.
Programmable Frame List
Flag
1
1b
Asynchronous Schedule
Park Capability
2
0b
1h
If this bit is set to a one, then the host controller supports the
park feature for high-speed queue heads in the
Asynchronous Schedule. The feature can be disabled or
enabled and set to a specific level by using the
Asynchronous Schedule Park Mode Enable and
Asynchronous Schedule Park Mode Count fields in the
USBCMD register.
These bits are reserved and should be set to zero.
This field indicates, relative to the current position of the
executing host controller, where software can reliably
update the isochronous schedule. When bit [7] is zero, the
value of the least significant 3 bits indicates the number of
micro-frames a host controller can hold a set of isochronous
data structures (one or more) before flushing the state.
When bit [7] is a one, then host software assumes the host
controller may cache an isochronous data structure for an
entire frame.
Reserved
Isochronous Scheduling
Threshold
3
7:4
EHCI Extended
Capabilities Pointer (EECP)
15:8
A0h
This optional field indicates the existence of a capabilities
list. A value of 00h indicates no extended capabilities are
implemented. A non-zero value in this register indicates the
offset in PCI configuration space of the first EHCI extended
capability. The pointer value must be 40h or greater if
implemented to maintain the consistency of the PCI header
defined for this class of device.
Reserved
31:16
These bits are reserved and should be set to zero.
©2008 Advanced Micro Devices, Inc.
OCHI USB 1.1 and EHCI USB 2.0 Controllers
AMD SB600 Register Reference Manual
Proprietary
Page 81
HCSP-PORTROUTE – R - 60 bits - [MEM_Reg : 0Ch]
Description
This optional field is valid only if Port Routing Rules field in the HCSPARAMS register is set to a one. This field is a
15-element nibble array (each 4 bits is one array element). Each array location corresponds one-to-one with a
physical port provided by the host controller.
2.2.3.3 Host Controller Operational Registers (EOR_Reg)
This block of registers is memory-mapped. The base offset, EHCI_EOR, is defined in CAPLENGTH register
(MEM_Reg: 00h, default value = 20h).
Registers Name
USB Command – USBCMD
USB Satus – USBSTS
Offset Address
EHCI_EOR + 00h
EHCI_EOR + 04h
EHCI_EOR + 08h
EHCI_EOR + 0Ch
EHCI_EOR + 10h
EHCI_EOR + 14h
EHCI_EOR + 18h
EHCI_EOR + (1Ch~3Fh)
EHCI_EOR + 40h
EHCI_EOR + (44h~68h)
EHCI_EOR + 84h
EHCI_EOR + 88h
EHCI_EOR + 8Ch
EHCI_EOR + 90h
EHCI_EOR + 94h
EHCI_EOR + 98h
EHCI_EOR + 9Ch
EHCI_EOR + A0h
EHCI_EOR + A8h
0E0h~0F0h (* Note)
USB Interrupt Enable – USBINTR
USB Frame Index – FRINDEX
4G Segment Selector – CTRLDSSEGMENT
Frame List Base Address – PERIODICLISTBASE
Next Asynchronous List Address – ASYNCLISTADDR
Reserved
Configured Flag – CONFIGFLAG
Port Status/Control – PORTSC (1-N_PORTS)
Packet Buffer Threshold Values
USB PHY Status 0
USB PHY Status 1
USB PHY Status 2
UTMI Control
Bist Control / Loopback Test
EOR MISC Control
USB Phy Calibration
EOR Debug Purpose
USB Debug Port
The base offset of Debug Port registers is defined directly in DBUG_PRT Control register (EHCI_PCI_CFG xE4[28:16]),
regardless of the value in CAPLENGTH register (MEM_Reg: 00h) so range is equivalent to EHCI_EOR + (C0h~D0h).
USBCMD – RW - 32 bits - [EOR_Reg : EHCI_EOR + 00h]
Field Name
Bits
Default
Description
Run/Stop (RS)
0
0b
1=Run, 0=Stop.
When set to a 1, the Host Controller proceeds with execution of the
schedule. The Host Controller continues execution as long as this bit is
set to a 1. When this bit is set to 0, the Host Controller completes the
current and any actively pipelined transactions on the USB and then
halts. The Host Controller must halt within 16 micro-frames after
software clears the Run bit. The HC Halted bit in the status register
indicates when the Host Controller has finished its pending pipelined
transactions and has entered the stopped state. Software must not write
a one to this field unless the host controller is in the Halted state (i.e.
HCHalted in the USBSTS register is a one). Doing so will yield
undefined results.
©2008 Advanced Micro Devices, Inc.
OCHI USB 1.1 and EHCI USB 2.0 Controllers
AMD SB600 Register Reference Manual
Proprietary
Page 82
USBCMD – RW - 32 bits - [EOR_Reg : EHCI_EOR + 00h]
Field Name
Host Controller
Reset
Bits
Default
Description
1
0b
This control bit is used by software to reset the host controller. The
effects of this on Root Hub registers are similar to a Chip Hardware
Reset. When software writes a one to this bit, the Host Controller resets
its internal pipelines, timers, counters, state machines, etc. to their initial
value. Any transaction currently in progress on USB is immediately
terminated. A USB reset is not driven on downstream ports. PCI
Configuration registers are not affected by this reset. All operational
registers, including port registers and port state machines are set to their
initial values. Port ownership reverts to the companion host controller(s).
Software must reinitialize the host controller in order to return the host
controller to an operational state. This bit is set to zero by the Host
Controller when the reset process is complete. Software cannot
terminate the reset process early by writing a zero to this register.
Software should not set this bit to a one when the HCHalted bit in the
USBSTS register is a zero. Attempting to reset an actively running host
controller will result in undefined behavior.
(HCRESET)
Frame List Size
3:2
00b
This field is R/W only if Programmable Frame List Flag in the
HCCPARAMS registers is set to a one. This field specifies the size of
the frame list. The size the frame list controls which bits in the Frame
Index Register should be used for the Frame List Current index. Values
mean:
00b = 1024 elements (4096 bytes) Default value
01b = 512 elements (2048 bytes)
10b = 256 elements (1024 bytes) – for resource-constrained
environments
11b = Reserved
[Read/Write or Read-only]
Periodic
Schedule
Enable
4
5
6
0b
0b
0b
This bit controls whether the host controller skips processing the Periodic
Schedule.
0 = Do not process the Periodic Schedule
1 = Use the PERIODICLISTBASE register to access the Periodic
Schedule.
This bit controls whether the host controller skips processing the
Asynchronous Schedule.
0b = Do not process the Asynchronous Schedule
1b = Use the ASYNCLISTADDR register to access the Asynchronous
Schedule.
This bit is used as a doorbell by software to tell the host controller to
issue an interrupt the next time it advances asynchronous schedule.
Software must write a 1 to this bit to ring the doorbell. When the host
controller has evicted all appropriate cached schedule state, it sets the
Interrupt on Async Advance status bit in the USBSTS register. If the
Interrupt on Async Advance Enable bit in the USBINTR register is a one
then the host controller will assert an interrupt at the next interrupt
threshold. The host controller sets this bit to a zero after it has set the
Interrupt on Async Advance status bit in the USBSTS register to a one.
Software should not write a one to this bit when the asynchronous
schedule is disabled. Doing so will yield undefined results.
This control bit is not required. If implemented, it allows the driver to
reset the EHCI controller without affecting the state of the ports or the
relationship to the companion host controllers. For example, the
PORSTC registers should not be reset to their default values and the CF
bit setting should not go to zero (retaining port ownership relationships).
A host software read of this bit as zero indicates the Light Host Controller
Reset has completed and it is safe for host software to re-initialize the
host controller. A host software read of this bit as a one indicates the
Light Host Controller Reset has not yet completed.
Asynchronous
Schedule
Enable
Interrupt on
Async Advance
Doorbell
Light Host
Controller Reset
(Optional)
7
0b
If not implemented a read of this field will always return a zero.
©2008 Advanced Micro Devices, Inc.
OCHI USB 1.1 and EHCI USB 2.0 Controllers
AMD SB600 Register Reference Manual
Proprietary
Page 83
USBCMD – RW - 32 bits - [EOR_Reg : EHCI_EOR + 00h]
Field Name
Asynchronous
Schedule Park
Mode Count
(Optional)
Bits
Default
Description
9:8
00b
If the Asynchronous Park Capability bit in the HCCPARAMS register is a
one, then this field defaults to 3h and is R/W. Otherwise it defaults to
zero and is RO. It contains a count of the number of successive
transactions the host controller is allowed to execute from a high-speed
queue head on the Asynchronous schedule before continuing traversal
of the Asynchronous schedule. Valid values are 1h to 3h. Software
must not write a zero to this bit when Park Mode Enable is a one as this
will result in undefined behavior.
[Read/Write or Read-only]
Reserved
10
11
This bit is reserved and should be set to Zero.
[Read-only]
If the Asynchronous Park Capability bit in the HCCPARAMS register is a
one, then this bit defaults to a 1h and is R/W. Otherwise the bit must be
a zero and is RO. Software uses this bit to enable or disable Park mode.
When this bit is one, Park mode is enabled. When this bit is a zero, Park
mode is disabled.
Asynchronous
Schedule Park
Mode Enable
(Optional)
0b
Reserved
Interrupt
Threshold
Control
15:12
23:16
This bit is reserved and should be set to Zero.
08h
This field is used by system software to select the maximum rate at
which the host controller will issue interrupts. The only valid values are
defined below. If software writes an invalid value to this register, the
results are undefined.
00h = Reserved
01h = 1 micro-frame
02h = 2 micro-frames
04h = 4 micro-frames
08h = 8 micro-frames (default, equates to 1 ms)
10h = 16 micro-frames (2 ms)
20h = 32 micro-frames (4 ms)
40h = 64 micro-frames (8 ms)
Any other value in this register yields undefined results. Software
modifications to this bit while HCHalted bit is equal to zero results in
undefined behavior.
Reserved
31:24
These bits are reserved and should be set to Zeros.
USBSTS - RW - 32 bits - [EOR_Reg : EHCI_EOR + 04h]
Field Name
Bits
Default
Description
USBINT
0
0b
USB Interrupt. The Host Controller sets this bit to 1 on the completion of
a USB transaction, which results in the retirement of a Transfer Descriptor
that had its IOC bit set. The Host Controller also sets this bit to 1 when a
short packet is detected (actual number of bytes received was less than
the expected number of bytes).
USBERRINT
1
0b
USB Error Interrupt . The Host Controller sets this bit to 1 when
completion of a USB transaction results in an error condition (e.g., error
counter underflow). If the TD on which the error interrupt occurred also
had its IOC bit set, both this bit and USBINT bit are set.
©2008 Advanced Micro Devices, Inc.
OCHI USB 1.1 and EHCI USB 2.0 Controllers
AMD SB600 Register Reference Manual
Proprietary
Page 84
USBSTS - RW - 32 bits - [EOR_Reg : EHCI_EOR + 04h]
Field Name
Port Change
Detect
Bits
Default
Description
2
0b
Port Change Detect. The Host Controller sets this bit to a one when any
port for which the Port Owner bit is set to zero (see Section 2.3.9) has a
change bit transition from a zero to a one or a Force Port Resume bit
transition from a zero to a one as a result of a J-K transition detected on a
suspended port. This bit will also be set as a result of the Connect Status
Change being set to a one after system software has relinquished
ownership of a connected port by writing a zero to a port's Port Owner bit.
This bit is allowed to be maintained in the Auxiliary power well.
Alternatively, it is also acceptable that on a D3 to D0 transition of the
EHCI HC device, this bit is loaded with the OR of all of the PORTSC
change bits (including: Force port resume, over-current change,
enable/disable change and connect status change).
Frame List
Rollover
3
0b
Frame List Rollover. The Host Controller sets this bit to a one when the
Frame List Index rolls over from its maximum value to zero. The exact
value at which the rollover occurs depends on the frame list size. For
example, if the frame list size (as programmed in the Frame List Size field
of the USBCMD register) is 1024, the Frame Index Register rolls over
every time FRINDEX[13] toggles. Similarly, if the size is 512, the Host
Controller sets this bit to a one every time FRINDEX[12] toggles.
Host System Error. The Host Controller sets this bit to 1 when a serious
error occurs during a host system access involving the Host Controller
module. In a PCI system, conditions that set this bit to 1 include PCI
Parity error, PCI Master Abort, and PCI Target Abort. When this error
occurs, the Host Controller clears the Run/Stop bit in the Command
register to prevent further execution of the scheduled TDs.
Host System Error
4
5
0b
0b
1b
Interrupt on Async
Advance
Interrupt on Async Advance. System software can force the host
controller to issue an interrupt the next time the host controller advances
the asynchronous schedule by writing a one to the Interrupt on Async
Advance Doorbell bit in the USBCMD register. This status bit indicates the
assertion of that interrupt source.
Reserved
HCHalted
11:6
12
These bits are reserved and should be set to zero.
HCHalted. This bit is a zero whenever the Run/Stop bit is a one. The Host
Controller sets this bit to one after it has stopped executing as a result of
the Run/Stop bit being set to 0, either by software or by the Host
Controller hardware (e.g. internal error). [Read-only]
Reclamation
13
14
0b
0b
Reclamation. This is a read-only status bit, which is used to detect an
empty asynchronous schedule. [Read-only]
Periodic Schedule
Status
Periodic Schedule Status. The bit reports the current real status of the
Periodic Schedule. If this bit is a zero then the status of the Periodic
Schedule is disabled. If this bit is a one then the status of the Periodic
Schedule is enabled. The Host Controller is not required to immediately
disable or enable the Periodic Schedule when software transitions the
Periodic Schedule Enable bit in the USBCMD register. When this bit and
the Periodic Schedule Enable bit are the same value, the Periodic
Schedule is either enabled (1) or disabled (0). [Read-only]
Asynchronous
Schedule Status
15
0b
Asynchronous Schedule Status. The bit reports the current real status of
the Asynchronous Schedule. If this bit is a zero then the status of the
Asynchronous Schedule is disabled. If this bit is a one then the status of
the Asynchronous Schedule is enabled. The Host Controller is not
required to immediately disable or enable the Asynchronous Schedule
when software transitions the Asynchronous Schedule Enable bit in the
USBCMD register. When this bit and the Asynchronous Schedule Enable
bit are the same value, the Asynchronous Schedule is either enabled (1)
or disabled (0). [Read-only]
Reserved
31:16
These bits are reserved and should be set to zero.
©2008 Advanced Micro Devices, Inc.
OCHI USB 1.1 and EHCI USB 2.0 Controllers
AMD SB600 Register Reference Manual
Proprietary
Page 85
USBINTR –RW - 32 bits - [EOR_Reg : EHCI_EOR + 08h]
Field Name
USB Interrupt
Enable
Bits
Default
Description
0
0b
When this bit is a one, and the USBINT bit in the USBSTS register is a
one, the host controller will issue an interrupt at the next interrupt
threshold. The interrupt is acknowledged by software clearing the
USBINT bit.
USB Error
Interrupt Enable
1
0b
When this bit is a one, and the USBERRINT bit in the USBSTS register is
a one, the host controller will issue an interrupt at the next interrupt
threshold. The interrupt is acknowledged by software clearing the
USBERRINT bit.
Port Change
Interrupt Enable
2
3
4
5
0b
0b
0b
0b
When this bit is a one, and the Port Change Detect bit in the USBSTS
register is a one, the host controller will issue an interrupt. The interrupt is
acknowledged by software clearing the Port Change Detect bit.
When this bit is a one, and the Frame List Rollover bit in the USBSTS
register is a one, the host controller will issue an interrupt. The interrupt is
acknowledged by software clearing the Frame List Rollover bit.
When this bit is a one, and the Host System Error Status bit in the
USBSTS register is a one, the host controller will issue an interrupt. The
interrupt is acknowledged by software clearing the Host System Error bit.
When this bit is a one, and the Interrupt on Async Advance bit in the
USBSTS register is a one, the host controller will issue an interrupt at the
next interrupt threshold. The interrupt is acknowledged by software
clearing the Interrupt on Async Advance bit.
Frame List
Rollover Enable
Host System Error
Enable
Interrupt on Async
Advance Enable
Reserved
31:6
These bits are reserved and should be zero
FRINDEX –RW - 32 bits - [EOR_Reg : EHCI_EOR + 0Ch]
Field Name
Bits
Default
Description
Frame Index
13:0
0h
When this bit is a one, and the Interrupt on Async Advance bit in the
USBSTS register is a one, the host controller will issue an interrupt at the
next interrupt threshold. The interrupt is acknowledged by software
clearing the Interrupt on Async Advance bit.
Reserved
31:14
These bits are reserved and should be zero
CTRLDSSEGMENT –RW - 32 bits - [EOR_Reg : EHCI_EOR + 10h]
Field Name
CTRLDSSEGME
NT
Bits
Default
Description
31:0
0h
This 32-bit register corresponds to the most significant address bits
[63:32] for all EHCI data structures. If the 64-bit Addressing Capability
field in HCCPARAMS is a zero, then this register is not used. Software
cannot write to it and a read from this register will return zeros.
If the 64-bit Addressing Capability field in HCCPARAMS is a one, then
this register is used with the link pointers to construct 64-bit addresses to
EHCI control data structures. This register is concatenated with the
link pointer from either the PERIODICLISTBASE, ASYNCLISTADDR, or
any control data structure link field to construct a 64-bit address.
This register allows the host software to locate all control data structures
within the same 4 Gigabyte memory segment.
PERIODICLISTBASE –RW - 32 bits - [EOR_Reg : EHCI_EOR + 14h]
Field Name
Bits
Default
Description
Reserved
11:0
These bits are reserved. Must be written as 0s. During runtime, the
values of these bits are undefined.
Base Address
31:12
000h
These bits correspond to memory address signals [31:12], respectively.
©2008 Advanced Micro Devices, Inc.
OCHI USB 1.1 and EHCI USB 2.0 Controllers
AMD SB600 Register Reference Manual
Proprietary
Page 86
ASYNCLISTADDR –RW - 32 bits - [EOR_Reg : EHCI_EOR + 18h]
Field Name
Reserved
Link Pointer Low
(LPL)
Bits
Default
Description
4:0
31:5
These bits are reserved and their value has no effect on operation.
These bits correspond to memory address signals [31:5], respectively.
This field may only reference a Queue Head (QH).
00h
CONFIGFLAG –RW - 32 bits - [EOR_Reg : EHCI_EOR + 40h]
Field Name
Configure Flag
(CF)
Bits
Default
Description
0
0b
Host software sets this bit as the last action in its process of configuring
the Host Controller. This bit controls the default port-routing control
logic. Bit values and side-effects are listed below:
0b = Port routing control logic default-routes each port to an
implementation dependent classic host controller.
1b = Port routing control logic default-routes all ports to this host
controller.
Reserved
31:1
These bits are reserved and should be set to zero.
PORTSC (1-N_PORTS) –RW - 32 bits - [EOR_Reg : EHCI_EOR + (44h~68h)]
Field Name
Current Connect
Status
Bits
0
Default
Description
0b
1 = Device is present on port.
0 = No device is present.
This value reflects the current state of the port, and may not correspond
directly to the event that caused the Connect Status Change bit (Bit 1) to
be set. This field is zero if Port Power is zero. [Read-only]
1 = Change in Current Connect Status.
Connect Status
Change
1
0b
0 = No change.
Indicates a change has occurred in the port’s Current Connect Status.
The host controller sets this bit for all changes to the port device connect
status, even if system software has not cleared an existing connect status
change. For example, the insertion status changes twice before system
software has cleared the changed condition, hub hardware will be
“setting” an already-set bit (i.e., the bit will remain set). Software sets this
bit to 0 by writing a 1 to it. This field is zero if Port Power is zero.
1 = Enable.
Port
2
0b
Enabled/Disabled
0 = Disable
Ports can only be enabled by the host controller as a part of the reset and
enable. Software cannot enable a port by writing a one to this field. The
host controller will only set this bit to a one when the reset sequence
determines that the attached device is a high-speed device. Ports can be
disabled by either a fault condition (disconnect event or other fault
condition) or by host software. Note that the bit status does not change
until the port state actually changes. There may be a delay in disabling or
enabling a port due to other host controller and bus events. When the port
is disabled (0b) downstream propagation of data is blocked on this port,
except for reset. This field is zero if Port Power is zero.
1 = Port enabled/disabled status has changed.
Port
Enable/Disable
Change
3
4
0b
0b
0 = No change.
For the root hub, this bit gets set to a one only when a port is disabled due
to the appropriate conditions existing at the EOF2. Software clears this bit
by writing a 1 to it. This field is zero if Port Power is zero.
1 = This port currently has an over-current condition.
0 = This port does not have an over-current condition.
This bit will automatically transition from a one to a zero when the over
current condition is removed.
Over-current
Active
©2008 Advanced Micro Devices, Inc.
OCHI USB 1.1 and EHCI USB 2.0 Controllers
AMD SB600 Register Reference Manual
Proprietary
Page 87
PORTSC (1-N_PORTS) –RW - 32 bits - [EOR_Reg : EHCI_EOR + (44h~68h)]
Field Name
Force Port
Resume
Bits
6
Default
Description
1 = Resume detected/driven on port.
0 = No resume (K-state) detected/driven on port.
0b
This functionality defined for manipulating this bit depends on the value of
the Suspend bit. For example, if the port is not suspended (Suspend and
Enabled bits are a one) and software transitions this bit to a one, then the
effects on the bus are undefined. Software sets this bit to a 1 to drive
resume signaling. The Host Controller sets this bit to a 1 if a J-to-K
transition is detected while the port is in the Suspend state. When this bit
transitions to a one because a J-to-K transition is detected, the Port
Change Detect bit in the USBSTS register is also set to a one. If software
sets this bit to a one, the host controller must not set the Port Change
Detect bit. Note that when the EHCI controller owns the port, the resume
sequence follows the defined sequence documented in the USB
Specification Revision 2.0. The resume signaling (Full-speed 'K') is driven
on the port as long as this bit remains a one. Software must appropriately
time the Resume and set this bit to a zero when the appropriate amount
of time has elapsed. Writing a zero (from one) causes the port to return to
high-speed mode (forcing the bus below the port into a high-speed idle).
This bit will remain a one until the port has switched to the high-speed
idle. The host controller must complete this transition within 2 milliseconds
of software setting this bit to a zero. This field is zero if Port Power is zero.
1 = Port in suspend state.
Suspend
7
0b
0 = Port not in suspend state.
Port Enabled Bit and Suspend bit of this register define the port states as
follows:
Bits [Port Enabled, Suspend]
Port State
Disable
Enable
Suspend
0X
10
11
When in suspend state, downstream propagation of data is blocked on
this port, except for port reset. The blocking occurs at the end of the
current transaction, if a transaction was in progress when this bit was
written to 1. In the suspend state, the port is sensitive to resume
detection. Note that the bit status does not change until the port is
suspended and that there may be a delay in suspending a port if there is
a transaction currently in progress on the USB. A write of zero to this bit is
ignored by the host controller. The host controller will unconditionally set
this bit to a zero when:
- Software sets the Force Port Resume bit to a zero (from a one).
- Software sets the Port Reset bit to a one (from a zero).
If host software sets this bit to a one when the port is not enabled (i.e.
Port enabled bit is a zero) the results are undefined. This field is zero if
Port Power is zero.
©2008 Advanced Micro Devices, Inc.
OCHI USB 1.1 and EHCI USB 2.0 Controllers
AMD SB600 Register Reference Manual
Proprietary
Page 88
PORTSC (1-N_PORTS) –RW - 32 bits - [EOR_Reg : EHCI_EOR + (44h~68h)]
Field Name
Bits
Default
Description
Port Reset
8
0b
1 = Port is in Reset.
0 = Port is not in Reset.
When software writes a one to this bit (from a zero), the bus reset
sequence as defined in the USB Specification Revision 2.0 is started.
Software writes a zero to this bit to terminate the bus reset sequence.
Software must keep this bit at a one long enough to ensure the reset
sequence, as specified in the USB Specification Revision 2.0, completes.
Note: when software writes this bit to a one, it must also write a zero to
the Port Enable bit.
Note that when software writes a zero to this bit there may be a delay
before the bit status changes to a zero. The bit status will not read as a
zero until after the reset has completed. If the port is in high-speed mode
after reset is complete, the host controller will automatically enable this
port (e.g. set the Port Enable bit to a one). A host controller must
terminate the reset and stabilize the state of the port within 2 milliseconds
of software transitioning this bit from a one to a zero. For example: if the
port detects that the attached device is high-speed during reset, then the
host controller must have the port in the enabled state within 2ms of
software writing this bit to a zero.
The HCHalted bit in the USBSTS register should be a zero before
software attempts to use this bit. The host controller may hold Port Reset
asserted to a one when the
HCHalted bit is a one. This field is zero if Port Power is zero.
This bit is reserved for future use, and should return a value of zero when
read.
Reserved
9
Line Status
11:10
These bits reflect the current logical levels of the D+ (bit 11) and D-
(bit 10) signal lines. These bits are used for detection of low-speed USB
devices prior to the port reset and enable sequence. This field is valid
only when the port enable bit is zero and the current connect status bit is
set to a one.
The encoding of the bits are:
Bits[11:10] USB State Interpretation
00b
10b
01b
11b
SE0
J-state
K-state
Not Low-speed device, perform EHCI reset
Not Low-speed device, perform EHCI reset
Low-speed device, release ownership of port
Undefined Not Low-speed device, perform EHCI reset.
This value of this field is undefined if Port Power is zero.
[Read-only]
Port Power
12
The function of this bit depends on the value of the Port Power Control
(PPC) field in the HCSPARAMS register. The behavior is as follows:
PPC PP Operation
0b
switches. Each port is hard-wired to power.
1b 1b/0b RW - Host controller has port power control switches.
1b
RO - Host controller does not have port power control
This bit represents the current setting of the switch (0 = off, 1 = on). When
power is not available on a port (i.e.
PP equals a 0), the port is non-functional and will not report attaches,
detaches, etc.
When an over-current condition is detected on a powered port and PPC is
a one, the PP bit in each affected port may be transitioned by the host
controller from a 1 to 0 (removing power from the port).
[Read-write or Read-only]
©2008 Advanced Micro Devices, Inc.
OCHI USB 1.1 and EHCI USB 2.0 Controllers
AMD SB600 Register Reference Manual
Proprietary
Page 89
PORTSC (1-N_PORTS) –RW - 32 bits - [EOR_Reg : EHCI_EOR + (44h~68h)]
Field Name
Bits
Default
Description
Port Owner
13
1b
This bit unconditionally goes to a 0b when the Configured bit in the
CONFIGFLAG register makes a 0b to 1b transition. This bit
unconditionally goes to 1b whenever the Configured bit is zero.
System software uses this field to release ownership of the port to a
selected host controller (in the event that the attached device is not a
high-speed device). Software writes a one to this bit when the attached
device is not a high-speed device. A one in this bit means that a
companion host controller owns and controls the port.
Writing to this bit has no effect if the P_INDICATOR bit in the
HCSPARAMS register is a zero. If P_INDICATOR bit is a one, then the bit
encodings are:
Port Indicator
Control
15:14
00b
Bit Value Meaning
00b
01b
10b
11b
Port indicators are off
Amber
Green
Undefined
Refer to the USB Specification Revision 2.0 for a description on how
these bits are to be used. This field is zero if Port Power is zero.
When this field is zero, the port is NOT operating in a test mode. A non-
zero value indicates that it is operating in test mode and the specific test
mode is indicated by the specific value. The encoding of the test mode
bits are (0110b - 1111b are reserved):
Port Test Control
19:16
0000b
Bits
Test Mode
0000b Test mode not enabled
0001b Test J_STATE
0010b Test K_STATE
0011b Test SE0_NAK
0100b Test Packet
0101b Test FORCE_ENABLE
Wake on Connect
Enable
Wake on
Disconnect
Enable
20
21
0b
0b
Writing this bit to a one enables the port to be sensitive to device
connects as wake-up events. This field is zero if Port Power is zero.
Writing this bit to a one enables the port to be sensitive to device
disconnects as wake-up events. This field is zero if Port Power is zero.
Wake on Over-
current Enable
Reserved
22
0b
Writing this bit to a one enables the port to be sensitive to over-current
conditions as wake-up events. This field is zero if Port Power is zero.
Reserved
31:23
Packet Buffer Threshold Values – RW - 32 bits - [EOR_Reg : EHCI_EOR + 84h]
Field Name
IN Threshold
Bits
7:0
Default
10h
Description
The PCI transaction starts when threshold of internal FIFO for receive
packet is reached.
The value represents multiple of 8 bytes – 10h means 128 bytes. The
smallest acceptable value is 08h (64 bytes).
Reserved
Reserved
15:8
OUT Threshold
23:16
60h
The transmit packet starts at UTMI interface when threshold of internal
FIFO for transmit packet is reached.
The value represents multiple of 8 bytes – 10h means 128 bytes. The
smallest acceptable value is 08h (64 bytes).
Reserved
Reserved
31:24
©2008 Advanced Micro Devices, Inc.
OCHI USB 1.1 and EHCI USB 2.0 Controllers
AMD SB600 Register Reference Manual
Proprietary
Page 90
USB PHY Status 0 – RW - 32 bits - [EOR_Reg: EHCI_EOR + 88h]
Field Name
Bits
Default
Description
PORT0_PHYStatus
PORT1_PHYStatus
PORT2_PHYStatus 23:16
PORT3_PHYStatus 31:24
7:0
15:8
00h
00h
00h
00h
Read only. PHY Status of Port0
Read only. PHY Status of Port1
Read only. PHY Status of Port2
Read only. PHY Status of Port3
Note: PORTx_PHYStatus[7:0] = { 0, RCKSEL, DUTYADJ[2:0], HSADJ[2:0] } where x=0 ~ 3
USB PHY Status 1 – RW - 32 bits - [EOR_Reg: EHCI_EOR + 8Ch]
Field Name
Bits
Default
Description
PORT4_PHYStatus
PORT5_PHYStatus
PORT6_PHYStatus 23:16
PORT7_PHYStatus 31:24
7:0
15:8
00h
00h
00h
00h
Read only. PHY Status of Port4
Read only. PHY Status of Port5
Read only. PHY Status of Port6
Read only. PHY Status of Port7
USB PHY Status 2 – RW - 32 bits - [EOR_Reg: EHCI_EOR + 90h]
Field Name
Reserved
Bits
Default
Description
15:0
Reserved
PORT8_PHYStatus 23:16
PORT9_PHYStatus 31:24
00h
00h
Read only. PHY Status of Port8
Read only. PHY Status of Port9
UTMI Control – RW - 32 bits - [EOR_Reg: EHCI_EOR + 94h]
Field Name
VControl
Bits
Default
Description
6:0
0h
Control PHY setting
Group-0 (VControlModeSel=0)
VControl[6:0] = {RCKSEL, DUTYADJ[2:0], HSADJ[2:0]}
- HSADJ : HS TX current adjustment
000 : -10%
001 : -5%
100 : 0%
101 : +5%
110 : +10%
- DUTYADJ: adjust clk480 (in analog PHY) duty cycle from range 40-
60% to 60-40%.
- RCKSEL : to select the RCK fall into 50% or 57% of the eye
0 – 50% (center) of the eye
1 – 64% of the eye to increase setup time
Group-1 (VControlModeSel =1)
VControl[6:0] = {Reserved, TESTMODE[3:0] }
VControlModeSel
Reserved
VLoadB
7
11:8
12
0b
1b
To select PHY Vcontrol group0/1.
Reserved
Update PHY control mode (active load)
0: Load the new VControl value to PHY/common block
1: Only VControlModeSel value to PHY will be updated for selecting
different PHY status group (see PHY status registers, EOR_Reg x88 ~
x90). But VControl[6:0] value inside PHY won’t get affected.
Port Number
16:13
0h
Select the corresponding port PHY or common block to load the
VControl bits.
0000 – Port0
0001 – Port1
0010 – Port2
……
1001 – Port9
1010 ~ 1110 : Reserved , no effect
1111 – Common block
©2008 Advanced Micro Devices, Inc.
OCHI USB 1.1 and EHCI USB 2.0 Controllers
AMD SB600 Register Reference Manual
Proprietary
Page 91
UTMI Control – RW - 32 bits - [EOR_Reg: EHCI_EOR + 94h]
Field Name
VBusy
Bits
Default
Description
17
0b
RO – To block software write to [16:8] when port router is updating the
field.
Reserved
31:18
Reserved
BIST Control / Loopback Test – RW - 32 bits - [EOR_Reg : EHCI_EOR + 98h]
Field Name
Bits
7:0
8
Default
00h
Description
Reserved
Enable Loop Back
test
Reserved
0b
Enable external USB Port Loop back test.
The Loop Back test is to set one port to TX mode (Test Packet mode)
and one port in RX mode (Test SE0_NAK). Please reference to
PORTSCx[19:16] control the port into TX or RX mode.
Read Only.
Loopback Test
Status
9
0b
Loop back status.
0: CRC Error on Loop Back Receiving Data
1: Good CRC on Loop Back Receiving data
Read Only.
Loopback Test
Done
10
0b
Indicate Loop back test done.
Reserved
31:11
00000h
EOR MISC Control – RW - 32 bits - [EOR_Reg : EHCI_EOR + 9Ch]
Field Name
Reserved
EHCI Power
Saving Enable
Bits
11:0
12
Default
000h
0b
Description
Reserved
Enable power saving clock gating. When enabled, dynamic clock gating
is enabled when EHCI is not at operational mode. The clock goes to all
memory module will be gated off, and the internal bus clock also gets
gated off unless the connection interrupt is detected.
Reserved
Reserved
31:13
00000h
USB Common PHY Calibration – RW - 32 bits - [EOR_Reg: EHCI_EOR + A0h]
Field Name
Bits
Default
Description
ComCalBus
6:0
xx
Enables power saving clock gating (this was original at bit-31). When
enabled, dynamic clock gating is enabled when EHCI is not at
operational mode. The clock goes to all memory module will be gated
off, The blink clock also is gated off unless the connection interrupt is
detected.
Reserved
7
15:8
16
0b
00h
0b
Reserved
NewCalBus
UsbCommonCalib
ration
AddToCommonCa
libration
New calibration bus signed value. Bit-15 is the signed bit.
If set, the PHY’s calibration value in bit[6:0] is returned to the PHY ports.
If clear, the value after adjustment is returned to the PHY ports.
If set, the signed NewCalBus is added to the ComCalBus and returned
to the PHY ports. Any overflow is clamped to all ones. Any underflow is
clamped to all zeros.
17
0b
If clear, the NewCalBus (bit-14:8) replaces the ComCalBus and returns
to the PHY ports.
Reserved
Note:
31:18
0000h
Reserved
1. The equation for calibration resistor is as follows: Rcal = 1/ [1/59.4 + CalValue/(1.05*3.8k ohm)], where the
CalValue is the final 7 bits of calibration setting send to PHY.
2. The total termination resistance value for HS USB D+/D- should include another 5 ohm resistance from FS
driver.
2.2.3.4 USB2.0 Debug Port Registers
This block of registers is memory-mapped. The base offset, Dbase, is directly defined in DBUG_PRT
©2008 Advanced Micro Devices, Inc.
OCHI USB 1.1 and EHCI USB 2.0 Controllers
Proprietary Page 92
AMD SB600 Register Reference Manual
Control register (EHCI_PCI_CFG xE4[28:16], default = 0E0h), regardless of the value in register (MEM_Reg:
00h).
Registers Name
Control / Status
USB PIDs
Offset Address
DBase + 00h
DBase + 04h
Data Buffer
Device Address
DBase + (08h~0Ch)
DBase + 10h
Control / Status – RW - 32 bits - [DBUG_Reg : DBase + 00h]
Field Name
Bits
Default
Description
Data Length
3:0
0h
For write operations, this field is set by software to indicate to the
hardware how many bytes of data in Data Buffer are to be transferred
to the console when Write/Read# is set when software sets Go. A
value of 0h indicates that a zero-length packet should be sent. A value
of 1-8 indicates 1-8 bytes are to be transferred. Values 9-Fh are illegal
and how hardware behaves if used is undefined.
For read operations, this field is set by hardware to indicate to software
how many bytes in Data Buffer are valid in response to software setting
Go when Write/Read# is cleared. A value of 0h indicates that a zero
length packet was returned. (The state of Data Buffer is not defined.)
A value of 1-8 indicates 1-8 bytes were received. Hardware is not
allowed to return values 9-Fh. The transferring of data always starts
with byte 0 in the data area and moves toward byte 7 until the transfer
size is reached.
Write/Read#
Go
4
5
0b
0b
Software sets this bit to indicate that the current request is a write and
clears it to indicate a read.
Software sets this bit to cause the hardware to perform a request.
Writing this bit to a 1 when the bit is already set may result in undefined
behavior. Writing a 0 to this bit has no effect. When set, the hardware
clears this bit when the hardware sets the Done bit. (Completion of a
request is indicated by the Done bit.)
Error/Good#
Exception
6
0b
Read Only
Updated by hardware at the same time it sets the Done bit. When set it
indicates that an error occurred. Details of the error are provided in the
Exception field. When cleared, it indicates that the request terminated
successfully.
9:7
000b
Read Only
This field indicates the exception when Error/Good# is set. This field
cannot be cleared by software. Reset default = 000b.
Value
000b
001b
Meaning
None
Transaction error: indicates the USB2 transaction
had an error (CRC, bad PID, timeout, etc.)
HW error. Request was attempted (or in progress)
when the port was suspended or reset.
Reserved
010b
011b-111b
In Use
10
0b
0b
Set by software to indicate that the port is in use. Cleared by software
to indicate that the port is free and may be used by other software.
(This bit has no affect on hardware.)
Reserved
Reserved
Done
15:11
16
RWC
This bit is set by HW to indicate that the request is complete. Writing a
1 to this bit will clear it. Writing a 0 to this bit has no effect.
Reserved
Reserved
27:17
©2008 Advanced Micro Devices, Inc.
OCHI USB 1.1 and EHCI USB 2.0 Controllers
AMD SB600 Register Reference Manual
Proprietary
Page 93
Control / Status – RW - 32 bits - [DBUG_Reg : DBase + 00h]
Field Name
Bits
Default
Description
Enabled
28
0b
This bit is a one if the debug port is enabled for operation.
Software can clear this by writing a zero to it. The controller clears the
bit for the same conditions where hardware clears the Port
Enable/Disable Change bit (in the PORTSC register). (Note: this bit is
not cleared when System Software clears the Port Enabled/Disabled bit
(in the PORTSC register). Software can directly set this bit, if the port is
already enabled in the associated Port Status and Control register (this
is HW enforced).
Reserved
Owner
29
30
Reserved
0b
When debug software writes a one to this bit, the ownership of the
debug port is forced to the EHCI controller (i.e. Immediately taken away
from the companion controller). If the port was already owned by the
EHCI controller, then setting this bit is has no effect. This bit overrides
all of the ownership related bits in the standard EHCI registers. Reset
default = 0. Note that the value in this bit may not affect the value
reported in the Port Owner bit in the associated PORTSC register.
Reserved
Reserved
31
USB PIDs – RW - 32 bits - [DBUG_Reg : DBase + 04h]
Field Name
Bits
Default
Description
Token PID
7:0
00h
The debug port controller sends this PID as the Token PID for each
USB transaction. Software will typically set this field to either IN, OUT
or SETUP PID values. Reset default = undefined.
The debug port controller sends this PID to begin the data packet when
sending data to USB (i.e. Write/Read# is asserted). Software will
typically set this field to either DATA0 or DATA1 PID values. Reset
default = undefined.
Send PID
15:8
00h
00h
Received PID
23:16
Read Only
The debug port controller updates this field with the received PID for
transactions in either direction. When the controller is sending data
(Write/Read# is asserted), this field is updated with the handshake PID
that is received from the device. When the host controller is receiving
data (Write/Read# is not asserted), this field is updated with the data
packet PID (if the device sent data), or the handshake PID (if the device
NAKs the request). This field is valid when the controller sets the Done
bit. Reset default = undefined.
Reserved
31:24
Reserved
©2008 Advanced Micro Devices, Inc.
OCHI USB 1.1 and EHCI USB 2.0 Controllers
AMD SB600 Register Reference Manual
Proprietary
Page 94
Data Buffer – RW - 64 bits - [DBug_Reg : DBase + 08h/0Ch]
Field Name
Data Buffer
Bits
Default
00000000 The least significant byte is accessed at offset 08h and the most
significant byte is accessed at offset 0Fh. Each byte in Data Buffer can
00000000 be individually accessed. Data Buffer must be written with data before
Description
63:0
_
h
software initiates a write request. For a read request, Data Buffer
contains valid data when Done is set, Error/Good# is cleared, and Data
Length specifies the number of bytes that are valid. Reset default =
undefined.
Device Address – RW - 32 bits - [DBUG_Reg : DBase + 10h]
Field Name
Bits
Default
Description
USB Endpoint
3:0
1h
4-bit field that identifies the endpoint used by the controller for all Token
PID generation.
Reserved
7:4
Reserved
USB Address
14:8
7Fh
7-bit field that identifies the USB device address used by the controller
for all Token PID generation.
Reserved
31:15
Reserved
©2008 Advanced Micro Devices, Inc.
OCHI USB 1.1 and EHCI USB 2.0 Controllers
AMD SB600 Register Reference Manual
Proprietary
Page 95
2.3
SMBus Module and ACPI Block (Device 20, Function 0)
Some registers in the SMBus/ACPI PCI configuration space (PCI_reg, see section 2.3.1) contain controls
and settings for a number of blocks within the SB600. Figure 4 below shows these blocks, with their affected
functions and the associated PCI_reg registers.
Bus 0 Dev 20 Function 0
SATA
USB
PCI
RTC
SATA Enables
SATA power saving
SATA Interrupt Map register
SATA Smart Power Control
OHCI / EHCI Controller Enables
USB Reset / PowerDown
USB Legacy control
USB Smart Power Control
USB PM & SMI Control
PCI Stop Clock enable
PCI Bridge Soft Reset Enable
PCI Bus drive strength registers
RTC Ram Protection
External RTC Enable
RTC I/O Addr Enable
PCI_Reg:
C0h
PCI_Reg:
PCI_Reg:
PCI_Reg:
AC/AFh
5Ch
64h
6Ah
6Ch
64h
98h
78h
64/68/6Bh
5Ch
98h
Keyboard Control
PIC / IOAPIC
GPIO
SMBus / I2C
Keyboard Reset
PIC /IOAPIC Enable
IOAPIC Base Address
IOAPIC clock control
GPIO Enables
GPIO Status
Gpio input / output registers
I2C port enables
Keyboard Interrupt IRQ 12 filter
External keyboard reset enable
Mouse control
I2C port Address register
I2C port R/W shadow port
I2C bus revision ID
Smbus base Address
SATA SMBus control
PCI_Reg:
PCI_Reg:
Serirq controller registers
74h
64h
81:80 h
58:50 h
BC h
A0:AC h
--
PCI_Reg:
--
PCI_Reg:
64h
62h
69h
AD:ACh
10h
D5:D2 h
08h
90 h
--
I/O PORTS
Memory Window
LPC
Misc
I/O Port Address enables
I/O C50 -C52 Enable
PM I/O register CD6 / CD7 Enable
Base Addr I/O or Mem map control
K8 I/O Wake Address
ISA Address Decode registers
ROM Address enables
LPC Controller Enable
LPC Drive strength control
K8 Intr Enable
MSI Mapping register
Ext Gate A20
AB register base address
Multimedia timer enable
8250 Timer Eenable
PCI-SPCI clock ratio
PCI_Reg:
PCI_Reg:
41h
49:48 h
--
C0h
64h
--
PCI_Reg:
--
78h
F4h
PCI_Reg:
B0/E0h
74h
62h
F0h
64h
--
Figure 4 SMBus/ACPI PCI Configuration Space Function Block Association
©2008 Advanced Micro Devices, Inc.
SMBus Module and ACPI Block (Device 20, Function 0)
Proprietary Page 96
AMD SB600 Register Reference Manual
2.3.1
PCI Configuration Registers and Extended Registers
2.3.1.1 PCIE Configuration Registers
Register Name
Configuration Offset
00h
VendorID
DeviceID
02h
Command
04h
STATUS
06h
Revision ID/Class Code
Cache Line Size
Latency Timer
08h
0Ch
0Dh
0Eh
0Fh
10h
14h
18h
1Ch
20h
24h
Header Type
BIST
Base Address 0
Base Address 1
Base Address 2
Base Address 3
Base Address 4
Base Address 5
Cardbus CIS Pointer
Subsystem Vendor
Subsystem ID
28h
2Ch
2Eh
30h
Expansion ROM Base Address
Capability Pointer
Interrupt Line
34h
3Ch
3Dh
3Eh
3Fh
40h
Interrupt Pin
Min_Gnt
Max_Lat
PCI Control
MiscFunction
41h
DmaLimit
42h
DmaEnhanceEnable
ISA Address Decode Control Register #1
ISA Address Decode Control Register #2
GPIO_52_to_49_Cntrl
GPIO_56_to_53_Cntrl
GPIO_60_to_57_Cntrl
GPIO_64_to_61_Cntrl
GPIO_73_to_70_Cntrl
SmartPowerControl1
SmartPowerControl2
MiscEnable
43h
48h
49h
50h
52h
54h
56h
5Ah
5Ch
5Dh
62h
AzIntMap
63h
Features Enable
SeriallrqControl
64h
69h
RTCProtect
USB Reset
TestMode
IoApic_Conf
6Ah
6Bh
6Ch
74h
IoAddrEnable
78h
GPIO_69_68_66_65_Cntrl
GPIO_3_to_0_Cntrl
GPIO_32_31_14_13_Cntrl
Smbus Base Address
IDE_GPIO_Cntrl
7Eh
80h
82h
90h
A0h
©2008 Advanced Micro Devices, Inc.
SMBus Module and ACPI Block (Device 20, Function 0)
Proprietary Page 97
AMD SB600 Register Reference Manual
Register Name
IDE_GPIO_In
GPIO_48_47_46_37_Cntrl
GPIO_12_to_4_Cntrl
SATA_Cntrl
SataIntMap
MSI_Mapping_Capability
PcilntGpio
Configuration Offset
A4h
A6h
A8h
ACh
AFh
B0h
BCh
BEh
C0h
D2h
D3h
D4h
D5h
D6h
E0h
F0h
F4h
F6h
F7h
F8h
FCh
UsbIntMap
IoDrvSth
I2CbusConfig
I2CCommand
I2CShadow1
I2Cshadow2
I2CBusRevision
MSI_Weight
AB_REG_BAR
WakeIoAddr
MwaitID
MwaitSts
ExtendedAddrPort
ExtendedDataPort
VendorID - R - 16 bits - [PCI_Reg: 00h]
Field Name
VendorID
Bits
15:0
Default
Description
1002h
Vendor ID
Vendor ID register: Vendor Identification
DeviceID - R - 16 bits - [PCI_Reg: 02h]
Field Name
DeviceID
Bits
31:16
Default
Description
4385h
Device ID
Device ID register: Device Identification Number
Command- RW - 16 bits - [PCI_Reg: 04h]
Field Name
I/O Space
Bits
Default
Description
0
1
2
3
1b
This bit controls a device’s response to IO space accesses. A
value of 1 enables it and a value of 0 disables it. Since this
module does claim certain legacy IO cycles, this bit is default
to 1.
Memory Space
Bus Master
1b
0b
0b
This bit controls a device’s response to memory space
accesses. A value of 1 enables it and a value of 0 disables it.
Since this module does claim certain memory cycles if BIOS is
strapped to the PCI bus, this bit is default to 1.
A value of 0 disables the device from generating PCI
accesses. A value of 1 allows it to behave as a bus master.
ACPI/SMBus does not have PCI master and so it is always 0.
[Read-only]
A value of 0 causes the devices to ignore all special cycle
operations. A value of 1 allows the device to monitor Special
Cycle operations. This module does not respond to special
cycle and so this is hardcoded to 0
Special Cycle
Memory Write &
Invalidate Enable
4
5
0b
0b
This bit is an enable bit for using the Memory Write and
Invalidate command. This module will not generate this
command and so it is always 0. [Read-only]
This bit controls how VGA compatible and graphics devices
handle accesses to VGA pallette registers. This does not
apply to this module and so it is always 0. [Read-only]
VGA Palette Snoop
©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual
SMBus Module and ACPI Block (Device 20, Function 0)
Proprietary
Page 98
Command- RW - 16 bits - [PCI_Reg: 04h]
Field Name
Bits
Default
Description
Parity Error Response
6
0b
This bit controls the device’s response to parity errors. When
the bit is set, the device must take its normal action when a
parity error is detected. When the bit is 0, the device must
ignore any parity errors that it detects and continue normal
operation.
Wait Cycle Control
SERR# Enable
7
0b
This bit is used to control whether or not a device does
address/data stepping. This module does not use address
stepping. [Read-only]
This bit is an enable bit for SERR# driver. A value of 0
disables the SERR# and a value of 1 enables it.
This bit indicates whether device is fast back-to-back capable.
ACPI/SMbus does not support this function and so this bit is
always 0. [Read-only]
8
9
0b
0b
Fast Back-to-Back
Enable
Reserved
15:10
00h
PCI Command register
STATUS- RW - 16 bits - [PCI_Reg: 06h]
Field Name
Reserved
MSI Mapping Capability
Bits
3:0
4
Default
Description
1/0b
[Read-only] This bit indicates whether the device can support
MSI mapping. For K8 system this device is MSI mapping
capable so default value is 1; for P4 system this device does
not support MSI mapping so default value is 0.
This bit indicates whether the device can support 66 MHz.
This device is 66 MHz capable. [Read-only]
This bit indicates whether the device supports user definable
feature. This module does not support this feature and so it is
always 0. [Read-only]
66 MHz Capable
UDF Supported
5
6
1b
0b
Fast Back-to-Back
Capable
7
8
0b
0b
This bit indicates whether the device is capable of fast back-to-
back cycles. This module does not support this feature and so
it is always 0. [Read-only]
Set to 1 if the Parity Error Response bit is set, and the module
has detected PERR# asserted while acting as a PCI master
(regardless PERR# was driven by this module).
These bits encode the timing of DEVSEL#. This module will
always respond in medium timing and so these bits are always
11.
Data Parity Error
Detected
DEVSEL Timing
10:9
01b
Signaled Target Abort
Received Target Abort
Received Master Abort
11
12
13
0b
0b
0b
This bit is set by a slave device whenever it terminates a cycle
with a Target-Abort.
This bit is set by a master device whenever its transaction is
terminated with a Target-Abort.
This bit is set by a slave device whenever it terminates its
transaction with Master-Abort.
Signaled System Error
Detected Parity Error
14
15
0b
0b
This bit is set by device whenever the device asserts SERR#.
This bit is set by device whenever it detects a parity error,
even if parity error handling is disabled.
PCI device status register
©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual
SMBus Module and ACPI Block (Device 20, Function 0)
Proprietary
Page 99
Revision ID/Class Code- R - 32 bits - [PCI_Reg: 08h]
Field Name
RevisionID
Bits
Default
Description
7:0
11h /
This field reflects the ASIC revision.
12h /
13h
11h : For ASIC revision A11
12h : For ASIC revision A12
13h : For ASIC revision A13
For ASIC revisions after A13, by default this field will read 13h
still. However, if SMBUS PCI config 70h bit 8 is set to 1, a
hidden revision ID can be read from this field.
0C0500h denotes a SMBUS controller.
Class Code
31:8
0C0500h
Revision ID/Class Code register
Cache Line Size- R - 8 bits - [PCI_Reg: 0Ch]
Field Name
Bits
Default
Description
Cache Line Size
7:0
00h
This register specifies the system cacheline size. This module
does not use Memory Write and Invalidate command and so
this register is not applicable. It is hardcoded to 0.
Cache line size register
Latency Timer- R - 8 bits - [PCI_Reg: 0Dh]
Field Name
Bits
Default
Description
Latency Timer
7:0
00h
This register specifies the value of the Latency Timer. This is
not used in this module and so it is always 0.
Latency timer register
Header Type- R - 8 bits - [PCI_Reg: 0Eh]
Field Name
Header Type
Bits
Default
Description
7:0
80h
This device is a multifunction device.
Header type register
BIST- R - 8 bits - [PCI_Reg: 0Fh]
Default Description
Field Name
BIST
Bits
7:0
00h
The module has no built-in self-test and so this is always 0.
BIST register
Base Address 0- R - 32 bits - [PCI_Reg: 10h]
Field Name
Bits
Default
Description
IO/Memory
0
1b
1 = IO
0 = Memory
Reserved
3:1
000b
SmBusBaseAd
Base Address 0 register
31:4
0000000h SMBus Base Address
Base Address 1- R - 32 bits - [PCI_Reg: 14h]
Field Name
Reserved
MultiMediaTimerBaseAd
dr
Bits
Default
Description
9:0
31:10
000h
000000h
Hardwired to 0; memory map only
High Precision Event Timer (also called Multi-media Timer)
base address.
Base Address 1 register
Base Address 2- R - 32 bits - [PCI_Reg: 18h]
Field Name
Bits
Default
Description
Base Address 2
31:0
0000_000 Not used and is hardcoded to 0.
0h
©2008 Advanced Micro Devices, Inc.
SMBus Module and ACPI Block (Device 20, Function 0)
Proprietary Page 100
AMD SB600 Register Reference Manual
Base Address 2- R - 32 bits - [PCI_Reg: 18h]
Field Name
Bits
Default
Description
Base Address 2 register
Base Address 3- R - 32 bits - [PCI_Reg: 1Ch]
Field Name
Bits
Default
Description
Base Address 3
31:0
0000_000 Not used and is hardcoded to 0.
0h
Base Address 3 register
Base Address 4- R - 32 bits - [PCI_Reg: 20h]
Field Name
Bits
Default
Description
Base Address 4
31:0
0000_000 Not used and is hardcoded to 0.
0h
Base Address 4 register
Base Address 5- R - 32 bits - [PCI_Reg: 24h]
Field Name
Bits
Default
Description
Base Address 5
31:0
0000_000 Not used and is hardcoded to 0.
0h
Base Address 5 register
Cardbus CIS Pointer- R - 32 bits - [PCI_Reg: 28h]
Field Name
Bits
Default
Description
Cardbus CIS Pointer
31:0
0000_000 Not used and is hardcoded to 0.
0h
Cardbus CIS Pointer register
Subsystem Vendor ID- W - 16 bits - [PCI_Reg: 2Ch]
Field Name
Bits
Default
Description
Subsystem Vendor ID
Subsystem Vendor ID register
15:0
0000h
Write once.
Subsystem ID- W - 16 bits - [PCI_Reg: 2Eh]
Field Name
Subsystem ID
Bits
Default
Description
15:0
0000h
Write once.
Subsystem ID register
Expansion ROM Base Address - R - 8 bits - [PCI_Reg: 30h]
Field Name
Expansion ROM Base
Address
Bits
Default
Description
7:0
00h
Not used and is hardcoded to 0.
Expansion ROM Base Address register
Capability Pointer - R - 8 bits - [PCI_Reg: 34h]
Field Name
Capability Pointer
Bits
Default
Description
For K8 system default value is B0h; for P4 system default
value is 00h.
7:0
B0/00h
Capability Pointer register
©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual
SMBus Module and ACPI Block (Device 20, Function 0)
Proprietary
Page 101
Interrupt Line - R - 8 bits - [PCI_Reg: 3Ch]
Field Name
Interrupt Line
Bits
Default
Description
7:0
00h
This module does not generate interrupt. This register is
hardcoded to 0.
Interrupt Line register
Interrupt Pin – R - 8 bits - [PCI_Reg: 3Dh]
Field Name
Bits
Default
Description
Interrupt Pin
7:0
00h
This register specifies which interrupt pin the device issues.
This module does not generate interrupt but contains the
actual interrupt controller. This register is hardcoded to 0.
Interrupt Pin register
Min_Gnt - R - 8 bits - [PCI_Reg: 3Eh]
Field Name
Bits
Default
Description
Min_Gnt
7:0
00h
This register specifies the desired settings for Latency Timer
values. Value of 0 indicates that the device has no major
requirements for the setting. This value is hardcoded to 0.
Min_Gnt register
Max_Lat - R - 8 bits - [PCI_Reg: 3Fh]
Field Name
Bits
Default
Description
Max_Lat
7:0
00h
This register specifies the desired settings for Latency Timer
values. Value of 0 indicates that the device has no major
requirements for the setting. This value is hardcoded to 0.
Max_Lat register
PCI Control- RW - 8 bits - [PCI_Reg: 40h]
Field Name
Reserved
KB2RstEnable
Bits
Default
Description
1:0
2
00b
0b
When set, KeyBoard reset (KBRST#) pin will generate a
system wide reset (ARST#) for P4 system; for K8 system,
additional control by PMIO 66h Bit 5 determines whether INIT#
or ARST# is generated
Reserved
7:3
0h
PCI Control register
MiscFunction- RW - 8 bits - [PCI_Reg: 41h]
Field Name
Reserved
ExtraROM AddrEnable2
Bits
Default
Description
0
1
0b
0b
This bit only has meaning if xbus ROM is used. If this bit is
set, addresses between FFF80000h to FFFDFFFFh will be
directed to the ROM interface
Reserved
WatchDogDecodeEn
ExtraROM AddrEnable1
2
3
4
0b
0b
0b
Enables watchdog decode
This bit is meaningful if ROM interface is strapped to the xbus
ROM (sits on PCI bus). If this bit is set, addresses between
0E0000h to 0EFFFFh will be directed to the ROM interface.
When set, this module will decode cycles to IO C50, C51, C52:
GPM controls.
MiscfuncEnable
5
0b
Reserved
7:6
00b
MiscFunction register
©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual
SMBus Module and ACPI Block (Device 20, Function 0)
Proprietary
Page 102
DmaLimit- RW - 8 bits - [PCI_Reg: 42h]
Field Name
DmaBurstLimit
Bits
6:0
Default
Description
00h
Enables the amount of burst data the legacy DMA engine can
sustain before it should give up the internal bus.
DmaLimitEnable
7
0h
This is another enhancement to the legacy DMA engine. In
the original design, certain DMA request (such as Infrared) will
cause the legacy DMA engine to dominate the internal bus for
a very long time (up to 512 bytes) and thereby causing long
latency for other devices. Setting this bit will cause the legacy
DMA engine to limit its transfer per burst based on bits [6:0]
DmaLimit register
DmaPrefetchEnable RW - 8 bits - [PCI_Reg: 43h]
Field Name
Bits
Default
Description
DmaPrefetchEnable
0
1b
Legacy read DMA prefetch function enable.
1 – Enable
0 – Disable
When set, the DMA engine will keep the data inside the FIFO,
even though the requesting device has deasserted the DMA
request. When the device requests data again, the DMA
engine will have data available instead of having to fetch data
from the memory again. Note this enhancement only applies to
channel 0, 1, 2, and 3. It has no effect on channel 5, 6, or 7
Reserved
7:1
00h
DmaPrefetchEnable register
ISA Address Decode Control Register #1- RW - 8 bits - [PCI_Reg: 48h]
Field Name
Bits
Default
Description
Window 0
0
1
2
3
1b
1b
1b
1b
896K to 960K PCI enable
640K to 768K PCI enable
512K to 640K PCI enable
0K to 512K PCI enable
Window 1
Window 2
Window 3
Reserved
7:4
0h
ISA Address Decode Control Register #1: This register defines the enable bits for four memory segments. If the
enable bit is set to 1, an ISA master or DMA access to the memory segment associated with that bit is forwarded to
the internal bus. The SB600 does not have any ISA master, because the bus is internal; however, it may affect
DMA transfers with the LPC module. Software should set all these bits to 1's.
ISA Address Decode Control Register #2- RW - 8 bits - [PCI_Reg: 49h]
Field Name
Bits
Default
Description
Window 0
0
1
2
3
4
5
6
7
1b
1b
1b
1b
1b
1b
1b
1b
C0000h to C3FFFh
C4000h to C7FFFh
C8000h to CBFFFh
CC000h to CFFFFh
D0000h to D3FFFh
D4000h to D7FFFh
D8000h to DBFFFh
DC000h to DFFFFh
Window 1
Window 2
Window 3
Window 4
Window 5
Window 6
Window 7
ISA Address Decode Control Register #1: This register defines the PCI enable bits for four memory segments. If
the enable bit is set to 1, an ISA master or DMA access to the memory segment associated with that bit is forward
to the internal bus. The SB600 does not have any ISA master, because the bus is internal; however, it may affect
the DMA transfers with the LPC module. Software should set all these bits to 1's.
©2008 Advanced Micro Devices, Inc.
SMBus Module and ACPI Block (Device 20, Function 0)
Proprietary Page 103
AMD SB600 Register Reference Manual
GPIO_52_to_49_Cntrl - RW – 16 bits - [PCI_Reg: 50h]
Field Name
GPIO_Out
Bits
Default
Description
Write 1 to set and 0 to clear each of the GPIO port; providing
the corresponding enable bits (7:4) are set to 0
Bit[0] for GPIO49/FANOUT2
3:0
0h
Bit[1] for GPIO50/FANIN0
Bit[2] for GPIO51/FANIN1
Bit[3] for GPIO52/FANIN2
GPIO_Out_En#
7:4
Fh
GPIO output port enable for each of the GPIO port
0: Output = GPIO_Out
1: Output = tristate
GPIO_Status
Reserved
11:8
15:12
-
0h
GPIO input status for each of the GPIO port
GPIO_52_to_49_Cntrl register
GPIO_56_to_53_Cntrl - RW – 16 bits - [PCI_Reg: 52h]
Field Name
GPIO_Out
Bits
Default
Description
Write 1 to set and 0 to clear each of the GPIO port; providing
the corresponding enable bits (7:4) are set to 0
Bit[0] for GPIO53/VIN0
3:0
0h
Bit[1] for GPIO54/VIN1
Bit[2] for GPIO55/VIN2
Bit[3] for GPIO56/VIN3
GPIO_Out_En#
7:4
Fh
GPIO output port enable for each of the GPIO port
0: Output = GPIO_Out
1: Output = tristate
GPIO_Status
Reserved
11:8
15:12
-
0h
GPIO input status for each of the GPIO port
GPIO_56_to_53_Cntrl register
GPIO_60_to_57_Cntrl - RW – 16 bits - [PCI_Reg: 54h]
Field Name
GPIO_Out
Bits
Default
Description
Write 1 to set and 0 to clear each of the GPIO port providing
the corresponding enable bits (7:4) are set to 0
Bit[0] for GPIO57/VIN4
3:0
0h
Bit[1] for GPIO58/VIN5
Bit[2] for GPIO59/VIN6
Bit[3] for GPIO60/VIN7
GPIO_Out_En#
7:4
Fh
GPIO output port enable for each of the GPIO port
0: Output = GPIO_Out
1: Output = tristate
GPIO_Status
Reserved
11:8
15:12
-
0h
GPIO input status for each of the GPIO port
GPIO_60_to_57_Cntrl register
GPIO_64_to_61_Cntrl - RW – 16 bits - [PCI_Reg: 56h]
Field Name
GPIO_Out
Bits
Default
Description
Write 1 to set and 0 to clear each of the GPIO port providing
the corresponding enable bits (7:4) are set to 0
Bit[0] for GPIO61/TEMPIN0
3:0
0h
Bit[1] for GPIO62/TEMPIN1
Bit[2] for GPIO63/TEMPIN2
Bit[3] for GPIO64/TEMPIN3
GPIO_Out_En#
7:4
Fh
GPIO output port enable for each of the GPIO port
0: Output = GPIO_Out
1: Output = tristate
GPIO_Status
Reserved
11:8
15:12
-
0h
GPIO input status for each of the GPIO port
©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual
SMBus Module and ACPI Block (Device 20, Function 0)
Proprietary
Page 104
GPIO_64_to_61_Cntrl - RW – 16 bits - [PCI_Reg: 56h]
Field Name
Bits
Default
Description
GPIO_64_to_61_Cntrl register
ASFSMbusIoBase- RW - 16 bits - [PCI_Reg: 58h]
Field Name
Bits
Default
Description
ASFSMBusEnable
0
0h
0 – Disable ASF controller
1 – Enable ASF controller
Reserved
ASFSMBase
3:1
15:4
000b
FFFh
ASF SM bus controller Io base address
GPIO_73_to_70_Cntrl - RW – 16 bits - [PCI_Reg: 5Ah]
Field Name
GPIO_Out
Bits
Default
Description
Write 1 to set and 0 to clear each of the GPIO port ; providing
the corresponding GPIO_OUT_En# and GPIO_Enable are set
appropriately
3:0
0h
Bit[0] for GPIO70/REQ3#
Bit[1] for GPIO71/REQ4#
Bit[2] for GPIO72/GNT3#
Bit[3] for GPIO73/GNT4#
GPIO_Out_En#
7:4
Fh
GPIO output port enable for each of the GPIO port
0: Output = GPIO_Out
1: Output = tristate
GPIO_Status
GPIO_Enable
11:8
15:12
-
0h
GPIO input status for each of the GPIO port
GPIO function enable for each of the GPIO port
When set, the pin becomes GPIO
0: GPIO disabled
1: GPIO enabled
GPIO_73_to_70_Cntrl register
SmartPowerControl1A - RW – 8 bits - [PCI_Reg: 5Ch]
Field Name
CheckLpc
Bits
Default
Description
0
0b
If SmartVoltEnable is set and this bit is also set, the
SmartPower function will only assert SmartVolt if LPC is idle
If SmartVoltEnable is set and this bit is also set, the
SmartPower function will only assert SmartVolt if HD audio is
idle
CheckAz
1
0b
CheckAc97
2
3
0b
0b
If SmartVoltEnable is set and this bit is also set, the
SmartPower function will only assert SmartVolt if AC97 is idle
If SmartVoltEnable is set and this bit is also set, the
SmartPower function will only assert SmartVolt if HD Audio
PCIBridge is idle
CheckPciBridge
CheckUsb
CheckSata
CheckIde
CheckC3
4
5
6
7
0b
0b
0b
0b
If SmartVoltEnable is set and this bit is also set, the
SmartPower function will only assert SmartVolt if USBis idle
If SmartVoltEnable is set and this bit is also set, the
SmartPower function will only assert SmartVolt if SATA is idle
If SmartVoltEnable is set and this bit is also set, the
SmartPower function will only assert SmartVolt if IDE is idle
If SmartVoltEnable is set and this bit is also set, the
SmartPower function will only assert SmartVolt if CPU is in C3
state
SmartPowerControl1A register
©2008 Advanced Micro Devices, Inc.
SMBus Module and ACPI Block (Device 20, Function 0)
AMD SB600 Register Reference Manual
Proprietary
Page 105
SmartPowerControl1B - RW – 8 bits - [PCI_Reg: 5Dh]
Field Name
CheckVIN0
Bits
Default
Description
0
0b
If SmartVoltEnable is set and this bit is also set, the
SmartPower function will only assert SmartVolt if VIN0 has
reached or passed the threshold
CheckVIN1
CheckVIN2
CheckVIN3
CheckVIN4
CheckVIN5
CheckVIN6
CheckVIN7
1
2
3
4
5
6
7
0b
0b
0b
0b
0b
0b
0b
If SmartVoltEnable is set and this bit is also set, the
SmartPower function will only assert SmartVolt if VIN1 has
reached or passed the threshold
If SmartVoltEnable is set and this bit is also set, the
SmartPower function will only assert SmartVolt if VIN2 has
reached or passed the threshold
If SmartVoltEnable is set and this bit is also set, the
SmartPower function will only assert SmartVolt if VIN3 has
reached or passed the threshold
If SmartVoltEnable is set and this bit is also set, the
SmartPower function will only assert SmartVolt if VIN4 has
reached or passed the threshold
If SmartVoltEnable is set and this bit is also set, the
SmartPower function will only assert SmartVolt if VIN5 has
reached or passed the threshold
If SmartVoltEnable is set and this bit is also set, the
SmartPower function will only assert SmartVolt if VIN6 has
reached or passed the threshold
If SmartVoltEnable is set and this bit is also set, the
SmartPower function will only assert SmartVolt if VIN7 has
reached or passed the threshold
SmartPowerControl1B register
MiscEnable- RW - 8 bits - [PCI_Reg: 62h]
Field Name
IRQ1_Filter
Bits
Default
Description
0
0b
Keyboard interrupt filter enable (IRQ1)
Filtering is done so that the first rising edge of IRQ1 would
cause the IRQ1 going to the PIC (8259 programmable
interrupt controller) to go asserted, but subsequent changes to
IRQ1 would not have any effect on the IRQ1 going to the PIC
until a access to the keyboard was done (I/O read
of port 60.
The Main effect is that software could mask IRQ1, do several
accesses / commands to the keyboard controller that
subsequently cause numerous IRQ1’s, do one final I/O read
access of port 60 and know that when IRQ1 was unmasked
that no pending keyboard interrupt would be generated.
Mouse Interrupt Filter Enable (IRQ12)
0 – Disable IRQ12 filtering
1 – Enable IRQ12 filtering
K8 INTR Enable (BIOS should set this bit after PIC
initialization)
IRQ12_Filter
K8_INTR
1
2
0b
0b
0 – Disable K8 INTR message
1 – Enable K8 INTR message
MT3_Set
3
4
0b
0b
If this bit is set, K8 INTR NMI Message Type field (Bit3) is
forced to be 1; otherwise K8 INTR NMI Message Type is
controlled by MT3_Auto. Recommended method is to use
MT3_Auto bit.. In AMD K8 system, all interrupts are sent to
CPU via messages. In MP base (such as Linux), the message
may need to be in certain format.
If this bit is set, K8 INTR NMI Message Type field (Bit3) is 1 if
APIC is also active; otherwise K8 INTR NMI Message Type is
0
MT3_Auto
©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual
SMBus Module and ACPI Block (Device 20, Function 0)
Proprietary
Page 106
MiscEnable- RW - 8 bits - [PCI_Reg: 62h]
Field Name
Bits
Default
Description
USB_Fast_SMI_Disable
5
0b
For K8 system, legacy USB can request SMI# to be sent out
early before IO completion. Some applications may have
problem with this feature. BIOS should set this bit to 1 to
disable the feature.
Reserved
IDE_GPIO_Enable
MiscEnable register
6
7
0b
0b
If this bit is set to 1, the IDE bus is configured as GPIO
AzIntMap- RW - 8 bits - [PCI_Reg: 63h]
Field Name
Bits
Default
Description
AzIntMap
2:0
110b
Interrupt routing table for HD Audio. Setting this register
routes the HD audio’s interrupt to the specific PCI interrupt
before it is routed to the interrupt controller
000 – INTA#
001 – INTB#
010 – INTC#
011 – INTD#
100 – INTE#
101 – INTF#
110 – INTG#
111 – INTH#
Reserved
7:3
00000b
Features Enable- RW - 32 bits - [PCI_Reg: 64h]
Field Name
Bits
Default
Description
PIC_Enable
0
1b
PIC (8259) Programmable Interrupt Controller enable
0 - I/O cycles to master PIC:20,21, slave PIC:a0, a1, ELCR
registers 4D0, 4D1h, and the PCI interrupt Mapping Registers
(C00, C01), and Numberic Coprocessor Error Register
(IRQ13) (0F0h) are not accepted.
1 - (default) I/O cycles to APIC are not decoded but I/O cycles
to these above addresses will be positive decoded on PCI and
run to the internal 8259 PIC
Timer_Enable
1
2
1b
1b
0 – I/O cycles to timers/counter (040-043h) will not be claimed
on ISA
1 – I/O cycles to timers/counter will be claimed on ISA and run
to the internal 8254 Timer/Counter
PMIO_Register Enable
Power management enable register
0 – I/O cycles to Power management registers (CD6 and
CD7h) will not be claimed
1 – I/O cycles to Power management registers will be claimed
and run to the internal Power Management logic (BIOS should
always set it to 1)
Ioapic_enable
CheckOwnReq
3
4
0b
0b
When set, this block will decode ioapic address
If set, the SB600 will check its own REQ# as the PCI_ACTIVE
signal in addition to BMREQ#
BmReqEn
Reserved
XIOAPIC_ENA
GEVENT5_ENA
Ext_KBRST_EnB
5
6
7
8
9
0b
0b
1b
0b
0b
BMREQ# enable
XIOAPIC enable; this bit is only valid if bit 3 is set.
BIOS should always set this bit to 1 to enable GEVENT5.
Enable external KB_RST# input. When set to 0, GEVENT[1]
is used as KBRST# input
MultiMediaTimerIrqEn
Ext_A20En
10
11
0b
0b
High Precision Event Timer (also called Multimedia Timer)
interrupt enable
Enable external Ga20In input. When set to 1, GEVENT[0] is
used as Ga20In input
©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual
SMBus Module and ACPI Block (Device 20, Function 0)
Proprietary
Page 107
Features Enable- RW - 32 bits - [PCI_Reg: 64h]
Field Name
Smi_Gevent_En
Bits
Default
Description
Enable all the events with the capability of doing both SMI#
and SCI to SMI# assertion. If enabled, an assertion at any of
the event inputs will cause SMI# to be asserted if SCI EN is
not set.
12
0b
0 – Disable
1 – Enable
Intr_block_En
13
14
0b
0b
Applicable in the PIC system. When enabled, it will block any
pending interrupt for approximately 500ns after IntrAck cycle
from the host.
0 – Disable
1 – Enable
When set, port 0 of APIC is connected to output of the PIC and
port 2 is connected to IRQ0 (timer0)
When clear, port 0 of APIC is connected to IRQ0 (timer0) and
port 2 is connected to the output of the PIC. Software should
set this bit to conform with MP spec.
USB SMI# enable:
ApicPort02Swap
UsbSmiEn
15
16
0b
0b
1 = Enable
0 = Disable
Enable SERR# to SMI# assertion
0 – Disable
Serr2Smi_En
1 – Enable
Gevent1_en0
Gevent1_en1
Gevent1_en2
LpcEnable
17
18
19
20
21
0b
0b
0b
0b
0b
GEVENT group 0 enable (GPM[7] to SMI#/SCI enable) to
ACPI function
GEVENT group 1 enable (GPM[6] to SMI#/SCI enable) to
ACPI function
GEVENT group 2 enable (GPM[5:4] to SMI#/SCI enable) to
ACPI function
1 – Enable lpc controller
0 – Disable lpc controller
RtcSelect
Writing this bit with 1 will toggle the selection between Internal
RTC and External RTC which is set via strap bit.
Reading this bit returns the internal/external mode:
1 = External RTC
0 = Internal RTC
Gevent1_en3
22
0b
0b
0b
0b
GEVENT group 3 enable (ExtEvent[1:0], PCIePme) to ACPI
function
GEVENT group 4 enable (GPM[3:0]) to ACPI function
Gevent1_en4
Reserved
DmaVerifyEn
23
24
25
With LPC is replacing the ISA bus, software needs to set this
bit in order to for DMA verify to work properly
This is the old method to merge the normal IRQ1 with the USB
legacy IRQ1 function. Since this is no longer needed, software
should always leave this bit with 0.
This is the old method to merge the normal IRQ12 with the
USB legacy IRQ12 function. Since this is no longer needed,
software should always leave this bit with 0.
SB_ClkStpEn[0] enables PciStpB to stop primary PCI clock.
SB_ClkStpEn[1] enables PciStpB to stop secondary PCI clock
USB A20 enable
IRQ1MergeEn
IRQ12MergeEn
SB_ClkStpEn
26
27
0b
29:28
00b
UsbA20En
UsbLegacyIrqEn
Features Enable register
30
31
0b
0b
Enable for IRQ1/12 from USB (BIOS should always set it to 1)
UsbEnable - RW - 8 bits - [PCI_Reg: 68h]
Field Name
EHCI_enable
OHCI_0_enable
OHCI_1_enable
Bits
Default
Description
0
1
2
1b
1b
1b
Set to 1 to enable EHCI
Set to 1 to enable OHCI_0
Set to 1 to enable OHCI_1
©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual
SMBus Module and ACPI Block (Device 20, Function 0)
Proprietary
Page 108
UsbEnable - RW - 8 bits - [PCI_Reg: 68h]
Field Name
OHCI_2_enable
OHCI_3_enable
OHCI_4_enable
Reserved
Bits
Default
Description
3
4
5
1b
1b
1b
Set to 1 to enable OHCI_2
Set to 1 to enable OHCI_3
Set to 1 to enable OHCI_4
7:6
00b
UsbEnable register
SeriallrqControl- RW - 8 bits - [PCI_Reg: 69h]
Field Name
NumStartBits
Bits
Default
Description
This field defines the number of clocks in the start frame.
Start Frame Width = 4 + 2 * NumStartBits
Total number of serial IRQ's = 17 + NumSerIrqbits
0 - 17 serial IRQ's (15 IRQ, SMI#, + IOCHK#)
1 - 18 serial IRQ's (15 IRQ, SMI#, IOCHK#, INTA#)
...
1:0
00b
NumSerIrqBits
5:2
0h
15 - 32 serial IRQ's
The SB600 serial IRQ can support 15 IRQ#, SMI#, IOCHK#,
INTA#, INTB#, INTC#, and INTD#.
When serial SMI# is used, BIOS will need to check SIO (or
device that generates serial SMI#) for status.
0 - Continuous mode
1 - Active (quiet) mode
Setting this bit to 1 enable the serial IRQ function
SerIrqMode
6
7
0b
0b
SerialIrqEnable
SeriallrqControl register
RTCProtect- RW - 8 bits - [PCI_Reg: 6Ah]
Field Name
Bits
Default
Description
RTCProtect38_3F
0
0b
When set, RTC RAM index 38:3Fh will be locked from
read/write. This bit can only be written once.
RTCProtectF0_FF
RTCProtectE0_EF
RTCProtectD0_DF
RTCProtectC0_CF
1
0b
0b
When set, RTC RAM index F0:FFh will be locked from
read/write. This bit can only be written once.
When set, RTC RAM index E0:EFh will be locked from
read/write. This bit can only be written once.
When set, RTC RAM index D0:DFh will be locked from
read/write. This bit can only be written once.
When set, RTC RAM index C0:CFh will be locked from
read/write. This bit can only be written once.
2
3
0b
4
0b
Reserved
7:5
000b
RTCProtect register
USB Reset- RW - 8 bits - [PCI_Reg: 6Bh]
Field Name
Force Reset to USB Host
Controllers
Bits
Default
Description
These are software control bits that force the reset of the USB
host controllers.
4:0
00h
Force USB Port PHY
Power Down
Force PHY PLL Power
Down
Force USB Port PHY
Reset
5
6
7
0b
0b
0b
Forces USB PHY into power down mode.
Forces USB PHY PLL into power down mode.
Forces USB PHY reset.
USB Reset register
©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual
SMBus Module and ACPI Block (Device 20, Function 0)
Proprietary
Page 109
TestMode- RW - 16 bits - [PCI_Reg: 6C]
Field Name
DMA_Timing
Bits
Default
Description
0
0b
To be used by BIOS only; when set, legacy DMA will insert 1
extra idle clock in between requests. Software should always
set this bit.
TestMode
4:1
5
0h
0b
These bits are for testing only. Software should not write to
these bits.
When set, PCIB_SReset_En (x3e bit 22 of PCI Bridge) will be
writable.
These bits are for testing only. Software should not write to
these bits.
PCIB_SReset_En Mask
TestMode
15:6
000h
TestMode register
IoApic_Conf- RW - 32 bits - [PCI_Reg: 74h]
Field Name
Reserved
Mem_IO_Map
Bits
Default
000b
1b
Description
2:0
3
Base address mapping
1 = memory map
0 = IO map
Reserved
4
0b
IoApic_Addr
31:5
1111_
1110_
1100_
0000_
0000_
0000_
000b
Base address for IOAPIC
IoApic_Conf register.
IoAddrEnable - RW - 32 bits - [PCI_Reg: 78h]
Field Name
Bits
Default
Description
DmaAddr_En
0
1b
0x000:0x01F, 0x080:0x08F, 0x0C0:0xCF, 0x0D0:0x0DF,
0x40B, 0x4D6,
0x40,0x41, 0x42, 0x43
0x70
0x71
0xC14
0xC49, 0xC4A
0xC52
0xC6C
0xC6F
0xCD6,0 xCD7
PitAddr_En
1
2
3
4
5
6
7
8
9
1b
1b
1b
1b
1b
1b
1b
1b
1b
NmiAddr_En
RtcAddr_En
Misc_Enable1
Misc_Enable2
Misc_Enable3
Misc_Enable4
Misc_Enable5
PM_Addr_Enable
Reserved
Cms_Enable
Reserved
Port92Enable
Reserved
10
11
13:12
14
31:15
0b
1b
Address 0xC50, 0xC51
Port 92 enable
00b
1b
00000h
IoAddrEnable Register: When a bit is set, this block will decode the corresponding address. If the bit is cleared, this
block will not claim the corresponding address. This is to allow the legacy port to be behind the PCI bridge.
GPIO_69_68_66_65_Cntrl - RW – 16 bits - [PCI_Reg: 7Eh]
Field Name
GPIO_Out
Bits
Default
Description
Write 1 to set and 0 to clear each of the GPIO port providing
the corresponding bits [7:4] are enabled
Bit[0] for GPIO65/BMREQ#
3:0
0h
Bit[1] for GPIO66/LLB#
Bit[2] for GPIO68/LDRQ1#
Bit[3] for GPIO69/RTC_IRQ#
©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual
SMBus Module and ACPI Block (Device 20, Function 0)
Proprietary
Page 110
GPIO_69_68_66_65_Cntrl - RW – 16 bits - [PCI_Reg: 7Eh]
Field Name
GPIO_Out_En#
Bits
Default
Description
GPIO output port enable for each of the GPIO port
0: Output = GPIO_Out
7:4
Fh
1: Output = tristate
GPIO_Status
Reserved
11:8
15:12
-
0h
GPIO input status for each of the GPIO port
GPIO_69_68_66_65_Cntrl register
GPIO_3_to_0_Cntrl - RW – 16 bits - [PCI_Reg: 80h]
Field Name
GPIO_Out
Bits
Default
Description
Write 1 to set and 0 to clear each of the GPIO port providing
the corresponding bits [7:4] are enabled
Bit[0] for GPIO0/ SSMUXSEL
3:0
0h
Bit[1] for GPIO1/ROM_CS#
Bit[2] for GPIO2/SPKR
Bit[3] for GPIO3/FANOUT0
GPIO_Out_En#
7:4
Fh
GPIO output port enable for each of the GPIO port
0: Output = GPIO_Out
1: Output = tristate
For GPIO1, this is applicable only if we are not using the
external PCI bus as the ROM interface.
GPIO input status for each of the GPIO port
GPIO_Status
11:8
-
Reserved
15:12
0h
GPIO_3_to_0_Cntrl register
GPIO_32_31_14_13_Cntrl - RW – 16 bits - [PCI_Reg: 82h]
Field Name
GPIO_Out
Bits
Default
Description
Write 1 to set and 0 to clear each of the GPIO port providing
the corresponding bits [7:4] and [15:12] are enabled
Bit[0] for GPIO13/LAN_RST#
3:0
0h
Bit[1] for GPIO14/ROM_RST#
Bit[2] for GPIO31/SPI_HOLD#
Bit[3] for GPIO32/SPI_CS#
GPIO_Out_En#
7:4
Fh
GPIO output port enable for each of the GPIO port
0: Output = GPIO_Out
1: Output = tristate
GPIO_Status
GPIO_Enable
11:8
15:12
-
0h
GPIO input status for each of the GPIO port
GPIO function enable for each of the GPIO port
0: GPIO disabled
1: GPIO enabled
GPIO_32_31_14_13_Cntrl register
Smbus Base Address - R – 32 bits - [PCI_Reg: 90h]
Field Name
IO/Memory
Bits
Default
Description
0
1b
1 = IO
0 = Memory
Reserved
3:1
000b
SmBusBaseAd
31:4
0000000h SMBus Base Address
Smbus Base Address register (also accessible through 10h)
©2008 Advanced Micro Devices, Inc.
SMBus Module and ACPI Block (Device 20, Function 0)
AMD SB600 Register Reference Manual
Proprietary
Page 111
SmartPowerControl2A - RW – 8 bits - [PCI_Reg: 98h]
Field Name
CheckLpc
Bits
Default
Description
0
0b
If SmartVoltEnable2 is set and this bit is also set, the
SmartPower2 function will only assert SmartVolt2 if LPC is idle
If SmartVoltEnable2 is set and this bit is also set, the
SmartPower2 function will only assert SmartVolt2 if azalia (HD
audio) is idle
If SmartVoltEnable2 is set and this bit is also set, the
SmartPower2 function will only assert SmartVolt2 if AC97 is
idle
CheckAz
1
2
3
0b
0b
0b
CheckAc97
CheckPciBridge
If SmartVoltEnable2 is set and this bit is also set, the
SmartPower2 function will only assert SmartVolt2 if azalia
PCIBridge is idle
CheckUsb
CheckSata
4
5
0b
0b
If SmartVoltEnable2 is set and this bit is also set, the
SmartPower2 function will only assert SmartVolt2 if USBis idle
If SmartVoltEnable2 is set and this bit is also set, the
SmartPower2 function will only assert SmartVolt2 if SATA is
idle
CheckIde
CheckC3
6
7
0b
0b
If SmartVoltEnable2 is set and this bit is also set, the
SmartPower2 function will only assert SmartVolt2 if IDE is idle
If SmartVoltEnable2 is set and this bit is also set, the
SmartPower2 function will only assert SmartVolt2 if CPU is in
C3 state
SmartPowerControl2A register
SmartPowerControl2B - RW – 8 bits - [PCI_Reg: 99h]
Field Name
CheckVIN0
Bits
Default
Description
0
0b
If SmartVoltEnable is set and this bit is also set, the
SmartPower function will only assert SmartVolt2 if VIN0 has
reached or passed the threshold
CheckVIN1
CheckVIN2
CheckVIN3
CheckVIN4
CheckVIN5
CheckVIN6
CheckVIN7
1
2
3
4
5
6
7
0b
0b
0b
0b
0b
0b
0b
If SmartVoltEnable is set and this bit is also set, the
SmartPower function will only assert SmartVolt2 if VIN1 has
reached or passed the threshold
If SmartVoltEnable is set and this bit is also set, the
SmartPower function will only assert SmartVolt2 if VIN2 has
reached or passed the threshold
If SmartVoltEnable is set and this bit is also set, the
SmartPower function will only assert SmartVolt2 if VIN3 has
reached or passed the threshold
If SmartVoltEnable is set and this bit is also set, the
SmartPower function will only assert SmartVolt2 if VIN4 has
reached or passed the threshold
If SmartVoltEnable is set and this bit is also set, the
SmartPower function will only assert SmartVolt2 if VIN5 has
reached or passed the threshold
If SmartVoltEnable is set and this bit is also set, the
SmartPower function will only assert SmartVolt2 if VIN6 has
reached or passed the threshold
If SmartVoltEnable is set and this bit is also set, the
SmartPower function will only assert SmartVolt2 if VIN7 has
reached or passed the threshold
SmartPowerControl2B register
SmartPowerControl2C - RW – 8 bits - [PCI_Reg: 9Ah]
Field Name
Bits
Default
Description
SmartVoltIdleTime2
6:0
0h
Amount of “idle” time (in 2us increment) the SmartPower2
function should wait before it should assert SmartVolt 2
©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual
SMBus Module and ACPI Block (Device 20, Function 0)
Proprietary
Page 112
SmartPowerControl2C - RW – 8 bits - [PCI_Reg: 9Ah]
Field Name
Bits
Default
Description
SmartVoltEnable2
7
0b
Enable bit for the SmartPower2 function. When set, the logic
will monitor the logic (defined by 98h). If all of the
corresponding modules are idle,
SmartPowerControl2C register
SmartVolt function is meant to provide a mechanism to control the external power supply in order to reduce
additional system power consumption. For example, software can set SmartPowerControl2A[6] and
SmartPowerControl2A[7]. Whenever CPU enters C3 state and IDE (PATA) controller is not active, this function will
assert GPIO5. System design can use this signal to control the power supply to reduce the ATA power by 5~10%.
Another example is to connect an ambient light sensor to one of the VIN inputs. When the circuit has detected the
ambient light is below certain threshold, this function can automatically dim the LCD back light.
IDE_GPIO_Cntrl – RW - 32 bits - [PCI_Reg:A0]
Field Name
GPIO_Out
Bits
Default
Description
When the IDE bus is used as GPIO, these bits control the
output of each IDE data bit; providing the corresponding bits
[31:16] are enabled
15:0
0000h
GPIO_Out_En#
31:16
FFFFh
When the IDE bus is used as GPIO, these bits control the
output enable of each IDE data bit.
0 = Enable
1 = Tristate
IDE_GPIO_Cntrl register
IDE_GPIO_In – R - 16 bits - [PCI_Reg: A4h]
Field Name
Bits
Default
Description
GPIO_Status
15:0
----
When the IDE bus is used as GPIIO, these are the read ports
for each IDE data bit.
IDE_GPIO_In register
GPIO_48_47_46_37_Cntrl - RW – 16 bits - [PCI_Reg: A6h]
Field Name
GPIO_Out
Bits
Default
Description
Write 1 to set and 0 to clear each of the GPIO port providing
the corresponding bits [7:4] and [15:12] are enabled
Bit[0] for GPIO37/DPSLP_OD#
3:0
0h
Bit[1] for GPIO46/AZ_SDIN3
Bit[2] for GPIO47/SPI_CLK
Bit[3] for GPIO48/FANOUT1
GPIO_Out_En#
7:4
Fh
GPIO output port enable for each of the GPIO port
0: Output = GPIO_Out
1: Output = tristate
GPIO_Status
GPIO_Enable
11:8
15:12
-
0h
GPIO input status for each of the GPIO port
GPIO function enable for each of the GPIO port
0: GPIO disabled
1: GPIO enabled
Bit[13] [15] no effect
Use PM_Reg: 60h bit [2] to configure GPIO48/FANOUT1.
GPIO_48_47_46_37_Cntrl register
©2008 Advanced Micro Devices, Inc.
SMBus Module and ACPI Block (Device 20, Function 0)
AMD SB600 Register Reference Manual
Proprietary
Page 113
GPIO_12_to_4_Cntrl – RW – 32 bits - [PCI_Reg: A8h]
Field Name
GPIO_Out
Bits
Default
Description
Write 1 to set and 0 to clear each of the GPIO port providing
the corresponding bits [15:8], [25], [31:30] are enabled
Output for GPIO[12:11][9:4]
7:0
00h
Bit[0] for GPIO4/SMARTVOLT
Bit[1] for GPIO5/SHUTDOWN/SMARTVOLT2
Bit[2] for GPIO6/GNI#
Bit[3] for GPIO7/VGATE
Bit[4] for GPIO8/DDC1_SDA
Bit[5] for GPIO9/DDC1_SCL
Bit[6] for GPIO11/SPI_DO
Bit[7] for GPIO12/SPI_DI
GPIO_Out_En#
15:8
FFh
GPIO output port enable for each of the GPIO port
0: Output = GPIO_Out
1: Output = tristate
GpioIn
GPIO10_Out
GPIO10_Out_En#
23:16
24
25
-
0b
1b
GPIO input status for each of the GPIO port
Write 1 to set and 0 to clear GPIO10/SATA_IS0#
GPIO output port enable for GPIO10/SATA_IS0#
0: Output = GPIO10_Out
1: Output = tristate
GPIO10_Status
Reserved
GPIO_Enable
26
29:27
31:30
-
GPIO input status for GPIO10/SATA_IS0#
000b
0h
GPIO function enable for GPIO[12:11]
0: GPIO disabled
1: GPIO enabled
GPIO_12_to_4_Cntrl register
SATA_Cntrl - RW – 16 bits - [PCI_Reg: ACh]
Field Name
GPIO67_Out
GPIO67_Out_En#
Bits
Default
Description
0
1
0b
1b
Write 1 to set and 0 to clear GPIO67/SATA_ACT#
GPIO output port enable for GPIO67/SATA_ACT#
0: Output = GPIO67_Out
1: Output = tristate
GPIO67_Status
GPIO67_Enable
2
3
-
0b
GPIO input status for GPIO67/SATA_ACT#
GPIO function enable for GPIO67/SATA_ACT#
0: GPIO disabled
1: GPIO enabled
SMI_CMD_action
4
1b
If this bit is enabled, SMI_CMD or SLP_trap will cause SMI
being sent to host regardless of EOS status. Otherwise, SMI is
sent only when EOS=1.
Reserved
SataEnable
SataSmbusCfg
7:5
8
10:9
0h
1b
00b
SATA enable
SATA SMBus configuration.
00: Reserved
01: Disable SATA SMBus
10: Reserved
11: Enable SATA SMBu
There is only one SATA SMBus (I2C) interface for the two
SATA controllers. The SATA I2C interface is only used for
characterization purposes. Use either an external I2C master
or the on-chip SMBus as I2C master to talk to the SATA I2C
target.
Reserved
SataPsvEn
Reserved
12:11
13
14
00b
1b
0b
SATA power saving enable
HiddenMsiEnable
15
0b
Setting this bit will make PCI_Reg:B0h, bit 16 to show up as 1.
©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual
SMBus Module and ACPI Block (Device 20, Function 0)
Proprietary
Page 114
SATA_Cntrl - RW – 16 bits - [PCI_Reg: ACh]
Field Name
Bits
Default
Description
ExtendIntrToWakeTime
18:16
000b
This is used in K8 system to extend the interrupt break event
status. Whenever there is an apic interrupt, this logic will
extend the break event status by the amount of time defined
by this register. This is to avoid potential race condition
between CPU issuing the C1e command and the SB seeing
an interrupt. If CPU tries to enter C state before the extension
time expires, SB will break out from the C state. Each count
represents 2 microsecond increment and it has an uncertainty
of 2 microseconds.
DrqMaskEn
19
20
0b
0b
Setting this bit to 1 will cause the legacy DMA request to be
blocked if the DMA channel has not been initialized properly.
This bit is applicable to ASIC revision A21 and above.
Setting this bit to 1 will cause narrow pulses (less than several
A-link clocks wide) on the IDE IRQ line to be filtered out. This
means that no interrupt will be generated. This bit is applicable
to ASIC revision A21 and above.
IdeIrqFilterEn
TmrIrqEnhanceDisable
PIC_APIC_coexist
21
22
0b
0b
This bit should be set to 1 for the normal operation of the 8254
timer. This setting is required by ASIC revisions A11, A12, and
A13.
This bit should be set to 1 if PIC and APIC are to be enabled
at the same time in K8 system. There is no harm done even if
they don’t coexist at the same time.
Reserved
SataIntMap
25:23
28:26
000b
000b
SATA interrupt mapping to PCI interrupt
000 - INTA#, 001 - INTB#, 010 - INTC#, 011 - INTD#, 100 -
INTE#, 101 - INTF#, 110 - INTG#, 111 - INTH#
Reserved
31:29
000b
SATA_Cntrl register
MSI Mapping Capability - R - 32 bits - [PCI_Reg: B0h]
Field Name
Capability ID
Capability Pointer
MsiEnable
Bits
7:0
15:8
16
Default
08h
00h
0b
Description
This is a HyperTransport capability list item.
This is the end of capability list.
MSI enable programmable through PCI_Reg: ADh bit 7
The address for mapping MSIs is fixed at
0000_0000_FEEx_xxxxh.
Fixed
17
1b
Reserved
Capability Type
26:18
31:27
000h
10101b
This is an MSI Mapping Capability block.
MSI Mapping Capability register
PciIntGpio - RW - 16 bits - [PCI_Reg: BCh]
Field Name
PciIntGpioOut
Bits
Default
Description
3:0
0h
Output data for each PCI INT# GPIO providing bits [7:4] and
[15:12] are enabled
PciIntGpioEnB
PciIntGpioStatus
PciIntIsGpio
7:4
11:8
15:12
Fh
-
0h
Output enable for each PCI INT# GPIO (active low)
Input status for each PCI INT# GPIO [Read Only]
Set to 1 to use PCI interrupt INTH/G/F/E# as GPIO
PciIntGpio register
UsbIntMap - RW - 16 bits - [PCI_Reg: BEh]
Field Name
UsbInt1Map
UsbInt2Map
Reserved
Bits
Default
000b
001b
00b
Description
2:0
5:3
(OHCI0) UsbInt1 interrupt mapping to PCI interrupt
(OHCI1 & OHCI3) UsbInt2 interrupt mapping to PCI interrupt
7:6
UsbInt3Map
UsbInt4Map
10:8
13:11
010b
011b
(OHCI2 & OHCI4) UsbInt3 interrupt mapping to PCI interrupt
(EHCI) UsbInt4 interrupt mapping to PCI interrupt
©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual
SMBus Module and ACPI Block (Device 20, Function 0)
Proprietary
Page 115
UsbIntMap - RW - 16 bits - [PCI_Reg: BEh]
Field Name
Reserved
Bits
Default
Description
15:14
00b
UsbIntMap register
Encoding:
000 - INTA#, 001 - INTB#, 010 - INTC#, 011 - INTD#, 100 - INTE#, 101 - INTF#, 110 - INTG#, 111 - INTH#
IoDrvSth - RW - 32 bits - [PCI_Reg: C0h]
Field Name
IoDrvSth_AD
Bits
Default
Description
1:0
11b
IO drive strength (bits [2:1]); together with bit 26 make up the
drive strength control for AD[31:0], CBE0#, CBE1#, CBE2#,
CBE3# and PAR pads.
IoDrvSth_Cntrl
IoDrvSth_GNT
3:2
5:4
11b
11b
IO drive strength (bits [2:1]); together with bit 26 make up the
drive strength control for A_RST#, FRAME#, IRDY#,
DEVSEL#, TRDY#, LOCK#, STOP#, PERR#, SERR#,
CLKRUN# and PCIRST# pads
IO drive strength (bits [2:1];; together with bit 27 make up the
drive strength control for GNT#[2:0], GNT3#, GNT4#, GNT5#,
and GNT6# pads
IoDrvSth_ClkGrpA
IoDrvSth_ClkGrpB
IoDrvSth_Lpc
7:6
9:8
11b
11b
11b
IO drive strength (bits [2:1];; together with bit 27 make up the
drive strength control for PCICLK[6:5] pads
IO drive strength (bits [2:1];; together with bit 27 make up the
drive strength control for PCICLK[4:1] pads
IO drive strength (bits [2:1];; together with bit 28 make up the
drive strength control for LAD[3:0], LFRAME#, and
LDRQ#[1:0] pads
12:11
IoDrvSth_Ac97
IoDrvSth_Int
13:12
15:14
17:16
19:18
11b
11b
11b
11b
IO drive strength for AC_SYNC, AC_SDOUT and SPDIF_OUT
pads
IO drive strength for INTA#, INTB#, INTC#, INTD#, INTE#,
INTF#, INTG# and INTH# pads
IO drive strength for REQ#[1:0], REQ3#, REQ4#, REQ5# and
REQ6# pads when these pads are configured as GPIO
IO drive strength for BMREQ#, EXTEVENT1#, GPIO[0, 1, 2, 4,
5, 6, 7, 8, 9, 10, 13, 37], GPOC[0:1], DPRSLPVR,
IO drive strength for GPIO[3, 48:52],
IO drive strength (bits [2:1];; together with bit 29 make up the
drive strength control for CPU_STP#/DPSLP_3V#, GA20IN,
KBRST#, SERIRQ and SATA_ACT# pads
IO drive strength for IDE pads
IoDrvSth_Req
IoDrvSth_GpioA
IoDrvSth_GpioB
IoDrvSth_Misc
21:20
23:22
11b
IoDrvSth_Ide
25:24
26
27
28
29
11b
1b
1b
1b
1b
IoDrvSth_AD_0
IoDrvSth_GNT_0
IoDrvSth_Lpc_0
IoDrvSth_Misc_0
Reserved
Bit 0 of IoDrvSth_AD
Bit 0 of IoDrvSth_GNT
Bit 0 of IoDrvSth_Lpc
Bit 0 of IoDrvSth_Misc
31:30
11b
IoDrvSth: Each three bit field controls the number of P and N transistors enabled in the final stage of the output
driver for the designated pads. By controlling the number of transistors enabled, the designer can optimize the drive
characteristics of signals based on the topology of their specific design. For drive strength with 3 bit control, the
drive strength table is shown below. The values are non-linear and values for each bit field of this register are as
follows:
Value
111b
110b
101b
100b
011b
010b
001b
000b
Relative Strength
Description
100%
88%
77%
66%
66%
55%
44%
33%
All P and N transistors are enabled when the pad drives
Approximately 88% of the P and N transistors are enabled
Approximately 77% of the P and N transistors are enabled
Approximately 66% of the P and N transistors are enabled
Approximately 66% of the P and N transistors are enabled
Approximately 55% of the P and N transistors are enabled
Approximately 44% of the P and N transistors are enabled
Approximately 33% of the P and N transistors are enabled
©2008 Advanced Micro Devices, Inc.
SMBus Module and ACPI Block (Device 20, Function 0)
AMD SB600 Register Reference Manual
Proprietary
Page 116
IoDrvSth - RW - 32 bits - [PCI_Reg: C0h]
Field Name
Bits
Default
Description
For control with only two bits, one can assume the four drive strength settings (corresponding to 25, 50, 75, and
100% respectively).
For the PCI interface, bits [3:0] and 26 control the AD and PCI control signals, The table below contains
recommendations based on empirical data collected from a live system:
S2
S1
S0
Percent Drive Strength
Loads
SMBUS PCI Register, Index C0h
Bits[1:0] = 01; Bits[3:2] = 00, bit 26
= 0
0
0
0
33%
For 0-1 loads
Bits[1:0] = 10; Bits[3:2] = 00, bit 26
= 1
0
0
0
0
1
1
1
0
1
44%
55%
66%
For 2 loads
For 3-4 loads
For 4-5 loads
Bits[1:0] = 01; Bits[3:2] = 01, bit 26
= 0
Bits[1:0] = 01; Bits[3:2] = 01, bit 26
= 1
For LPC bus, the drive strength is determined by SMBUS PCI C0h, bits [11:10] and [28]
S2
0
S1
0
S0
0
Percent Drive Strength
Loads
SMBUS PCI Register, Index C0h
Bits[11:10] = 00, bit 28 = 0
Bits[11:10] = 00, bit 28 = 1
Bits[11:10] = 01, bit 28 = 0
Bits[11:10] = 01, bit 28 = 1
33%
44%
55%
66%
For 0-1 loads
For 2 loads
For 3-4 loads
For 4-5 loads
0
0
1
0
1
0
0
1
1
I2CbusConfig - RW - 8 bits - [PCI_Reg: D2h]
Field Name
Bits
Default
Description
I2CController Enable
I2CbusInterrupt
0
1
0b
0b
I2C controller host interface enable
0 : SMI#
1 : IRQ
Reserved
7:2
00h
I2CbusConfig register: Registers D2-D5 control the interface when this chip is the I2C slave.
I2CCommand - RW - 8 bits - [PCI_Reg: D3h]
Field Name
I2Ccommand
Bits
Default
Description
7:0
00h
I2C Host Slave Command; this value specifies the command
value to be matched for I2C master accesses to the
I2Ccontroller host slave interface.
I2CCommand register
I2CShadow1- RW - 8 bits - [PCI_Reg: D4h]
Field Name
Bits
Default
Description
Read/Write ShadowPort1
0
0b
Read/Write for Shadow Port 1
This bit must be programmed to 0 because I2C slave
controller only responds to Word Write Transaction.
SMBus Slave Address for shadow port 1
I2CslaveAddr1
7:1
00h
This value specifies the address used to match against
incoming I2C addresses for Shadow port 1.
©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual
SMBus Module and ACPI Block (Device 20, Function 0)
Proprietary
Page 117
I2CShadow1- RW - 8 bits - [PCI_Reg: D4h]
Field Name
Bits
Default
Description
I2CShadow1 register
I2Cshadow2- RW - 8 bits - [PCI_Reg: D5h]
Field Name
Bits
Default
Description
Read/Write ShadowPort2
0
0b
Read/Write for Shadow Port 2
This bit must be programmed to 0 because I2C slave
controller only responds to Word Write Transaction.
SMBus Slave Address for shadow port 2
I2CslaveAddr2
7:1
00h
This value specifies the address used to match against
incoming I2C addresses for Shadow port 2.
I2Cshadow2 register
I2CBusRevision - RW - 8 bits - [PCI_Reg: D6h]
Field Name
I2CbusRevision
Bits
Default
Description
7:0
00h
Revision ID
I2CBusRevision register
MSI_Weight - RW – 8 bits - [PCI_Reg: E0h]
Bits
5:0
7:6
Default
100000b
00b
Description
Used by bios to tune MSI messaging priority
MSI_weight
Reserved
MSI_Weight register
AB_REG_BAR - RW - 32 bits - [PCI_Reg: F0h]
Field Name
Bits
Default
Description
AB_REG_BAR
31:0
0000_000 Base Address for A-link Bridge Register
0h
AB_REG_BAR register
WakeIoAddr- RW - 16 bits - [PCI_Reg: F4h]
Field Name
Bits
Default
Description
WakeIoAddr
15:0
0000h
IO Address for C-State Wake-up by CPU (K8 only). The BIOS
can program an address inside K8 and this location. The K8
can then use it to generate an IO write to tell SB to wake from
C state (location inside K8 is TBD).
WakeIoAddr register
MwaitID- RW - 8 bits - [PCI_Reg: F6h]
Field Name
Bits
Default
Description
Mwait_physical_ID
3:0
0100b
This is used for P4 dual core system. Two physical CPU IDs
with default values 00 and 01 to match with addr[19:18] of
MWAIT and ADS_after_MWAIT. Usage TBD
Mwait_logical_ID
MwaitID register
7:4
0100b
This is used for P4 dual core system. Two logical CPU IDs
with default values 00 and 01 to match with addr[17:16] of
MWAIT and ADS_after_MWAIT. Usage TBD
MwaitSts- R - 8 bits - [PCI_Reg: F7h]
Field Name
Bits
Default
Description
Mwait_cpu0_sts
0
0b
Set to 1 by MWAIT with addr[19:18] = Mwait_physical_ID[1:0]
and addr[17:16] = Mwait_logical_ID[1:0]. Cleared by
ADS_after_MWAIT with the same addr[19:16].
©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual
SMBus Module and ACPI Block (Device 20, Function 0)
Proprietary
Page 118
MwaitSts- R - 8 bits - [PCI_Reg: F7h]
Field Name
Bits
Default
Description
Mwait_cpu1_sts
1
0b
Set to 1 by MWAIT with addr[19:18] = Mwait_physical_ID[3:2]
and addr[17:16] = Mwait_logical_ID[1:0]. Cleared by
ADS_after_MWAIT with the same addr[19:16].
Mwait_cpu2_sts
Mwait_cpu3_sts
Reserved
2
3
0b
0b
0h
Set to 1 by MWAIT with addr[19:18] = Mwait_physical_ID[1:0]
and addr[17:16] = Mwait_logical_ID[3:2]. Cleared by
ADS_after_MWAIT with the same addr[19:16].
Set to 1 by MWAIT with addr[19:18] = Mwait_physical_ID[3:2]
and addr[17:16] = Mwait_logical_ID[3:2]. Cleared by
ADS_after_MWAIT with the same addr[19:16].
7:4
MwaitSts register. This register is to be used for P4 dual core system. Usage TBD.
ExtendedAddrPort- RW - 32 bits - [PCI_Reg: F8h]
Field Name
Bits
Default
Description
ExtendedAddrPort
31:0
00h
Address port for the extended register block
ExtendedAddrPort register..
ExtendedDataPort- RW - 32 bits - [PCI_Reg: FCh]
Field Name
Bits
Default
Description
ExtendedDataPort
31:0
00h
Data port for the extended register block
ExtendedDataPort register.
©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual
SMBus Module and ACPI Block (Device 20, Function 0)
Proprietary
Page 119
2.3.1.2 Extended Registers
Register Name
AudioPortConfig
AudioGpioControl
Configuration Offset
00h
04h
AudioPortConfig- RW - 32 bits - [Extend_Reg: 00h]
Field Name
AzPort0Config
Bits
Default
Description
1:0
01b
Port configuration for HD Audio and AC97 input port:
00 or 11 = GPIO port
01 = Set as ac97 port
10 = Set as HD Audio port
AzPort1Config
AzPort2Config
AzPort3Config
3:2
5:4
7:6
01b
10b
10b
Port configuration for HD Audio and AC97 input port:
00 or 11 = GPIO port
01 = Set as ac97 port
10 = Set as HD Audio port
Port configuration for HD Audio and AC97input port:
00 or 11 = GPIO port
01 = Set as ac97 port
10 = Set as HD Audio port
Port configuration for HD Audio and AC97input port:
00 or 11 = GPIO port
01 = Set as ac97 port
10 = Set as HD Audio port
Reserved
AudioGpioIn0Status
15:8
16
-
-
-
-
-
When ACZ_SDIN0 is configured as GPIO, this bit returns the
GPIO input status.
When ACZ_SDIN 1 is configured as GPIO, this bit returns the
GPIO input status.
When ACZ_SDIN 2 is configured as GPIO, this bit returns the
GPIO input status.
When ACZ_SDIN 3 is configured as GPIO, this bit returns the
GPIO input status.
AudioGpioIn1Status
AudioGpioIn2Status
AudioGpioIn3Status
AzRstGpioIN
17
18
19
20
When AZ_RST# is configured as GPIO, this bit returns the
GPIO input status.
Reserved
Ac97RstGpioIn
23:21
24
-
-
-
-
-
When AC_RST# is configured as GPIO, this bit returns the
GPIO input status.
When AC_BitClk is configured as GPIO, this bit returns the
GPIO input status.
When AC_Sync is configured as GPIO, this bit returns the
GPIO input status.
When AC_DataOut is configured as GPIO, this bit returns the
GPIO input status.
Ac97BclkGpioIn
Ac97SyncGpioIn
Ac97DOutGpioIn
SpdifGpioIn
25
26
27
28
When AC_SPDIF is configured as GPIO, this bit returns the
GPIO input status.
Reserved
31:29
AudioPortConfig register.
©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual
SMBus Module and ACPI Block (Device 20, Function 0)
Proprietary
Page 120
AudioGpioControl – RW - 32 bits - [Extend_Reg: 04h]
Field Name
Bits
Default
Description
AudioGpioOut0OeB
0
1b
When ACZ_SDIN0 is configured as GPIO, this bit represents
the output enable.
1 – Tristate
0 – Enable
AudioGpioOut1OeB
AudioGpioOut2OeB
AudioGpioOut3OeB
AzRstGpioOutOeB
1
2
3
4
1b
1b
1b
1b
When ACZ_SDIN1 is configured as GPIO, this bit represents
the output enable.
1 – Tristate
0 – Enable
When ACZ_SDIN2 is configured as GPIO, this bit represents
the output enable.
1 – Tristate
0 – Enable
When ACZ_SDIN3 is configured as GPIO, this bit represents
the output enable.
1 – Tristate
0 – Enable
When AZ_RST# is configured as GPIO, this bit represents the
output enable.
1 – Tristate
0 – Enable
Reserved
Ac97RstGpioOutOeB
7:5
8
1b
1b
1b
1b
1b
When AC_RST# is configured as GPIO, this bit represents the
output enable.
1 – Tristate
0 – Enable
When AC_BitClk is configured as GPIO, this bit represents the
output enable.
1 – Tristate
0 – Enable
When AC_Sync is configured as GPIO, this bit represents the
output enable.
1 – Tristate
0 – Enable
When AC_ SDOut is configured as GPIO, this bit represents
the output enable.
1 – Tristate
0 – Enable
Ac97BclkGpioOeB
Ac97SyncGpioOeB
Ac97DOutGpioOeB
SpdifGpioOeB
9
10
11
12
When AC_SPDIF is configured as GPIO, this bit represents
the output enable.
1 – Tristate
0 – Enable
Reserved
AudioGpioOut0
15:13
16
0b
0b
0b
0b
When ACZ_SDIN 0 is configured as GPIO, this bit represents
the output value if the output is enabled.
1 – High
0 – Low
When ACZ_SDIN 1 is configured as GPIO, this bit represents
the output value if the output is enabled.
1 – High
0 – Low
When ACZ_SDIN 2 is configured as GPIO, this bit represents
the output value if the output is enabled.
1 – High
0 – Low
AudioGpioOut1
AudioGpioOut2
AudioGpioOut3
17
18
19
When ACZ_SDIN 3 is configured as GPIO, this bit represents
the output value if the output is enabled.
1 – High
0 – Low
©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual
SMBus Module and ACPI Block (Device 20, Function 0)
Proprietary
Page 121
AudioGpioControl – RW - 32 bits - [Extend_Reg: 04h]
Field Name
AzRstGpioOut
Bits
Default
Description
20
0b
When AZ_RST# is configured as GPIO, this bit represents the
output value if the output is enabled.
1 – High
0 – Low
Reserved
Ac97RstGpioOut
23:21
24
0b
0b
0b
0b
0b
When AC_RST# is configured as GPIO, this bit represents the
output value if the output is enabled.
1 – High
0 – Low
When AC_BITCLK is configured as GPIO, this bit represents
the output value if the output is enabled.
1 – High
0 – Low
When AC_SYNC is configured as GPIO, this bit represents the
output value if the output is enabled.
1 – High
0 – Low
When AC_SDOUT is configured as GPIO, this bit represents
the output value if the output is enabled.
1 – High
0 – Low
Ac97BclkGpioOut
Ac97SyncGpioOut
Ac97DOutGpioOut
SpdifGpioOut
25
26
27
28
When SPDIF_OUT is configured as GPIO, this bit represents
the output value if the output is enabled.
1 – High
0 – Low
Reserved
31:29
AudioGpioControl register.
©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual
SMBus Module and ACPI Block (Device 20, Function 0)
Proprietary
Page 122
2.3.2
SMBus Registers
Register Name
Offset Address
SMBusStatus
SMBusSlaveStatus
SMBusControl
00h
01h
02h
SMBusHostCmd
SMBusAddress
SMBusData0
03h
04h
05h
SMBusData1
06h
SMBusBlockData
SMBusSlaveControl
SMBusShadowCmd
SMBusSlaveEvent
SlaveData
07h
08h
09h
0A-0Bh
0C-0Dh
0Eh
SMBusTiming
Note: The SMBus registers are located at the IO memory space base address defined by PCI configuration
register 90-93h
SMBusStatus - RW - 8 bits - [SMBUS:00h]
Field Name
HostBusy
Bits
Default
Description
0
0b
This bit indicates the SMBus controller is in the process of
completing a command. When this bit is set, software should
not access any other SMBus registers [Read-only]
This bit is set by hardware to indicate the completion of the last
host command. This bit can be cleared by writing an 1 to it.
This bit is set by hardware to indicate an error of one of the
following: 1) illegal command field, 2) unclaimed cycle, 3) host
device time-out. This bit can be cleared by writing an 1 to it.
This bit is set by hardware to indicate SMBus transaction
collision; this bit can be cleared by writing an 1 to it.
This bit is set by hardware to indicate a failed bus transaction,
set when SMBusControl.Kill bit is set. This bit is cleared by
writing an 1 to it
SMBusInterrupt
DeviceErr
1
2
0b
0b
BusCollision
Failed
3
4
0b
0b
Reserved
7:5
000b
SMBusSlaveStatus - RW - 8 bits - [SMBUS:01h]
Field Name
Bits
Default
Description
SlaveBusy
0
0b
This bit indicates the SMBus controller slave interface is in the
process of receiving data. Software should not try to access
any other SMBus register when this bit is set. [Read-only]
Writing a 1 to this bit will initialize the slave. It is unnecessary to
write it back to 0. A read from it will always return a 0.
This bit is set by hardware to indicate a slave cycle event match
of the SMBus slave command and SMBus Slave Event match.
This bit can be cleared by writing an 1 to it.
SlaveInit
1
2
0b
0b
SlaveStatus
Shadow1Status
Shadow2Status
AlertStatus
3
4
5
0b
0b
0b
This bit is set by hardware to indicate a slave cycle address
match of the SMB_Shadow1 port. This bit can be cleared by
writing a 1 to it.
This bit is set by hardware to indicate a slave cycle address
match of the SMB_Shadow2 port. This bit can be cleared by
writing a 1 to it.
This bit is set by hardware to indicate SMBALERT_ signal. This
function is not supported. [Read-only]
©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual
SMBus Module and ACPI Block (Device 20, Function 0)
Proprietary
Page 123
SMBusSlaveStatus - RW - 8 bits - [SMBUS:01h]
Field Name
Reserved
Bits
Default
Description
7:6
00b
SMBusControl - RW - 8 bits - [SMBUS:02h]
Field Name
InterruptEnable
Bits
Default
Description
0
0b
Enable the generation of interrupts on the completion of current
host transaction.
Kill
1
4:2
0b
000b
Stop the current host transaction in process
000 – Quick Read or Write
001 – Byte Read or Write
SMBusProtocol
010 – Byte Data Read or Write
011 – Word Data Read or Write
100 – Reserved
101 – Block Read or Write
110 – Reserved
111 – Reserved
Reserved
Start
5
6
0b
0b
Writing an 1 in this field initiates SMBus controller host interface
to execute the command programmed in the SMBusProtocol
field
Reserved
7
0b
SMBusHostCmd - RW – 8 bits - [SMBUS:03h]
Field Name
SMBusHostCmd
Bits
Default
Description
This field contains the data transmitted in the command field of
SMBus host transaction
7:0
00h
SMBusAddress - RW - 8 bits - [SMBUS:04h]
Field Name
Bits
Default
Description
SMBusRdWr
0
0b
1 – Execute a Read command
0 – Execute a Write command
SMBusAddr
7:1
00h
This field contains the 7-bit address of the target slave device.
SMBusData0 - RW - 8 bits - [SMBUS:05h]
Field Name
Bits
Default
Description
SMBusData0
7:0
00h
This register should be programmed with a value to be
transmitted in the data 0 field of an SMBus host interface
transaction. For Block Write commands, the count of the
memory should be stored in this field. The value of this
register is loaded into the block transfer count field. This valid
value for block command count is between 1 and 32. For
block reads, count received from SMBus device is stored here.
SMBusData1 - RW - 8 bits - [SMBUS:06h]
Field Name
Bits
Default
Description
SMBusData1
7:0
00h
This register should be programmed with a value to be
transmitted in the data 1 field of an SMBus host interface
transaction.
SMBusBlockData - RW - 8 bits - [SMBUS:07h]
Field Name
SMBusBlockData
Bits
Default
Description
This register is used to transfer data into or out of the block
data storage array.
7:0
00h
©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual
SMBus Module and ACPI Block (Device 20, Function 0)
Proprietary
Page 124
SMBusSlaveControl - RW - 8 bits - [SMBUS:08h]
Field Name
SlaveEnable
Bits
Default
Description
0
0b
Enable the generation of an interrupt or resume event upon an
external SMBus master generating a transaction with an
address that matches the host controller slave port of 10h and
a command field which matches the SMBus slave control
register and a match of corresponding enabled events.
Enable the generation of an interrupt or resume event upon an
external SMBus master generating a transaction with an
address that matches the SMBus Shadow 1 register.
Enable the generation of an interrupt or resume event upon an
external SMBus master generating a transaction with an
address that matches the SMBus Shadow 2 register.
Enable the generation of an interrupt or resume event on the
assertion of AMBALERT_ signal. (This function is not
supported). [Read-only]
SMBusShadow1En
SMBusShadow2En
SMBusAlertEnable
Reserved
1
2
0b
0b
0b
0h
3
7:4
SMBusShadowCmd - RW - 8 bits - [SMBUS:09h]
Field Name
Bits
Default
Description
SMBusShadowCmd
7:0
00h
This field contains the command value which was received
during an external SMBus master access whose address field
matched the host slave address (10h) or one of the slave
shadow ports.
SMBusSlaveEvent - RW - 16 bits - [SMBUS:0A-0Bh]
Field Name
Bits
Default
Description
SMBusSlaveEvent
15:0
0000h
This field contains data bits used to compare against incoming
data to the SMBus Slave Data register. When a bit in this
register is 1 and a corresponding bit in SMBus Slave register
is set, then an interrupt or resume event is generated if the
command value matches the value in the SMBus slave control
register and the access was to SMBus host address 10h.
SlaveData - RW - 16 bits - [SMBUS:0C-0Dh]
Field Name
Bits
Default
Description
SlaveData
15:0
0000h
This field contains the data value which was transmitted during
an external SMBus master access whose address field
matched one of the slave shadow port addresses or the
SMBus host controller slave port address of 10h.
SMBusTiming - RW - 8 bits - [SMBUS:0Eh]
Field Name
Bits
Default
Description
SMBusTiming
7:0
A0h
This register controls the frequency on the SMBUS. The
formula to calculate the frequency is:
Frequency = 66Mhz/(SmBusTiming * 4)
©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual
SMBus Module and ACPI Block (Device 20, Function 0)
Proprietary
Page 125
2.3.3
Legacy ISA and ACPI Controller
2.3.3.1 Legacy Block Registers
There are two sets of registers in the ACPI/SMBus module. The first set is in the PCI configuration space
and the registers control the behavior of the PCI interface. The second set is in the Memory/IO mapped
address space. These registers control the functions of the module.
2.3.3.1.1 IO-Mapped Control Registers
Register Name
Dma_Ch 0
Offset Address
00h
Dma_Ch 1
02h
Dma_Ch 2
04h
Dma_Ch 3
06h
Dma_Status
08h
Dma_WriteRequest
Dma_WriteMask
Dma_WriteMode
Dma_Clear
Dma_MasterClr
Dma_ClrMask
Dma_AllMask
09h
0Ah
0Bh
0Ch
0Dh
0Eh
0Fh
20h
IntrCntrlReg1
IntrCntrlReg2
21h
TimerCh0
40h
TimerCh1
41h
TimerCh2
42h
Tmr1CntrlWord
Nmi_Status
43h
61h
RtcAddrPort
70h
RtcDataPort
71h
AlternatRtcAddrPort
AlternatRtcDataPort
Dma_PageCh2
Dma_PageCh3
Dma_PageCh1
Dma_Page_Reserved1
Dma_Page_Reserved2
Dma_Page_Reserved3
Dma_PageCh0
Dma_Page_Reserved4
Dma_PageCh6
Dma_PageCh7
Dma_PageCh5
Dma_Page_Reserved5
Dma_Page_Reserved6
Dma_Page_Reserved7
Dma_Refresh
72h
73h
81h
82h
83h
84h
85h
86h
87h
88h
89h
8Ah
8Bh
8Ch
8Dh
8Eh
8Fh
92h
FastInit
IntrCntrl2Reg1
IntrCntrl2Reg2
Dma2_Ch4Addr
Dma2_Ch4Cnt
Dma2_Ch5Addr
Dma2_Ch5Cnt
Dma2_Ch6Addr
A0h
A1h
C0h
C2h
C4h
C6h
C8h
©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual
SMBus Module and ACPI Block (Device 20, Function 0)
Proprietary
Page 126
Register Name
Dma2_Ch6Cnt
Dma2_Ch7Addr
Dma2_Ch7Cnt
Dma_Status
Dma_WriteRequest
Dma_WriteMask
Dma_WriteMode
Dma_Clear
Offset Address
CAh
CCh
CEh
D0h
D2h
D4h
D6h
D8h
Dma_Clear
DAh
Dma_ClrMask
Dma_ClrMask
NCP_Error
DCh
DEh
F0h
DMA1_Extend
IntrEdgeControl
DMA2_Extend
Pci_Intr_Index
Pci_Intr_Data
Pci_Error
40Bh
4D0h
4D6h
C00h
C01h
C14h
C50h
C51h
C52h
C6Fh
CD0h
CD1h
CD4h
CD5h
CD6h
CD7h
CMIndex
CMData
GpmPort
Isa_Misc
PM2_Index
PM2_Data
BIOSRAM_Index
BIOSRAM_Data
PM_Index
PM_Data
.
The PCI I/O registers are 32-bit registers decoded from the full 32-bit PCI address and C/BE[3:0]#.
Therefore, the bytes within a 32-bit address are selected with the valid byte enables. Registers and bits
within a register marked as reserved are not implemented. Writes have no effect on reserved registers. All
PCI I/O registers can be accessed via 8, 16, or 32-bit cycles (i.e., each byte is individually selected by the
byte enables).
Dma_Ch 0- RW – 16 bits - [IO_Reg: 00h]
Field Name
Dma_Ch 0
Bits
Default
Description
15:0
0000h
DMA1 Ch0 Base and Current Address
Dma_Ch 0 register
Dma_Ch 1- RW – 16 bits - [IO_Reg: 02h]
Field Name
Dma_Ch 1
Bits
Default
Description
15:0
0000h
DMA1 Ch1 Base and Current Address
Dma_Ch 1 register
Dma_Ch 2- RW – 16 bits - [IO_Reg: 04h]
Field Name
Dma_Ch 2
Bits
Default
Description
15:0
0000h
DMA2 Ch2 Base and Current Address
Dma_Ch 2 register
Dma_Ch 3- RW – 16 bits - [IO_Reg: 06h]
Field Name
Dma_Ch 3
Bits
Default
Description
15:0
0000h
DMA1 Ch3 Base and Current Address
Dma_Ch 3 register
©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual
SMBus Module and ACPI Block (Device 20, Function 0)
Proprietary
Page 127
Dma_Status- RW – 8 bits - [IO_Reg: 08h]
Field Name
Dma_Status
Bits
Default
Description
7:0
00h
Returns status when read; command for write
Dma_Status register
Dma_WriteRequest- RW – 8 bits - [IO_Reg: 09h]
Field Name
Bits
Default
Description
Dma_WriteRequest
7:0
00h
Request register.
Dma_WriteRequest register
Dma_WriteMask- RW – 8 bits - [IO_Reg: 0Ah]
Field Name
Dma_WriteMask
Bits
Default
Description
7:0
00h
Channel mask register.
Dma_WriteMask register
Dma_WriteMode- RW – 8 bits - [IO_Reg: 0Bh]
Field Name
Dma_WriteMode
Bits
Default
Description
7:0
00h
Mode register.
Dma_WriteMode register
Dma_Clear- RW – 8 bits - [IO_Reg: 0Ch]
Field Name
Dma_Clear
Bits
Default
Description
7:0
00h
Channel 0-3 DMA clear byte pointer
Dma_Clear register
Dma_MasterClr- RW – 8 bits - [IO_Reg: 0Dh]
Field Name
Dma_MasterClr
Bits
Default
Description
7:0
00h
Intermediate register.
Dma_MasterClr register
Dma_ClrMask- RW – 8 bits - [IO_Reg: 0Eh]
Field Name
Dma_ClrMask
Bits
Default
Description
7:0
00h
Channel 0-3 DMA Clear Mask
Dma_ClrMask register
Dma_AllMask- RW – 8 bits - [IO_Reg: 0Fh]
Field Name
Dma_AllMask
Bits
Default
Description
7:0
00h
Mask register.
Dma_AllMask register
IntrCntrl1Reg1- RW – 8 bits - [IO_Reg: 20h]
Field Name
Bits
Default
Description
IntrCntrl1Reg1
7:0
00h
IRQ0 – IRQ7:
Read IRR, ISR
Write ICW1, OCW2, OCW3
IntrCntrl1Reg1register
©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual
SMBus Module and ACPI Block (Device 20, Function 0)
Proprietary
Page 128
IntrCntrl1Reg2- RW – 8 bits - [IO_Reg: 21h]
Field Name
IntrCntrl1Reg2
Bits
Default
Description
7:0
00h
IRQ0 – IRQ7:
Read IMR
Write ICW2, ICW3, ICW4, OCW1
IntrCntrl1Reg2 register
IMCR_Index- RW – 8 bits - [IO_Reg: 22h]
Field Name
Bits
Default
Description
IMCR_Index
7:0
00h
The IMCR is supported by two read/writeable IO ports 22/23h;
which are used as index and data port respectively. The
actual IMCR register is located at index 70h.
IMCR_Index register
IMCR_Data- RW – 8 bits - [IO_Reg: 23h]
Field Name
Bits
Default
Description
IMCR_Data
7:0
00h
The IMCR is supported by two read/writeable IO ports 22/23h;
which are used as index and data port respectively. The
actual IMCR register is located at index 70h and it is at bit 0.
The actual IMCR bit can only be accessed when bit port 22 is
set to 70h. Default value of IMCR is 0.
IMCR_Data register
TimerCh0- RW – 8 bits - [IO_Reg: 40h]
Field Name
Bits
Default
Description
TimerCh0
7:0
00h
8254 Timer 1 – Counter 0 Data Port
This timer is known as the System Clock timer and it is always
on. It is clocked internally by OSC/12 (1.19318MHz), and
asserts IRQ0 every time the timer rolls over. This timer is
used for time-of-day, diskette time-out, and other system
timing functions.
TimerCh0 register
TimerCh1- RW – 8 bits - [IO_Reg: 41h]
Field Name
Bits
Default
Description
TimerCh1
7:0
00h
8254 Timer 1 – Counter 1 Data Port
This timer is normally used for ISA refresh cycles and is also
clocked by OSC/12 (1.19818MHz). Since this refresh function
is no longer needed (we don't have an external ISA bus), it
can be used as a general purpose timing function.
TimerCh1 register
TimerCh2- RW – 8 bits - [IO_Reg: 42h]
Field Name
Bits
Default
Description
TimerCh2
7:0
00h
8254 Timer 1 - Counter 2 Data Port
This is the speaker tone generator and is enabled by IO port
61H. It is clocked by OSC/12 (1.19318MHz) and directly
drives the output SPKR that goes to a speaker.
TimerCh2 register
©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual
SMBus Module and ACPI Block (Device 20, Function 0)
Proprietary
Page 129
Tmr1CntrlWord - RW – 8 bits - [IO_Reg: 43h]
Field Name
CntDownSelect
Bits
Default
Description
0
0b
0 – Binary countdown
1 – BCD countdown
ModeSelect
3:1
000b
000 – Asserts OUT signal at end of count
001 – Hardware re-triggerable one-shot
010 – Rate generator
011 – Square wave output
100 – Software triggered strobe
101 – Hardware triggered strobe
110 – 111 – not used
CmmandSelect
CounterSelect
5:4
7:6
00b
00b
00 – Counter latch command
01 – Read/write least significant byte
10 – Read/write most significant byte
11 – Read/write least, and then most significant byte
00 - Select counter 0
01 - Select counter 1
10 - Select counter 2
11 – Read back command
Tmr1CntrlWord register: This is the control word to access the 8254 timer 1. It is used to select which counter will
be accessed and how it will be accessed. This register specifies the counter, the operating mode, the order and
size of the count value, and whether it counts down in a 16 bit or BCD format.
If a counter is programmed to read or write two-byte counts, the following precaution applies: A program must not
transfer control between writing the first and second byte to another routine which also writes into that same
counter; otherwise, the counter will be loaded with an incorrect value. The count must always be completely loaded
with both bytes.
Nmi_Status - RW – 8 bits - [IO_Reg: 61h]
Field Name
SpkrEnable
Bits
Default
Description
0
0b
0 - Disable counter 2
1 - Enable counter 2
0 - Speaker timer off
1 - Speaker timer on
0 - Enable Parity Error to NMI generation (from SERR# or
PERR#)
SpkrTmrEnable
Parity_Nmi_En
1
2
0b
1b
1 - Disable Parity Error to NMI generation and clear bit 7
Iochk_Nmi_En
3
1b
0 - Enable IoChk to NMI generation
1 - Disable IoChk to NMI generation
The output of the counter 1 (8254). (Read-only)
The output of the counter 2. [Read-only]
NMI is triggered by serial IOCHK. [Read-only]
NMI is caused by parity error (either PERR# or SERR#).
[Read-only]
RefClk
SpkrClk
IoChk_Nmi
ParErr_Nmi
4
5
6
7
-
-
-
-
Nmi_Status register: Independent read and write registers will be accessed at this port. When writing to port 61H,
bits[3:0] allow software to enable/disable parity error NMI's and control the speaker timer. When reading port 61H,
status on parity errors, speaker count, speaker control and refresh cycles is returned.
Nmi_Enable - RW – 8 bits - [IO_Reg: 70h]
Field Name
RTC Address Port
NmiEnable
Bits
6:0
7
Default
00h
Description
This is used with either internal RTC or external RTC
0 - NMI enable
0b
1 - NMI disable [Write-only]
Nmi_Enable register
RtcDataPort - RW – 8 bits - [IO_Reg: 71h]
Field Name
Bits
Default
Description
RTC Data Port
7:0
00h
This is used with either internal RTC or external RTC
©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual
SMBus Module and ACPI Block (Device 20, Function 0)
Proprietary
Page 130
RtcDataPort - RW – 8 bits - [IO_Reg: 71h]
Bits Default Description
Field Name
RtcDataPort
AlternatRtcAddrPort - RW – 8 bits - [IO_Reg: 72h]
Field Name
AlternatRTCAddrPort
Bits
7:0
Default
00h
Description
This is used with internal RTC. This port allows user to specify
the full 8 bit address (instead of bank0/bank1 indexing) to
access the 256 byte RTC RAM
AlternatRtcAddrPort
AlternatRtcDataPort - RW – 8 bits - [IO_Reg: 73h]
Field Name
AlternatRTC Data Port
AlternatRtcDataPort
Bits
7:0
Default
00h
Description
This is used with internal RTC in conjunction with port h72
Dma_PageCh2 - RW – 8 bits - [IO_Reg: 81h]
Field Name
Dma_PageCh2
Bits
Default
Description
7:0
00h
DMA2 ch 2 page register
Dma_PageCh2 register
Dma_PageCh3 - RW – 8 bits - [IO_Reg: 82h]
Field Name
Dma_PageCh3
Bits
Default
Description
7:0
00h
DMA2 ch 3 page register
Dma_PageCh3 register
Dma_PageCh1 - RW – 8 bits - [IO_Reg: 83h]
Field Name
Dma_PageCh1
Bits
Default
Description
7:0
00h
DMA2 ch 1 page register
Dma_PageCh1 register
Dma_Page_Reserved1- RW – 8 bits - [IO_Reg: 84h]
Field Name
Bits
Default
Description
Dma_Page_Reserved1
7:0
00h
Dma Page Reserved1 register
Dma_Page_Reserved1 register
Dma_Page_Reserved2- RW – 8 bits - [IO_Reg: 85h]
Field Name
Bits
Default
Description
Dma_Page_Reserved2
7:0
00h
Dma Page Reserved2 register
Dma_Page_Reserved2 register
Dma_Page_Reserved3- RW – 8 bits - [IO_Reg: 86h]
Field Name
Bits
Default
Description
Dma_Page_Reserved3
7:0
00h
Dma Page Reserved3 register
Dma_Page_Reserved3 register
Dma_PageCh0 - RW – 8 bits - [IO_Reg: 87h]
Field Name
Dma_PageCh0
Dma_PageCh0 register
Bits
Default
Description
7:0
00h
DMA2 ch 0 page register
©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual
SMBus Module and ACPI Block (Device 20, Function 0)
Proprietary
Page 131
Dma_Page_Reserved4- RW – 8 bits - [IO_Reg: 88h]
Field Name
Bits
Default
Description
Dma_Page_Reserved4
7:0
00h
Dma Page Reserved4 register
Dma_Page_Reserved4 register
Dma_PageCh6 - RW – 8 bits - [IO_Reg: 89h]
Field Name
Dma_PageCh6
Bits
Default
Description
7:0
00h
DMA2 ch 6 page register
Dma_PageCh6 register
Dma_PageCh7 - RW – 8 bits - [IO_Reg: 8Ah]
Field Name
Dma_PageCh7
Bits
Default
Description
7:0
00h
DMA2 ch 7 page register
Dma_PageCh7 register
Dma_PageCh5 - RW – 8 bits - [IO_Reg: 8Bh]
Field Name
Dma_PageCh5
Bits
Default
Description
7:0
00h
DMA2 ch 5 page register
Dma_PageCh5 register
Dma_Page_Reserved5- RW – 8 bits - [IO_Reg: 8Ch]
Field Name
Bits
Default
Description
Dma_Page_Reserved5
7:0
00h
Dma Page Reserved5 register
Dma_Page_Reserved5 register
Dma_Page_Reserved6- RW – 8 bits - [IO_Reg: 8Dh]
Field Name
Bits
Default
Description
Dma_Page_Reserved6
7:0
00h
Dma Page Reserved6 register
Dma_Page_Reserved6 register
Dma_Page_Reserved7- RW – 8 bits - [IO_Reg: 8Eh]
Field Name
Bits
Default
Description
Dma_Page_Reserved7
7:0
00h
Dma Page Reserved7 register
Dma_Page_Reserved7 register
Dma_Refresh- RW – 8 bits - [IO_Reg: 8Fh]
Field Name
Dma_Refresh
Bits
Default
Description
7:0
00h
DMA2 ch4 page register.
Dma_Refresh register
FastInit- RW – 8 bits - [IO_Reg: 92h]
Field Name
Bits
Default
Description
FastInit
0
0b
FAST_INIT. This read/write bit provides a fast software
executed processor reset function. Writing
a 1 to this bit will cause the INIT assertion for approximately
4ms.
Before another INIT pulse can be generated via this register,
this bit must be written back to a 0.
A20EnB
1
0b
A20Enable Bar bit; if set to 1, A20M is disabled.
©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual
SMBus Module and ACPI Block (Device 20, Function 0)
Proprietary
Page 132
IntrCntrl2Reg1- RW – 8 bits - [IO_Reg: A0h]
Field Name
IntrCntrl2Reg1
Bits
Default
Description
7:0
00h
IRQ8 – IRQ15:
Read IRR, ISR
Write ICW1, OCW2, OCW3
IntrCntrl2Reg1 register
IntrCntrl2Reg2- RW – 8 bits - [IO_Reg: A1h]
Field Name
Bits
Default
Description
IntrCntrl2Reg2
7:0
00h
IRQ8 – IRQ15:
Read IMR
Write ICW2, ICW3, ICW4, OCW1
IntrCntrl2Reg2 register
Dma2_Ch4Addr - RW – 8 bits - [IO_Reg: C0h]
Field Name
Dma2_Ch4Addr
Bits
Default
Description
7:0
00h
DMA2 Ch4 Base and Current Address
Dma2_Ch4Addr register
Dma2_Ch4Cnt – RW – 8 bits - [IO_Reg: C2h]
Field Name
Dma2_Ch4Cnt
Bits
Default
Description
7:0
00h
DMA2 Ch4 Base and Current Count
Dma2_Ch4Cnt register
Dma2_Ch5Addr - RW – 8 bits - [IO_Reg: C4h]
Field Name
Dma2_Ch5Addr
Bits
Default
Description
7:0
00h
DMA2 Ch5 Base and Current Address
Dma2_Ch5Addr register
Dma2_Ch5Cnt - RW – 8 bits - [IO_Reg: C6h]
Field Name
Dma2_Ch5Cnt
Bits
Default
Description
7:0
00h
DMA2 Ch4 Base and Current Count
Dma2_Ch5Cnt register
Dma2_Ch6Addr - RW – 8 bits - [IO_Reg: C8h]
Field Name
Dma2_Ch6Addr
Bits
Default
Description
7:0
00h
DMA2 Ch6 Base and Current Address
Dma2_Ch6Addr register
Dma2_Ch6Cnt - RW – 8 bits - [IO_Reg: CAh]
Field Name
Dma2_Ch6Cnt
Bits
Default
Description
7:0
00h
DMA2 Ch6 Base and Current Count
Dma2_Ch6Cnt register
Dma2_Ch7Addr - RW – 8 bits - [IO_Reg: CCh]
Field Name
Dma2_Ch7Addr
Bits
Default
Description
7:0
00h
DMA2 Ch5 Base and Current Address
Dma2_Ch7Addr register
©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual
SMBus Module and ACPI Block (Device 20, Function 0)
Proprietary
Page 133
Dma_Ch7Cnt - RW – 8 bits - [IO_Reg: CEh]
Field Name
Dma2_Ch7Cnt
Bits
Default
Description
7:0
00h
Channel 7 DMA base and current count
Dma2_Ch7Cnt register
Dma_Status - RW – 8 bits - [IO_Reg: D0h]
Field Name
Dma_Status
Bits
Default
Description
7:0
00h
DMA2 status register
Dma_Status register
Dma_WriteRequest - RW – 8 bits - [IO_Reg: D2h]
Field Name
Bits
Default
Description
Dma_WriteRequest
7:0
00h
DMA2 request register
Dma_WriteRequest register
Dma_WriteMask - RW – 8 bits - [IO_Reg: D4h]
Field Name
Dma_WriteMask
Bits
Default
Description
7:0
00h
DMA2 channel mask register
Dma_WriteMask register
Dma_WriteMode - RW – 8 bits - [IO_Reg: D6h]
Field Name
Dma_WriteMode
Bits
Default
Description
7:0
00h
DMA2 mode register
Dma_WriteMode register
Dma_Clear - RW – 8 bits - [IO_Reg: D8h]
Field Name
Dma_Clear
Bits
Default
Description
7:0
00h
Channel 4-7 clear byte pointer
Dma_Clear register
Dma_Clear - RW – 8 bits - [IO_Reg: DAh]
Field Name
Dma_Clear
Bits
Default
Description
7:0
00h
Channel 4-7 DMA master clear
Dma_Clear register
Dma_ClrMask - RW – 8 bits - [IO_Reg: DCh]
Field Name
Dma_ClrMask
Bits
Default
Description
7:0
00h
Channel 4-7 DMA Clear Mask
Dma_ClrMask register
Dma_ClrMask - RW – 8 bits - [IO_Reg: DEh]
Field Name
Dma_AllMask
Bits
Default
Description
7:0
00h
DMA2 mask register
Dma_AllMask register
NCP_Error - RW – 8 bits - [IO_Reg: F0h]
Field Name
Reserved
WarmBoot
Bits
6:0
7
Default
00h
Description
0b
Warm or cold boot indicator
0 – Cold
1 – Warm, this bit is set when any value is written to this
register;
©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual
SMBus Module and ACPI Block (Device 20, Function 0)
Proprietary
Page 134
NCP_Error - RW – 8 bits - [IO_Reg: F0h]
Field Name
Bits
Default
Description
NCP_Error register: In addition to the WarmBoot function, writing to this port will assert IGNNE# if FERR# is true. If
FERR# is false, then write to this port will not assert IGNNE#.
DMA1_Extend - RW – 8 bits - [IO_Reg: 40Bh]
Field Name
DMA1_Extend
Bits
Default
Description
7:0
00h
DMA1 extended write mode register
DMA1_Extend register
IntrEdgeControl- RW – 16 bits - [IO_Reg: 4D0h]
Field Name
IRQ0Control
IRQ1Control
Reserved
Bits
Default
Description
0
1
0b
0b
1 = Level, 0 = Edge
1 = Level, 0 = Edge
2
0b
IRQ3Control
IRQ4Control
IRQ5Control
IRQ6Control
IRQ7Control
IRQ8Control
IRQ9Control
IRQ10Control
IRQ11Control
IRQ12Control
Reserved
3
4
5
6
7
8
9
10
11
12
13
14
15
0b
0b
0b
0b
0b
0b
0b
0b
0b
0b
0b
0b
1 = Level, 0 = Edge
1 = Level, 0 = Edge
1 = Level, 0 = Edge
1 = Level, 0 = Edge
1 = Level, 0 = Edge
(Read Only) Always edge
1 = Level, 0 = Edge
1 = Level, 0 = Edge
1 = Level, 0 = Edge
1 = Level, 0 = Edge
IRQ14Control
IRQ15Control
1 = Level, 0 = Edge
1 = Level, 0 = Edge
0b
IntrEdgeControl register: This register programs each interrupt to be either edge or level sensitive.
DMA2_Extend - RW – 8 bits - [IO_Reg: 4D6h]
Field Name
DMA2_Extend
Bits
Default
Description
7:0
00h
DMA2 extended write mode register
DMA2_Extend register
Pci_Intr_Index - RW – 8 bits - [IO_Reg: C00h]
Field Name
Pci_Intr_Index
Bits
Default
Description
PCI interrupt index – selects which PCI interrupt to map
0h – INTA#
7:0
00h
1h – INTB#
2h – INTC#
3h – INTD#
4h – Interrupt generated by ACPI
5h – Interrupt generated by Sm Bus
6h – Reserved
7h – Ac97 audio
8h – Ac97 modem
9h – INTE#
Ah – INTF#
Bh – INTG#
Ch – INTH#
Pci_Intr_Index register
©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual
SMBus Module and ACPI Block (Device 20, Function 0)
Proprietary
Page 135
Pci_Intr_Data - RW – 8 bits - [IO_Reg: C01h]
Field Name
Pci_Intr_Data
Bits
Default
Description
7:0
00h
PCI redirection register; map PCI interrupt addressed by
Pci_Intr_Index to a PIC IRQ
[7:4] – Not used
Straight encoding of [3:0] to : IRQ0 thru IRQ15
Note: Do not map to IRQ 0, 2, 8, 13 – they are reserved
Pci_Intr_Data register
Note: If IOXAPIC is enabled, software must make sure interrupts are not re-routed; i.e., they should all be set to 0.
When IOXAPIC is enabled, IRQ[15:0] are routed directly to INT[15:0]. INTH#, INTG#, INTF#, INTE#, INTD#, INTC#,
INTB#, and INTA# are routed to INTIN[23:16], SMBus interrupt is routed to INTIN[20], SCI# is routed to INTIN[9],
and the High Precision Event Timer (also called the Multimedia Timer) can be routed to either INTIN[22] or
INTIN[23].
Pci_Error - RW – 8 bits - [IO_Reg: C14h]
Field Name
Serr_Nmi_Status
Bits
Default
Description
Set to 1 when NMI generation is enabled and SERR# has
been asserted due to a PCI error. Cleared by writing a one to
port 61h, bit 2. [Read-only]
0
-
Perr_Nmi_Status
Serr_Nmi
1
2
-
Set to 1 when NMI generation is enabled and PERR# has
been asserted due to a PCI data parity error. Cleared by
writing a one to port 61h, bit 2. [Read-only]
Enable NMI generation from SERR#
0 – Enable
1 – Disable
Enable NMI generation from PERR#
0 – Enable
1b
1b
0h
Perr_Nmi
3
1 – Disable
Reserved
7:4
Pci_Error register
CMIndex - RW – 8 bits - [IO_Reg: C50h]
Field Name
Bits
Default
Description
CMIndex
7:0
00h
Index register to client management register block
00h – IdRegister
02h – TempStatus
03h – TempInterrupt
12h – SmBus control (control to Gpoc[3:0] pins
thru Bit Bang)
13h - Misccontrol
others – super IO – not used
CMIndex register
CMData - RW – 8 bits - [IO_Reg: C51h]
Field Name
CMData
Bits
7:0
Default
Description
00h
Data register to client management register block
CMData register
GpmPort - RW – 8 bits - [IO_Reg: C52h]
Field Name
Bits
Default
Description
If CMIndex.13h[7:6] == 00, then this is the read port for
GPM[7:0].
Gpm
7:0
--
If CMIndex.13h[7:6]= 01, then this is the output enable for
GPM[7:0], 0=enable, 1=tristate
If CMIndex.13h[7:6]=10, then this is the output state control
(providing enable is turned on)
©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual
SMBus Module and ACPI Block (Device 20, Function 0)
Proprietary
Page 136
GpmPort - RW – 8 bits - [IO_Reg: C52h]
Field Name
Bits
Default
Description
GpmPort register
Isa_Misc - RW – 8 bits - [IO_Reg: C6Fh]
Field Name
Reserved
FlashRomEn
Bits
Default
Description
5:0
6
00h
0b
Flash program enable. This only applies if the chip is
strapped to have the ROM on the PCI bus . Set to 1 to enable
programming of the Flash ROM. During write cycles to the
system ROM space, ROMCS# is only asserted if this bit is
set 1.
Reserved
7
0b
Isa_Misc register: FlashRom Enable. This only applies if the chip is strapped to have the ROM on the secondary
PCI bus.
BIOSRAM_Index - RW – 8 bits - [IO_Reg: CD4h]
Field Name
BiosRamIndex
Bits
Default
Description
7:0
00h
BIOS RAM index register. This register selects one of the
256 bytes of BIOS RAM. Data in this RAM is preserved until
RSMRST# is asserted, or S5 power is lost.)
BiosRamIndex register
BIOSRAM_Data - RW – 8 bits - [IO_Reg: CD5h]
Field Name
Bits
Default
Description
BiosRamData
7:0
00h
Power management data register. This register provides the
read/write access to the indexed register.
BiosRamData register
PM_Index - RW – 8 bits - [IO_Reg: CD6h]
Field Name
Bits
Default
Description
PM_Index
7:0
00h
Power management index register. This register selects one
more information.)
PM_Index register
PM_Data - RW – 8 bits - [IO_Reg: CD7h]
Field Name
Bits
Default
Description
PM_Data
7:0
00h
Power management data register. This register provides the
read/write access to the indexed register. (See section
PM_Data register
2.3.3.1.2 Client Management Registers (Accessed through C50h and C51h)
Register Name
IdRegister
TempStatus
TempInterrupt
I2Ccontrol
Offset Address
00h
02h
03h
12h
13h
Index13
©2008 Advanced Micro Devices, Inc.
SMBus Module and ACPI Block (Device 20, Function 0)
Proprietary Page 137
AMD SB600 Register Reference Manual
IdRegister - R – 8 bits - [IO_Reg: 00h]
Field Name
IdRegister
Bits
7:0
Default
Description
00h
IdRegister register
TempStatus - R – 8 bits - [IO_Reg: 02h]
Field Name
Bits
Default
Description
TALERT
0
-
Logical status of TALERT/GPIO64 input.
Read will clear this bit.
Reserved
7:1
00h
TempStatus register
TempInterrupt - RW – 8 bits - [IO_Reg: 03h]
Field Name
Reserved
Bits
Default
Description
0
0b
TempSmiEnable
1
0b
1 - Generate SMI# upon TALERT
0 - Do not generate SMI# upon TALERT
Reserved
ScratchBit
2
3
0b
0b
This placebo bit has no function, but it may be used for
software status
Reserved
7:4
0h
TempInterrupt register
I2CControl - RW – 8 bits - [IO_Reg: 12h]
Field Name
Gpoc0Status
Gpoc1Status
Bits
Default
Description
0
1
2
-
-
1b
Gpoc0 status. [Read-only]
Gpoc1 status. [Read-only]
1 - Gpoc0 is tristate
Gpoc0_OE_
0 - Gpoc0 is asserted low
Gpoc1_OE_
Gpoc2Status
3
4
1b
-
1 - Gpoc1 is tristate
0 - Gpoc1 is asserted low
Gpoc2 status. [Read-only]
Gpoc3Status
Gpoc2_OE_
5
6
-
1b
Gpoc3 status. [Read-only]
1 - Gpoc2 is tristate
0 - Gpoc2 is output enabled
Gpoc3_OE_
7
1b
1 – Gpoc3 is tristate
0 – Gpoc3 is output enabled
I2CControl register: Writing to this register controls the output of the four Gpoc outputs (GPOC[3:0]_OE) and
reading returns the status of these pins.
Index13– 8 bits - [IO_Reg: 13h]
Default
Field Name
GPIO64En
Bits
0
Description
0b
GPIO64 output enable
1 = Enable
0 = Tristate
GPIO64OUT
Gpoc[3:2]OUT
ScratchBit
1
3:2
5:4
0b
00b
00b
GPIO64 output data
Gpoc[3:2] output data
Placebo bit, has no function but may be used for software
status
GpmPortSel
7:6
00b
00-Read port
01-Output enable
10-Output port
Index13 misc control register
©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual
SMBus Module and ACPI Block (Device 20, Function 0)
Proprietary
Page 138
2.3.3.1.3 System Reset Register (IO CF9)
Note: Refer to PM IO reg x85 for a detailed description. This register has been designed to be dual-port
accessible.
2.3.3.2 Power Management (PM) Registers
The power management (PM) block is resident in the PCI/LPC/ISA bridge. The PM registers are accessed
via IO mapped registers xCD6h and xCD7h. The index address is first programmed into IO register xCD6h.
Read or write values are accessed through IO register xCD7h.
Register Name
MiscControl
Offset Address
00h
MiscStatus
01h
SmiWakeUpEventEnable1
SmiWakeUpEventEnable2
SmiWakeUpEventEnable3
SmiWakeUpEventStatus1
SmiWakeUpEventStatus2
SmiWakeUpEventStatus3
InactiveTmrEventEnable1
InactiveTmrEventEnable2
InactiveTmrEventEnable3
PmTmr1InitValue
PmTmr1CurValue
PwrLedExtEvent
02h
03h
04h
05h
06h
07h
08h
09h
0Ah
0Bh
0Ch
0Dh
0Eh
0Fh
10h
PwrLedExtEvent
AcpiStatus
AcpiEn
S1AgpStpEn
11h
PmTmr2InitValue
PmTmr2CurValue
Programlo0RangeLo
Programlo0RangeHi
ProgramIo1RangeLo
ProgramIo1RangeHi
ProgramIo2RangeLo
ProgramIo2RangeHi
ProgramIo3RangeLo
ProgramIo3RangeHi
ProgramIoEnable
IOMonitorStatus
InactiveTmrEventEnable4
AcpiPm1EvtBlkLo
AcpiPm1EvtBlkHi
AcpiPm1CntBlkLo
AcpiPm1CntBlkHi
AcpiPmTmrBlkLo
AcpiPmTmrBlkHi
12h
13h
14h
15h
16h
17h
18h
19h
1Ah
1Bh
1Ch
1Dh
1Eh
20h
21h
22h
23h
24h
25h
CpuControlLo
26h
CpuControlHi
27h
AcpiGpe0BlkLo
28h
AcpiGpe0BlkHi
29h
AcpiSmiCmdLo
AcpiSmiCmdHi
2Ah
2Bh
©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual
SMBus Module and ACPI Block (Device 20, Function 0)
Proprietary
Page 139
Register Name
AcpiPmaCntBlkLo
AcpiPmaCntBlkHi
AcpiSsCntBlkLo
AcpiSsCntBlkHi
GEvtConfig0
Offset Address
2Ch
2Dh
2Eh
2Fh
30h
31h
32h
33h
34h
35h
36h
37h
38h
39h
3Ah
3Bh
3Ch
3Eh
3Fh
40h
50h
51h
52h
53h
54h
55h
56h
57h
58h
59h
5Ah
5Bh
5Ch
5Dh
5Eh
5Fh
60h
61h
62h
63h
64h
65h
66h
67h
68h
69h
6Ch
6Dh
6Eh
6Fh
70h
71h
72h
73h
74h
75h
76h
77h
GEvtConfig1
GPMConfig0
GPMConfig1
GPMConfig2
GPMConfig3
GEvtLevelConfig
GPMLevelConfig0
GPMLevelConfig1
GEvtStatus
PMEStatus0
PMEStatus1
OthersConfig
VRT_T1
VRT_T2
AD_Pull_UpB
PM_Enable
TPRESET1
TPRESET2
TESTENABLE
PWRBTTN_CLR
SoftPciRst
Reserved
Reserved
Reserved
MiscOption
SmiSciSts0
SmiSciSts1
SmiSciSts2
SmiSciSts3
MwaitEnable
MwaitSmiSts
Options_0
Options_1
Shadow_SCI
SwitchVoltageTime
SwitchGHI_Time
UsbPMControl
MiscEnable66
MiscEnable67
MiscEnable68
WatchDogTimerControl
WatchDogTimerBase0
WatchDogTimerBase1
WatchDogTimerBase2
WatchDogTimerBase3
S_LdtStartTime
EnhanceOption
C4Control
PopUpEndTime
PwrFailShadow
Tpreset1b
SOS3ToS5Enable0
SOS3ToS5Enable1
©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual
SMBus Module and ACPI Block (Device 20, Function 0)
Proprietary
Page 140
Register Name
SOS3ToS5Enable2
SOS3ToS5Enable3
NoStatusControl0
NoStatusControl1
MiscEnable7C
DprSlpVrMinTime
SMAF0
Offset Address
78h
79h
7Ah
7Bh
7Ch
7Dh
80h
SMAF1
81h
SMAF2
82h
SMAF3
83h
WakePinCntl
84h
CF9Rst
85h
ThermThrotCntl
LdtStpCmd
86h
87h
LdtStartTime
88h
AgpStartTime
LdtAgpTimeCntl
StutterTime
89h
8Ah
8Bh
StpClkDlyTime
AbPmeCntl
8Ch
8Dh
8Eh
FakeAsr
FakeAsrEn
8Fh
GEVENTOUT
GEVENTEN
90h
91h
GEVENTIN
92h
GPM98OUT
94h
GPM98EN
95h
GPM98IN
96h
K8C1ePort
99:98h
9Ah
9Bh
9E:9Ch
9Fh
A0h
A1h
A2h
A3h
A4h
A5h
A6h
A7h
A8h
A9h
B1:B0h
B2h
EnhanceControl
K8C1eReadPort
MsiSignature
AutoArbDisWaitTime
Programlo4RangeLo
Programlo4RangeHi
Programlo5RangeLo
Programlo5RangeHi
Programlo6RangeLo
Programlo6RangeHi
Programlo7RangeLo
Programlo7RangeHi
PIO7654Enable
PIO7654Status
PllDebug
AltDebugBusCntrl
C2Count
B3h
C3Count
B4h
MiscControl - RW – 8 bits - [PM_Reg: 00h]
Field Name
Reserved
Bits
Default
Description
0
0b
Timer1ExpEn
1
0b
Set to 1 to enable SMI# when PM_TIMER1 expires. When
PM_TIMER1 (inactivity) expires, the SB will update bit 1 of
MiscStatus and issue SMI#. This bit allows the software to
disable/enable all inactivity timer reload enables at indexes
08,09, and 0A.
Timer2ExpEn
2
0b
Set to 1 to enable SMI# when PM_TIMER2 expires.
©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual
SMBus Module and ACPI Block (Device 20, Function 0)
Proprietary
Page 141
MiscControl - RW – 8 bits - [PM_Reg: 00h]
Field Name
Reserved
SmiReq
Bits
Default
Description
3
4
0b
0b
Software initiated SMI#. When set, SB will update bit [4] of
the MiscStatus and issue SMI#.
Reserved
7:5
000b
MiscControl register
MiscStatus - RW – 8 bits - [PM_Reg: 01h]
Field Name
Bits
Default
Description
SmiEvent
0
0b
SB sets this bit to indicate an SMI# was issued due to events
specified by index 02, 03, 04, 1C, or A8h
Timer1Exp
Timer2Exp
Reserved
SmiReq
1
2
3
4
0b
0b
0b
0b
SB sets this bit to indicate that PM_TIMER1 has expired.
SB sets this bit to indicate that PM_TIMER2 has expired.
SB sets this bit to indicate the software initiated SMI# was
issued.
Reserved
StatusRst
6:5
7
00b
0b
Writing a 1 to this location will reset PM status registers 05h,
06h, and 07h, 1Dh, and A9h. This mechanism provides a
quick way to reset all status.
MiscStatus register
SmiWakeUpEventEnable1 - RW – 8 bits - [PM_Reg: 02h]
Field Name
Bits
Default
Description
SmiWakeUpEventEnable1
7:0
00h
Enable SMI# on IRQ[15:8] activity.
SmiWakeUpEventEnable1 register.
SmiWakeUpEventEnable2 - RW – 8 bits - [PM_Reg: 03h]
Field Name
Bits
Default
Description
SmiWakeUpEventEnable2
7:0
00h
Enables SMI# on {IRQ[7:3], NMI, IRQ[1:0]} activity.
SmiWakeUpEventEnable2 register.
SmiWakeUpEventEnable3 - RW – 8 bits - [PM_Reg: 04h]
Field Name
ExtEvent0
ExtEvent1
GAME_SMI_EN
FDD_SMI_EN
HDD_SMI_EN
COM_SMI_EN
LPT_SMI_EN
SLP_SMI_EN
Bits
Default
Description
Enables SMI# on external event input 0
Enables SMI# on external event input 1
Enables SMI# on game port activity (201h)
Enables SMI# on floppy drive activity
Enables SMI# on IDE device activity (201h)
Enables SMI# on serial ports activity (201h)
Enables SMI# on parallel port activity (201h)
Enables SMI# on sleep command
0
0b
1
0b
2
0b
3
0b
4
0b
5
0b
6
0b
7
0b
SmiWakeUpEventEnable3 register.
SmiWakeUpEventStatus1 - RW – 8 bits - [PM_Reg: 05h]
Field Name
Bits
Default
Description
SmiWakeUpEventStatus1
7:0
00h
Set to 1 to identify IRQ[15:8] activity as source of SMI#.
SmiWakeUpEventStatus1 register.
SmiWakeUpEventStatus2 - RW – 8 bits - [PM_Reg: 06h]
Field Name
Bits
Default
Description
SmiWakeUpEventStatus2
7:0
00h
Set to 1 to identify IRQ[7:0] activity as source of SMI#.
©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual
SMBus Module and ACPI Block (Device 20, Function 0)
Proprietary
Page 142
SmiWakeUpEventStatus2 - RW – 8 bits - [PM_Reg: 06h]
Field Name
Bits
Default
Description
SmiWakeUpEventStatus2 register.
SmiWakeUpEventStatus3 - RW – 8 bits - [PM_Reg: 07h]
Field Name
ExtEvt0_SMI_Status
Bits
Default
Description
Set to 1 to indicate ExtEvent0 as the source of SMI#. Write 1
to clear this bit.
0
0b
ExtEvt1_SMI_Status
GAME_SMI_Status
FDD_SMI_Status
HDD_SMI_Status
COM_SMI_Status
LPT_SMI_Status
SLP_SMI_Status
1
2
3
4
5
6
7
0b
0b
0b
0b
0b
0b
0b
Set to 1 to indicate ExtEvent1 as the source of SMI#. Write 1
to clear this bit.
Set to 1 to indicate game port activity as the source of SMI#.
Write 1 to clear this bit.
Set to 1 to indicate floppy activity as the source of SMI#.
Write 1 to clear this bit.
Set to 1 to indicate IDE activity as the source of SMI#. Write
1 to clear this bit.
Set to 1 to indicate serial port activity as the source of SMI#.
Write 1 to clear this bit.
Set to 1 to indicate parallel port activity as the source of
SMI#. Write 1 to clear this bit.
Set to 1 to indicate sleep command as the source of SMI#.
Write 1 to clear this bit.
SmiWakeUpEventStatus3 register: Set to one to identify PioRng.
InactiveTmrEventEnable1 - RW – 8 bits - PM_Reg: 08h]
Field Name
Bits
Default
Description
InactiveTmrEventEnable1
7:0
00h
Enables Timer 1 reload on IRQ[15:8] activity.
InactiveTmrEventEnable1 register.
InactiveTmrEventEnable2 - RW – 8 bits - [PM_Reg: 09h]
Field Name
Bits
Default
Description
InactiveTmrEventEnable2
7:0
00h
Enables Timer 1 reload on {IRQ[7:3], NMI, IRQ[1:0]} activity.
InactiveTmrEventEnable2 register.
InactiveTmrEventEnable3 - RW – 8 bits - [PM_Reg: 0Ah]
Field Name
ExtEvt0_Timer1Enable
ExtEvt1_Timer1Enable
GamePort_Timer1Enable
Floppy_Timer1Enable
IDE_Timer1Enable
COM_Timer1Enable
Parallel_Timer1Enable
Reserved
Bits
0
1
2
3
4
5
6
Default
Description
0b
0b
0b
0b
0b
0b
0b
0b
Enables Timer1 reload on ExtEvent0 inactivity
Enables Timer1 reload on ExtEvent1 inactivity
Enables Timer1 reload on Gameport inactivity
Enables Timer1 reload on Floppy port inactivity
Enables Timer1 reload on IDE port inactivity
Enables Timer1 reload on COM port inactivity
Enables Timer1 reload on Parallel port inactivity
7
InactiveTmrEventEnable3 register.
PmTmr1InitValue - RW – 8 bits - [PM_Reg: 0Bh]
Field Name
PmTmr1InitValue
Bits
Default
Description
6 bit-timer; Initial/reload value for 6 bit decrementing counter.
Count range from 1 minute to 64 minutes with 4 second
accuracy.
5:0
000000b
Reserved
7:6
00b
©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual
SMBus Module and ACPI Block (Device 20, Function 0)
Proprietary
Page 143
PmTmr1CurValue - R – 8 bits - [PM_Reg: 0Ch]
Field Name
PmTmr1CurValue
Reserved
Bits
Default
Description
5:0
-
Current value of decrementing counter
7:6
00b
PwrLedExtEvent - RW – 8 bits - [PM_Reg: 0Dh]
Field Name
ExtEvent0State
ExtEvent1State
ExtEvent0RF
Bits
Default
Description
0
1
2
-
-
0b
Logical value of EXTEVENT0. [Read-only]
Logical value of EXTEVENT1. [Read-only]
Set to one to configure EXTEVENT0 as rising edge sensitive.
0 as falling edge sensitive
ExtEvent1RF
3
0b
Set to one to configure EXTEVENT1 as rising edge sensitive.
0 as falling edge sensitive
Reserved
7:4
0100b
PwrLedExtEvent register.
AcpiControl - RW – 8 bits - [PM_Reg: 0Eh]
Field Name
Bits
Default
Description
AcpiSmiEn
0
0b
Set to 1 to enable SMI# generation when ACPI driver writes
one to GBL_RLS (bit [2] of AcpiPm1CntBlk:00h). When an
SMI# is issued, the SB updates bit [0] of the AcpiStatus
register.
BIOS_RLS
SmiCmdEn
1
2
0b
0b
Writing 1 to this bit will cause GblStatus to be set. This bit is
always read back as 0.
Set to 1 to enable SMI# generation when ACPI driver writes
to the SmiCmd port. When set to 1, SB will update bit 2 of
MiscStatus and issue an SMI# on write to SmiCmd port.
Set to 1 to enable SB to decode the ACPI I/O address space.
When set, SB uses the contents of the PM registers at index
20-2B to decode ACPI I/O address.
AcpiDecodeEnable
3
0b
VRT_SMI_En
Reserved
RtcClkPUB
4
5
6
0b
0b
0b
Set to 1 to enable SB to generate SMI# upon (RTC) VRT low.
This bit controls the integrated pull-up for RTCCLK
0: Enable
1: Disable
7
0b
This bit controls the CPU receiver Vref
0: Vref = Vcpu / 2 (recommended setting for P4 CPU)
1: Vref = Vbandgap / 2 = 0.6v (recommended setting for K8
CPU)
BG1RESDIV0_SEL
AcpiControl register.
AcpiStatus- R – 8 bits - PM_Reg: 0Fh]
Field Name
Bits
Default
Description
AcpiSmiStatus
0
-
Set to 1 by SB to indicate SMI# was due to write to Acpi
power management register.
SMI# due to SERR#
Set to one by SB to indicate SMI# was due to write to
AcpiSmiCmd port.
SerrSmiStatus
SmiCmdStatus
1
2
-
-
SmSmiStatus
UsbSmiStatus
SerSmiStatus
RtcAvailable
3
4
5
6
-
-
-
-
SmBus SMI# status
USB SMI# status
Serial SMI# status
1: Rtc clock running
0: Bad Rtc clock. RTC battery may not be present
NbThermStatus
7
-
NB thermal event status
©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual
SMBus Module and ACPI Block (Device 20, Function 0)
Proprietary
Page 144
AcpiEn - RW – 8 bits - [PM_Reg: 10h]
Field Name
EOSEnale
Bits
0
Default
Description
0b
Set 1 by software and clear by hardware. This bit needs to
be set in order to generate SMI#/SCI
RTC_En_En
1
0b
RTC_EN enable bit. When this bit is set, RTC_EN
(AcpiPmEvtBlk, index x02, bit 10) is visible; otherwise, it is
always 0
Reserved
TMR_En_En
2
3
0b
0b
TMR_EN enable bit. When this bit is set, TM_EN
(AcpiPmEvtBlk, index x02, bit 0) is visible; otherwise, it is
always 0
LEVENT_EN_EN
GBL_EN_EN
4
5
6
7
0b
0b
0b
0b
LEVENT_EN enable bit. When this bit is set, LEVENT_EN
(AcpiGpe0Blk, index x04, bit 8) is visible; otherwise, it is
always 0
GBL_EN enable bit. When this bit set, GBL_EN
(AcpiPmEvtBlk, index x02, bit 5) is visible; otherwise, it is
always 0
PciExpWakeDis enable bit. When this bit is set,
PciExpWakeDis (AcpiPmEvtBlk, index x02, bit 14) is visible;
otherwise, it is always 1
This bit is applicable to ASIC Revision A12 and above.
0: ACPI_EVENT[30] register is routed to use GPIO2 as input
1: ACPI_EVENT[30] register is routed to use GPIO66 as
input
PciExpWakeDisEn
GpioToGEventSel
S1AgpStpEn - RW – 8 bits - [PM_Reg: 11h]
Field Name
Bits
Default
Description
S1AgpStpEn
0
0b
AgpStp enable in S1 state
1: Enable
0: Disable
Reserved
7:1
00h
S1AgpStpEn register.
PmTmr2InitValue - RW – 8 bits - [PM_Reg: 12h]
Field Name
PmTmr2InitValue
Bits
Default
Description
7:0
00h
PmTmr2 load value
PmTmr2InitValue register.
PmTmr2CurValue - R – 8 bits - [PM_Reg: 13h]
Field Name
Bits
Default
Description
PmTmr2CurValue
7:0
--
PmTmr2 current value
PmTmr2CurValue register.
©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual
SMBus Module and ACPI Block (Device 20, Function 0)
Proprietary Page 145
Programlo0RangeLo - RW – 8 bits - [PM_Reg: 14h]
Field Name
Bits
Default
Description
ProgramIo0Mask
3:0
0h
These four bits are used to mask the least 4 bits of the 16 bit
I/O. If bit [3] is set, then bit [3] of the I/O address is not
compared. If it is not set, then bit [3] of the monitored
address is 0. The same applies for the other three bits [2:0].
For example, if x15=80h, x14[7:4]=Ah, and x14[3:0]=3h, then
the monitored range is 80A4h : 80A0h (bit 0 and 1 are
masked)
ProgramIo0RangeLo
7:4
0h
I/O range base address; these bits define the least significant
byte of the 16 bit I/O range base address that is programmed
to trigger SMI# when the address is accessed. Bit 7
corresponds to Addr[7] and bit 4 to Addr[4].
ProgramIo0RangeLo register.
ProgramIo0RangeHi - RW – 8 bits - [PM_Reg: 15h]
Field Name
Bits
Default
Description
ProgramIo0RangeHi
7:0
00h
I/O range base address; these bits define the most significant
byte of the 16 bit I/O range base address. Bit 7 corresponds
to Addr[15] and bit 0 to Addr[8].
ProgramIo0RangeHi register.
ProgramIo1RangeLo - RW – 8 bits - [PM_Reg: 16h]
Field Name
Bits
Default
Description
ProgramIo1Mask
3:0
0h
These four bits are used to mask the least 4 bits of the 16 bit
I/O. If bit [3] is set, then bit [3] of the I/O address is not
compared. If it is not set, then bit [3] of the monitored
address is 0. The same applies to the other three bits [2:0].
For example, if x15=80h, x14[7:4]=Ah, and x14[3:0]=3h, then
the monitored range is 80A4h : 80A0h (bit 0 and 1 are
masked)
ProgramI01RangeLo
7:4
0h
I/O range base address; these bits define the least significant
byte of the 16 bit I/O range base address that is programmed
to trigger SMI# when the address is accessed. Bit 7
corresponds to Addr[7] and bit 4 to Addr[4].
ProgramIo1RangeLo register.
ProgramIo1RangeHi - RW – 8 bits - [PM_Reg: 17h]
Field Name
Bits
Default
Description
ProgramIo1RangeHi
7:0
00h
I/O range base address; these bits define the most significant
byte of the 16 bit I/O range base address. Bit 7 corresponds
to Addr[15] and bit 0 to Addr[8].
ProgramIO1RangeHi register.
ProgramIo2RangeLo - RW – 8 bits - [PM_Reg: 18h]
Field Name
Bits
Default
Description
ProgramIo2Mask
3:0
0h
These four bits are used to mask the least 4 bits of the 16 bit
I/O. If bit [3] is set, then bit [3] of the I/O address is not
compared. If it is not set, then bit [3] of the monitored
address is 0. The same applies for the other three bits.
For example, if x15=80h, x14[7:4]=Ah, and x14[3:0]=3h, then
the monitored range is 80A4h : 80A0h (bit 0 and 1 are
masked)
ProgramIo2RangeLo
7:4
0h
I/O range base address; these bits define the least significant
byte of the 16 bit I/O range base address that is programmed
to trigger SMI# when the address is accessed. Bit 7
corresponds to Addr[7] and bit 4 to Addr[4].
©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual
SMBus Module and ACPI Block (Device 20, Function 0)
Proprietary
Page 146
ProgramIo2RangeLo - RW – 8 bits - [PM_Reg: 18h]
Bits Default Description
Field Name
ProgramIo2RangeLo register.
ProgramIo2RangeHi - RW – 8 bits - [PM_Reg: 19h]
Field Name
Bits
Default
Description
ProgramIo2RangeHi
7:0
00h
I/O range base address; these bits define the most significant
byte of the 16 bit I/O range base address. Bit 7 corresponds
to Addr[15] and bit 0 to Addr[8].
ProgramIo2RangeHi register.
ProgramIo3RangeLo - RW – 8 bits - [PM_Reg: 1Ah]
Field Name
Bits
Default
Description
ProgramIo3Mask
3:0
0h
These four bits are used to mask the least 4 bits of the 16 bit
I/O. If bit [3] is set, then bit [3] of the I/O address is not
compared. If it is not set, then bit [3] of the monitored
address is 0. The same applies to the other three bits [2:0].
For example, if x15=80h, x14[7:4]=Ah, and x14[3:0]=3h, then
the monitored range is 80A4h : 80A0h (bit 0 and 1 are
masked)
ProgramIo3RangeLo
7:4
0h
I/O range base address; these bits define the least significant
byte of the 16 bit I/O range base address that is programmed
to trigger SMI# when the address is accessed. Bit 7
corresponds to Addr[7] and bit 4 to Addr[4].
ProgramIo3RangeLo register.
ProgramIo3RangeHi - RW – 8 bits - [PM_Reg: 1Bh]
Field Name
Bits
Default
Description
ProgramIo3RangeHi
7:0
00h
I/O range base address; these bits define the most significant
byte of the 16 bit I/O range base address. Bit 7 corresponds
to Addr[15] and bit 0 to Addr[8].
ProgramIo3RangeHi register.
ProgramIoEnable - RW – 8 bits - [PM_Reg: 1Ch]
Field Name
AD_LIB_MonitorEn
MIDI_MonitorEn
Bits
Default
0b
Description
0
1
2
Enables AD_LIB monitoring to trigger SMI#, 1=On, 0=Off
Enables MIDI monitoring to trigger SMI#; 1= On, 0= Off
Enables Audio/MSS monitoring to trigger SMI#; 1= On, 0 =
Off
0b
0b
AudioMSSMonitorEn
MouseKbMonitorEn
ProgramIo3Enable
ProgramIo2Enable
ProgramIo1Enable
ProgramIo0Enable
IOMonitorEn register
3
4
5
6
7
0b
0b
0b
0b
0b
Enables Mouse/Keyboard monitoring to trigger SMI#; 1= On,
0 = Off
Enables IO monitoring for ProgramIO3 (defined by index 1A,
1B); 1= On, 0 = Off
Enables IO monitoring for ProgramIO2 (defined by index 18,
19); 1= On, 0 = Off
Enables IO monitoring for ProgramIO1 (defined by index 16,
17); 1= On, 0 = Off
Enables IO monitoring for ProgramIo0 (defined by index 14,
15); 1= On, 0 = Off
IOMonitorStatus - RW – 8 bits - [PM_Reg: 1Dh]
Field Name
Bits
Default
Description
AD_LIB_MonitorStatus
MIDI_MonitorStatus
AudioMSSMonitorStatus
0
1
2
-
-
-
AD_LIB status bit; write 1’b1 to clear the status
MIDI status bit; write 1’b1 to clear the status bit
Audio/MSS status bit; write 1’b1 to clear the status bit
©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual
SMBus Module and ACPI Block (Device 20, Function 0)
Proprietary
Page 147
IOMonitorStatus - RW – 8 bits - [PM_Reg: 1Dh]
Field Name
MouseKbMonitorStatus
ProgramIo3Status
Bits
3
4
Default
Description
-
-
Mouse/keyboard status bit; write 1’b1 to clear the status bit
Programmable IO 3 status bit; write 1’b1 to clear the status
bit
ProgramIo2Status
ProgramIo1Status
ProgramIo0Status
IOMonitorStatus register
5
6
7
-
-
-
Programmable IO 2 status bit; write 1’b1 to clear the status
bit
Programmable IO 1 status bit; write 1’b1 to clear the status
bit
Programmable IO 0 status bit; write 1’b1 to clear the status
bit
InactiveTmrEventEnable4 - RW – 8 bits - [PM_Reg: 1Eh]
Field Name
AD_LIB_Timer1Enable
MIDI_Timer1Enable
Audio_Timer1Enable
Keyboard_Time1Enable
PIO3_Timer1Enable
PIO2_Timer1Enable
PIO1_Timer1Enable
PIO0_Timer1Enable
Bits
Default
Description
0
1
0b
0b
Enables Timer1 reload on AD_LIB inactivity
Enables Timer1 reload on MIDI inactivity
2
3
4
5
6
7
0b
0b
0b
0b
0b
0b
Enables Timer1 reload on Audio inactivity
Enables Timer1 reload on Keyboard/Mouse port inactivity
Enables Timer1 reload on PIO3 port inactivity
Enables Timer1 reload on PIO2 port inactivity
Enables Timer1 reload on PIO1 port inactivity
Enables Timer1 reload on PIO0 port inactivity
InactiveTmrEventEnable4 register.
AcpiPm1EvtBlkLo - RW – 8 bits - [PM_Reg: 20h]
Field Name
Reserved
Bits
Default
Description
1:0
00b
AcpiPm1EvtBlkLo
7:2
00h
These bits define the least significant byte of the 16 bit I/O
range base address of the ACPI power management Event
Block. Bit 2 corresponds to Addr[2] and bit 7 corresponds to
Addr[7].
AcpiPm1EvtBlkLo register.
AcpiPm1EvtBlkHi - RW – 8 bits - [PM_Reg: 21h]
Field Name
Bits
Default
Description
AcpiPm1EvtBlkHi
7:0
00h
These bits define the most significant byte of the 16 bit I/O
range base address. Bit 0 corresponds to Addr[8] and bit 7
corresponds to Addr[15].
AcpiPm1EvtBlkHi register.
AcpiPm1CntBlkLo - RW – 8 bits - [PM_Reg: 22h]
Field Name
Reserved
Bits
Default
Description
0
0b
AcpiPm1CntBlkLo
7:1
00h
These bits define the least significant byte of the 16 bit I/O
base address of the ACPI power management Control block.
Bit 1 corresponds to Addr[1] and bit 7 corresponds to Addr[7].
AcpiPm1CntBlkLo register.
AcpiPm1CntBlkHi - RW – 8 bits - [PM_Reg: 23h]
Field Name
Bits
Default
Description
AcpiPm1CntBlkHi
7:0
00h
These bits define the most significant byte of the 16 bit I/O
base address. Bit 0 corresponds to Addr[8] and bit 7
corresponds to Addr[15].
©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual
SMBus Module and ACPI Block (Device 20, Function 0)
Proprietary
Page 148
AcpiPm1CntBlkHi - RW – 8 bits - [PM_Reg: 23h]
Field Name
Bits
Default
Description
AcpiPm1CntBlkHi register.
AcpiPmTmrBlkLo - RW – 8 bits - [PM_Reg: 24h]
Field Name
Reserved
Bits
Default
Description
0
0b
AcpiPmTmrBlkLo
7:1
00h
These bits define the least significant byte of the 16 bit I/O
base address of the ACPI power management Timer block.
Bit 1 corresponds to Addr[1] and bit 7 corresponds to Addr[7].
AcpiPmTmrBlkLo register.
AcpiPmTmrBlkHi - RW – 8 bits - [PM_Reg: 25h]
Field Name
Bits
Default
Description
AcpiPmTmrBlkHi
7:0
00h
These bits define the most significant byte of the 16 bit I/O
base address. Bit 0 corresponds to Addr[8] and bit 7
corresponds to Addr[15].
AcpiPmTmrBlkHi register.
CpuControlLo - RW – 8 bits - [PM_Reg: 26h]
Field Name
Reserved
CpuControlLo
Bits
Default
000b
00h
Description
2:0
7:3
These bits define the least significant byte of the 16 bit I/O
base address of the ACPI power management CPU Control
block. Bit 3 corresponds to Addr[3] and bit 7 corresponds to
Addr[7]. Addr[2:0] are ignored because this register block is 6
byte long.
CpuControlLo register.
CpuControlHi - RW – 8 bits - [PM_Reg: 27h]
Field Name
Bits
Default
Description
CpuControlHi
7:0
00h
These bits define the most significant byte of the 16 bit I/O
base address. Bit 0 corresponds to Addr[8] and bit 7
corresponds to Addr[15].
CpuControlHi register.
AcpiGpe0BlkLo - RW – 8 bits - [PM_Reg: 28h]
Field Name
Reserved
Bits
Default
Description
1:0
00b
AcpiGpe0BlkLo
7:2
00h
These bits define the least significant byte of the 16 bit I/O
base address of the ACPI power management General
Purpose Event block. Bit 2 corresponds to Addr[2] and bit 7
corresponds to Addr[7]. Addr[1:0] are ignored because this
register block is 4 byte long.
AcpiGpe0BlkLo register.
AcpiGpe0BlkHi - RW – 8 bits - [PM_Reg: 29h]
Field Name
Bits
Default
Description
AcpiGpe0BlkHi
7:0
00h
These bits define the most significant byte of the 16 bit I/O
base address. Bit 0 corresponds to Addr[8] and bit 7
corresponds to Addr[15].
AcpiGpe0BlkHi register.
©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual
SMBus Module and ACPI Block (Device 20, Function 0)
Proprietary
Page 149
AcpiSmiCmdLo - RW – 8 bits - [PM_Reg: 2Ah]
Field Name
AcpiSmiCmdLo
Bits
Default
Description
7:0
00h
These bits define the least significant byte of the 16 bit I/O
base address of the ACPI SMI Command block. Bit 0
corresponds to Addr[0] and bit 7 corresponds to Addr[7]. The
address is required to be DWORD-aligned (Bit[1:0]=00b)
AcpiSmiCmdLo register.
AcpiSmiCmdHi - RW – 8 bits - [PM_Reg: 2Bh]
Field Name
Bits
Default
Description
AcpiSmiCmdHi
7:0
00h
These bits define the most significant byte of the 16 bit I/O
base address. Bit 0 corresponds to Addr[8] and bit 7
corresponds to Addr[15].
AcpiSmiCmdHi register.
AcpiPmaCntBlkLo - RW – 8 bits - [PM_Reg: 2Ch]
Field Name
Bits
Default
Description
AcpiPmaCntBlkLo
7:0
00h
These bits define the least significant byte of the 16 bit I/O
base address of the ACPI power management additional
control block. Bit 0 corresponds to Addr[0] and bit 7
corresponds to Addr[7].
AcpiPmaCntBlkLo register.
AcpiPmaCntBlkHi - RW – 8 bits - [PM_Reg: 2Dh]
Field Name
Bits
Default
Description
AcpiPmaCntBlkHi
7:0
00h
These bits define the most significant byte of the 16 bit I/O
base address. Bit 0 corresponds to Addr[8] and bit 7
corresponds to Addr[15].
AcpiPmaCntBlkHi register.
GEvtConfig0 – RW – 8 bits - [PM_Reg: 30h]
Field Name
Bits
Default
Description
GEvtConfig0
7:0
00h
GEVENT Configuration. These 8 bits are used for
configuring general purpose events 0-3. Two bits for each
event pin. Bit[1:0] for GEVENT[0], bit[3:2] for GEVENT[1]
and so on
00 ACPI Event (trigger SCIOUT or SMI#
depending on SCI_EN bit)
01 GEVENT to generate SMI#
10 GEVENT to generate SMI# followed by SCI
11 GEVENT to generate IRQ13
GEvtConfig0 register.
GEvtConfig1 – RW – 8 bits - [PM_Reg: 31h]
Field Name
Bits
Default
Description
GEvtConfig1
7:0
00h
GEVENT Configuration. These 8 bits are used for
configuring General Purpose Events 4-7. Two bits for each
event pin. Bit[1:0] for GEVENT[4], bit[3:2] for GEVENT[5]
and so on
00 ACPI Event (trigger SCIOUT or SMI#
depending on SCI_EN bit)
01 GEVENT to generate SMI#
10 GEVENT to generate SMI# followed by SCI
11 GEVENT to generate IRQ13
GEvtConfig1 register.
©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual
SMBus Module and ACPI Block (Device 20, Function 0)
Proprietary
Page 150
GPMConfig0 – RW – 8 bits - [PM_Reg: 32h]
Field Name
Bits
Default
Description
ExtEvent0Config
1:0
3:2
5:4
7:6
00b
These two bits configure ExtEvent0
00 ACPI Event (trigger SCIOUT or SMI#
depending on SCI_EN bit)
01 ExtEvent0 to generate SMI#
10 ExtEvent0 to generate SMI# followed by SCI
11 ExtEvent0 to generate IRQ13
These two bits configure ExtEvent1
00 ACPI Event (trigger SCIOUT or SMI#
depending on SCI_EN bit)
ExtEvent1Config
PCIePmeConfig
Gpm0Config
00b
00b
00b
01 ExtEvent1 to generate SMI#
10 ExtEvent1 to generate SMI# followed by SCI
11 ExtEvent1 to generate IRQ13
These two bits configure PCIePme
00 ACPI Event (trigger SCIOUT or SMI#
depending on SCI_EN bit)
01 PCIePme to generate SMI#
10 PCIePme to generate SMI# followed by SCI
11 PCIePme to generate IRQ13
These two bits configure GPM0
00 ACPI Event (trigger SCIOUT or SMI#
depending on SCI_EN bit)
01 GPM0 to generate SMI#
10 GPM0 to generate SMI# followed by SCI
11 GPM0 to generate IRQ13
GPMConfig1- RW – 8 bits - [PM_Reg: 33h]
Field Name
Bits
Default
Description
Gpm1Config
1:0
3:2
5:4
7:6
00b
These two bits configure GPM1
00 ACPI Event (trigger SCIOUT or SMI#
depending on SCI_EN bit)
01 GPm1 to generate SMI#
10 Gpm1 to generate SMI# followed by SCI
11 GPm1 to generate IRQ13
These two bits configure GPM2
00 ACPI Event (trigger SCIOUT or SMI#
depending on SCI_EN bit)
01 Gpm2 to generate SMI#
10 Gpm2 to generate SMI# followed by SCI
11 GPm2 to generate IRQ13
These two bits configure GPM3
00 ACPI Event (trigger SCIOUT or SMI#
depending on SCI_EN bit)
01 GPM3 to generate SMI#
10 GPM3 to generate SMI# followed by SCI
11 GPM3 to generate IRQ13
These two bits configure GPM8
00 ACPI Event (trigger SCIOUT or SMI#
depending on SCI_EN bit)
Gpm2Config
Gpm3Config
Gpm8Config
00b
00b
00b
01 GPM8 to generate SMI#
10 GPM8 to generate SMI# followed by SCI
11 GPM8 to generate IRQ13
©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual
SMBus Module and ACPI Block (Device 20, Function 0)
Proprietary
Page 151
GPMConfig2- RW – 8 bits - [PM_Reg: 34h]
Field Name
Gpio0Config
Bits
Default
Description
1:0
3:2
5:4
7:6
00b
These two bits configure Gpio0 or WAKE#
00 ACPI Event (trigger SCIOUT or SMI#
depending on SCI_EN bit)
01 Gpio0 to generate SMI#
10 Gpio0 to generate SMI# followed by SCI
11 Gpio0 to generate IRQ13
These two bits configure GPM4
00 ACPI Event (trigger SCIOUT or SMI#
depending on SCI_EN bit)
01 Gpm4 to generate SMI#
10 Gpm4 to generate SMI# followed by SCI
11 Gpm4 to generate IRQ13
These two bits configure GPM5
00 ACPI Event (trigger SCIOUT or SMI#
depending on SCI_EN bit)
01 Gpm5 to generate SMI#
10 Gpm5 to generate SMI# followed by SCI
11 Gpm5 to generate IRQ13
These two bits configure AzPme
00 ACPI Event (trigger SCIOUT or SMI#
depending on SCI_EN bit)
Gpm4Config
Gpm5Config
AzPmeConfig
00b
00b
00b
01 AzPme to generate SMI#
10 AzPme to generate SMI# followed by SCI
11 AzPme to generate IRQ13
GPMConfig3 – RW – 8 bits - [PM_Reg: 35h]
Field Name
Bits
Default
Description
Gpm6Config
Gpm7Config
Gpio2Config
SataSciConfig
1:0
3:2
5:4
7:6
00b
These two bits configure GPM6
00 ACPI Event (trigger SCIOUT or SMI#
depending on SCI_EN bit)
01 Gpm6 to generate SMI#
10 Gpm6 to generate SMI# followed by SCI
11 Gpm6 to generate IRQ13
These two bits configure GPM7
00 ACPI Event (trigger SCIOUT or SMI#
depending on SCI_EN bit)
01 Gpm7 to generate SMI#
10 Gpm7 to generate SMI# followed by SCI
11 Gpm7 to generate IRQ13
These two bits configure Gpio2
00 ACPI Event (trigger SCIOUT or SMI#
depending on SCI_EN bit)
01 Gpio2 to generate SMI#
10 Gpio2 to generate SMI# followed by SCI
11 Gpio2 to generate IRQ13
These two bits configure SataSci
00 ACPI Event (trigger SCIOUT or SMI#
depending on SCI_EN bit)
00b
00b
00b
01 SataSci to generate SMI#
10 SataSci to generate SMI# followed by SCI
11 SataSci to generate IRQ13
©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual
SMBus Module and ACPI Block (Device 20, Function 0)
Proprietary
Page 152
GEvtLevelConfig - RW – 8 bits - [PM_Reg: 36h]
Field Name
Bits
Default
Description
GEvtLevelConfig
7:0
00h
GEVENT input level configuration
1 - Rising edge trigger
0 - Falling edge trigger
GEvtLevelConfig register.
GPMLevelConfig0 - RW – 8 bits - [PM_Reg: 37h]
Field Name
ExtEvent0LevelConfig
Bits
Default
Description
ExtEvent0 input level configuration
1 – Rising edge trigger
0
0b
0 – Falling edge trigger
ExtEvent1LevelConfig
PCIePmeLevelConfig
Gpm0LevelConfig
Gpm1LevelConfig
Gpm2LevelConfig
Gpm3LevelConfig
Gpm8LevelConfig
1
2
3
4
5
6
7
0b
0b
0b
0b
0b
0b
0b
ExtEvent1 input level configuration
1 – Rising edge trigger
0 – Falling edge trigger
PCIePme input level configuration
1 – Rising edge trigger
0 – Falling edge trigger
GPM0 input level configuration
1 – Rising edge trigger
0 – Falling edge trigger
GPM1 input level configuration
1 – Rising edge trigger
0 – Falling edge trigger
GPM2 input level configuration
1 – Rising edge trigger
0 – Falling edge trigger
GPM3 input level configuration
1 – Rising edge trigger
0 – Falling edge trigger
GPM8 input level configuration
1 – Rising edge trigger
0 – Falling edge trigger
GPMLevelConfig1 - RW – 8 bits - [PM_Reg: 38h]
Field Name
Gpio0LevelConfig
Bits
Default
Description
Gpio[0] or WAKE# input level configuration
1 – Rising edge trigger
0
0b
0 – Falling edge trigger
Gpm4LevelConfig
Gpm5LevelConfig
AzPmeLevelConfig
Gpm6LevelConfig
Gpm7LevelConfig
Gpio2LevelConfig
1
2
3
4
5
6
0b
0b
0b
0b
0b
0b
GPM4 input level configuration
1 – Rising edge trigger
0 – Falling edge trigger
GPM5 input level configuration
1 – Rising edge trigger
0 – Falling edge trigger
AzPme input level configuration
1 – Rising edge trigger
0 – Falling edge trigger
GPM6 input level configuration
1 – Rising edge trigger
0 – Falling edge trigger
GPM7 input level configuration
1 – Rising edge trigger
0 – Falling edge trigger
Gpio[2] input level configuration
1 – Rising edge trigger
0 – Falling edge trigger
©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual
SMBus Module and ACPI Block (Device 20, Function 0)
Proprietary
Page 153
GPMLevelConfig1 - RW – 8 bits - [PM_Reg: 38h]
Field Name
Bits
Default
Description
SataSciLevelConfig
7
0b
SataSci input level configuration
1 – Rising edge trigger
0 – Falling edge trigger
GEvtStatus - RW – 8 bits - [PM_Reg: 39h]
Field Name
GEvtStatus
Bits
Default
Description
7:0
--
GEVENT status. Write 1 to clear each bit
GEvtStatus register.
PMEStatus0 - RW – 8 bits - [PM_Reg: 3Ah]
Field Name
ExtEvent0Status
ExtEvent1Status
PCIePmeStatus
Gpm0Status
Gpm1Status
Gpm2Status
Gpm3Status
Gpm8Status
Bits
Default
Description
0
1
2
3
4
5
6
7
0b
0b
0b
0b
0b
0b
0b
0b
EXTEVENT0 -> SMI# status; write 1 to clear
EXTEVENT1 -> SMI# status; write 1 to clear
PCIePme -> SMI# status; write 1 to clear
GPM0 -> SMI# status; write 1 to clear
GPM1 -> SMI# status; write 1 to clear
GPM2 -> SMI# status; write 1 to clear
GPM3 -> SMI# status; write 1 to clear
GPM8 -> SMI# status; write 1 to clear
PMEStatus1- RW – 8 bits - [PM_Reg: 3Bh]
Field Name
Gpio0Status
Gpm4Status
Gpm5Status
AzPmeStatus
Gpm6Status
Gpm7Status
Gpio2Status
SataSciStatus
Bits
Default
Description
0
1
2
3
4
5
6
7
0b
0b
0b
0b
0b
0b
0b
0b
Gpio0 or WAKE# -> SMI# status; write 1 to clear
GPM4 -> SMI# status; write 1 to clear
GPM5 -> SMI# status; write 1 to clear
AzPme -> SMI# status; write 1 to clear
GPM6 -> SMI# status; write 1 to clear
GPM7 -> SMI# status; write 1 to clear
Gpio2 -> SMI# status; write 1 to clear
SataSci -> SMI# status; write 1 to clear
OthersConfig- RW – 8 bits - [PM_Reg: 3Ch]
Field Name
Bits
Default
Description
LegacySMIConfig
1:0
3:2
5:4
00b
These two bits configure legacy SMI# events
00 ACPI Event (trigger SCIOUT or SMI#
depending on SCI_EN bit)
01 Legacy SMI EVENT to generate SMI#
10 Legacy SMI EVENT to generate SMI# followed by SCI
11 Legacy SMI EVENT to generate IRQ13
These two bits configure TALERT pin
00 ACPI Event (trigger SCIOUT or SMI#
depending on SCI_EN bit)
01 TALERT to generate SMI#
10 TALERT to generate SMI# followed by SCI
11 TALERT to generate IRQ13
These two bits configure internal USB PME
00 ACPI Event (trigger SCIOUT or SMI#
depending on SCI_EN bit)
TALERTConfig
USBConfig
00b
00b
01 UsbPme to generate SMI#
10 UsbPme to generate SMI# followed by SCI
11 UsbPme to generate IRQ13
©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual
SMBus Module and ACPI Block (Device 20, Function 0)
Proprietary
Page 154
OthersConfig- RW – 8 bits - [PM_Reg: 3Ch]
Field Name
Ac97Config
Bits
Default
Description
7:6
00b
These two bits configure AC97 PME
00 ACPI Event (trigger SCIOUT or SMI#
depending on SCI_EN bit)
01 Ac97 PME to generate SMI#
10 Ac97 PME to generate SMI# followed by SCI
11 Ac97 PME to generate IRQ13
MorePmeConfig – RW – 8 bits - [PM_Reg: 3Dh]
Fi/eld Name
OtherThermConfig
Bits
Default
Description
These two bits configure OtherTherm
00 ACPI Event (trigger SCIOUT or SMI#
depending on SCI_EN bit)
1:0
00b
01 OtherTherm to generate SMI#
10 OtherTherm to generate SMI# followed by SCI
11 OtherTherm to generate IRQ13
These two bits configure GPM[9]
00 ACPI Event (trigger SCIOUT or SMI#
depending on SCI_EN bit)
01 GPM[9] to generate SMI#
10 GPM[9] to generate SMI# followed by SCI
11 GPM[9] to generate IRQ13
These two bits configure PCIeHotPlug
00 ACPI Event (trigger SCIOUT or SMI#
depending on SCI_EN bit)
01 PCIeHotPlug to generate SMI#
10 PCIeHotPlug to generate SMI# followed by SCI
11 PCIeHotPlug to generate IRQ13
Gpm9Config
3:2
5:4
7:6
00b
00b
00b
PCIeHotPlugConfig
Reserved
VRT_T1 - RW – 8 bits - [PM_Reg: 3Eh]
Field Name
Bits
Default
Description
VRT_T1
7:0
01h
The RTC battery is sampled (to conserve power) periodically
to checks its state of health. VRT_T1 and VRT_T2 make up
the interval of the checking. When VRT_Enable is high, the
battery is being sampled. When VRT_enable is low, the
battery is not being sampled. This register defines the time
of VRT enable being high for RTC battery monitor circuit, in
miliseconds.
VRT_T1 register.
VRT_T2 - RW – 8 bits - [PM_Reg: 3Fh]
Field Name
Bits
Default
Description
VRT_T2
7:0
FFh
This register defines the time of VRT enable being low for the
RTC battery monitor circuit, in 4 ms increment.
VRT_T2 register.
AD_Pull_UpB - RW – 8 bits - [PM_Reg: 40h]
Field Name
Bits
Default
Description
AD_Pull_UpB
7:0
00h
This register controls integrated pull-up for AD[31:24]
respectively.
0: Enable
1: Disable
AD_Pull_UpB register.
©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual
SMBus Module and ACPI Block (Device 20, Function 0)
Proprietary
Page 155
|