AMD SB600 1 User Manual To The A24d1550 A4d9 4ac1 975e E83aa0d02184

User Manual: AMD SB600 to the manual

Open the PDF directly: View PDF PDF.
Page Count: 300

DownloadAMD SB600 1 User Manual  To The A24d1550-a4d9-4ac1-975e-e83aa0d02184
Open PDF In BrowserView PDF
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.

Trademarks
AMD, the AMD Arrow logo, Athlon, and combinations thereof, ATI, ATI logo, Radeon, and Crossfire are trademarks of Advanced Micro Devices, Inc.
HyperTransport is a licensed trademark of the HyperTransport Technology Consortium.
Microsoft and Windows are registered trademarks and Windows Vista is trademark of Microsoft Corporation.
Other product names used in this publication are for identification purposes only and may be trademarks of their respective companies.
Disclaimer
The contents of this document are provided in connection with Advanced Micro Devices, Inc. ("AMD") products. AMD makes no representations or warranties with
respect to the accuracy or completeness of the contents of this publication and reserves the right to make changes to specifications and product descriptions at any time
without notice. No license, whether express, implied, arising by estoppel, or otherwise, to any intellectual property rights are granted by this publication. Except as set forth
in AMD's Standard Terms and Conditions of Sale, AMD assumes no liability whatsoever, and disclaims any express or implied warranty, relating to its products including,
but not limited to, the implied warranty of merchantability, fitness for a particular purpose, or infringement of any intellectual property right.
AMD's products are not designed, intended, authorized or warranted for use as components in systems intended for surgical implant into the body, or in other applications
intended to support or sustain life, or in any other application in which the failure of AMD's product could create a situation where personal injury, death, or severe
property or environmental damage may occur. AMD reserves the right to discontinue or make changes to its products at any time without notice.
© 2008 Advanced Micro Devices, Inc. All rights reserved.

Table of Contents
1

Introduction ............................................................................................................. 7
1.1
1.2

About this Manual........................................................................................................................... 7
Nomenclature and Conventions..................................................................................................... 7

1.2.1
1.2.2
1.2.3

1.3
1.4

2

Recent Updates .....................................................................................................................................7
Numeric Representations.......................................................................................................................7
Register Description...............................................................................................................................7

Features of the SB600 ................................................................................................................... 9
Block Diagrams ............................................................................................................................ 11

Register Descriptions: PCI Devices..................................................................... 13
2.1

SATA Registers (Device 18, Function 0) ..................................................................................... 13

2.1.1
2.1.2
2.1.3
2.1.4

2.2

PCI Configuration Space......................................................................................................................13
BAR0/BAR2/BAR1/BAR3 Registers (SATA I/O Register for IDE mode)..............................................24
BAR4 Registers (SATA I/O Register for IDE mode).............................................................................24
BAR5 Registers....................................................................................................................................25

2.1.4.1

Generic Host Control ............................................................................................................................................ 25

2.1.4.2

Port Registers (One Set Per Port) ........................................................................................................................ 31

OCHI USB 1.1 and EHCI USB 2.0 Controllers ............................................................................ 44

2.2.1

OHCI Registers (Device 19, Function 0, 1, 2, 3, 4) ..............................................................................44

2.2.1.1
2.2.1.2

2.2.2
2.2.2.1

Overview............................................................................................................................................................... 66

2.2.2.2

System Requirements .......................................................................................................................................... 67

2.2.3

Programming Interface ......................................................................................................................................... 68

EHCI Registers (Device 19, Function 5) ..............................................................................................70

2.2.3.1

PCI Configuration Registers ................................................................................................................................. 70

2.2.3.2

Host Controller Capability Registers (MEM_Reg) ................................................................................................ 79

2.2.3.3

Host Controller Operational Registers (EOR_Reg) .............................................................................................. 82

2.2.3.4

USB2.0 Debug Port Registers .............................................................................................................................. 92

SMBus Module and ACPI Block (Device 20, Function 0) ............................................................ 96

2.3.1

PCI Configuration Registers and Extended Registers..........................................................................97

2.3.1.1
2.3.1.2

2.3.2
2.3.3

Extended Registers ............................................................................................................................................ 120

Legacy Block Registers ...................................................................................................................................... 126

2.3.3.1.1

IO-Mapped Control Registers.....................................................................................................................126

2.3.3.1.2

Client Management Registers (Accessed through C50h and C51h) .........................................................137

2.3.3.1.3

System Reset Register (IO CF9)................................................................................................................139

2.3.3.2
2.3.3.3

2.3.4
2.3.5

PCIE Configuration Registers............................................................................................................................... 97

SMBus Registers ...............................................................................................................................123
Legacy ISA and ACPI Controller ........................................................................................................126

2.3.3.1

2.4

OHCI Operational Registers (MEM_Reg)............................................................................................................. 51

USB Legacy Keyboard Operation ........................................................................................................66

2.2.2.3

2.3

PCI Configuration Registers (PCI_Reg) ............................................................................................................... 44

Power Management (PM) Registers................................................................................................................... 139
ACPI Registers ................................................................................................................................................... 176

WatchDogTimer Registers .................................................................................................................181
ASF SM bus Host Interface Registers................................................................................................182

IDE Controller (Device 20, Function 1) ...................................................................................... 186

2.4.1
2.4.2

PCI Configuration Registers...............................................................................................................186
IDE I/O Registers ...............................................................................................................................195

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

Table of Contents
Proprietary

Page 3

2.5

AC ’97 Controller Functional Descriptions ................................................................................. 198

2.5.1

PCI Configuration Registers ............................................................................................................................... 198

2.5.1.2

Audio Memory Mapped Registers ...................................................................................................................... 203

2.5.2

2.6

Modem Registers (Device 20, Function 6) .........................................................................................213

2.5.2.1

PCI Configuration Registers ............................................................................................................................... 213

2.5.2.2

Modem Memory Mapped Registers.................................................................................................................... 218

HD Audio Controllers Registers ................................................................................................. 227

2.6.1
2.6.2

3

Audio Registers (Device 20, Function 5) ............................................................................................198

2.5.1.1

HD Audio Controller PCI Configuration Space Registers (Device 20 Function 2) ..............................227
HD Audio Controller Memory Mapped Registers ...............................................................................232

Register Descriptions: PCI Bridges ................................................................... 249
3.1

LPC ISA Bridge (Device 20, Function 3).................................................................................... 249

3.1.1
3.1.2
3.1.3
3.1.4

3.2

Programming Interface.......................................................................................................................249
PCI Configuration Registers...............................................................................................................249
SPI ROM Controller Registers ...........................................................................................................260
Features of the LPC Block .................................................................................................................264

Host PCI Bridge Registers (Device 20, Function 4)................................................................... 265

4 Register Descriptions: General Purpose Functions/Interrupt Controllers/Support
Function Pins............................................................................................................. 277
4.1

GPIO/GPOC............................................................................................................................... 277

4.1.1
4.1.2

4.2

GEVENT/GPE/GPM/ExtEvent ................................................................................................... 283

4.2.1
4.2.2
4.2.3
4.2.3.1
4.2.3.2

4.2.4

4.3

GEVENT as GPIO..............................................................................................................................283
General Purpose Event (GPE) ...........................................................................................................283
GPM as GPIO ....................................................................................................................................286
GPM Pins as Input.............................................................................................................................................. 286
GPM pins as Output ........................................................................................................................................... 287

ExtEvent.............................................................................................................................................287

4.2.4.1

ExtEvent as GPIO............................................................................................................................................... 287

4.2.4.2

ExtEvent to Generate SMI# ................................................................................................................................ 287

THRMTRIP/TALERT .................................................................................................................. 288

4.3.1
4.3.2

4.4
4.5

GPIO ..................................................................................................................................................277
GPOC ................................................................................................................................................282

Thermal Trip – THRMTRIP ................................................................................................................288
Temperature Alert – TALERT.............................................................................................................288

Real Time Clock (RTC) .............................................................................................................. 289
IOXAPIC Registers..................................................................................................................... 296

4.5.1
4.5.2

Direct Access Registers .....................................................................................................................296
Indirect Access Registers...................................................................................................................297

Appendix A: AC97 Audio FAQs ............................................................................... 299
Appendix B: Revision History .................................................................................. 300

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

List of Figures
Proprietary

Page 4

List of Figures
Figure 1 SB600 PCI Internal Devices ..........................................................................................................................11
Figure 2 SB600 PCI Internal Devices and Major Function Blocks ...............................................................................12
Figure 3 PCI Configuration Spaces for OHCI...............................................................................................................45
Figure 4 SMBus/ACPI PCI Configuration Space Function Block Association ..............................................................96

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

List of Figures
Proprietary

Page 5

List of Tables
Table 1-1: Register Description Table Notation—Example ............................................................................................7
Table 2-1 HcRevision Register ....................................................................................................................................68
Table 2-2 Legacy Support Registers............................................................................................................................68
Table 2-3 Emulated Registers......................................................................................................................................68
Table 2-4 HceInput Registers ......................................................................................................................................69
Table 2-5 HceOutput Register .....................................................................................................................................69
Table 2-6 HceStatus Register ......................................................................................................................................69
Table 2-7 HceControl Register.....................................................................................................................................70
Table 2-8 IDE Device Registers Mapping ..................................................................................................................196
Table 3-1 PCI-to-PCI Bridge Configuration Registers Summary................................................................................265
Table 4-1: GPIO Pins .................................................................................................................................................277
Table 4-2: GPOC Pins ...............................................................................................................................................282
Table 4-3: GPE Pins ..................................................................................................................................................283
Table 4-4: ExtEvent Pins as GPIO.............................................................................................................................287
Table 4-5: ExtEvent Pins to Generate SMI# ..............................................................................................................287
Table 4-6: THRMTRIP Pin .........................................................................................................................................288
Table 4-7: TALERT# through GPE ............................................................................................................................288
Table 4-8: TALERT# to generate SMI#......................................................................................................................288

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

List of Tables
Proprietary

Page 6

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

1.2.3

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].

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
Latency Timer (R/W)

Bits
7:0

Default
00h

Description
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.
AMD SB600 Register Reference Manual

About this Manual
Proprietary

Page 7

Register Information

Value/Content in the Example

Register name

Latency Timer

Read / Write capability
R = Readable
W = Writable
RW = Readable and Writable

RW

Register size

8 bits

Register address(es)*

Offset: 0Dh

Field name

Latency Timer (R/W)

Field position/size

7:0

Field default value

00h

Field description

“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.
AMD SB600 Register Reference Manual

Nomenclature and Conventions
Proprietary

Page 8

1.3

Features of the SB600

CPU Interface
ƒ

ƒ

Supports both Single and Dual core AMD
CPUs
ƒ Desktop: Athlon 64, Athlon 64 FX, Athlon
64 X2, Sempron, Opteron, dual-core
Opteron
ƒ Mobile: Athlon XP-M, Mobile Athlon 64,
Turion 64, Mobile Sempron

Supports serial interrupt on quiet and
continuous modes

DMA Controller
ƒ

Two cascaded 8237 DMA controllers

ƒ

Supports PC/PCI DMA

ƒ

Supports LPC DMA

ƒ

Supports type F DMA

PCI Host Bus Controller
ƒ

Supports PCI Rev. 2.3 specification

LPC host bus controller

ƒ

Supports PCI bus at 33MHz

ƒ

ƒ

Supports up to 6 bus master devices

Supports LPC based super I/O and flash
devices

ƒ

Supports 40-bit addressing

ƒ

Supports two master/DMA devices

ƒ

Supports interrupt steering for plug-n-play
devices

ƒ

Supports TPM version 1.1/1.2 devices for
enhanced security

ƒ

Supports concurrent PCI operations

ƒ

Supports SPI devices

ƒ

Supports hiding of PCI devices by
BIOS/hardware

ƒ

Supports spread spectrum on PCI clocks

USB controllers

SATA II AHCI Controller
ƒ

Supports four SATA ports, complying with the
SATA 2.0 specification

ƒ

Supports SATA II 3.0GHz PHY, with
backward compatibility with 1.5GHz

ƒ

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 both AHCI mode and IDE mode

ƒ

Supports USB debug port

ƒ

ƒ

Supports port disable with individual control

Supports advanced power management with
ACHI mode

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

ƒ

32x32byte buffers on each channel for
buffering

ƒ

Swap bay support by tri-state IDE signals

ƒ

Supports Message Signaled Interrupt (MSI)

ƒ

Integrated IDE series resistors

Interrupt Controller
ƒ

Supports IOAPIC/X-IO APIC mode for 24
channels of interrupts

ƒ

Supports 8259 legacy mode for 15 interrupts

ƒ

Supports programmable level/edge triggering
on each channels

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

Features of the SB600
Proprietary

Page 9

AC Link interface
ƒ

Supports for both audio and modem codecs

RTC (Real Time Clock)

ƒ

Compliant with AC-97 codec Rev. 2.3

ƒ

256-byte battery-backed CMOS RAM

ƒ

6/8 channel support on audio codec

ƒ

Hardware supported century rollover

ƒ

Multiple functions for audio and modem
Codec operations

ƒ

RTC battery monitoring feature

ƒ

Bus master logic

ƒ

Supports up to 3 codecs simultaneously

ƒ

Supports SPDIF output

ƒ

Supports C2, C3, C4, ACPI states

ƒ

Separate bus from the HD audio

ƒ

Supports C1e and C3 pop-up

ƒ

Supports S0, S1, S2, S3, S4, and S5

HD Audio
ƒ

4 Independent output streams (DMA)

ƒ

4 Independent input streams (DMA)

ƒ

Up to 16 channels of audio output per stream

ƒ

Supports up to 4 codecs

ƒ

Up to 192kHz sample rate

ƒ

Up to 32-bit per sample

ƒ

Message Signaled Interrupt (MSI) capability

ƒ

64-bit addressing capability for MSI

ƒ

64-bit addressing capability for DMA bus
master

ƒ

Unified Audio Architecture (UAA) compatible

ƒ

HD Audio registers can be located anywhere
in the 64-bit address space

Timers
ƒ

8254-compatible timer

ƒ

Microsoft High Precision Event Timer (HPET)

ƒ

ACPI power management timer

Power Management
ƒ

ƒ

ACPI specification 2.0 compliant power
management schemes

Wakeup events for S1, S2, S3, S4/S5
generated by:
ƒ

Any GEVENT pin

ƒ

Any GPM pin

ƒ

USB

ƒ

Power button

ƒ

Internal RTC wakeup

ƒ

SMI# event

ƒ

Full support for On-Now™

ƒ

Supports CPU SMM, generating SMI# signal
upon power management events

ƒ

GPIO supports on external wake up events

ƒ

Supports CLKRUN# on PCI power
management

ƒ

Provides clock generator and CPU STPCLK#
control

ƒ

Support for ASF

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

Features of the SB600
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

4 PORTS

SATA Controller 1

B-LINK

A-LINK

PORT 1

PORT 0

Bus 0 DEV 18 Function 0
B-LINK

Device ID 4387h : 4388h :
4389h : 438Ah : 438Bh

Bus 0 DEV 20
Function 2
Device ID 4383h

USB:EHCI
Debug port

AC97 Modem

HD Audio

Bus 0 DEV 19 Function 0:4
10 PORTS

AC97

Bus 0 DEV 20
Function 6
Device ID 438Eh

Device ID 4380h

USB:OHCI x5

Bus 0 DEV 20
Function 5
Device ID 4382h

Bus 0 DEV 19 Function 5
Device ID 4386h
ALINK

IDE

PCI Bridge
6 PCI SLOTS

1 CHANNEL

Bus 0 DEV 20
Function 1
Device ID 438Ch

Bus 0 DEV 20
Function 4
Device ID 4384h

LPC

LPC bus

Bus 0 DEV 20
Function 3
Device ID 438Dh

SMBUS /ACPI

SPI bus

Bus 0 DEV 20 Function 0
Device ID 4385h

Figure 1 SB600 PCI Internal Devices

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

Block Diagrams
Proprietary

Page 11

ALINK-EXPRESS II

AB

4 PORTS

B-LINK

A-LINK

PORT 1

PORT 0

AC97 Audio

SATA
Controller

AC97

AC97 Modem

B-LINK
10 PORTS

HD Audio

USB:OHCI

USB:EHCI
Debug port

ALINK

1
CHANNEL

IDE

LPC bus

SMBUS /ACPI

LPC

PCI Bridge
6 PCI SLOTS

SPI bus
ROM

X1/X2

BUS Controler
XBUS

SERIRQ#

RTC
SIRQ

APIC
PIC

PICD[0]
RTC_IRQ#,
PIDE_INTRQ,
SIDE_INTRQ,
USB_IRQ#,
AC97INTAB,
AC97INTBB

GPIO

BM
8250 TIMER

SPEAKER

INTERRUPT
controller

ACPI / HW
Monitor

SMI

INTR
IGNNE#,
FERRB#,
INT# F:A

GEVENT[7:0],SLPBUTTON
TEMPDEAD, TEMPCAUT,
SHUTDOWN,DC_STOP#
SCIOUT, SLP#,
CPUSTP#, PCISTP#,
STPCLK#, SOFF#, SMI#,
SMIACT#

SMBUS

PM

PWRGOOD
CPURST,
INIT#,
RESET#

Figure 2 SB600 PCI Internal Devices and Major Function Blocks

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

Block Diagrams
Proprietary

Page 12

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:
5Ch

2.1.1

AC/AFh

98h

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
Device ID
Command
Status
Revision ID/Class Code
Cache Link Size
Master Latency Timer
Header Type
BIST Mode Type
Base Address 0
Base Address 1
Base Address 2
Base Address 3
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
MSI Address
MSI Upper Address
MSI Data
Power Management Capability ID
Power Management Capability
Power Management Control And Status

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

Offset Address
00h
02h
04h
06h
08h
0Ch
0Dh
0Eh
0Fh
10h
14h
18h
1Ch
20h
24h
2Ch
34h
3Ch
3Dh
3Eh
3Fh
40h
44h
46h
50h
54h
58h
5Ch
60h
62h
64h

SATA Registers (Device 18, Function 0)
Proprietary

Page 13

Register Name
Serial ATA Capability Register 0
Serial ATA Capability Register 1
IDP Index
IDP Data
PHY Port0 Control
PHY Port1 Control
PHY Port2 Control
PHY Port3 Control
BIST pattern Count
PCI Target Control TimeOut Counter

Offset Address
70h
74h
78h
7Ch
88h
8Ch
90h
94h
C0h
C4h

Vendor ID - R - 16 bits - [PCI_Reg:00h]
Field Name
Vendor ID

Bits
15:0

Default
1002h

Description
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
4380h

Description
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.

Field Name
I/O Access Enable

Bits
0

Default
0b

Memory Access Enable

1

0b

Bus Master Enable

2

0b

Special Cycle
Recognition Enable
Memory Write and
Invalidate Enable
VGA Palette Snoop
Enable
PERR- Detection Enable

3

0b

Description
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
Bus master function enable.
1 = Enable
0 = Disable.
Read Only. Hardwired to ‘0’

4

0b

Read Only. Hardwired to ‘0’

5

0b

6

0b

Wait Cycle Enable

7

0b

SERR- Enable

8

0b

Fast Back-to-Back
Enable
Interrupt Disable
Reserved

9

0b

10
15:11

0b

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.
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.

Command - RW - 16 bits - [PCI_Reg:04h]

©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
4

Default

66MHz Support

5

1b

Reserved
Fast Back-to-Back
Capable
Data Parity Error

6
7

0b

8

0b

10:9

01b

Signaled Target Abort

11

0b

Received Target Abort

12

0b

Received Master Abort
Status

13

0b

SERR- Status

14

0b

Detected Parity Error

15

0b

DEVSEL- Timing

0b
1b

Description
Reserved.
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.
66MHz capable. This feature is supported in the SATA
controller.

Reserved.
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.
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.
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. 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.

Revision ID/Class Code- R - 32 bits - [PCI_Reg:08h]
Field Name
Revision ID

Bits
7:0

Default
00h

Operating Mode
Selection

15:8

8Fh

Sub-Class Code
Class Code

23:16
31:24

01h
01h

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

Description
These bits are hardwired to 00h to indicate the revision level of
the chip design.
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. 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.

SATA Registers (Device 18, Function 0)
Proprietary

Page 15

Revision ID/Class Code- R - 32 bits - [PCI_Reg:08h]
Field Name
Bits
Default
Note: This field is only writeable when PCI_Reg:40h[0] is set.
Sub-Class Code Program Interface Controller Type
01
8F
IDE
06
01
AHCI
04
00
RAID

Description

Cache Line Size - RW - 8 bits - [PCI_Reg:0Ch]
Field Name
Reserved
Cache Line Size Register

Bits
3:0
7:4

Default
0h

Description
Reserved.
If the value is 1, then the cache line size is 16 DW (64 byte).

Master Latency Timer - RW - 8 bits - [PCI_Reg:0Dh]
Field Name
Reserved
Master Latency Timer

Bits
2:0
7:3

Field Name
Header Type

Bits
7:0

Default
00h

Description
Reserved.
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]
Default
00h

Description
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
Completion Code

Bits
3:0

Default
0h

Reserved
Start BIST
BIST Capable

5:4
6
7

0b
0b

Description
Read Only.
Indicates the completion code status of BIST. A non-zero
value indicates a failure.
Reserved.
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
0

Reserved
Primary IDE CS0 Base
Address

2:1
31:3

Default
1b

0000_
0000h

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.
Reserved.
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
0

Reserved
Primary IDE CS1 Base
Address

1
31:2

Default
1b

0000_
0000h

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

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.
Reserved.
Base Address for Primary IDE Bus CS1. This register is used
for native mode only. Base Address 1 is not used in
compatibility mode.

SATA Registers (Device 18, Function 0)
Proprietary

Page 16

Base Address 2 - RW - 32 bits - [PCI_Reg:18h]
Field Name
Resource Type Indicator

Bits
0

Reserved
Secondary IDE CS0
Base Address

2:1
31:3

Default
1b
0000_
0000h

Description
This bit is wired to 1 to indicate that the base address field in
this register maps to I/O space.
Reserved.
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
0

Reserved
Secondary IDE CS1
Base Address

1
31:2

Default
1b
0000_
0000h

Description
This bit is wired to 1 to indicate that the base address field in
this register maps to I/O space.
Reserved.
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
Resource Type Indicator

Bits
0

Reserved
Bus Master Interface
Register Base Address

3:1
31:4

Default
1b
0000_
000h

Description
This bit is wired to 1 to indicate that the base address field in
this register maps to I/O space.
Reserved.
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
Resource Type Indicator
Reserved
AHCI Base Address

Bits
0

Default
0b

9:1
31:10

000000h

Description
This bit is wired to 0 to indicate a request for register memory
space.
Reserved.
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
Subsystem Vendor ID

Bits
15:0

Default
0000h

Subsystem ID

31:16

0000h

Description
Subsystem Vendor ID. This can only be written once by the
software.
Subsystem ID. This can only be written once by the software.

Capabilities Pointer - R - 8 bits - [PCI_Reg:34h]
Field Name
Capabilities Pointer

Bits
7:0

Field Name
Interrupt Line

Bits
7:0

Field Name
Interrupt Pin

Bits
7:0

Default
60h

Description
The first pointer of the Capability block

Interrupt Line - RW - 8 bits - [PCI_Reg:3Ch]
Default
00h

Description
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]
Default
01h

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

Description
Hard-wired to 01h.

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
00h

Field Name
Maximum Latency

Bits
7:0

Field Name
Subclass code write
Enable

Bits
0

Default
0b

Disable Dynamic Sata
Memory Power Saving

1

0b

Enable dynamic Sata
Core Power Saving

2

0b

Reserved
Disable Speed up XP
Boot

3
4

0b

Description
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]
Default
00h

Description
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]

Reserved
Reserved
Disable port0
Disable port1
Disable port2
Disable port3
Reserved

5
15:6
16
17
18
19
31:20

0b
0b
0b
0b
0b

Description
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.
Reserved.
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.
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.

Watch Dog Control And Status - RW - 16 bits - [PCI_Reg:44h]
Field Name
Watchdog Enable

Bits
0

Default
0b

Watchdog Timeout
Status

1

0b

Reserved

15:2

Description
Set this bit to enable the watchdog counter for all the PCI
down stream transaction.
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.

Watch Dog Counter - RW - 16 bits - [PCI_Reg:46h]
Field Name
Watchdog Counter
Reserved

Bits
7:0
15:8

Default
80h

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

Description
Specifies the timeout retry count for PCI down stream retries.
Reserved.

SATA Registers (Device 18, Function 0)
Proprietary

Page 18

MSI Control - RW- 32 bits - [PCI_Reg:50h]
Field Name
Capability ID

Bits
7:0

Default
05h

Capability Next Pointer

15:8

70h

16

0b

Description
Read-Only.
Capability ID. It indicates that this is and MSI capability ID.
Read-Only.
Next Pointer (hard wired to 70h, points to Index Data pair
capability
MSI Enable.

Message Signaled
Interrupt Enable
Multiple Message
Capable
Multiple Message Enable
MSI 64-bit Address

19:17

010b

Multiple Message Capable.

22:20
23

000b
1b

Reserved

31:24

Multiple Message Enable.
Read-Only
Support 64-bit address.
Reserved.

Field Name
Reserved
MSI Address

Bits
1:0
31:2

MSI Address - RW- 32 bits - [PCI_Reg:54h]
Default
0000_0000h

Description
Reserved.
Lower 32 bits of the system specified message address
always DW aligned.

MSI Upper Address - RW- 32 bits - [PCI_Reg:58h]
Field Name
MSI Upper Address

Bits
31:0

Field Name
MSI Data

Bits
15:0

Default
0000_0000h

Description
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]
Default
0000h

Description
MSI Data

Power Management Capability ID - R- 16 bits - [PCI_Reg:60h]
Field Name
Capability ID

Bits
7:0

Default
01h

Capability Next Pointer

15:8

50h

Description
Capability ID. Indicates this is power management capability
ID.
Next Pointer.

Power Management Capability - R- 16 bits - [PCI_Reg:62h]
Field Name
Version
PME Clock
Reserved
Device Specific
Initialization
Aux_Current
D1_Support
D2_Support
PME_Support

Bits
2:0

Default
010b

3
4
5

0b
1b

8:6

000b

9
10
15:11

0b
0b
00h

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

Description
Indicates support for Revision 1.1 of the PCI Power
Management Specification.
Indicates that PCI clock is not required to generate PME#.
Reserved
Indicates whether device-specific initialization is required.
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.

SATA Registers (Device 18, Function 0)
Proprietary

Page 19

PCI Power Management Control And Status - RW- 16 bits - [PCI_Reg:64h]
Field Name
Power State

Bits
1:0

Reserved
PME Enable
Reserved
PME Status

Default
00b

7:2
8
14:9
15

0b
0b

Description
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
Read-only. Hard-wired to ‘0’ indicates PME disable
Reserved.
Read-only. Hard-wired to ‘0’ as PME disable

Serial ATA Capability Register 0 - R- 32 bits - [PCI_Reg:70h]
Field Name
Capability ID
Capability Next Pointer
Minor Revision

Bits
7:0
15:8
19:16

Default
12h
00h
0h

Major Revision

23:20

1h

Reserved

31:24

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.
Major revision number of the SATA Capability Pointer
implemented.
Reserved

Serial ATA Capability Register 1 - R- 32 bits - [PCI_Reg:74h]
Field Name
BAR Location

Bits
3:0

Default
1111b

BAR Offset

23:4

00000h

Reserved

31:24

Description
Value 1111b indicates that the Index-Data Pair is implemented
in Dwords directly following SATACR1 in the PCI configuration
space.
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

IDP Index Register - RW- 32 bits - [PCI_Reg:78h]
Field Name
Reserved
IDP Index

Bits
1:0
9:2

Default

Description
Reserved
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
31:0

Default

Description
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.
AMD SB600 Register Reference Manual

SATA Registers (Device 18, Function 0)
Proprietary

Page 20

PHY Port0 Control - RW- 32 bits - [PCI_Reg:88h]
Field Name
Port0 PHY
TX main driver swing

Bits
23:0
4:0

Default
B40014h
10100b

TX pre-emphasis driver
swing

7:5

000b

TX pre-emphasis enable

13

0b

Reserved

31:24

Description
PHY port0 fine-tune register.
Port0 Tx driving swing[4:0] is valid for SATA 1.5G. It sets the
TX main driver swing. The user can program the optimum
value for each SATA port.
Bit 4
Bit 3
Bit 2
Bit 1
Bit0 Nominal Output
1
0
0
0
0
400mv
1
0
0
1
0
450mv
1
0
1
0
0
500mv
1
0
1
1
0
550mv
1
1
0
0
0
600mv
1
1
0
1
0
650mv
1
1
1
0
0
700mv
1
1
1
1
0
750mv
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.
Bit 7
Bit 6
Bit 5 pre-emphasis amount
0
0
0
0mv
0
0
1
25mv
0
1
0
50mv
0
1
1
75mv
1
0
0
100mv
1
0
1
125mv
1
1
0
150mv
1
1
1
175mv
Note: This applies to all the ASIC Revisions A11 and above.
Turns on TX pre-emphasis output
1: Enable pre-emphasis
0: Disable pre-emphasis
Reserved.

PHY Port1 Control - RW- 32 bits - [PCI_Reg:8Ch]
Field Name
Port1 PHY
TX main swing

Bits
23:0
4:0

Default
B40014h
10100b

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

Description
PHY port1 fine-tune register.
Port1 Tx driving swing[4:0] is valid at SATA 1.5G. It sets the
TX main driver swing. The user can program the optimum
value for each SATA port.
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0 Nominal Output
1
0
0
0
0
400mv
1
0
0
1
0
450mv
1
0
1
0
0
500mv
1
0
1
1
0
550mv
1
1
0
0
0
600mv
1
1
0
1
0
650mv
1
1
1
0
0
700mv
1
1
1
1
0
750mv
Note: This applies to all the ASIC Revisions A11 and above.

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
7:5

Default
000b

TX pre-emphasis enable

13

0b

Description
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
Bit 6
Bit 5 pre-emphasis amount
0
0
0
0mv
0
0
1
25mv
0
1
0
50mv
0
1
1
75mv
1
0
0
100mv
1
0
1
125mv
1
1
0
150mv
1
1
1
175mv
Note: This applies to all the ASIC Revisions A11 and above.
Turns on port1 TX pre-emphasis output.
1: Enable pre-emphasis
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
10100b

TX pre-emphasis driver
swing

7:5

000b

TX pre-emphasis enable

13

0b

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

Description
PHY port2 fine-tune register.
Port2 Tx driving swing[4:0] is valid at SATA 1.5G.
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0 Nominal Output
1
0
0
0
0
400mv
1
0
0
1
0
450mv
1
0
1
0
0
500mv
1
0
1
1
0
550mv
1
1
0
0
0
600mv
1
1
0
1
0
650mv
1
1
1
0
0
700mv
1
1
1
1
0
750mv
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.
Bit 7
Bit 6
Bit 5 pre-emphasis amount
0
0
0
0mv
0
0
1
25mv
0
1
0
50mv
0
1
1
75mv
1
0
0
100mv
1
0
1
125mv
1
1
0
150mv
1
1
1
175mv
Note: This applies to all the ASIC Revisions A11 and above.
Turns on port2 TX pre-emphasis output
1: Enable pre-emphasis
0: Disable pre-emphasis

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
10100b

TX pre-emphasis driver
swing

7:5

000b

TX pre-emphasis enable

13

0b

Description
PHY port3 fine-tune register.
Port3 Tx driving swing[4:0] is valid at SATA 1.5G.
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0 Nominal Output
1
0
0
0
0
400mv
1
0
0
1
0
450mv
1
0
1
0
0
500mv
1
0
1
1
0
550mv
1
1
0
0
0
600mv
1
1
0
1
0
650mv
1
1
1
0
0
700mv
1
1
1
1
0
750mv
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.
Bit 7
Bit 6
Bit 5 pre-emphasis amount
0
0
0
0mv
0
0
1
25mv
0
1
0
50mv
0
1
1
75mv
1
0
0
100mv
1
0
1
125mv
1
1
0
150mv
1
1
1
175mv
Note: This applies to all the ASIC Revisions A11 and above.
Turns on port3 TX pre-emphasis output
1: Enable pre-emphasis
0: Disable pre-emphasis

BIST Pattern Count - RW - 32 bits - [PCI_Reg:C0h]
Field Name
BIST Pattern Count

Bits
31:0

Default
0000_20
00h

Description
This count specifies how many Octal WORD pattern need to
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

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

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.

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
Native Mode (Offset)
IDE Command Block Registers
Primary
Secondary
BAR0/BAR2
1F0
170
(Primary or Secondary)
Base Address 0 + 0
1F1
171
(Primary or Secondary)
Base Address 0 + 1
1F2
172
(Primary or Secondary)
Base Address 0 + 2
1F3
173
(Primary or Secondary)
Base Address + 3
1F4
174
(Primary or Secondary)
Base Address + 4
1F5
175
(Primary or Secondary)
Base Address + 5
1F6
176
(Primary or Secondary)
Base Address + 6
1F7
177
(Primary or Secondary)
Base Address + 7
IDE Control Block Registers
Primary
Secondary
BAR1/BAR3
3F6
376
(Primary or Secondary)
Base Address + 2

2.1.3

Name and Function
Read Function

Write Function

Data (16 bit)

Data (16 bit)

Error register

Features register

Sector Count

Sector Count

Sector Number

Sector Number

Cylinder Low

Cylinder Low

Cylinder High

Cylinder High

Drive/Head

Drive/Head

Status

Command

Alternate Status

Device Control

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
02h/0Ah
04h/0Ch

Bus-master IDE Command
Bus-master IDE Status
Descriptor Table Pointer

Bus-master IDE Command - RW- 8 bits - [IO_Reg: BAR4 + 00/08h]
Field Name
Bus Master IDE
Start/Stop

Bits
0

Default
0b

Reserved
Bus Master Read/Write

2:1
3

0b

Reserved

7:4

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

Description
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
1 = IDE -> Memory
This bit should not change during Bus Master transfer cycle, even
if terminated by Bus Master IDE stop.
Reserved.

SATA Registers (Device 18, Function 0)
Proprietary

Page 24

Bus-master IDE Status - RW- 8 bits - [IO_Reg: BAR4 + 02/0Ah]
Field Name
Bus Master Active

Bits
0

Default
0b

Bus Master DMA Error

1

0b

IDE Interrupt

2

0b

4:3
5

0b

Description
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.
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.
Device 0 (Master) DMA capable.

6

0b

Device 1 (Slave) DMA capable.

7

0b

Read Only
Simplex only. This bit is hard-wired as 0.

Reserved
Master Device DMA
Capable
Slave Device DMA
Capable
Simplex Only

Descriptor Table Pointer - RW- 32 bits - [IO_Reg: BAR4 + 04/0Ch]
Field Name
Reserved
Descriptor Table Base
Address

2.1.4

Bits
1:0
31:2

Default
0h
0000_0000h

Description
Reserved. Always read as 0’s.
Base Address of Descriptor Table. These bits correspond to
Address [31-02].

BAR5 Registers

These are the AHCI memory map registers. The base address is defined through the ABAR (BAR5) register.
Register Name
Generic Host Control
Reserved
Vendor Specific registers
Port 0 port control registers
Port 1 port control registers
Port 2 port control registers
Port 3 port control registers

2.1.4.1

Offset Address
00h-23h
24h-9Fh
A0h-FFh
100h-17Fh
180h-1FFh
200h-27Fh
280h-2FFh

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)
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.
AMD SB600 Register Reference Manual

Offset Address
00h-03h
04h-07h
08h-0Bh
0Ch-0Fh
10h-13h
14h-17h
18h-1Bh
1Ch-1Fh
20h-23h

SATA Registers (Device 18, Function 0)
Proprietary

Page 25

HBA Capabilities – R - 32bits [Mem_reg: ABAR + 00h]
Field Name
Number of Ports(NP)

Bits
4:0

Default
00011b

Supports External SATA
(SXS)

5

0b

Enclosure Management
Supported (EMS)

6

0b

Command Completion
Coalescing Supported
(CCCS)

7

1b

Number of Command
Slots (NCS)

12:8

11111b

Partial State Capable
(PSC)

13

1b

Slumber State Capable
(SSC)

14

1b

PIO Multiple DRQ Block
(PMD)

15

1b

FIS-based Switching
Supported (FBSS)

16

0b

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

Description
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.
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.
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.
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.
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’.

SATA Registers (Device 18, Function 0)
Proprietary

Page 26

HBA Capabilities – R - 32bits [Mem_reg: ABAR + 00h]
Field Name
Supports Port Multiplier
(SPM)

Bits
17

Default
1b

Supports AHCI mode
only (SAM)

18

0b

Supports Non-Zero DMA
Offsets (SNZO)

19

0b

Interface Speed Support
(ISS)

23:20

2h

Description
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.
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.
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’.
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

Definition

0000

Reserved

0001

Gen 1 (1.5 Gbps)

0010

Gen 1 (1.5 Gbps) and Gen 2 (3
Gbps)

0011 - 1111
Supports Command List
Override (SCLO)

24

1b

Supports Activity LED
(SAL)

25

1b

Supports Aggressive
Link Power Management
(SALP)

26

1b

Supports Staggered
Spin-up (SSS)

27

0b

Supports Mechanical
Presence Switch (SMPS)

28

1b

Supports SNotification
Register (SSNTF)

29

1b

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

Reserved

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.
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.
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.

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
30

Default
1b

Supports 64-bit
Addressing (S64A)

31

1b

Description
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.

Global HBA Control – RW - 32bits [Mem_reg: ABAR + 04h]
Field Name
HBA Reset (HR)

Bits
0

Default
0b

Interrupt Enable (IE)

1

0b

MSI Revert to Single
Message (MRSM)

2

0b

Description
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 reinitialized 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.
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)

•

Reserved

30:3

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

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.

SATA Registers (Device 18, Function 0)
Proprietary

Page 28

Global HBA Control – RW - 32bits [Mem_reg: ABAR + 04h]
Field Name
AHCI Enable (AE)

Bits
31

Default
0b

Description
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
31:0

Default
0000_
0000h

Description
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
Port Implemented (PI)

Bits
31:0

Default
0000000Fh

Description
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)
Major Version Number
(MJR)
Version: V1.10

Bits
15:0

Default
0100h

31:16

0001h

Description
Indicates the minor version is “10”.
Indicates the major version is “1”

Command Completion Coalescing Control(CCC_CTL) - RW – 32 bits [Mem_reg: ABAR + 14h]
Field Name
CCC_CTL Enable

Bits
0

Reserved

2:1

Default
0b

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

Description
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

SATA Registers (Device 18, Function 0)
Proprietary

Page 29

Command Completion Coalescing Control(CCC_CTL) - RW – 32 bits [Mem_reg: ABAR + 14h]
Field Name
CCC Interrupt (INT)

Bits
7:3

Default
1Fh

Command Completions
(CC)

15:8

01h

Timeout Value (TV)

31:16

0001h

Description
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 Completion Coalescing Ports - RW – 32 bits [Mem_reg: ABAR + 18h]
Field Name
Ports (PRT)

Bits
31:0

Default
00000000h

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

Description
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).

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 32Bits(PNCLBU)
Port-N FIS Base Address(PNFB)
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

Offset Address
00h-03h + Port offset
04h-07h + Port offset
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 Command List Base Address -RW -32 bits [Mem_reg: ABAR + port offset + 00h]
Field Name
Reserved
Command List Base
Address (CLB)

Bits
9:0
31:10

Default
000000h

Description
Reserved.
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
Command List Base
Address Upper (CLBU)

Bits
31:0

Default
00000000h

Description
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
000000h

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

Description
Reserved.
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.

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
0b

1

0b

DMA Setup FIS Interrupt
(DSS)
Set Device Bits Interrupt
(SDBS)
Unknown FIS Interrupt
(UFS)

2

0b

3

0b

4

0b

Descriptor Processed
(DPS)
Port Connect Change
Status (PCS)

5

0b

6

0b

Device Mechanical
Presence Status (DMPS)

7

0b

Reserved
PhyRdy Change Status
(PRCS)

21:8
22

0b

Incorrect Port Multiplier
Status (IPMS)

23

0b

Overflow Status (OFS)

24

0b

Reserved
Interface Non-fatal Error
Status (INFS)
Interface Fatal Error
Status (IFS)

25
26

0b

27

0b

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

Description
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.
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.
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.
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
Read Only
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
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.

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
0b

Host Bus Fatal Error
Status (HBFS)

29

0b

Task File Error Status
(TFES)
Cold Port Detect Status
(CPDS)

30

0b

31

0b

Description
Indicates that the HBA encountered a data error
(uncorrectable ECC / parity) when reading from or writing to
system memory.
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’.

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)
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)
Device Mechanical
Presence Enable
(DMPE)

Bits
0

Default
0b

1

0b

2

0b

3

0b

4

0b

5

0b

6

0b

7

0b

Reserved
PhyRdy Change Interrupt
Enable (PRCE)
Incorrect Port Multiplier
Enable (IPME)
Overflow Enable (OFE)

21:8
22

0b

23

0b

24

0b

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

0b

27

0b

28

0b

29

0b

30

0b

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

Description
When set, GHC.IE is set, and P0IS.DHRS is set, the HBA
shall generate an interrupt.
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.
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.
When set, and GHC.IE and P0IS.OFS are set, the HBA shall
generate an interrupt.
Reserved
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.
When set, GHC.IE is set, and P0S.TFES is set, the HBA shall
generate an interrupt.

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
0b

Description
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
Start (ST)

Bits
0

Default
0b

Spin-Up Device (SUD)

1

1b

Power On Device (POD)

2

1b

Command List Override
(CLO)

3

0b

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

Reserved

7:5

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

Description
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’.
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.

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

Mechanical Presence
Switch State (MPSS)

13

1b

FIS Receive Running
(FR)
Command List Running
(CR)
Cold Presence State
(CPS)

14

0b

15

0b

16

0b

Port Multiplier Attached
(PMA)

17

0b

Hot Plug Capable Port
(HPCP)

18

1b

Mechanical Presence
Switch Attached to Port
(MPSP)

19

0b

Cold Presence Detection
(CPD)

20

0b

External SATA Port
(ESP)

21

0b

Reserved

23:22

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

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.
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.
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’.
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.
Reserved

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
Device is ATAPI (ATAPI)

Bits
24

Default
0b

Drive LED on ATAPI
Enable (DLAE)

25

0b

Aggressive Link Power
Management Enable
(ALPE)

26

0b

Aggressive Slumber /
Partial (ASP)

27

0b

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

Description
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’.
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.
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.

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
0h

Description
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

Definition

Fh - 7h

Reserved

6h

5h - 3h

Slumber: This shall cause the HBA to
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.
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

Active: This shall cause the HBA to
request a transition of the interface into the
active state.

0h

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
Status (STS)

ERROR
Reserved

Bits
7:0

Default
7Fh

15:8
31:16

00h

Description
Contains the latest copy of the task file status register. Fields
of note in this register that affect AHCI hardware operation
are:

Bit

Field

Definition

7

BSY

Indicates the interface is busy

6:4

cs

3

DRQ

2:1

cs

0

ERR

Command specific
Indicates a data transfer is requested
Command specific
Indicates an error during the transfer.

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
Signature (SIG)

Bits
31:0

Default
FFFFFFFFh

Description
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
Device Detection (DET)

Bits
3:0

Default
0h

Description
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

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

Indicates the negotiated interface communication speed.
0h
Device not present or communication not
established
1h
Generation 1 communication rate negotiated
2h
Generation 2 communication rate negotiated
All other values reserved. Read Only

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
Interface Power
Management (IPM)

Bits
11:8

Reserved

31:12

Default
0h

Description
Indicates the current interface state:
0h
Device not present or communication not
established
1h
Interface in active state
2h
Interface in Partial power management state
6h
Interface in Slumber power management state
All other values reserved. Read Only
Reserved

Port-N Serial ATA Control – RW – 32 bits [Mem_reg: ABAR + port offset + 2Ch]
Field Name
Device Detection
Initialization (DET)

Bits
3:0

Default
0h

Description
Controls the HBA’s device detection and interface
initialization.
0h
1h

4h

No device detection or initialization action
requested
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.
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
No speed negotiation restrictions
1h
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
Interface Power
Management Transitions
Allowed (IPM)

Select Power
Management (SPM)
Port Multiplier Port
(PMP)
Reserved

Bits
11:8

Default
0h

Description
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.

15:12

0h

0h
No interface restrictions
1h
Transitions to the Partial state disabled
2h
Transitions to the Slumber state disabled
3h
Transitions to both Partial and Slumber states
disabled
All other values reserved
Read Only

19:16

0h

Read Only

31:20

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

Reserved

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
ERROR

Bits
15:0

Default
0000h

Description
The ERR field contains error information for use by host
software in determining the appropriate response to the error
condition.
15:12

Reserved

11

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
elasticity buffer overflow, a primitive misalignment, 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.

10

Protocol Error (P): A violation of the Serial ATA
protocol was detected.

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.

8

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.

7:2

Reserved

1

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.

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
Diagnostics (DIAG)

Bits
31:16

Default
0000h

Description
Contains diagnostic error information for use by diagnostic
software in validating correct operation or isolating failure
modes:
Write ‘1’ clears these bits
31:27

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

Reserved

26

Exchanged (X): When set to one this bit
indicates a COMINIT signal was received. This
bit is reflected in the P0IS.PCS bit.

25

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.

24

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.

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.

22

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.

21

CRC Error (C): Indicates that one or more CRC
errors occurred with the Link Layer.

20

Disparity Error (D): This field is not used by
AHCI. This bit is always 0 in current
implementation.

19

10B to 8B Decode Error (B): Indicates that one
or more 10B to 8B decoding errors occurred.

18

Comm Wake (W): Indicates that a Comm Wake
signal was detected by the Phy.

17

Phy Internal Error (I): Indicates that the Phy
detected some internal error. This bit is always 0
in current implementation.

16

PhyRdy Change (N): Indicates that the PhyRdy
signal changed state. This bit is reflected in the
P0IS.PRCS bit.

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
Device Status (DS)

Bits
31:0

Default
00000000h

Description
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
Commands Issued (CI)

Bits
31:0

Default
00000000h

Description
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
PM Notify (PMN)

Bits
15:0

Default
0000h

Description
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

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

Reserved

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:
ACh
0Fh

61/64/65/68/6Bh
AD:AC
AD:AC
78h

5B/5Ch

2.2.1

OHCI Registers (Device 19, Function 0, 1, 2, 3, 4)

2.2.1.1

PCI Configuration Registers (PCI_Reg)

3Ch
BEh

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 OpenHCIcompliant 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
Status
Revision ID / Class Code
Miscellaneous
BAR_OHCI
Subsystem Vendor ID / Subsystem ID
Capability Pointer
Interrupt Line
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
MSI Address
MSI Data
HT MSI Support

Offset Address
00h
04h
06h
08h
0Ch
10h
2Ch
34h
3Ch
40h – 41h
42h – 43h
50h
58h
5Ch
68h – 69h
74h
D0h
D4h
D8h
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
Status
Revision ID / Class Code
Miscellaneous
BAR_OHCI
Subsystem Vendor ID / Subsystem ID
Capability Pointer
Interrupt Line
MSI Control
MSI Address
MSI Data

Offset Address
00h
04h
06h
08h
0Ch
10h
2Ch
34h
3Ch
D0h
D4h
D8h

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
1002h

Description
Vendor ID

©2008 Advanced Micro Devices, Inc.

OCHI USB 1.1 and EHCI USB 2.0 Controllers

AMD SB600 Register Reference Manual

Proprietary

Page 45

Device / Vendor ID – R - 32 bits - [PCI_Reg : 00h]
Field Name
DEV_ID

Bits
31:16

Default
Function 0: 4387h
Function 1: 4388h
Function 2: 4389h
Function 3: 438Ah
Function 4: 438Bh

Description

Field Name
IO Space
Accesses
Memory Space
Accesses
Bus Master

Bits
0

Default
0b

1

0b

2

0b

Special Cycle
Memory Write
and Invalidate
Command
VGA Palette
Register
Accesses
Parity Enable

3
4

0b
0b

5

0b

Hard-wired to 0, indicating the device should treat palette write accesses
like all other accesses.

6

0b

Reserved
SERR# Enable

7
8

0b
0b

Fast Back-toBack Enable

9

0b

Interrupt Disable

10

0b

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#.
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

Device ID

Command – RW - 16 bits - [PCI_Reg : 04h]

Reserved

15:11

Description
A value of 0 disables the device response.
A value of 1 allows the device to respond to I/O Space accesses.
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.

Status – R - 16 bits - [PCI_Reg : 06h]
Field Name
Reserved
Interrupt Status

Bits
2:0
3

Default

Capabilities List

4

1b

66 MHz Capable
Reserved
Fast Back-toBack Capable

5
6
7

1b

0b

1b

Description
Reserved
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.
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.
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
0b

DEVSEL timing
Signaled Target
Abort
Received Target
Abort
Received Master
Abort
Signaled System
Error
Detected Parity
Error

10:9
11

01b
0b

12

0b

13

0b

14

0b

15

0b

Field Name
Revision ID
PI

Bits
7:0
15:8

Default
00h
10h

SC

23:16

03h

BC

31:24

0Ch

Description
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
This bit is set by a target device whenever it terminates a transaction
with Target-Abort.
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]
Description
Revision ID.
Programming Interface. A constant value of ‘10h’ indentifies the device
being an OpenHCI Host Controller.
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
Cache Line Size

Bits
7:0

Default
00h

Latency Timer

15:8

00h

Header Type

23:16

80h/00h

Description
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.
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.
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.

BIST

31:24

00h

Field Name
IND

Bits
0

Default
0b

TP

2:1

0h

Bits [22:16] are hard-wired to 00h.
Hard-wired to 00h, indicating no build-in BIST support.

Bar_OHCI – RW - 32 bits - [PCI_Reg : 10h]
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.
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

BAR

Bits
3

Default
0b

11:4

00h

31:12

000h

Description
Prefetch memory. A constant value of ‘0’ indicates that there is no
support for “prefetchable memory”. Read Only.
Represents a maximum of 4-KB addressing space for the OpenHCi’s
operational registers. Read Only.
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
7:0

Default
D0h

Description
Address of the 1st element of capability link.

Interrupt Line – RW – 32 bits - [PCI_Reg : 3Ch]
Field Name
Interrupt Line

Interrupt Pin

Bits
7:0

Default
00h

15:8
01h
02h
03h
02h
03h

MIN_GNT

23:16

00h

MAX_LAT

31:24

00h

Description
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.
Read Only by default.
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#.
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
TRDY Timer

Bits
7:0

Default
80h

Description
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

Reserved

15:13

0h

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

Port Disable (OHCI0 only) – RW - 16 bits - [PCI_Reg : 42h]
Field Name
Port_disable

Reserved

Bits
9:0

Default
00h

15:10

00h

Description
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

OHCI Misc Control (OHCI0 only) – RW - 16 bits - [PCI_Reg: 50h]
Field Name
Reserved
DisUsbS3OvrCur
Reserved
OHCI Cache Enable
OHCI Prefetch Enable
SMI Handshake Disable
Reserved

Bits
7:0
8

Default
00h
0b

9
10
11
12

0b
1b
1b
0b

15: 13

0h

Description
Reserved.
Set to 1 to disable over-current detection for both EHCII and
OHCI.
Reserved.
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.

Over Current Control 1 (OHCI0 only) – R - 32 bits - [PCI_Reg : 58h]
Field Name
Port0 OverCurrent Control

Bits
3:0

Default
Fh

Port1 OverCurrent Control

7:4

Fh

Port2 OverCurrent Control

11:8

Fh

Port3 OverCurrent Control

15:12

Fh

Port4 OverCurrent Control

19:16

Fh

Description
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.
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.

©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
Port5 OverCurrent Control

Bits
23:20

Default
Fh

Description
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
27:24
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.
Port7 OverCurrent Control
31:28
Fh
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
Port8 OverCurrent Control

Bits
3:0

Default
Fh

Description
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
Reserved

Bits
9:0

Default
00h

15:10

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

©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
Retry counter

Reserved
Timeout Timer

Bits
7:0

Default
FFh

23:8
31:24

0000h
80h

Description
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
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
Next Item Pointer
MSI Control Out
Reserved
MSI Control
Reserved

Bits
7:0
15:8
16
19:17
22:20
31:23

Default
05h
00h
0b
0h
0h
00h

Description
MSI USB ID. Read only.
Pointer to next capability structure
Set to 1 to disable IRQ. Use MSI instead.
Reserved
MSI control field
Reserved

MSI Address – RW - 32 bits - [PCI_Reg : D4h]
Field Name
MSI Address

Bits
31:0

Field Name
MSI Data

Bits
15:0

Default
0h

Description
System-specified message address.

MSI Data – RW - 16 bits - [PCI_Reg : D8h]

2.2.1.2

Default
0h

Description
System-specified message.

OHCI Operational Registers (MEM_Reg)

The Host Controller (HC) contains a set of on-chip operational registers, which are mapped into a noncacheable 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
HcControl
HcCommandStatus
HcInterruptStatus
HcInterruptEnable
HcInterruptDisable
HcHCCA
HcPeriodCurrentED
HcControlHeadED
HcControlCurrentED
HcBulkHeadED

Offset Address
0h
4h
8h
Ch
10h
14h
18h
1Ch
20h
24h
28h

©2008 Advanced Micro Devices, Inc.

OCHI USB 1.1 and EHCI USB 2.0 Controllers

AMD SB600 Register Reference Manual

Proprietary

Page 51

Register Name
HcBulkCurrentED
HcDoneHead
HcFmInterval
HcFmRemaining
HcFmNumber
HcPeriodicStart
HcLSThreshold
HcRhDescriptorA
HcRhDescriptorB
HCRhStatus
HcRhPortStatus[1]
…
HcRhPortStatus[NDP]

Offset Address
2Ch
30h
34h
38h
3Ch
40h
44h
48h
4Ch
50h
54h
…
54+4*NDP

HcRevision – R - 32 bits - [MEM_Reg : 00h]
Field Name
REV
L

Bits
7:0

Default
10h

8

1b

Reserved

31:9

Field Name
CBSR

Bits
1:0

Description
Revision.
This read-only field contains the version of HCI specification.
Legacy
This read-only field is 1, indicating that the legacy support registers are
present in this HC.
Reserved

HcControl - 32 bits - [MEM_Reg : 04h]
Default
00b

HCD
RW

HC
R

Description
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
3

Default
0b

HCD
RW

HC
R

CLE

4

0b

RW

R

BLE

5

0b

RW

R

7:6

00b

IE

HCFS

RW

RW

Description
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).
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.
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.

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.

OCHI USB 1.1 and EHCI USB 2.0 Controllers

AMD SB600 Register Reference Manual

Proprietary

Page 53

HcControl - 32 bits - [MEM_Reg : 04h]
Field Name

Bits
8

Default
0b

RWC

9

RWE

10

IR

Reserved

HCD
RW

HC
R

0b

RW

RW

0b

RW

R

Description
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.
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.
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

HcCommandStatus - 32 bits - [MEM_Reg : 08h]
Field Name
HCR

Bits
0

Default
0b

HCD
RW

HC
RW

Description
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.

OCHI USB 1.1 and EHCI USB 2.0 Controllers

AMD SB600 Register Reference Manual

Proprietary

Page 54

HcCommandStatus - 32 bits - [MEM_Reg : 08h]
Field Name
CLF

Bits
1

Default
0b

BLF

2

0b

OCR

3

0b

HCD
RW

HC
RW

RW

RW

RW

RW

Description
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.
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.

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

Reserved

15:4
17:16

00b

31:18

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

©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
0b

HCD
RW

HC
RW

WDH

1

0b

RW

RW

SF

2

0b

RW

RW

RD

3

0b

RW

RW

UE

4

0b

RW

RW

FNO

5

0b

RW

RW

RHSC

6

0b

RW

RW

Reserved
OC

29:7
30

0b

RW

RW

Reserved

31

Description
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
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.
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.
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.
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
This bit is set when the content of HcRhStatus or the
content of any of HcRhPortStatus
[NumberofDownstreamPort] has changed.
Reserved
OwnershipChange
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

HcInterruptEnable - 32 bits - [MEM_Reg : 10h]
Field Name
SO

Bits
0

Default
0b

HCD
RW

HC
RW

WDH

1

0b

RW

RW

SF

2

0b

RW

RW

Description
0 - Ignore
1 - Enable interrupt generation due to Scheduling
Overrun.
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.

OCHI USB 1.1 and EHCI USB 2.0 Controllers

AMD SB600 Register Reference Manual

Proprietary

Page 56

HcInterruptEnable - 32 bits - [MEM_Reg : 10h]
Field Name
RD

Bits
3

Default
0b

UE

4

FNO
RHSC
Reserved
OC
MIE

HCD
RW

HC
W

0b

RW

RW

5

0b

RW

RW

6

0b

RW

RW

29:7
30

0b

RW

RW

31

0b

RW

R

Description
0 - Ignore
1 - Enable interrupt generation due to Resume
Detect.
0 - Ignore
1 - Enable interrupt generation due to Unrecoverable
Error.
0 - Ignore
1 - Enable interrupt generation due to Frame Number
Overflow.
0 - Ignore
1 - Enable interrupt generation due to Root Hub
Status Change.
Reserved
0 - Ignore
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.

HcInterruptDisable - 32 bits - [MEM_Reg : 14h]
Field Name
SO

Bits
0

Default
0b

HCD
RW

HC
R

WDH

1

0b

RW

R

SF

2

0b

RW

R

RD

3

0b

RW

R

UE

4

0b

RW

R

FNO

5

0b

RW

R

RHSC

6

0b

RW

R

29:7
30

0b

RW

R

31

0b

RW

R

Bits
7:0
31:8

Default

HCD

HC

000000h

RW

R

Reserved
OC
MIE

Description
0 - Ignore
1 - Disable interrupt generation due to Scheduling
Overrun.
0 - Ignore
1 - Disable interrupt generation due to HcDoneHead
Writeback.
0 - Ignore
1 - Disable interrupt generation due to Start of Frame.
0 - Ignore
1 - Disable interrupt generation due to Resume
Detect.
0 - Ignore
1 - Disable interrupt generation due to Unrecoverable
Error.
0 - Ignore
1 - Disable interrupt generation due to Frame Number
Overflow.
0 - Ignore
1 - Disable interrupt generation due to Root Hub
Status Change.
Reserved
0 - Ignore
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.

HcHCCA - 32 bits - [MEM_Reg : 18h]
Field Name
Reserved
HCCA

Description
Reserved
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

Field Name
Reserved
BHED

Bits
3:0
31:4

Field Name
Reserved

Bits
3:0

Default
0000000
h

HCD
RW

HC
RW

Description
Reserved
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]
Default
0b

HCD
RW

HC
R

Description
Reserved
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]
Default

HCD

HC

Description
Reserved

©2008 Advanced Micro Devices, Inc.

OCHI USB 1.1 and EHCI USB 2.0 Controllers

AMD SB600 Register Reference Manual

Proprietary

Page 58

HcBulkCurrentED - 32 bits - [MEM_Reg : 2Ch]
Field Name
BCED

Bits
31:4

Default
0000000
h

HCD
RW

HC
RW

Field Name
Reserved
DH

Bits
3:0
31:4

Default

HCD

HC

0b

R

RW

Field Name
FI

Bits
13:0

Default
2EDFh

HCD
RW

HC
R

Reserved
FSMPS

15:14
30:16

0000h

RW

R

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]
Description
Reserved
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]

FIT

31

0b

RW

R

Description
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

FSLargestDataPacket
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.
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
0000h

Reserved
FRT

30:14
31

0b

FN

Bits
15:0

Default
0000h

Reserved

31:16

HCD
R

HC
RW

R

RW

Description
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
FrameRemainingToggle
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

HCD
R

HC
RW

Description
This is incremented when HcFmRemaining is reloaded. 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

HcPeriodicStart - 32 bits - [MEM_Reg : 40h]
Field Name
PS

Bits
13:0

Default
0000h

HCD
RW

HC
R

Description

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

Field Name
LST

Bits
11:0

Reserved

31:12

Reserved
HcLSThreshold - 32 bits - [MEM_Reg : 44h]
Default
0628h

HCD
RW

HC
R

Description
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

©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
02h

HCD
R

HC
R

PSM

8

0b

RW

R

NPS

9

1b

RW

R

DT

10

0b

R

R

OCPM

11

1b

RW

R

NOCP

12

0b

RW

R

23:13
31:24

02h

RW

R

Reserved
POTPGT

Description

NumberDownstreamPorts
These bits specify the number of downstream ports
supported by the Root Hub.
PowerSwitchingMode
This bit is used to specify how the power switching of
the Root Hub ports is controlled. It is implementationspecific. 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).
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 perport switching.
0: Ports are power switched
1: Ports are always powered on when the HC is
powered on
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.
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
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
PowerOnToPowerGoodTime
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
DR

Bits
15:0

Default
0000h

HCD
RW

HC
R

PPCM

31:16

0000h

RW

R

Bits
0

Default
0b

Description
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
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

OCI

Reserved
DRWE

HCD
RW

HC
R

1

0b

R

RW

14:2
15

0b

RW

R

Description
(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.
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.
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

OCIC

Reserved
CRWE

Bits
16

Default
0b

HCD
RW

HC
R

17

0b

RW

RW

30:18
31

-

W

R

Description
(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.
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
(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
0

Default
0b

HCD
RW

HC
RW

Description
(Read) CurrentConnectStatus
This bit reflects the current state of the downstream
port.
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
1

Default
0b

HCD
RW

HC
RW

Description
(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

PSS

POCI

2

3

0b

0b

RW

RW

RW

RW

(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.
(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
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
4

Default
0b

Reserved
PPS

7:5
8

0b

9

X

LSDA

Reserved

15:10

HCD
RW

RW

RW

HC
RW

RW

RW

Description
(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
(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.
(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

©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
16

Default
0b

HCD
RW

HC
RW

PESC

17

0b

RW

RW

PSSC

18

0b

RW

RW

OCIC

19

0b

RW

RW

PRSC

20

0b

RW

RW

Reserved

31:21

2.2.2

USB Legacy Keyboard Operation

2.2.2.1

Overview

Description
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.
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
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
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

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

AMD SB600 Register Reference Manual

Proprietary

Page 66

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 nonlegacy 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

AMD SB600 Register Reference Manual

Proprietary

Page 67

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
R

HC
R

8

1b

R

R

Legacy
Reserved

31:9

Description
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 Support Registers
Four operational registers are used to provide the legacy support. Each of these registers is located on a 32bit 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

HceInput

The emulation side of the legacy Input Buffer register.

108h

HceOutput

The emulation side of the legacy Output Buffer register where the keyboard and
mouse data is to be written by software.

10Ch

HceStatus

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
outlined in Table 2-3.
Table 2-3 Emulated Registers
I/O
Address

Cycle Type

Register Contents
Accessed/Modified

Side Effects

60h

IN

HceOutput

IN from port 60h will set OutputFull in
HceStatus to 0

60h

OUT

HceInput

OUT to port 60h will set InputFull to 1 and
CmdData to 0 in HceStatus.

64h

IN

HceStatus

IN from port 64h returns current value of
HceStatus with no other side effect.

64h

OUT

HceInput

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
Field Name
OutputData

Bits
7:0

Reserved

31:8

Default
00h

Description
This register hosts data that is returned when an I/O read of port 60h
is performed by application software.
Reserved

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
OutputFull

Bits
0

Default
0b

InputFull

1

0b

Flag

2

0b

CmdData

3

0b

Inhibit Switch

4

0b

AuxOutputFull

5

0b

6
7
31:8

0b
0b

Time-out
Parity
Reserved

Description
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.
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.
IRQ12 is asserted whenever this bit is set to 1 and OutputFull is set to 1
and the IRQEn bit is set.
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

AMD SB600 Register Reference Manual

Proprietary

Page 69

HceControl Register
Table 2-7 HceControl Register
HceControl - 32 bits
Field Name
EmulationEnable

Bits
0

Reset
0b

EmulationInterrupt

1

-

CharacterPending

2

0b

IRQEn

3

0b

ExternalIRQEn

4

0b

GateA20Sequence

5

0b

IRQ1Active

6

0b

IRQ12Active

7

0b

A20State

8

0b

Reserved

31:9

-

2.2.3

Description
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
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.
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.
Must read as 0s.

EHCI Registers (Device 19, Function 5)

The Enhanced USB Host Controller contains two sets of software accessible hardware registers—Memorymapped 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
Status
Revision ID / Class Code
Miscellaneous

Offset Address
00h
04h
06h
08h
0Ch

©2008 Advanced Micro Devices, Inc.

OCHI USB 1.1 and EHCI USB 2.0 Controllers

AMD SB600 Register Reference Manual

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
PME Data / Status
MSI Control
MSI Address
MSI Data
EHCI Debug Port Support
USB Legacy Support Extended Capability – USBLEGSUP
USB Legacy Support Control/Status - USBLEGCTLSTS
1
The EECP field is in the read-only HCCPARAMS register [MEM_Reg: 08h] with the value of A0h.

10h
2Ch
34h
3Ch
50h
60h
61h
C0h
C4h
D0h
D4h
D8h
E4h
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
1002h
Function 5: 4386h

Description
Vendor ID
Device ID

Command – RW - 16 bits - [PCI_Reg : 04h]
Field Name
IO Space Accesses

Bits
0

Default
0b

Memory Space Accesses

1

0b

Bus Master

2

0b

Special Cycle
Memory Write and
Invalidate Command
VGA Palette Register
Accesses
Parity Enable

3
4

0b
0b

5

0b

6

0b

Reserved
SERR# Enable

7
8

0b
0b

Fast Back-to-Back Enable

9

0b

Interrupt Disable

10

0b

Reserved

15:11

Description
A value of 0 disables the device response.
A value of 1 allows the device to respond to I/O Space
accesses.
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.
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.
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

©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
2:0
3

Default

Capabilities List

4

1b

66 MHz Capable
Reserved
Fast Back-to-Back
Capable
Master Data Parity Error

5
6
7

1b
1b

8

0b

DEVSEL timing
Signaled Target Abort

10:9
11

01b
0b

Received Target Abort

12

0b

Received Master Abort

13

0b

Signaled System Error
Detected Parity Error

14
15

0b
0b

0b

Description
Reserved
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.
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.
Reserved
Hard-wired to 1, indicating Fast Back-to-Back capable.
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
This bit is set by a target device whenever it terminates a
transaction with Target-Abort.
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
7:0
15:8

Default
00h
20h

SC

23:16

03h

BC

31:24

0Ch

Description
Revision ID.
Programming Interface. A constant value of ‘20h’ indentifies
the device being an EHCI Host Controller.
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
Cache Line Size

Bits
7:0

Default
00h

Latency Timer

15:8

00h

Description
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.

©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
23:16

Default
00h

BIST

31:24

00h

Description
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.
Hard-wired to 00h, indicating no build-in BIST support.

BAR_EHCI – RW - 32 bits - [PCI_Reg : 10h]
Field Name

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.
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.
PM
3
0b
Prefetch Memory. A constant value of ‘0’ indicates that
there is no support for “prefetchable memory”.
Read Only.
Reserved
7:4
0h
Read Only.
BA
31:8
0h
Base Address. Corresponds to memory address signals
[31:8].
BAR register. Base address used for the memory mapped capability and operational registers.
IND

Bits
0

Default
0b

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
7:0

Default
C0h

Description
Address of the 1st element of capability link.

©2008 Advanced Micro Devices, Inc.

OCHI USB 1.1 and EHCI USB 2.0 Controllers

AMD SB600 Register Reference Manual

Proprietary

Page 73

Interrupt Line - RW - 32 bits - [PCI_Reg : 3Ch]
Field Name
Interrupt Line

Bits
7:0

Default
00h

Interrupt Pin

15:8

04h

MIN_GNT

23:16

00h

MAX_LAT

31:24

00h

Description
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.
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
Cache Timer Control

Bits
4:0
5
6
15:7
19:16

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
Control the purge timeout timer if HC doesn't come back to
request the data.
Counter

Cache Prefetch Disable
Reserved
Disable Async QH Cache
on IN xfer

20

0b

23:21
24

0b

Max Time (ns)
0
45
1
90
2
180
3
360
4
720
5
1440
6
2880
7
5760
8
11520
9
23040
A
46080
B
92160
C
184320
D
368640
E
737280
F
No limit
0: Enable EHCI cache prefetch.
1: Disable EHCI cache prefetch.

Min Time (ns)
30
60
120
240
480
960
1920
3840
7680
15360
30720
61440
122880
245760
491520

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
Disable Async Data
Cache
Disable Periodic List
Cache
Reserved

Bits
25

Default
0b

Description
Set to 1 to disable async QH/QTD cache during OUT xfer.

26

0b

Set to 1 to disable async data cache request.

27

0b

Set to 1 to disable periodic list cache.

31:28

0h

Reserved

SBRN – R - 8 bits - [PCI_Reg : 60h]
Field Name
SBRN

Bits
7:0

Default
20h

Description
Hard-wired to 20h.

FLADJ – RW - 8 bits - [PCI_Reg : 61h]
Field Name
FLADJ

Bits
5:0

Default
20h

Description
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]
0 [00h]
1 [01h]
2 [02h]
…
31 [1Fh]
32 [20h]
…
62 [3Eh]
63 [3Fh]

Reserved

7:6

Frame Length
(# High Speed bit
times in decimals)
59488
59504
59520
…
59984
60000
…
60480
60496

Reserved.

PME Control – RW - 32 bits - [PCI_Reg : C0h]
Field Name
Cap_ID

Bits
7:0

Default
01h

Next ItemPointer

15:8

D0h

Version

18:16

010b

PME clock

19

0b

Reserved

20

Description
Read only.
A value of “01h” identifies the linked list item as being the
PCI Power Management registers.
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.
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
21

Default
0b

Aux_Current

24:22

000b

D1_Support

25

1b

D2_Support

26

1b

31:27

0Fh

DSI

PME_Support

Description
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.
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.
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.
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
PowerState

Bits
1:0

Default
00b

Reserved
PME_En

7:2
8

0b

Data_Select

12:9

0000b

Data_Scale

14:13

00b

PME_Status

15

0b

Reserved

21:16

Description
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
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

©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#

BPCC_En

Data

Bits
22

Default
1b

23

0b

31:24

00h

Description
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.
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
MSI Control
64-bit Address Capable

Bits
7:0
15:8
16
19:17
22:20
23

Default
05h
E4h
0b
0h
0h
0b

Reserved

31:24

00h

Description
MSI USB ID. Read only.
Pointer to next capability structure
Set to 1 to disable IRQ. Use MSI instead.
Reserved
MSI control field
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

MSI Address – RW - 32 bits - [PCI_Reg : D4h]
Field Name
MSI Address

Bits
31:0

Field Name
MSI Data

Bits
15:0

Default
0h

Description
System-specified message address.

MSI Data – RW - 16 bits - [PCI_Reg : D8h]
Default
0h

Description
System-specified message

DBUG_PRT Control – R - 32 bits - [PCI_Reg : E4h]
Field Name
CAP_ID
Next Item Pointer
Offset

Bits
7:0

Default
0Ah

15:8
28:16

00h
0E0h

Description
The value of 0Ah in this field identifies that the function
supports a Debug Port.
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
31:29

Bar #

Default
1h

Description
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
Capability ID

Bits
7:0

Default
01h

Next EHCI Extended
Capability Pointer

15:8

00h

16

0b

Reserved
HC OS Owned Semaphore

23:17
24

0b

Reserved

31:25

HC BIOS Owned
Semaphore

Description
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.
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.
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.
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.

USBLEGCTLSTS – RW - 32 bits - [PCI_Reg : EECP + 04h]
Field Name
USB SMI Enable

Bits
0

Default
0b

SMI on USB Error Enable

1

0b

SMI on Port Change
Enable

2

0b

SMI on Frame List Rollover
Enable R/W

3

0b

SMI on Host System Error
Enable

4

0b

SMI on Async Advance
Enable

5

0b

Reserved.

12:6

Description
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.
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.
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.
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
SMI on BAR Enable

Bits
13

Default
0b

14

0b

15

0b

SMI on USB Complete

16

0b

SMI on USB Error

17

0b

SMI on Port Change
Detect.

18

0b

SMI on Frame List Rollover

19

0b

SMI on Host System Error

20

0b

SMI on Async Advance

21

0b

Reserved.
SMI on OS Ownership
Change

28:22
29

0b

SMI on PCI Command

30

0b

SMI on BAR R/WC

31

0b

2.2.3.2

Description
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.
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.
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.
Read Only.
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.
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.

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
Host Controller Interface Version – HCIVERSION
Structural Parameters – HCSPARAMS
Capability Parameters - HCCPARMAS
Companion Port Route Description – HCSP-PORTROUTE

Offset Address
00h
01h
02h
04h
08h
0Ch

©2008 Advanced Micro Devices, Inc.

OCHI USB 1.1 and EHCI USB 2.0 Controllers

AMD SB600 Register Reference Manual

Proprietary

Page 79

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
15:0

Default
0100h

Description
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
3:0

Default
Ah

4

0b

Reserved
Port Routing Rules

6:5
7

0b

Number of Ports per
Companion Controller
(N_PCC)

11:8

2h

Number of Companion
Controller (N_CC)

15:12

5h

16

0b

Port Power Control (PPC)

Port Indicators
(P_INDICATOR)

Description
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.
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.
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.
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.
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

Reserved

31:24

Default
1h

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 (onebased) 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.
These bits are reserved and should be set to zero.

HCCPARAMS – R - 32 bits - [MEM_Reg : 08h]
Field Name
64-bit Addressing
Capability

Bits
0

Default
0b

Programmable Frame List
Flag

1

1b

Asynchronous Schedule
Park Capability

2

0b

Reserved
Isochronous Scheduling
Threshold

3
7:4

1h

EHCI Extended
Capabilities Pointer (EECP)

15:8

A0h

Reserved

31:16

Description
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.
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.
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.
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
Offset Address
USB Command – USBCMD
EHCI_EOR + 00h
USB Satus – USBSTS
EHCI_EOR + 04h
USB Interrupt Enable – USBINTR
EHCI_EOR + 08h
USB Frame Index – FRINDEX
EHCI_EOR + 0Ch
4G Segment Selector – CTRLDSSEGMENT
EHCI_EOR + 10h
Frame List Base Address – PERIODICLISTBASE
EHCI_EOR + 14h
Next Asynchronous List Address – ASYNCLISTADDR
EHCI_EOR + 18h
Reserved
EHCI_EOR + (1Ch~3Fh)
Configured Flag – CONFIGFLAG
EHCI_EOR + 40h
Port Status/Control – PORTSC (1-N_PORTS)
EHCI_EOR + (44h~68h)
Packet Buffer Threshold Values
EHCI_EOR + 84h
USB PHY Status 0
EHCI_EOR + 88h
USB PHY Status 1
EHCI_EOR + 8Ch
USB PHY Status 2
EHCI_EOR + 90h
UTMI Control
EHCI_EOR + 94h
Bist Control / Loopback Test
EHCI_EOR + 98h
EOR MISC Control
EHCI_EOR + 9Ch
USB Phy Calibration
EHCI_EOR + A0h
EOR Debug Purpose
EHCI_EOR + A8h
USB Debug Port
0E0h~0F0h (* Note)
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
Run/Stop (RS)

Bits
0

Default
0b

Description
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
(HCRESET)

Bits
1

Default
0b

Frame List Size

3:2

00b

Periodic
Schedule
Enable

4

0b

Asynchronous
Schedule
Enable

5

0b

Interrupt on
Async Advance
Doorbell

6

0b

Light Host
Controller Reset
(Optional)

7

0b

Description
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.
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]
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.
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
9:8

Default
00b

Reserved
Asynchronous
Schedule Park
Mode Enable
(Optional)

10
11

0b

15:12
23:16

08h

Reserved
Interrupt
Threshold
Control

Description
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]
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.
This bit is reserved and should be set to Zero.
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)

Reserved

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.
These bits are reserved and should be set to Zeros.

31:24

USBSTS - RW - 32 bits - [EOR_Reg : EHCI_EOR + 04h]
Field Name
USBINT

USBERRINT

Bits
0

Default
0b

1

0b

Description
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).
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
2

Default
0b

Frame List
Rollover

3

0b

Host System Error

4

0b

Interrupt on Async
Advance

5

0b

11:6
12

1b

Reclamation

13

0b

Periodic Schedule
Status

14

0b

Asynchronous
Schedule Status

15

0b

Reserved
HCHalted

Reserved

31:16

Description
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. 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.
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.
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. This is a read-only status bit, which is used to detect an
empty asynchronous schedule. [Read-only]
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. 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]
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
0

Default
0b

USB Error
Interrupt Enable

1

0b

Port Change
Interrupt Enable

2

0b

Frame List
Rollover Enable

3

0b

Host System Error
Enable

4

0b

Interrupt on Async
Advance Enable

5

0b

Reserved

31:6

Field Name
Frame Index

Bits
13:0

Reserved

31:14

Description
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.
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.
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.
These bits are reserved and should be zero

FRINDEX –RW - 32 bits - [EOR_Reg : EHCI_EOR + 0Ch]
Default
0h

Description
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.
These bits are reserved and should be zero

CTRLDSSEGMENT –RW - 32 bits - [EOR_Reg : EHCI_EOR + 10h]
Field Name
CTRLDSSEGME
NT

Bits
31:0

Default
0h

Description
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
Reserved

Bits
11:0

Default

Base Address

31:12

000h

Description
These bits are reserved. Must be written as 0s. During runtime, the
values of these bits are undefined.
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
4:0
31:5

Field Name
Configure Flag
(CF)

Bits
0

Reserved

31:1

Default
00h

Description
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).

CONFIGFLAG –RW - 32 bits - [EOR_Reg : EHCI_EOR + 40h]
Default
0b

Description
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.
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
0b

Connect Status
Change

1

0b

Port
Enabled/Disabled

2

0b

Port
Enable/Disable
Change

3

0b

Over-current
Active

4

0b

Description
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.
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.
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.
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.

©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

Suspend

Bits
6

Default
0b

7

0b

Description
1 = Resume detected/driven on port.
0 = No resume (K-state) detected/driven on port.
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.
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
0X
Disable
10
Enable
11
Suspend
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
Port Reset

Bits
8

Default
0b

Description
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.

Reserved

9

Line Status

11:10

Port Power

12

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.
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
SE0
Not Low-speed device, perform EHCI reset
10b
J-state
Not Low-speed device, perform EHCI reset
01b
K-state
Low-speed device, release ownership of port
11b
Undefined Not Low-speed device, perform EHCI reset.
This value of this field is undefined if Port Power is zero.
[Read-only]
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
1b
RO - Host controller does not have port power control
switches. Each port is hard-wired to power.
1b
1b/0b RW - Host controller has port power control switches.
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
Port Owner

Bits
13

Default
1b

Port Indicator
Control

15:14

00b

Port Test Control

19:16

0000b

Wake on Connect
Enable
Wake on
Disconnect
Enable
Wake on Overcurrent Enable
Reserved

20

0b

21

0b

22

0b

31:23

Description
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:
Bit Value Meaning
00b
Port indicators are off
01b
Amber
10b
Green
11b
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 nonzero 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):
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
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.
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

Packet Buffer Threshold Values – RW - 32 bits - [EOR_Reg : EHCI_EOR + 84h]
Field Name
IN Threshold

Bits
7:0

Default
10h

Reserved
OUT Threshold

15:8
23:16

60h

Reserved

31:24

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
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

©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
7:0
00h
Read only. PHY Status of Port0
PORT1_PHYStatus
15:8
00h
Read only. PHY Status of Port1
PORT2_PHYStatus 23:16
00h
Read only. PHY Status of Port2
PORT3_PHYStatus 31:24
00h
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
PORT4_PHYStatus
PORT5_PHYStatus
PORT6_PHYStatus
PORT7_PHYStatus

Bits
7:0
15:8
23:16
31:24

Default
00h
00h
00h
00h

Description
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
PORT8_PHYStatus
PORT9_PHYStatus

Bits
15:0
23:16
31:24

Field Name
VControl

Bits
6:0

Default
00h
00h

Description
Reserved
Read only. PHY Status of Port8
Read only. PHY Status of Port9

UTMI Control – RW - 32 bits - [EOR_Reg: EHCI_EOR + 94h]
Default
0h

Description
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 4060% 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

Port Number

16:13

0h

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.
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
Reserved

Bits
17

Default
0b

31:18

Description
RO – To block software write to [16:8] when port router is updating the
field.
Reserved

BIST Control / Loopback Test – RW - 32 bits - [EOR_Reg : EHCI_EOR + 98h]
Field Name
Reserved
Enable Loop Back
test

Bits
7:0
8

Default
00h
0b

Loopback Test
Status

9

0b

Loopback Test
Done
Reserved

10

0b

31:11

00000h

Description
Reserved
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.
Loop back status.
0: CRC Error on Loop Back Receiving Data
1: Good CRC on Loop Back Receiving data
Read Only.
Indicate Loop back test done.

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

Reserved

31:13

00000h

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

USB Common PHY Calibration – RW - 32 bits - [EOR_Reg: EHCI_EOR + A0h]
Field Name
ComCalBus

Bits
6:0

Default
xx

Reserved
NewCalBus
UsbCommonCalib
ration
AddToCommonCa
libration

7
15:8
16

0b
00h
0b

17

0b

Description
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
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.
If clear, the NewCalBus (bit-14:8) replaces the ComCalBus and returns
to the PHY ports.
Reserved

Reserved
31:18
0000h
Note:
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

AMD SB600 Register Reference Manual

Proprietary

Page 92

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
Data Buffer
Device Address

Offset Address
DBase + 00h
DBase + 04h
DBase + (08h~0Ch)
DBase + 10h

Control / Status – RW - 32 bits - [DBUG_Reg : DBase + 00h]
Field Name
Data Length

Bits
3:0

Default
0h

Write/Read#

4

0b

Go

5

0b

Error/Good#

6

0b

Exception

9:7

000b

In Use

10

0b

Reserved
Done

15:11
16

0b

Reserved

27:17

Description
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.
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.)
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.
Read Only
This field indicates the exception when Error/Good# is set. This field
cannot be cleared by software. Reset default = 000b.
Value
Meaning
000b
None
001b
Transaction error: indicates the USB2 transaction
had an error (CRC, bad PID, timeout, etc.)
010b
HW error. Request was attempted (or in progress)
when the port was suspended or reset.
011b-111b
Reserved
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
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

©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
Enabled

Bits
28

Default
0b

Reserved
Owner

29
30

0b

Reserved

31

Description
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
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

USB PIDs – RW - 32 bits - [DBUG_Reg : DBase + 04h]
Field Name
Token PID

Bits
7:0

Default
00h

Send PID

15:8

00h

Received PID

23:16

00h

Reserved

31:24

Description
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.
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

©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
63:0

Default
00000000
_
00000000
h

Field Name
USB Endpoint

Bits
3:0

Default
1h

Reserved
USB Address

7:4
14:8

7Fh

Reserved

31:15

Description
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
be individually accessed. Data Buffer must be written with data before
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]
Description
4-bit field that identifies the endpoint used by the controller for all Token
PID generation.
Reserved
7-bit field that identifies the USB device address used by the controller
for all Token PID generation.
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

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_Reg:
5Ch

AC/AFh

PCI

RTC

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:

PCI_Reg:

98h
5Ch

64/68/6Bh

6Ch

C0h

PCI_Reg:
64h

6Ah

64h

78h

98h

Keyboard Control

PIC / IOAPIC

GPIO

SMBus / I2C

Keyboard Reset
Keyboard Interrupt IRQ 12 filter
External keyboard reset enable
Mouse control
Serirq controller registers

PIC /IOAPIC Enable
IOAPIC Base Address
IOAPIC clock control
PCI_Reg:

GPIO Enables
GPIO Status
Gpio input / output registers

I2C port enables
I2C port Address register
I2C port R/W shadow port
I2C bus revision ID
Smbus base Address
SATA SMBus control

PCI_Reg:

74h

64h

58:50 h

PCI_Reg:
62h

64h

BC h

69h

81:80 h A0:AC h
PCI_Reg:
--

--

PCI_Reg:
D5:D2 h
08h

AD:AC
AD:AC
h
10h

--

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
PCI_Reg:

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

78h

--

PCI_Reg:
49:48 h

41h

PCI_Reg:
--

64h

C0h

F4h

--

90 h

PCI_Reg:
62h
F0h

B0/E0
AD:AC
h
74h

64h
--

Figure 4 SMBus/ACPI PCI Configuration Space Function Block Association

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

SMBus Module and ACPI Block (Device 20, Function 0)
Proprietary

Page 96

2.3.1

PCI Configuration Registers and Extended Registers

2.3.1.1

PCIE Configuration Registers

Register Name
VendorID
DeviceID
Command
STATUS
Revision ID/Class Code
Cache Line Size
Latency Timer
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
Expansion ROM Base Address
Capability Pointer
Interrupt Line
Interrupt Pin
Min_Gnt
Max_Lat
PCI Control
MiscFunction
DmaLimit
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
AzIntMap
Features Enable
SeriallrqControl
RTCProtect
USB Reset
TestMode
IoApic_Conf
IoAddrEnable
GPIO_69_68_66_65_Cntrl
GPIO_3_to_0_Cntrl
GPIO_32_31_14_13_Cntrl
Smbus Base Address
IDE_GPIO_Cntrl

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

Configuration Offset
00h
02h
04h
06h
08h
0Ch
0Dh
0Eh
0Fh
10h
14h
18h
1Ch
20h
24h
28h
2Ch
2Eh
30h
34h
3Ch
3Dh
3Eh
3Fh
40h
41h
42h
43h
48h
49h
50h
52h
54h
56h
5Ah
5Ch
5Dh
62h
63h
64h
69h
6Ah
6Bh
6Ch
74h
78h
7Eh
80h
82h
90h
A0h

SMBus Module and ACPI Block (Device 20, Function 0)
Proprietary

Page 97

Register Name
IDE_GPIO_In
GPIO_48_47_46_37_Cntrl
GPIO_12_to_4_Cntrl
SATA_Cntrl
SataIntMap
MSI_Mapping_Capability
PcilntGpio
UsbIntMap
IoDrvSth
I2CbusConfig
I2CCommand
I2CShadow1
I2Cshadow2
I2CBusRevision
MSI_Weight
AB_REG_BAR
WakeIoAddr
MwaitID
MwaitSts
ExtendedAddrPort
ExtendedDataPort

Configuration Offset
A4h
A6h
A8h
ACh
AFh
B0h
BCh
BEh
C0h
D2h
D3h
D4h
D5h
D6h
E0h
F0h
F4h
F6h
F7h
F8h
FCh

VendorID - R - 16 bits - [PCI_Reg: 00h]
Field Name
Bits
Default
VendorID
15:0
1002h
Vendor ID register: Vendor Identification

Description
Vendor ID

DeviceID - R - 16 bits - [PCI_Reg: 02h]
Field Name
Bits
Default
DeviceID
31:16
4385h
Device ID register: Device Identification Number

Description
Device ID

Command- RW - 16 bits - [PCI_Reg: 04h]
Field Name
I/O Space

Bits
0

Default
1b

Memory Space

1

1b

Bus Master

2

0b

Special Cycle

3

0b

Memory Write &
Invalidate Enable

4

0b

VGA Palette Snoop

5

0b

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

Description
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.
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
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]

SMBus Module and ACPI Block (Device 20, Function 0)
Proprietary

Page 98

Command- RW - 16 bits - [PCI_Reg: 04h]
Field Name
Parity Error Response

Bits
6

Default
0b

Description
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.
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]

Wait Cycle Control

7

0b

SERR# Enable

8

0b

Fast Back-to-Back
Enable

9

0b

Reserved
PCI Command register

15:10

00h

Field Name
Reserved
MSI Mapping Capability

Bits
3:0
4

Default

Description

1/0b

66 MHz Capable

5

1b

UDF Supported

6

0b

Fast Back-to-Back
Capable

7

0b

Data Parity Error
Detected

8

0b

DEVSEL Timing

10:9

01b

Signaled Target Abort

11

0b

Received Target Abort

12

0b

Received Master Abort

13

0b

Signaled System Error
Detected Parity Error

14
15

0b
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]
This bit indicates whether the device is capable of fast back-toback 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.
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.
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.

STATUS- RW - 16 bits - [PCI_Reg: 06h]

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
7:0

Default
11h /
12h /
13h

Class Code
31:8
Revision ID/Class Code register

0C0500h

Description
This field reflects the ASIC revision.
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.

Cache Line Size- R - 8 bits - [PCI_Reg: 0Ch]
Field Name
Cache Line Size

Bits
7:0

Default
00h

Description
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
Latency Timer

Bits
7:0

Default
00h

Description
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
Header type register

Bits
7:0

Default
80h

Description
This device is a multifunction device.

BIST- R - 8 bits - [PCI_Reg: 0Fh]
Field Name
BIST
BIST register

Bits
7:0

Default
00h

Description
The module has no built-in self-test and so this is always 0.

Base Address 0- R - 32 bits - [PCI_Reg: 10h]
Field Name
IO/Memory

Bits
0

Default
1b

Reserved
SmBusBaseAd
Base Address 0 register

3:1
31:4

000b
0000000h

Field Name
Reserved
MultiMediaTimerBaseAd
dr
Base Address 1 register

Bits
9:0
31:10

Field Name
Base Address 2

Bits
31:0

Description
1 = IO
0 = Memory
SMBus Base Address

Base Address 1- R - 32 bits - [PCI_Reg: 14h]
Default
000h
000000h

Description
Hardwired to 0; memory map only
High Precision Event Timer (also called Multi-media Timer)
base address.

Base Address 2- R - 32 bits - [PCI_Reg: 18h]
Default
0000_000
0h

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

Description
Not used and is hardcoded to 0.

SMBus Module and ACPI Block (Device 20, Function 0)
Proprietary

Page 100

Base Address 2- R - 32 bits - [PCI_Reg: 18h]
Field Name
Base Address 2 register

Bits

Field Name
Base Address 3

Bits
31:0

Default

Description

Base Address 3- R - 32 bits - [PCI_Reg: 1Ch]
Default
0000_000
0h

Description
Not used and is hardcoded to 0.

Base Address 3 register

Base Address 4- R - 32 bits - [PCI_Reg: 20h]
Field Name
Base Address 4

Bits
31:0

Default
0000_000
0h

Description
Not used and is hardcoded to 0.

Base Address 4 register

Base Address 5- R - 32 bits - [PCI_Reg: 24h]
Field Name
Base Address 5

Bits
31:0

Default
0000_000
0h

Description
Not used and is hardcoded to 0.

Base Address 5 register

Cardbus CIS Pointer- R - 32 bits - [PCI_Reg: 28h]
Field Name
Cardbus CIS Pointer

Bits
31:0

Default
0000_000
0h

Description
Not used and is hardcoded to 0.

Cardbus CIS Pointer register

Subsystem Vendor ID- W - 16 bits - [PCI_Reg: 2Ch]
Field Name
Bits
Subsystem Vendor ID
15:0
Subsystem Vendor ID register

Default
0000h

Description
Write once.

Subsystem ID- W - 16 bits - [PCI_Reg: 2Eh]
Field Name
Subsystem ID
Subsystem ID register

Bits
15:0

Default
0000h

Description
Write once.

Expansion ROM Base Address - R - 8 bits - [PCI_Reg: 30h]
Field Name
Bits
Default
Expansion ROM Base
7:0
00h
Address
Expansion ROM Base Address register

Description
Not used and is hardcoded to 0.

Capability Pointer - R - 8 bits - [PCI_Reg: 34h]
Field Name
Capability Pointer

Bits
7:0

Default
B0/00h

Description
For K8 system default value is B0h; for P4 system default
value is 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
7:0

Default
00h

Description
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
Interrupt Pin

Bits
7:0

Default
00h

Description
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
Min_Gnt

Bits
7:0

Default
00h

Description
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
Max_Lat

Bits
7:0

Default
00h

Description
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
1:0
2

Default
00b
0b

Reserved
PCI Control register

7:3

0h

Field Name
Reserved
ExtraROM AddrEnable2

Bits
0
1

Default
0b
0b

Reserved
WatchDogDecodeEn
ExtraROM AddrEnable1

2
3
4

0b
0b
0b

MiscfuncEnable

5

0b

7:6

00b

Description
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

MiscFunction- RW - 8 bits - [PCI_Reg: 41h]

Reserved
MiscFunction register

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

Description
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
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.

SMBus Module and ACPI Block (Device 20, Function 0)
Proprietary

Page 102

DmaLimit- RW - 8 bits - [PCI_Reg: 42h]
Field Name
DmaBurstLimit
DmaLimitEnable

Bits
6:0

Default
00h

7

0h

Description
Enables the amount of burst data the legacy DMA engine can
sustain before it should give up the internal bus.
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
DmaPrefetchEnable

Bits
0

Default
1b

Reserved
DmaPrefetchEnable register

7:1

00h

Description
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

ISA Address Decode Control Register #1- RW - 8 bits - [PCI_Reg: 48h]
Field Name
Bits
Default
Description
Window 0
0
1b
896K to 960K PCI enable
Window 1
1
1b
640K to 768K PCI enable
Window 2
2
1b
512K to 640K PCI enable
Window 3
3
1b
0K to 512K PCI enable
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
1b
C0000h to C3FFFh
Window 1
1
1b
C4000h to C7FFFh
Window 2
2
1b
C8000h to CBFFFh
Window 3
3
1b
CC000h to CFFFFh
Window 4
4
1b
D0000h to D3FFFh
Window 5
5
1b
D4000h to D7FFFh
Window 6
6
1b
D8000h to DBFFFh
Window 7
7
1b
DC000h to DFFFFh
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.
AMD SB600 Register Reference Manual

SMBus Module and ACPI Block (Device 20, Function 0)
Proprietary

Page 103

GPIO_52_to_49_Cntrl - RW – 16 bits - [PCI_Reg: 50h]
Field Name
GPIO_Out

Bits
3:0

Default
0h

GPIO_Out_En#

7:4

Fh

GPIO_Status
11:8
Reserved
15:12
GPIO_52_to_49_Cntrl register

0h

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
Bit[1] for GPIO50/FANIN0
Bit[2] for GPIO51/FANIN1
Bit[3] for GPIO52/FANIN2
GPIO output port enable for each of the GPIO port
0: Output = GPIO_Out
1: Output = tristate
GPIO input status for each of the GPIO port

GPIO_56_to_53_Cntrl - RW – 16 bits - [PCI_Reg: 52h]
Field Name
GPIO_Out

Bits
3:0

Default
0h

GPIO_Out_En#

7:4

Fh

GPIO_Status
11:8
Reserved
15:12
GPIO_56_to_53_Cntrl register

0h

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
Bit[1] for GPIO54/VIN1
Bit[2] for GPIO55/VIN2
Bit[3] for GPIO56/VIN3
GPIO output port enable for each of the GPIO port
0: Output = GPIO_Out
1: Output = tristate
GPIO input status for each of the GPIO port

GPIO_60_to_57_Cntrl - RW – 16 bits - [PCI_Reg: 54h]
Field Name
GPIO_Out

Bits
3:0

Default
0h

GPIO_Out_En#

7:4

Fh

GPIO_Status
11:8
Reserved
15:12
GPIO_60_to_57_Cntrl register

0h

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
Bit[1] for GPIO58/VIN5
Bit[2] for GPIO59/VIN6
Bit[3] for GPIO60/VIN7
GPIO output port enable for each of the GPIO port
0: Output = GPIO_Out
1: Output = tristate
GPIO input status for each of the GPIO port

GPIO_64_to_61_Cntrl - RW – 16 bits - [PCI_Reg: 56h]
Field Name
GPIO_Out

Bits
3:0

Default
0h

GPIO_Out_En#

7:4

Fh

11:8
15:12

0h

GPIO_Status
Reserved

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

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
Bit[1] for GPIO62/TEMPIN1
Bit[2] for GPIO63/TEMPIN2
Bit[3] for GPIO64/TEMPIN3
GPIO output port enable for each of the GPIO port
0: Output = GPIO_Out
1: Output = tristate
GPIO input status for each of the GPIO port

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
GPIO_64_to_61_Cntrl register

Default

Description

ASFSMbusIoBase- RW - 16 bits - [PCI_Reg: 58h]
Field Name
ASFSMBusEnable

Bits
0

Default
0h

Reserved
ASFSMBase

3:1
15:4

000b
FFFh

Description
0 – Disable ASF controller
1 – Enable ASF controller
ASF SM bus controller Io base address

GPIO_73_to_70_Cntrl - RW – 16 bits - [PCI_Reg: 5Ah]
Field Name
GPIO_Out

Bits
3:0

Default
0h

GPIO_Out_En#

7:4

Fh

11:8
15:12

0h

GPIO_Status
GPIO_Enable

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
Bit[0] for GPIO70/REQ3#
Bit[1] for GPIO71/REQ4#
Bit[2] for GPIO72/GNT3#
Bit[3] for GPIO73/GNT4#
GPIO output port enable for each of the GPIO port
0: Output = GPIO_Out
1: Output = tristate
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
0

Default
0b

CheckAz

1

0b

CheckAc97

2

0b

CheckPciBridge

3

0b

CheckUsb

4

0b

CheckSata

5

0b

CheckIde

6

0b

CheckC3

7

0b

Description
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
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
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.
AMD SB600 Register Reference Manual

SMBus Module and ACPI Block (Device 20, Function 0)
Proprietary

Page 105

SmartPowerControl1B - RW – 8 bits - [PCI_Reg: 5Dh]
Field Name
CheckVIN0

Bits
0

Default
0b

CheckVIN1

1

0b

CheckVIN2

2

0b

CheckVIN3

3

0b

CheckVIN4

4

0b

CheckVIN5

5

0b

CheckVIN6

6

0b

CheckVIN7

7

0b

Description
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
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
0

Default
0b

IRQ12_Filter

1

0b

K8_INTR

2

0b

MT3_Set

3

0b

MT3_Auto

4

0b

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

Description
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)
0 – Disable K8 INTR message
1 – Enable K8 INTR message
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

SMBus Module and ACPI Block (Device 20, Function 0)
Proprietary

Page 106

MiscEnable- RW - 8 bits - [PCI_Reg: 62h]
Field Name
USB_Fast_SMI_Disable

Bits
5

Default
0b

Reserved
IDE_GPIO_Enable
MiscEnable register

6
7

0b
0b

Field Name
AzIntMap

Bits
2:0

Default
110b

Reserved

7:3

00000b

Description
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.
If this bit is set to 1, the IDE bus is configured as GPIO

AzIntMap- RW - 8 bits - [PCI_Reg: 63h]
Description
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#

Features Enable- RW - 32 bits - [PCI_Reg: 64h]
Field Name
PIC_Enable

Bits
0

Default
1b

Timer_Enable

1

1b

PMIO_Register Enable

2

1b

Ioapic_enable
CheckOwnReq

3
4

0b
0b

BmReqEn
Reserved
XIOAPIC_ENA
GEVENT5_ENA
Ext_KBRST_EnB

5
6
7
8
9

0b
0b
1b
0b
0b

MultiMediaTimerIrqEn

10

0b

Ext_A20En

11

0b

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

Description
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
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
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)
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#
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
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

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
12

Default
0b

Intr_block_En

13

0b

ApicPort02Swap

14

0b

UsbSmiEn

15

0b

Serr2Smi_En

16

0b

Gevent1_en0

17

0b

Gevent1_en1

18

0b

Gevent1_en2

19

0b

LpcEnable

20

0b

RtcSelect

21

0b

Gevent1_en3

22

0b

Gevent1_en4
Reserved
DmaVerifyEn

23
24
25

0b

IRQ1MergeEn

26

0b

IRQ12MergeEn

27

0b

29:28

00b

30
31

0b
0b

SB_ClkStpEn
UsbA20En
UsbLegacyIrqEn
Features Enable register

0b

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.
0 – Disable
1 – Enable
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:
1 = Enable
0 = Disable
Enable SERR# to SMI# assertion
0 – Disable
1 – Enable
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
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
GEVENT group 3 enable (ExtEvent[1:0], PCIePme) to ACPI
function
GEVENT group 4 enable (GPM[3:0]) to ACPI function
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
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
0
1
2

Default
1b
1b
1b

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

Description
Set to 1 to enable EHCI
Set to 1 to enable OHCI_0
Set to 1 to enable OHCI_1

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
UsbEnable register

Bits
3
4
5
7:6

Default
1b
1b
1b
00b

Field Name
NumStartBits

Bits
1:0

Default
00b

NumSerIrqBits

5:2

0h

SerIrqMode

6

0b

SerialIrqEnable
SeriallrqControl register

7

0b

Description
Set to 1 to enable OHCI_2
Set to 1 to enable OHCI_3
Set to 1 to enable OHCI_4

SeriallrqControl- RW - 8 bits - [PCI_Reg: 69h]
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#)
...
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

RTCProtect- RW - 8 bits - [PCI_Reg: 6Ah]
Field Name
RTCProtect38_3F

Bits
0

Default
0b

Description
When set, RTC RAM index 38:3Fh will be locked from
read/write. This bit can only be written once.
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.

RTCProtectF0_FF

1

0b

RTCProtectE0_EF

2

0b

RTCProtectD0_DF

3

0b

RTCProtectC0_CF

4

0b

Reserved
RTCProtect register

7:5

000b

Field Name
Force Reset to USB Host
Controllers
Force USB Port PHY
Power Down
Force PHY PLL Power
Down
Force USB Port PHY
Reset
USB Reset register

Bits
4:0

Default
00h

5

0b

Description
These are software control bits that force the reset of the USB
host controllers.
Forces USB PHY into power down mode.

6

0b

Forces USB PHY PLL into power down mode.

7

0b

Forces USB PHY reset.

USB Reset- RW - 8 bits - [PCI_Reg: 6Bh]

©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
0

Default
0b

TestMode

4:1

0h

5

0b

15:6

000h

PCIB_SReset_En Mask
TestMode

Description
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.
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.

TestMode register

IoApic_Conf- RW - 32 bits - [PCI_Reg: 74h]
Field Name
Reserved
Mem_IO_Map

Bits
2:0
3

Default
000b
1b

Reserved
IoApic_Addr

4
31:5

0b
1111_
1110_
1100_
0000_
0000_
0000_
000b

Description
Base address mapping
1 = memory map
0 = IO map
Base address for IOAPIC

IoApic_Conf register.

IoAddrEnable - RW - 32 bits - [PCI_Reg: 78h]
Field Name
DmaAddr_En

Bits
0

Default
1b

Description
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
1b
NmiAddr_En
2
1b
RtcAddr_En
3
1b
Misc_Enable1
4
1b
Misc_Enable2
5
1b
Misc_Enable3
6
1b
Misc_Enable4
7
1b
Misc_Enable5
8
1b
PM_Addr_Enable
9
1b
Reserved
10
0b
Cms_Enable
11
1b
Address 0xC50, 0xC51
Reserved
13:12
00b
Port92Enable
14
1b
Port 92 enable
Reserved
31:15
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
3:0

Default
0h

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

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#
Bit[1] for GPIO66/LLB#
Bit[2] for GPIO68/LDRQ1#
Bit[3] for GPIO69/RTC_IRQ#

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
7:4

GPIO_Status
11:8
Reserved
15:12
GPIO_69_68_66_65_Cntrl register

Default
Fh
0h

Description
GPIO output port enable for each of the GPIO port
0: Output = GPIO_Out
1: Output = tristate
GPIO input status for each of the GPIO port

GPIO_3_to_0_Cntrl - RW – 16 bits - [PCI_Reg: 80h]
Field Name
GPIO_Out

Bits
3:0

Default
0h

GPIO_Out_En#

7:4

Fh

GPIO_Status
11:8
Reserved
15:12
GPIO_3_to_0_Cntrl register

0h

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
Bit[1] for GPIO1/ROM_CS#
Bit[2] for GPIO2/SPKR
Bit[3] for GPIO3/FANOUT0
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_32_31_14_13_Cntrl - RW – 16 bits - [PCI_Reg: 82h]
Field Name
GPIO_Out

Bits
3:0

Default
0h

GPIO_Out_En#

7:4

Fh

11:8
15:12

0h

GPIO_Status
GPIO_Enable

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#
Bit[1] for GPIO14/ROM_RST#
Bit[2] for GPIO31/SPI_HOLD#
Bit[3] for GPIO32/SPI_CS#
GPIO output port enable for each of the GPIO port
0: Output = GPIO_Out
1: Output = tristate
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
0

Default
1b

Description
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.
AMD SB600 Register Reference Manual

SMBus Module and ACPI Block (Device 20, Function 0)
Proprietary

Page 111

SmartPowerControl2A - RW – 8 bits - [PCI_Reg: 98h]
Field Name
CheckLpc

Bits
0

Default
0b

CheckAz

1

0b

CheckAc97

2

0b

CheckPciBridge

3

0b

CheckUsb

4

0b

CheckSata

5

0b

CheckIde

6

0b

CheckC3

7

0b

Description
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
If SmartVoltEnable2 is set and this bit is also set, the
SmartPower2 function will only assert SmartVolt2 if azalia
PCIBridge is idle
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
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
0

Default
0b

CheckVIN1

1

0b

CheckVIN2

2

0b

CheckVIN3

3

0b

CheckVIN4

4

0b

CheckVIN5

5

0b

CheckVIN6

6

0b

CheckVIN7

7

0b

Description
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
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
SmartVoltIdleTime2

Bits
6:0

Default
0h

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

Description
Amount of “idle” time (in 2us increment) the SmartPower2
function should wait before it should assert SmartVolt 2

SMBus Module and ACPI Block (Device 20, Function 0)
Proprietary

Page 112

SmartPowerControl2C - RW – 8 bits - [PCI_Reg: 9Ah]
Field Name
SmartVoltEnable2

Bits
7

Default
0b

Description
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
15:0

Default
0000h

GPIO_Out_En#

31:16

FFFFh

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
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
GPIO_Status

Bits
15:0

Default
----

Description
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
3:0

Default
0h

GPIO_Out_En#

7:4

Fh

11:8
15:12

0h

GPIO_Status
GPIO_Enable

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#
Bit[1] for GPIO46/AZ_SDIN3
Bit[2] for GPIO47/SPI_CLK
Bit[3] for GPIO48/FANOUT1
GPIO output port enable for each of the GPIO port
0: Output = GPIO_Out
1: Output = tristate
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.
AMD SB600 Register Reference Manual

SMBus Module and ACPI Block (Device 20, Function 0)
Proprietary

Page 113

GPIO_12_to_4_Cntrl – RW – 32 bits - [PCI_Reg: A8h]
Field Name
GPIO_Out

Bits
7:0

Default
00h

GPIO_Out_En#

15:8

FFh

GpioIn
GPIO10_Out
GPIO10_Out_En#

23:16
24
25

0b
1b

GPIO10_Status
Reserved
GPIO_Enable

26
29:27
31:30

000b
0h

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]
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 output port enable for each of the GPIO port
0: Output = GPIO_Out
1: Output = tristate
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
GPIO input status for GPIO10/SATA_IS0#
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
0
1

Default
0b
1b

GPIO67_Status
GPIO67_Enable

2
3

0b

SMI_CMD_action

4

1b

Reserved
SataEnable
SataSmbusCfg

7:5
8
10:9

0h
1b
00b

Reserved
SataPsvEn
Reserved
HiddenMsiEnable

12:11
13
14
15

00b
1b
0b
0b

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

Description
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
GPIO input status for GPIO67/SATA_ACT#
GPIO function enable for GPIO67/SATA_ACT#
0: GPIO disabled
1: GPIO enabled
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.
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.
SATA power saving enable
Setting this bit will make PCI_Reg:B0h, bit 16 to show up as 1.

SMBus Module and ACPI Block (Device 20, Function 0)
Proprietary

Page 114

SATA_Cntrl - RW – 16 bits - [PCI_Reg: ACh]
Field Name
ExtendIntrToWakeTime

Bits
18:16

Default
000b

DrqMaskEn

19

0b

IdeIrqFilterEn

20

0b

TmrIrqEnhanceDisable

21

0b

PIC_APIC_coexist

22

0b

Reserved
SataIntMap

25:23
28:26

000b
000b

Reserved
SATA_Cntrl register

31:29

000b

Description
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.
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.
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.
SATA interrupt mapping to PCI interrupt
000 - INTA#, 001 - INTB#, 010 - INTC#, 011 - INTD#, 100 INTE#, 101 - INTF#, 110 - INTG#, 111 - INTH#

MSI Mapping Capability - R - 32 bits - [PCI_Reg: B0h]
Field Name
Capability ID
Capability Pointer
MsiEnable
Fixed

Bits
7:0
15:8
16
17

Default
08h
00h
0b
1b

Reserved
26:18
Capability Type
31:27
MSI Mapping Capability register

000h
10101b

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.
This is an MSI Mapping Capability block.

PciIntGpio - RW - 16 bits - [PCI_Reg: BCh]
Field Name
PciIntGpioOut

Bits
3:0

Default
0h

PciIntGpioEnB
PciIntGpioStatus
PciIntIsGpio
PciIntGpio register

7:4
11:8
15:12

Fh
0h

Field Name
UsbInt1Map
UsbInt2Map
Reserved
UsbInt3Map
UsbInt4Map

Bits
2:0
5:3
7:6
10:8
13:11

Description
Output data for each PCI INT# GPIO providing bits [7:4] and
[15:12] are enabled
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

UsbIntMap - RW - 16 bits - [PCI_Reg: BEh]
Default
000b
001b
00b
010b
011b

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

Description
(OHCI0) UsbInt1 interrupt mapping to PCI interrupt
(OHCI1 & OHCI3) UsbInt2 interrupt mapping to PCI interrupt
(OHCI2 & OHCI4) UsbInt3 interrupt mapping to PCI interrupt
(EHCI) UsbInt4 interrupt mapping to PCI interrupt

SMBus Module and ACPI Block (Device 20, Function 0)
Proprietary

Page 115

UsbIntMap - RW - 16 bits - [PCI_Reg: BEh]
Field Name
Bits
Default
Description
Reserved
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
1:0

Default
11b

IoDrvSth_Cntrl

3:2

11b

IoDrvSth_GNT

5:4

11b

IoDrvSth_ClkGrpA

7:6

11b

IoDrvSth_ClkGrpB

9:8

11b

IoDrvSth_Lpc

12:11

11b

IoDrvSth_Ac97

13:12

11b

IoDrvSth_Int

15:14

11b

IoDrvSth_Req

17:16

11b

IoDrvSth_GpioA

19:18

11b

IoDrvSth_GpioB
IoDrvSth_Misc

21:20
23:22

11b

Description
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.
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
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
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
Bit 0 of IoDrvSth_AD
Bit 0 of IoDrvSth_GNT
Bit 0 of IoDrvSth_Lpc
Bit 0 of IoDrvSth_Misc

IoDrvSth_Ide
25:24
11b
IoDrvSth_AD_0
26
1b
IoDrvSth_GNT_0
27
1b
IoDrvSth_Lpc_0
28
1b
IoDrvSth_Misc_0
29
1b
Reserved
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
Relative Strength
Description
111b
100%
All P and N transistors are enabled when the pad drives
110b
88%
Approximately 88% of the P and N transistors are enabled
101b
77%
Approximately 77% of the P and N transistors are enabled
100b
66%
Approximately 66% of the P and N transistors are enabled
011b
66%
Approximately 66% of the P and N transistors are enabled
010b
55%
Approximately 55% of the P and N transistors are enabled
001b
44%
Approximately 44% of the P and N transistors are enabled
000b
33%
Approximately 33% of the P and N transistors are enabled

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

SMBus Module and ACPI Block (Device 20, Function 0)
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

0

0

0

33%

For 0-1 loads

Bits[1:0] = 01; Bits[3:2] = 00, bit 26
=0

0

0

1

44%

For 2 loads

Bits[1:0] = 10; Bits[3:2] = 00, bit 26
=1

0

1

0

55%

For 3-4 loads

Bits[1:0] = 01; Bits[3:2] = 01, bit 26
=0

0

1

1

66%

For 4-5 loads

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

S1

S0

Percent Drive Strength

Loads

SMBUS PCI Register, Index C0h

0

0

0

33%

For 0-1 loads

Bits[11:10] = 00, bit 28 = 0

0

0

1

44%

For 2 loads

Bits[11:10] = 00, bit 28 = 1

0

1

0

55%

For 3-4 loads

Bits[11:10] = 01, bit 28 = 0

0

1

1

66%

For 4-5 loads

Bits[11:10] = 01, bit 28 = 1

I2CbusConfig - RW - 8 bits - [PCI_Reg: D2h]
Field Name
I2CController Enable
I2CbusInterrupt

Bits
0
1

Default
0b
0b

Description
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
7:0

Default
00h

Description
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
Read/Write ShadowPort1

Bits
0

Default
0b

I2CslaveAddr1

7:1

00h

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

Description
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
This value specifies the address used to match against
incoming I2C addresses for Shadow port 1.

SMBus Module and ACPI Block (Device 20, Function 0)
Proprietary

Page 117

I2CShadow1- RW - 8 bits - [PCI_Reg: D4h]
Field Name
I2CShadow1 register

Bits

Default

Field Name
Read/Write ShadowPort2

Bits
0

Default
0b

I2CslaveAddr2

7:1

00h

Description

I2Cshadow2- RW - 8 bits - [PCI_Reg: D5h]
Description
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
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
I2CBusRevision register

Bits
7:0

Default
00h

Description
Revision ID

MSI_Weight - RW – 8 bits - [PCI_Reg: E0h]
MSI_weight
Reserved
MSI_Weight register

Bits
5:0
7:6

Default
100000b
00b

Description
Used by bios to tune MSI messaging priority

AB_REG_BAR - RW - 32 bits - [PCI_Reg: F0h]
Field Name
AB_REG_BAR

Bits
31:0

Default
0000_000
0h

Description
Base Address for A-link Bridge Register

AB_REG_BAR register

WakeIoAddr- RW - 16 bits - [PCI_Reg: F4h]
Field Name
WakeIoAddr

Bits
15:0

Default
0000h

Description
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
Mwait_physical_ID

Bits
3:0

Default
0100b

Mwait_logical_ID

7:4

0100b

Description
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
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

MwaitID register

MwaitSts- R - 8 bits - [PCI_Reg: F7h]
Field Name
Mwait_cpu0_sts

Bits
0

Default
0b

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

Description
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].

SMBus Module and ACPI Block (Device 20, Function 0)
Proprietary

Page 118

MwaitSts- R - 8 bits - [PCI_Reg: F7h]
Field Name
Mwait_cpu1_sts

Bits
1

Default
0b

Mwait_cpu2_sts

2

0b

Mwait_cpu3_sts

3

0b

Description
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].
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].

Reserved
7:4
0h
MwaitSts register. This register is to be used for P4 dual core system. Usage TBD.

ExtendedAddrPort- RW - 32 bits - [PCI_Reg: F8h]
Field Name
ExtendedAddrPort
ExtendedAddrPort register..

Bits
31:0

Default
00h

Description
Address port for the extended register block

ExtendedDataPort- RW - 32 bits - [PCI_Reg: FCh]
Field Name
ExtendedDataPort
ExtendedDataPort register.

Bits
31:0

Default
00h

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

Description
Data port for the extended register block

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
1:0

Default
01b

AzPort1Config

3:2

01b

AzPort2Config

5:4

10b

AzPort3Config

7:6

10b

Reserved
AudioGpioIn0Status

15:8
16

-

AudioGpioIn1Status

17

-

AudioGpioIn2Status

18

-

AudioGpioIn3Status

19

-

AzRstGpioIN

20

-

Reserved
Ac97RstGpioIn

23:21
24

-

Ac97BclkGpioIn

25

-

Ac97SyncGpioIn

26

-

Ac97DOutGpioIn

27

-

SpdifGpioIn

28

-

Reserved
AudioPortConfig register.

Description
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 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
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.
When AZ_RST# is configured as GPIO, this bit returns the
GPIO input status.
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.
When AC_SPDIF is configured as GPIO, this bit returns the
GPIO input status.

31:29

©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
AudioGpioOut0OeB

Bits
0

Default
1b

AudioGpioOut1OeB

1

1b

AudioGpioOut2OeB

2

1b

AudioGpioOut3OeB

3

1b

AzRstGpioOutOeB

4

1b

7:5
8

1b

Ac97BclkGpioOeB

9

1b

Ac97SyncGpioOeB

10

1b

Ac97DOutGpioOeB

11

1b

SpdifGpioOeB

12

1b

Reserved
AudioGpioOut0

15:13
16

0b

AudioGpioOut1

17

0b

AudioGpioOut2

18

0b

AudioGpioOut3

19

0b

Reserved
Ac97RstGpioOutOeB

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

Description
When ACZ_SDIN0 is configured as GPIO, this bit represents
the output enable.
1 – Tristate
0 – Enable
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
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
When AC_SPDIF is configured as GPIO, this bit represents
the output enable.
1 – Tristate
0 – Enable
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
When ACZ_SDIN 3 is configured as GPIO, this bit represents
the output value if the output is enabled.
1 – High
0 – Low

SMBus Module and ACPI Block (Device 20, Function 0)
Proprietary

Page 121

AudioGpioControl – RW - 32 bits - [Extend_Reg: 04h]
Field Name
AzRstGpioOut

Bits
20

Default
0b

Description
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

Ac97BclkGpioOut

25

0b

Ac97SyncGpioOut

26

0b

Ac97DOutGpioOut

27

0b

SpdifGpioOut

28

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
When SPDIF_OUT is configured as GPIO, this bit represents
the output value if the output is enabled.
1 – High
0 – Low

Reserved
AudioGpioControl register.

31:29

©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
SMBusHostCmd
SMBusAddress
SMBusData0
SMBusData1
SMBusBlockData
SMBusSlaveControl
SMBusShadowCmd
SMBusSlaveEvent
SlaveData
SMBusTiming

00h
01h
02h
03h
04h
05h
06h
07h
08h
09h
0A-0Bh
0C-0Dh
0Eh

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
0

Default
0b

SMBusInterrupt

1

0b

DeviceErr

2

0b

BusCollision

3

0b

Failed

4

0b

7:5

000b

Reserved

Description
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

SMBusSlaveStatus - RW - 8 bits - [SMBUS:01h]
Field Name
SlaveBusy

Bits
0

Default
0b

SlaveInit

1

0b

SlaveStatus

2

0b

Shadow1Status

3

0b

Shadow2Status

4

0b

AlertStatus

5

0b

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

Description
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.
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]

SMBus Module and ACPI Block (Device 20, Function 0)
Proprietary

Page 123

SMBusSlaveStatus - RW - 8 bits - [SMBUS:01h]
Field Name
Reserved

Bits
7:6

Default
00b

Field Name
InterruptEnable

Bits
0

Default
0b

Kill
SMBusProtocol

1
4:2

0b
000b

Reserved
Start

5
6

0b
0b

Reserved

7

0b

Description

SMBusControl - RW - 8 bits - [SMBUS:02h]
Description
Enable the generation of interrupts on the completion of current
host transaction.
Stop the current host transaction in process
000 – Quick Read or Write
001 – Byte Read or Write
010 – Byte Data Read or Write
011 – Word Data Read or Write
100 – Reserved
101 – Block Read or Write
110 – Reserved
111 – Reserved
Writing an 1 in this field initiates SMBus controller host interface
to execute the command programmed in the SMBusProtocol
field

SMBusHostCmd - RW – 8 bits - [SMBUS:03h]
Field Name
SMBusHostCmd

Bits
7:0

Default
00h

Field Name
SMBusRdWr

Bits
0

Default
0b

SMBusAddr

7:1

00h

Field Name
SMBusData0

Bits
7:0

Field Name
SMBusData1

Bits
7:0

Field Name
SMBusBlockData

Bits
7:0

Description
This field contains the data transmitted in the command field of
SMBus host transaction

SMBusAddress - RW - 8 bits - [SMBUS:04h]
Description
1 – Execute a Read command
0 – Execute a Write command
This field contains the 7-bit address of the target slave device.

SMBusData0 - RW - 8 bits - [SMBUS:05h]
Default
00h

Description
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]
Default
00h

Description
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]
Default
00h

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

Description
This register is used to transfer data into or out of the block
data storage array.

SMBus Module and ACPI Block (Device 20, Function 0)
Proprietary

Page 124

SMBusSlaveControl - RW - 8 bits - [SMBUS:08h]
Field Name
SlaveEnable

Bits
0

Default
0b

SMBusShadow1En

1

0b

SMBusShadow2En

2

0b

SMBusAlertEnable

3

0b

7:4

0h

Reserved

Description
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]

SMBusShadowCmd - RW - 8 bits - [SMBUS:09h]
Field Name
SMBusShadowCmd

Bits
7:0

Default
00h

Description
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
SMBusSlaveEvent

Bits
15:0

Field Name
SlaveData

Bits
15:0

Field Name
SMBusTiming

Bits
7:0

Default
0000h

Description
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]
Default
0000h

Description
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]
Default
A0h

Description
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
Dma_Ch 1
Dma_Ch 2
Dma_Ch 3
Dma_Status
Dma_WriteRequest
Dma_WriteMask
Dma_WriteMode
Dma_Clear
Dma_MasterClr
Dma_ClrMask
Dma_AllMask
IntrCntrlReg1
IntrCntrlReg2
TimerCh0
TimerCh1
TimerCh2
Tmr1CntrlWord
Nmi_Status
RtcAddrPort
RtcDataPort
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
FastInit
IntrCntrl2Reg1
IntrCntrl2Reg2
Dma2_Ch4Addr
Dma2_Ch4Cnt
Dma2_Ch5Addr
Dma2_Ch5Cnt
Dma2_Ch6Addr

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

Offset Address
00h
02h
04h
06h
08h
09h
0Ah
0Bh
0Ch
0Dh
0Eh
0Fh
20h
21h
40h
41h
42h
43h
61h
70h
71h
72h
73h
81h
82h
83h
84h
85h
86h
87h
88h
89h
8Ah
8Bh
8Ch
8Dh
8Eh
8Fh
92h
A0h
A1h
C0h
C2h
C4h
C6h
C8h

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
Dma_Clear
Dma_ClrMask
Dma_ClrMask
NCP_Error
DMA1_Extend
IntrEdgeControl
DMA2_Extend
Pci_Intr_Index
Pci_Intr_Data
Pci_Error
CMIndex
CMData
GpmPort
Isa_Misc
PM2_Index
PM2_Data
BIOSRAM_Index
BIOSRAM_Data
PM_Index
PM_Data

Offset Address
CAh
CCh
CEh
D0h
D2h
D4h
D6h
D8h
DAh
DCh
DEh
F0h
40Bh
4D0h
4D6h
C00h
C01h
C14h
C50h
C51h
C52h
C6Fh
CD0h
CD1h
CD4h
CD5h
CD6h
CD7h

.
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
Dma_Ch 0 register

Bits
15:0

Field Name
Dma_Ch 1
Dma_Ch 1 register

Bits
15:0

Field Name
Dma_Ch 2
Dma_Ch 2 register

Bits
15:0

Field Name
Dma_Ch 3
Dma_Ch 3 register

Bits
15:0

Default
0000h

Description
DMA1 Ch0 Base and Current Address

Dma_Ch 1- RW – 16 bits - [IO_Reg: 02h]
Default
0000h

Description
DMA1 Ch1 Base and Current Address

Dma_Ch 2- RW – 16 bits - [IO_Reg: 04h]
Default
0000h

Description
DMA2 Ch2 Base and Current Address

Dma_Ch 3- RW – 16 bits - [IO_Reg: 06h]
Default
0000h

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

Description
DMA1 Ch3 Base and Current Address

SMBus Module and ACPI Block (Device 20, Function 0)
Proprietary

Page 127

Dma_Status- RW – 8 bits - [IO_Reg: 08h]
Field Name
Dma_Status
Dma_Status register

Bits
7:0

Default
00h

Description
Returns status when read; command for write

Dma_WriteRequest- RW – 8 bits - [IO_Reg: 09h]
Field Name
Dma_WriteRequest
Dma_WriteRequest register

Bits
7:0

Field Name
Dma_WriteMask
Dma_WriteMask register

Bits
7:0

Field Name
Dma_WriteMode
Dma_WriteMode register

Bits
7:0

Field Name
Dma_Clear
Dma_Clear register

Bits
7:0

Field Name
Dma_MasterClr
Dma_MasterClr register

Bits
7:0

Field Name
Dma_ClrMask
Dma_ClrMask register

Bits
7:0

Field Name
Dma_AllMask
Dma_AllMask register

Bits
7:0

Field Name
IntrCntrl1Reg1

Bits
7:0

Default
00h

Description
Request register.

Dma_WriteMask- RW – 8 bits - [IO_Reg: 0Ah]
Default
00h

Description
Channel mask register.

Dma_WriteMode- RW – 8 bits - [IO_Reg: 0Bh]
Default
00h

Description
Mode register.

Dma_Clear- RW – 8 bits - [IO_Reg: 0Ch]
Default
00h

Description
Channel 0-3 DMA clear byte pointer

Dma_MasterClr- RW – 8 bits - [IO_Reg: 0Dh]
Default
00h

Description
Intermediate register.

Dma_ClrMask- RW – 8 bits - [IO_Reg: 0Eh]
Default
00h

Description
Channel 0-3 DMA Clear Mask

Dma_AllMask- RW – 8 bits - [IO_Reg: 0Fh]
Default
00h

Description
Mask register.

IntrCntrl1Reg1- RW – 8 bits - [IO_Reg: 20h]
Default
00h

Description
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
7:0

Default
00h

Description
IRQ0 – IRQ7:
Read IMR
Write ICW2, ICW3, ICW4, OCW1

IntrCntrl1Reg2 register

IMCR_Index- RW – 8 bits - [IO_Reg: 22h]
Field Name
IMCR_Index

Bits
7:0

Default
00h

Description
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
IMCR_Data

Bits
7:0

Default
00h

Description
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
TimerCh0

Bits
7:0

Default
00h

Description
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
TimerCh1

Bits
7:0

Default
00h

Description
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
TimerCh2

Bits
7:0

Default
00h

Description
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
0

Field Name
SpkrEnable

Bits
0

Field Name
RTC Address Port
NmiEnable

Bits
6:0
7

Default
0b

Description
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
5:4
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
CounterSelect
7:6
00b
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]
Default
0b

Description
0 - Disable counter 2
1 - Enable counter 2
SpkrTmrEnable
1
0b
0 - Speaker timer off
1 - Speaker timer on
Parity_Nmi_En
2
1b
0 - Enable Parity Error to NMI generation (from SERR# or
PERR#)
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
RefClk
4
The output of the counter 1 (8254). (Read-only)
SpkrClk
5
The output of the counter 2. [Read-only]
IoChk_Nmi
6
NMI is triggered by serial IOCHK. [Read-only]
ParErr_Nmi
7
NMI is caused by parity error (either PERR# or SERR#).
[Read-only]
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]
Default
00h
0b

Description
This is used with either internal RTC or external RTC
0 - NMI enable
1 - NMI disable [Write-only]

Nmi_Enable register

Field Name
RTC Data Port

Bits
7:0

RtcDataPort - RW – 8 bits - [IO_Reg: 71h]
Default
Description
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

Field Name
RtcDataPort

Field Name
AlternatRTCAddrPort

Bits

RtcDataPort - RW – 8 bits - [IO_Reg: 71h]
Default
Description

AlternatRtcAddrPort - RW – 8 bits - [IO_Reg: 72h]
Bits
Default
Description
7:0
00h
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

Field Name
AlternatRTC Data Port
AlternatRtcDataPort

AlternatRtcDataPort - RW – 8 bits - [IO_Reg: 73h]
Bits
Default
Description
7:0
00h
This is used with internal RTC in conjunction with port h72

Dma_PageCh2 - RW – 8 bits - [IO_Reg: 81h]
Field Name
Dma_PageCh2
Dma_PageCh2 register

Bits
7:0

Field Name
Dma_PageCh3
Dma_PageCh3 register

Bits
7:0

Field Name
Dma_PageCh1
Dma_PageCh1 register

Bits
7:0

Default
00h

Description
DMA2 ch 2 page register

Dma_PageCh3 - RW – 8 bits - [IO_Reg: 82h]
Default
00h

Description
DMA2 ch 3 page register

Dma_PageCh1 - RW – 8 bits - [IO_Reg: 83h]
Default
00h

Description
DMA2 ch 1 page register

Dma_Page_Reserved1- RW – 8 bits - [IO_Reg: 84h]
Field Name
Bits
Dma_Page_Reserved1
7:0
Dma_Page_Reserved1 register

Default
00h

Description
Dma Page Reserved1 register

Dma_Page_Reserved2- RW – 8 bits - [IO_Reg: 85h]
Field Name
Bits
Dma_Page_Reserved2
7:0
Dma_Page_Reserved2 register

Default
00h

Description
Dma Page Reserved2 register

Dma_Page_Reserved3- RW – 8 bits - [IO_Reg: 86h]
Field Name
Bits
Dma_Page_Reserved3
7:0
Dma_Page_Reserved3 register

Default
00h

Description
Dma Page Reserved3 register

Dma_PageCh0 - RW – 8 bits - [IO_Reg: 87h]
Field Name
Dma_PageCh0
Dma_PageCh0 register

Bits
7:0

Default
00h

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

Description
DMA2 ch 0 page register

SMBus Module and ACPI Block (Device 20, Function 0)
Proprietary

Page 131

Dma_Page_Reserved4- RW – 8 bits - [IO_Reg: 88h]
Field Name
Bits
Dma_Page_Reserved4
7:0
Dma_Page_Reserved4 register

Default
00h

Description
Dma Page Reserved4 register

Dma_PageCh6 - RW – 8 bits - [IO_Reg: 89h]
Field Name
Dma_PageCh6
Dma_PageCh6 register

Bits
7:0

Field Name
Dma_PageCh7
Dma_PageCh7 register

Bits
7:0

Field Name
Dma_PageCh5
Dma_PageCh5 register

Bits
7:0

Default
00h

Description
DMA2 ch 6 page register

Dma_PageCh7 - RW – 8 bits - [IO_Reg: 8Ah]
Default
00h

Description
DMA2 ch 7 page register

Dma_PageCh5 - RW – 8 bits - [IO_Reg: 8Bh]
Default
00h

Description
DMA2 ch 5 page register

Dma_Page_Reserved5- RW – 8 bits - [IO_Reg: 8Ch]
Field Name
Bits
Dma_Page_Reserved5
7:0
Dma_Page_Reserved5 register

Default
00h

Description
Dma Page Reserved5 register

Dma_Page_Reserved6- RW – 8 bits - [IO_Reg: 8Dh]
Field Name
Bits
Dma_Page_Reserved6
7:0
Dma_Page_Reserved6 register

Default
00h

Description
Dma Page Reserved6 register

Dma_Page_Reserved7- RW – 8 bits - [IO_Reg: 8Eh]
Field Name
Bits
Dma_Page_Reserved7
7:0
Dma_Page_Reserved7 register

Default
00h

Description
Dma Page Reserved7 register

Dma_Refresh- RW – 8 bits - [IO_Reg: 8Fh]
Field Name
Dma_Refresh
Dma_Refresh register

Bits
7:0

Default
00h

Field Name
FastInit

Bits
0

Default
0b

1

0b

Description
DMA2 ch4 page register.

FastInit- RW – 8 bits - [IO_Reg: 92h]

A20EnB

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

Description
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.
A20Enable Bar bit; if set to 1, A20M is disabled.

SMBus Module and ACPI Block (Device 20, Function 0)
Proprietary

Page 132

IntrCntrl2Reg1- RW – 8 bits - [IO_Reg: A0h]
Field Name
IntrCntrl2Reg1

Bits
7:0

Default
00h

Description
IRQ8 – IRQ15:
Read IRR, ISR
Write ICW1, OCW2, OCW3

IntrCntrl2Reg1 register

IntrCntrl2Reg2- RW – 8 bits - [IO_Reg: A1h]
Field Name
IntrCntrl2Reg2

Bits
7:0

Default
00h

Description
IRQ8 – IRQ15:
Read IMR
Write ICW2, ICW3, ICW4, OCW1

IntrCntrl2Reg2 register

Dma2_Ch4Addr - RW – 8 bits - [IO_Reg: C0h]
Field Name
Dma2_Ch4Addr
Dma2_Ch4Addr register

Bits
7:0

Field Name
Dma2_Ch4Cnt
Dma2_Ch4Cnt register

Bits
7:0

Field Name
Dma2_Ch5Addr
Dma2_Ch5Addr register

Bits
7:0

Field Name
Dma2_Ch5Cnt
Dma2_Ch5Cnt register

Bits
7:0

Field Name
Dma2_Ch6Addr
Dma2_Ch6Addr register

Bits
7:0

Field Name
Dma2_Ch6Cnt
Dma2_Ch6Cnt register

Bits
7:0

Field Name
Dma2_Ch7Addr
Dma2_Ch7Addr register

Bits
7:0

Default
00h

Description
DMA2 Ch4 Base and Current Address

Dma2_Ch4Cnt – RW – 8 bits - [IO_Reg: C2h]
Default
00h

Description
DMA2 Ch4 Base and Current Count

Dma2_Ch5Addr - RW – 8 bits - [IO_Reg: C4h]
Default
00h

Description
DMA2 Ch5 Base and Current Address

Dma2_Ch5Cnt - RW – 8 bits - [IO_Reg: C6h]
Default
00h

Description
DMA2 Ch4 Base and Current Count

Dma2_Ch6Addr - RW – 8 bits - [IO_Reg: C8h]
Default
00h

Description
DMA2 Ch6 Base and Current Address

Dma2_Ch6Cnt - RW – 8 bits - [IO_Reg: CAh]
Default
00h

Description
DMA2 Ch6 Base and Current Count

Dma2_Ch7Addr - RW – 8 bits - [IO_Reg: CCh]
Default
00h

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

Description
DMA2 Ch5 Base and Current Address

SMBus Module and ACPI Block (Device 20, Function 0)
Proprietary

Page 133

Dma_Ch7Cnt - RW – 8 bits - [IO_Reg: CEh]
Field Name
Dma2_Ch7Cnt
Dma2_Ch7Cnt register

Bits
7:0

Field Name
Dma_Status
Dma_Status register

Bits
7:0

Default
00h

Description
Channel 7 DMA base and current count

Dma_Status - RW – 8 bits - [IO_Reg: D0h]
Default
00h

Description
DMA2 status register

Dma_WriteRequest - RW – 8 bits - [IO_Reg: D2h]
Field Name
Dma_WriteRequest
Dma_WriteRequest register

Bits
7:0

Field Name
Dma_WriteMask
Dma_WriteMask register

Bits
7:0

Field Name
Dma_WriteMode
Dma_WriteMode register

Bits
7:0

Field Name
Dma_Clear
Dma_Clear register

Bits
7:0

Field Name
Dma_Clear
Dma_Clear register

Bits
7:0

Field Name
Dma_ClrMask
Dma_ClrMask register

Bits
7:0

Field Name
Dma_AllMask
Dma_AllMask register

Bits
7:0

Field Name
Reserved
WarmBoot

Bits
6:0
7

Default
00h

Description
DMA2 request register

Dma_WriteMask - RW – 8 bits - [IO_Reg: D4h]
Default
00h

Description
DMA2 channel mask register

Dma_WriteMode - RW – 8 bits - [IO_Reg: D6h]
Default
00h

Description
DMA2 mode register

Dma_Clear - RW – 8 bits - [IO_Reg: D8h]
Default
00h

Description
Channel 4-7 clear byte pointer

Dma_Clear - RW – 8 bits - [IO_Reg: DAh]
Default
00h

Description
Channel 4-7 DMA master clear

Dma_ClrMask - RW – 8 bits - [IO_Reg: DCh]
Default
00h

Description
Channel 4-7 DMA Clear Mask

Dma_ClrMask - RW – 8 bits - [IO_Reg: DEh]
Default
00h

Description
DMA2 mask register

NCP_Error - RW – 8 bits - [IO_Reg: F0h]
Default
00h
0b

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

Description
Warm or cold boot indicator
0 – Cold
1 – Warm, this bit is set when any value is written to this
register;

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
DMA1_Extend register

Bits
7:0

Default
00h

Description
DMA1 extended write mode register

IntrEdgeControl- RW – 16 bits - [IO_Reg: 4D0h]
Field Name
Bits
Default
Description
IRQ0Control
0
0b
1 = Level, 0 = Edge
IRQ1Control
1
0b
1 = Level, 0 = Edge
Reserved
2
0b
IRQ3Control
3
0b
1 = Level, 0 = Edge
IRQ4Control
4
0b
1 = Level, 0 = Edge
IRQ5Control
5
0b
1 = Level, 0 = Edge
IRQ6Control
6
0b
1 = Level, 0 = Edge
IRQ7Control
7
0b
1 = Level, 0 = Edge
IRQ8Control
8
0b
(Read Only) Always edge
IRQ9Control
9
0b
1 = Level, 0 = Edge
IRQ10Control
10
0b
1 = Level, 0 = Edge
IRQ11Control
11
0b
1 = Level, 0 = Edge
IRQ12Control
12
0b
1 = Level, 0 = Edge
Reserved
13
0b
IRQ14Control
14
0b
1 = Level, 0 = Edge
IRQ15Control
15
0b
1 = Level, 0 = Edge
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
DMA2_Extend register

Bits
7:0

Default
00h

Description
DMA2 extended write mode register

Pci_Intr_Index - RW – 8 bits - [IO_Reg: C00h]
Field Name
Pci_Intr_Index

Bits
7:0

Default
00h

Description
PCI interrupt index – selects which PCI interrupt to map
0h – INTA#
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
7:0

Default
00h

Description
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
0

Default
-

Perr_Nmi_Status

1

-

Serr_Nmi

2

1b

Perr_Nmi

3

1b

Reserved
Pci_Error register

7:4

0h

Field Name
CMIndex

Bits
7:0

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]
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
1 – Disable

CMIndex - RW – 8 bits - [IO_Reg: C50h]
Default
00h

Description
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
CMData register

Bits
7:0

Field Name

Bits
7:0

Default
00h

Description
Data register to client management register block

GpmPort - RW – 8 bits - [IO_Reg: C52h]
Gpm

Default
--

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

Description
If CMIndex.13h[7:6] == 00, then this is the read port for
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)

SMBus Module and ACPI Block (Device 20, Function 0)
Proprietary

Page 136

GpmPort - RW – 8 bits - [IO_Reg: C52h]
Field Name
GpmPort register

Bits

Field Name
Reserved
FlashRomEn

Bits
5:0
6

Default

Description

Isa_Misc - RW – 8 bits - [IO_Reg: C6Fh]
Default
00h
0b

Description
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
7:0

Default
00h

Description
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
BiosRamData

Bits
7:0

Default
00h

Description
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
PM_Index

Bits
7:0

Default
00h

Description
Power management index register. This register selects one
of the Power Management registers. (See section 2.3.3.2 for
more information.)

PM_Index register

PM_Data - RW – 8 bits - [IO_Reg: CD7h]
Field Name
PM_Data

Bits
7:0

Default
00h

Description
Power management data register. This register provides the
read/write access to the indexed register. (See section
2.3.3.2 for more information.)

PM_Data register

2.3.3.1.2

Client Management Registers (Accessed through C50h and C51h)
Register Name
IdRegister
TempStatus
TempInterrupt
I2Ccontrol
Index13

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

Offset Address
00h
02h
03h
12h
13h

SMBus Module and ACPI Block (Device 20, Function 0)
Proprietary

Page 137

IdRegister - R – 8 bits - [IO_Reg: 00h]
Field Name
IdRegister
IdRegister register

Bits
7:0

Default
00h

Field Name
TALERT

Bits
0

Default
-

Reserved
TempStatus register

7:1

00h

Field Name
Reserved
TempSmiEnable

Bits
0
1

Default
0b
0b

2
3

0b
0b

Reserved
TempInterrupt register

7:4

0h

Field Name
Gpoc0Status
Gpoc1Status
Gpoc0_OE_

Bits
0
1
2

Default
1b

Gpoc1_OE_

3

1b

Gpoc2Status

4

-

Gpoc3Status
Gpoc2_OE_

5
6

1b

Description

TempStatus - R – 8 bits - [IO_Reg: 02h]
Description
Logical status of TALERT/GPIO64 input.
Read will clear this bit.

TempInterrupt - RW – 8 bits - [IO_Reg: 03h]

Reserved
ScratchBit

Description
1 - Generate SMI# upon TALERT
0 - Do not generate SMI# upon TALERT
This placebo bit has no function, but it may be used for
software status

I2CControl - RW – 8 bits - [IO_Reg: 12h]
Description
Gpoc0 status. [Read-only]
Gpoc1 status. [Read-only]
1 - Gpoc0 is tristate
0 - Gpoc0 is asserted low
1 - Gpoc1 is tristate
0 - Gpoc1 is asserted low
Gpoc2 status. [Read-only]

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]
Field Name
GPIO64En

Bits
0

Default
0b

GPIO64OUT
Gpoc[3:2]OUT
ScratchBit

1
3:2
5:4

0b
00b
00b

GpmPortSel

7:6

00b

Description
GPIO64 output enable
1 = Enable
0 = Tristate
GPIO64 output data
Gpoc[3:2] output data
Placebo bit, has no function but may be used for software
status
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

Offset Address

MiscControl
MiscStatus
SmiWakeUpEventEnable1
SmiWakeUpEventEnable2
SmiWakeUpEventEnable3
SmiWakeUpEventStatus1
SmiWakeUpEventStatus2
SmiWakeUpEventStatus3
InactiveTmrEventEnable1
InactiveTmrEventEnable2
InactiveTmrEventEnable3
PmTmr1InitValue
PmTmr1CurValue
PwrLedExtEvent
PwrLedExtEvent
AcpiStatus
AcpiEn
S1AgpStpEn
PmTmr2InitValue
PmTmr2CurValue
Programlo0RangeLo
Programlo0RangeHi
ProgramIo1RangeLo
ProgramIo1RangeHi
ProgramIo2RangeLo
ProgramIo2RangeHi
ProgramIo3RangeLo
ProgramIo3RangeHi
ProgramIoEnable
IOMonitorStatus
InactiveTmrEventEnable4
AcpiPm1EvtBlkLo
AcpiPm1EvtBlkHi
AcpiPm1CntBlkLo
AcpiPm1CntBlkHi
AcpiPmTmrBlkLo
AcpiPmTmrBlkHi
CpuControlLo
CpuControlHi
AcpiGpe0BlkLo
AcpiGpe0BlkHi
AcpiSmiCmdLo
AcpiSmiCmdHi

00h
01h
02h
03h
04h
05h
06h
07h
08h
09h
0Ah
0Bh
0Ch
0Dh
0Eh
0Fh
10h
11h
12h
13h
14h
15h
16h
17h
18h
19h
1Ah
1Bh
1Ch
1Dh
1Eh
20h
21h
22h
23h
24h
25h
26h
27h
28h
29h
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

Offset Address

AcpiPmaCntBlkLo
AcpiPmaCntBlkHi
AcpiSsCntBlkLo
AcpiSsCntBlkHi
GEvtConfig0
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

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

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

SMBus Module and ACPI Block (Device 20, Function 0)
Proprietary

Page 140

Register Name

Offset Address

SOS3ToS5Enable2
SOS3ToS5Enable3
NoStatusControl0
NoStatusControl1
MiscEnable7C
DprSlpVrMinTime
SMAF0
SMAF1
SMAF2
SMAF3
WakePinCntl
CF9Rst
ThermThrotCntl
LdtStpCmd
LdtStartTime
AgpStartTime
LdtAgpTimeCntl
StutterTime
StpClkDlyTime
AbPmeCntl
FakeAsr
FakeAsrEn
GEVENTOUT
GEVENTEN
GEVENTIN
GPM98OUT
GPM98EN
GPM98IN
K8C1ePort
EnhanceControl
K8C1eReadPort
MsiSignature
AutoArbDisWaitTime
Programlo4RangeLo
Programlo4RangeHi
Programlo5RangeLo
Programlo5RangeHi
Programlo6RangeLo
Programlo6RangeHi
Programlo7RangeLo
Programlo7RangeHi
PIO7654Enable
PIO7654Status
PllDebug
AltDebugBusCntrl
C2Count
C3Count

78h
79h
7Ah
7Bh
7Ch
7Dh
80h
81h
82h
83h
84h
85h
86h
87h
88h
89h
8Ah
8Bh
8Ch
8Dh
8Eh
8Fh
90h
91h
92h
94h
95h
96h
99:98h
9Ah
9Bh
9E:9Ch
9Fh
A0h
A1h
A2h
A3h
A4h
A5h
A6h
A7h
A8h
A9h
B1:B0h
B2h
B3h
B4h

MiscControl - RW – 8 bits - [PM_Reg: 00h]
Field Name
Reserved
Timer1ExpEn

Timer2ExpEn

Bits
0
1

Default
0b
0b

2

0b

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

Description
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.
Set to 1 to enable SMI# when PM_TIMER2 expires.

SMBus Module and ACPI Block (Device 20, Function 0)
Proprietary

Page 141

MiscControl - RW – 8 bits - [PM_Reg: 00h]
Field Name
Reserved
SmiReq

Bits
3
4

Default
0b
0b

Reserved
MiscControl register

7:5

000b

Field Name
SmiEvent

Bits
0

Default
0b

Timer1Exp
Timer2Exp
Reserved
SmiReq

1
2
3
4

0b
0b
0b
0b

Reserved
StatusRst

6:5
7

00b
0b

Description
Software initiated SMI#. When set, SB will update bit [4] of
the MiscStatus and issue SMI#.

MiscStatus - RW – 8 bits - [PM_Reg: 01h]
Description
SB sets this bit to indicate an SMI# was issued due to events
specified by index 02, 03, 04, 1C, or A8h
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.
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
SmiWakeUpEventEnable1
7:0
SmiWakeUpEventEnable1 register.

Default
00h

Description
Enable SMI# on IRQ[15:8] activity.

SmiWakeUpEventEnable2 - RW – 8 bits - [PM_Reg: 03h]
Field Name
Bits
SmiWakeUpEventEnable2
7:0
SmiWakeUpEventEnable2 register.

Default
00h

Description
Enables SMI# on {IRQ[7:3], NMI, IRQ[1:0]} activity.

SmiWakeUpEventEnable3 - RW – 8 bits - [PM_Reg: 04h]
Field Name
Bits
ExtEvent0
0
ExtEvent1
1
GAME_SMI_EN
2
FDD_SMI_EN
3
HDD_SMI_EN
4
COM_SMI_EN
5
LPT_SMI_EN
6
SLP_SMI_EN
7
SmiWakeUpEventEnable3 register.

Default
0b
0b
0b
0b
0b
0b
0b
0b

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

SmiWakeUpEventStatus1 - RW – 8 bits - [PM_Reg: 05h]
Field Name
Bits
SmiWakeUpEventStatus1
7:0
SmiWakeUpEventStatus1 register.

Default
00h

Description
Set to 1 to identify IRQ[15:8] activity as source of SMI#.

SmiWakeUpEventStatus2 - RW – 8 bits - [PM_Reg: 06h]
Field Name
SmiWakeUpEventStatus2

Bits
7:0

Default
00h

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

Description
Set to 1 to identify IRQ[7:0] activity as source of SMI#.

SMBus Module and ACPI Block (Device 20, Function 0)
Proprietary

Page 142

SmiWakeUpEventStatus2 - RW – 8 bits - [PM_Reg: 06h]
Field Name
Bits
SmiWakeUpEventStatus2 register.

Default

Description

SmiWakeUpEventStatus3 - RW – 8 bits - [PM_Reg: 07h]
Field Name
ExtEvt0_SMI_Status

Bits
0

Default
0b

Description
Set to 1 to indicate ExtEvent0 as the source of SMI#. Write 1
to clear this bit.
ExtEvt1_SMI_Status
1
0b
Set to 1 to indicate ExtEvent1 as the source of SMI#. Write 1
to clear this bit.
GAME_SMI_Status
2
0b
Set to 1 to indicate game port activity as the source of SMI#.
Write 1 to clear this bit.
FDD_SMI_Status
3
0b
Set to 1 to indicate floppy activity as the source of SMI#.
Write 1 to clear this bit.
HDD_SMI_Status
4
0b
Set to 1 to indicate IDE activity as the source of SMI#. Write
1 to clear this bit.
COM_SMI_Status
5
0b
Set to 1 to indicate serial port activity as the source of SMI#.
Write 1 to clear this bit.
LPT_SMI_Status
6
0b
Set to 1 to indicate parallel port activity as the source of
SMI#. Write 1 to clear this bit.
SLP_SMI_Status
7
0b
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
InactiveTmrEventEnable1
7:0
InactiveTmrEventEnable1 register.

Default
00h

Description
Enables Timer 1 reload on IRQ[15:8] activity.

InactiveTmrEventEnable2 - RW – 8 bits - [PM_Reg: 09h]
Field Name
Bits
InactiveTmrEventEnable2
7:0
InactiveTmrEventEnable2 register.

Default
00h

Description
Enables Timer 1 reload on {IRQ[7:3], NMI, IRQ[1:0]} activity.

InactiveTmrEventEnable3 - RW – 8 bits - [PM_Reg: 0Ah]
Field Name
Bits
ExtEvt0_Timer1Enable
0
ExtEvt1_Timer1Enable
1
GamePort_Timer1Enable
2
Floppy_Timer1Enable
3
IDE_Timer1Enable
4
COM_Timer1Enable
5
Parallel_Timer1Enable
6
Reserved
7
InactiveTmrEventEnable3 register.

Default
0b
0b
0b
0b
0b
0b
0b
0b

Description
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

PmTmr1InitValue - RW – 8 bits - [PM_Reg: 0Bh]
Field Name
PmTmr1InitValue

Bits
5:0

Default
000000b

Reserved

7:6

00b

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

Description
6 bit-timer; Initial/reload value for 6 bit decrementing counter.
Count range from 1 minute to 64 minutes with 4 second
accuracy.

SMBus Module and ACPI Block (Device 20, Function 0)
Proprietary

Page 143

PmTmr1CurValue - R – 8 bits - [PM_Reg: 0Ch]
Field Name
PmTmr1CurValue
Reserved

Bits
5:0
7:6

Default
00b

Description
Current value of decrementing counter

PwrLedExtEvent - RW – 8 bits - [PM_Reg: 0Dh]
Field Name
ExtEvent0State
ExtEvent1State
ExtEvent0RF

Bits
0
1
2

Default
0b

3

0b

Reserved
PwrLedExtEvent register.

7:4

0100b

Field Name
AcpiSmiEn

Bits
0

Default
0b

BIOS_RLS

1

0b

SmiCmdEn

2

0b

AcpiDecodeEnable

3

0b

VRT_SMI_En
Reserved
RtcClkPUB

4
5
6

0b
0b
0b

BG1RESDIV0_SEL

7

0b

ExtEvent1RF

Description
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
Set to one to configure EXTEVENT1 as rising edge sensitive.
0 as falling edge sensitive

AcpiControl - RW – 8 bits - [PM_Reg: 0Eh]
Description
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.
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.
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
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)

AcpiControl register.

AcpiStatus- R – 8 bits - PM_Reg: 0Fh]
Field Name
AcpiSmiStatus

Bits
0

Default
-

SerrSmiStatus
SmiCmdStatus

1
2

-

SmSmiStatus
UsbSmiStatus
SerSmiStatus
RtcAvailable

3
4
5
6

-

NbThermStatus

7

-

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

Description
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.
SmBus SMI# status
USB SMI# status
Serial SMI# status
1: Rtc clock running
0: Bad Rtc clock. RTC battery may not be present
NB thermal event status

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
0b

RTC_En_En

1

0b

Reserved
TMR_En_En

2
3

0b
0b

LEVENT_EN_EN

4

0b

GBL_EN_EN

5

0b

PciExpWakeDisEn

6

0b

GpioToGEventSel

7

0b

Field Name
S1AgpStpEn

Bits
0

Default
0b

Reserved
S1AgpStpEn register.

7:1

00h

Description
Set 1 by software and clear by hardware. This bit needs to
be set in order to generate SMI#/SCI
RTC_EN enable bit. When this bit is set, RTC_EN
(AcpiPmEvtBlk, index x02, bit 10) is visible; otherwise, it is
always 0
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 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

S1AgpStpEn - RW – 8 bits - [PM_Reg: 11h]
Description
AgpStp enable in S1 state
1: Enable
0: Disable

PmTmr2InitValue - RW – 8 bits - [PM_Reg: 12h]
Field Name
PmTmr2InitValue
PmTmr2InitValue register.

Bits
7:0

Default
00h

Description
PmTmr2 load value

PmTmr2CurValue - R – 8 bits - [PM_Reg: 13h]
Field Name
PmTmr2CurValue
PmTmr2CurValue register.

Bits
7:0

Default
--

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

Description
PmTmr2 current value

SMBus Module and ACPI Block (Device 20, Function 0)
Proprietary

Page 145

Programlo0RangeLo - RW – 8 bits - [PM_Reg: 14h]
Field Name
ProgramIo0Mask

Bits
3:0

Default
0h

ProgramIo0RangeLo

7:4

0h

Description
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)
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
ProgramIo0RangeHi

Bits
7:0

Default
00h

Description
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
ProgramIo1Mask

Bits
3:0

Default
0h

ProgramI01RangeLo

7:4

0h

Description
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)
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.

Field Name
ProgramIo1RangeHi

ProgramIo1RangeHi - RW – 8 bits - [PM_Reg: 17h]
Bits
Default
Description
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.

Field Name
ProgramIo2Mask

ProgramIo2RangeLo

ProgramIo2RangeLo - RW – 8 bits - [PM_Reg: 18h]
Bits
Default
Description
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)
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]
Field Name
Bits
Default
Description
ProgramIo2RangeLo register.

Field Name
ProgramIo2RangeHi

ProgramIo2RangeHi - RW – 8 bits - [PM_Reg: 19h]
Bits
Default
Description
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.

Field Name
ProgramIo3Mask

ProgramIo3RangeLo

ProgramIo3RangeLo - RW – 8 bits - [PM_Reg: 1Ah]
Bits
Default
Description
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)
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.

Field Name
ProgramIo3RangeHi

ProgramIo3RangeHi - RW – 8 bits - [PM_Reg: 1Bh]
Bits
Default
Description
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.

Field Name
AD_LIB_MonitorEn
MIDI_MonitorEn
AudioMSSMonitorEn
MouseKbMonitorEn
ProgramIo3Enable
ProgramIo2Enable
ProgramIo1Enable
ProgramIo0Enable

ProgramIoEnable - RW – 8 bits - [PM_Reg: 1Ch]
Bits
Default
Description
0
0b
Enables AD_LIB monitoring to trigger SMI#, 1=On, 0=Off
1
0b
Enables MIDI monitoring to trigger SMI#; 1= On, 0= Off
2
0b
Enables Audio/MSS monitoring to trigger SMI#; 1= On, 0 =
Off
3
0b
Enables Mouse/Keyboard monitoring to trigger SMI#; 1= On,
0 = Off
4
0b
Enables IO monitoring for ProgramIO3 (defined by index 1A,
1B); 1= On, 0 = Off
5
0b
Enables IO monitoring for ProgramIO2 (defined by index 18,
19); 1= On, 0 = Off
6
0b
Enables IO monitoring for ProgramIO1 (defined by index 16,
17); 1= On, 0 = Off
7
0b
Enables IO monitoring for ProgramIo0 (defined by index 14,
15); 1= On, 0 = Off

IOMonitorEn register

Field Name
AD_LIB_MonitorStatus
MIDI_MonitorStatus
AudioMSSMonitorStatus

IOMonitorStatus - RW – 8 bits - [PM_Reg: 1Dh]
Bits
Default
Description
0
AD_LIB status bit; write 1’b1 to clear the status
1
MIDI status bit; write 1’b1 to clear the status bit
2
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]
Bits
Default
Description
3
Mouse/keyboard status bit; write 1’b1 to clear the status bit
4
Programmable IO 3 status bit; write 1’b1 to clear the status
bit
5
Programmable IO 2 status bit; write 1’b1 to clear the status
bit
6
Programmable IO 1 status bit; write 1’b1 to clear the status
bit
7
Programmable IO 0 status bit; write 1’b1 to clear the status
bit

Field Name
MouseKbMonitorStatus
ProgramIo3Status
ProgramIo2Status
ProgramIo1Status
ProgramIo0Status
IOMonitorStatus register

InactiveTmrEventEnable4 - RW – 8 bits - [PM_Reg: 1Eh]
Field Name
Bits
AD_LIB_Timer1Enable
0
MIDI_Timer1Enable
1
Audio_Timer1Enable
2
Keyboard_Time1Enable
3
PIO3_Timer1Enable
4
PIO2_Timer1Enable
5
PIO1_Timer1Enable
6
PIO0_Timer1Enable
7
InactiveTmrEventEnable4 register.

Default
0b
0b
0b
0b
0b
0b
0b
0b

Description
Enables Timer1 reload on AD_LIB inactivity
Enables Timer1 reload on MIDI inactivity
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

AcpiPm1EvtBlkLo - RW – 8 bits - [PM_Reg: 20h]
Field Name
Reserved
AcpiPm1EvtBlkLo

Bits
1:0
7:2

Default
00b
00h

Description
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
AcpiPm1EvtBlkHi

Bits
7:0

Default
00h

Description
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
AcpiPm1CntBlkLo

Bits
0
7:1

Default
0b
00h

Description
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
AcpiPm1CntBlkHi

Bits
7:0

Default
00h

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

Description
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].

SMBus Module and ACPI Block (Device 20, Function 0)
Proprietary

Page 148

AcpiPm1CntBlkHi - RW – 8 bits - [PM_Reg: 23h]
Field Name
AcpiPm1CntBlkHi register.

Bits

Default

Description

AcpiPmTmrBlkLo - RW – 8 bits - [PM_Reg: 24h]
Field Name
Reserved
AcpiPmTmrBlkLo

Bits
0
7:1

Default
0b
00h

Description
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
AcpiPmTmrBlkHi

Bits
7:0

Default
00h

Description
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
2:0
7:3

Default
000b
00h

Description
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
CpuControlHi

Bits
7:0

Default
00h

Description
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
AcpiGpe0BlkLo

Bits
1:0
7:2

Default
00b
00h

Description
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
AcpiGpe0BlkHi

Bits
7:0

Default
00h

Description
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
7:0

Default
00h

Description
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
AcpiSmiCmdHi

Bits
7:0

Default
00h

Description
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
AcpiPmaCntBlkLo

Bits
7:0

Default
00h

Description
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
AcpiPmaCntBlkHi

Bits
7:0

Default
00h

Description
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
GEvtConfig0

Bits
7:0

Default
00h

Description
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
GEvtConfig1

Bits
7:0

Default
00h

Description
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
ExtEvent0Config

Bits
1:0

Default
00b

ExtEvent1Config

3:2

00b

PCIePmeConfig

5:4

00b

Gpm0Config

7:6

00b

Field Name
Gpm1Config

Bits
1:0

Default
00b

Gpm2Config

3:2

00b

Gpm3Config

5:4

00b

Gpm8Config

7:6

00b

Description
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)
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]

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

Description
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)
01 GPM8 to generate SMI#
10 GPM8 to generate SMI# followed by SCI
11 GPM8 to generate IRQ13

SMBus Module and ACPI Block (Device 20, Function 0)
Proprietary

Page 151

GPMConfig2- RW – 8 bits - [PM_Reg: 34h]
Field Name
Gpio0Config

Bits
1:0

Default
00b

Gpm4Config

3:2

00b

Gpm5Config

5:4

00b

AzPmeConfig

7:6

00b

Field Name
Gpm6Config

Bits
1:0

Default
00b

Gpm7Config

3:2

00b

Gpio2Config

5:4

00b

SataSciConfig

7:6

00b

Description
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)
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]

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

Description
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)
01 SataSci to generate SMI#
10 SataSci to generate SMI# followed by SCI
11 SataSci to generate IRQ13

SMBus Module and ACPI Block (Device 20, Function 0)
Proprietary

Page 152

GEvtLevelConfig - RW – 8 bits - [PM_Reg: 36h]
Field Name
GEvtLevelConfig

Bits
7:0

Default
00h

Description
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
0

Default
0b

ExtEvent1LevelConfig

1

0b

PCIePmeLevelConfig

2

0b

Gpm0LevelConfig

3

0b

Gpm1LevelConfig

4

0b

Gpm2LevelConfig

5

0b

Gpm3LevelConfig

6

0b

Gpm8LevelConfig

7

0b

Description
ExtEvent0 input level configuration
1 – Rising edge trigger
0 – Falling edge trigger
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
0

Default
0b

Gpm4LevelConfig

1

0b

Gpm5LevelConfig

2

0b

AzPmeLevelConfig

3

0b

Gpm6LevelConfig

4

0b

Gpm7LevelConfig

5

0b

Gpio2LevelConfig

6

0b

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

Description
Gpio[0] or WAKE# input level configuration
1 – Rising edge trigger
0 – Falling edge trigger
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

SMBus Module and ACPI Block (Device 20, Function 0)
Proprietary

Page 153

GPMLevelConfig1 - RW – 8 bits - [PM_Reg: 38h]
Field Name
SataSciLevelConfig

Bits
7

Default
0b

Field Name
GEvtStatus
GEvtStatus register.

Bits
7:0

Field Name
ExtEvent0Status
ExtEvent1Status
PCIePmeStatus
Gpm0Status
Gpm1Status
Gpm2Status
Gpm3Status
Gpm8Status

Bits
0
1
2
3
4
5
6
7

Field Name
Gpio0Status
Gpm4Status
Gpm5Status
AzPmeStatus
Gpm6Status
Gpm7Status
Gpio2Status
SataSciStatus

Bits
0
1
2
3
4
5
6
7

Field Name
LegacySMIConfig

Bits
1:0

Default
00b

TALERTConfig

3:2

00b

USBConfig

5:4

00b

Description
SataSci input level configuration
1 – Rising edge trigger
0 – Falling edge trigger

GEvtStatus - RW – 8 bits - [PM_Reg: 39h]
Default
--

Description
GEVENT status. Write 1 to clear each bit

PMEStatus0 - RW – 8 bits - [PM_Reg: 3Ah]
Default
0b
0b
0b
0b
0b
0b
0b
0b

Description
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]
Default
0b
0b
0b
0b
0b
0b
0b
0b

Description
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]

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

Description
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)
01 UsbPme to generate SMI#
10 UsbPme to generate SMI# followed by SCI
11 UsbPme to generate IRQ13

SMBus Module and ACPI Block (Device 20, Function 0)
Proprietary

Page 154

OthersConfig- RW – 8 bits - [PM_Reg: 3Ch]
Field Name
Ac97Config

Bits
7:6

Default
00b

Description
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
1:0

Default
00b

Gpm9Config

3:2

00b

PCIeHotPlugConfig

5:4

00b

Reserved

7:6

00b

Field Name
VRT_T1

Bits
7:0

Description
These two bits configure OtherTherm
00 ACPI Event (trigger SCIOUT or SMI#
depending on SCI_EN bit)
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

VRT_T1 - RW – 8 bits - [PM_Reg: 3Eh]
Default
01h

Description
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
VRT_T2

Bits
7:0

Default
FFh

Description
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
AD_Pull_UpB

Bits
7:0

Default
00h

Description
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

AD23_Pull_UpB - RW – 8 bits - [PM_Reg: 41h]
Field Name
AD23_Pull_UpB

Bits
0

Default
0b

Reserved
AD23_Pull_UpB register.

7:1

0000_000b

Field Name
CPU_IO_PullDownDrvStr
ength
DisableBootFailCpuRst

Bits
0

Default
0b

1

0b

C2ToC3Enable

2
3
6:4
7

0b
0b
000b
0b

Description
This bit controls integrated pull-up for AD[23].
0: Enable
1: Disable

MiscPmControl - RW – 8 bits - [PM_Reg: 42h]

RstCpuPGEnable
Reserved
SSEnable
MiscPmControl

Description
When set, the integrated pull-down drive strength of all CPU
IOs are increased by 50%
This bit can be used to disable the boot fail timer to generate
CPURST#/LDTRST#
When set, SB will treat C2 as C3 under K8 mode
If this bit is set to 1, SB toggles CPUPG on every reset
Enables the spread spectrum PLL

PM_Enable - RW – 8 bits - [PM_Reg: 50h]
Field Name
C3_DPRSLP_EN

Bits
0

Default
0b

CPU_STP_EN_S2
CPU_STP_EN_S3
CPU_STP_EN_S5
AGP_STP_EN
PCI_STP_EN_S2
PCI_STP_EN_S3
PCI_STP_EN_S5
PM_Enable register

1
2
3
4
5
6
7

0b
0b
0b
0b
0b
0b
0b

Field Name
TPRESET1

Bits
5:0

Default
00h

BmStsRdMask
(available after A13)

6

0b

StpClkHoldSel
(available after A12)

7

0b

Description
When set, reading LVL3 register will cause “deeper” sleep for
Intel® mobile P4. This is equivalent to LVL4 read.
When set, CPU_STP# will be asserted in S2
When set, CPU_STP# will be asserted in S3
When set, CPU_STP# will be asserted in S5
When set, AGP_STP# message will be enabled.
When set, PCI_STP# will be asserted in S2
When set, PCI_STP# will be asserted in S3
When set, PCI_STP# will be asserted in S5

TPRESET1 - RW – 8 bits - [PM_Reg: 51h]
Description
Timing parameter used for C states in P4 system. This
register defines the wakeup latency in 8µs increment with 8us
uncertainty.
Setting this bit to 1 will keep BM_STS read as 0, unless the
BM_STS is caused by USB OHCI and UsbOhciBmStsRdEn
is set to 1.
Use this bit to select STPCLK# hold time with respect to
SLP#
0: 200ns
1: 3.9us

TPRESET1 register

TPRESET2 - RW – 8 bits - [PM_Reg: 52h]
Field Name
TPRESET2
Reserved

Bits
5:0

Default
00h

6

0b

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

Description
Timing parameter used for S* -> S0 state transitions. This
register determines the CPU_STP# deassertion delay in 8µs
increment with 8us uncertainty.

SMBus Module and ACPI Block (Device 20, Function 0)
Proprietary

Page 156

TPRESET2 - RW – 8 bits - [PM_Reg: 52h]
Field Name
PopUpReqHoldEn
(Applicable to ASIC
revision A21 and above)
TPRESET2 register

Bits
7

Default
0b

Field Name
T32_64

Bits
0

Default
0b

Reserved
SMI_Disable
Sel_wakeclk

2:1
3
4

00b
0b
0b

Reserved
TESTENABLE register

7:5

000b

Description
Setting this bit to 1 will cause the pop-up request from the
NB, or from inside of the SB, to be captured and held until the
minimum LDTSTP# assertion time has expired.

TESTENABLE - RW – 8 bits - [PM_Reg: 53h]
Description
Timing parameter used for C3 state in P4 system.
If set, the time from the reception of STOP_GNT# to SLP#
will be ~128 A-Link clocks. When it is cleared, the timing will
be ~64 A-Link clocks. Timing for CPU_STP#/PCI_STP# is
controlled similarly, except the value is 192 or 96 A-Link
clocks respectively when the bit is set or cleared.
When set, SMI# generation will be disabled
Test feature: set 1 to use OSC as the wake up clock;
otherwise, use RTC CLK as the wake up clock

PWRBTTN_CLR - RW – 8 bits - [PM_Reg: 54h]
Field Name
TFATAL_CLR
PWRBTTN_CLR
SHUTDOWN_CLR

Bits
0
1
2

Default
0b
0b
0b

Description
Write 1 to clear the TFATAL status bit
Write 1 to clear the Power Button status bit
Write 1 to clear the SHUTDOWN#/GPIO5/SMARTVOLT2
status bit

Reserved
PWRBTTN_CLR register

7:3

0000_0b

Field Name
SoftPciRstEn

Bits
0

Default
1b

1
2
3

0b
1b
0b

4

0b

5

0b

Setting this bit will cause PCIEXP_WAKE_STS to not
generate SCI.

6
7

0b
0b

Setting bit 6 will cause a PCIRST.
Set to1 to make Bar1 in SM configuration space invisible (can
Not write and always read 0)

SoftPciRst – RW – 8 bits – [PM_Reg:55h]

Gate_HpetIrq
UserResetEnable
PCIeNative
(Applicable to ASIC
revision A21 and above)
PCIeWakeMask
(Applicable to ASIC
revision A21 and above)
PCIeWakeNoSci
(Applicable to ASIC
revision A21 and above)
SoftPciRst
HideHpetBar

Description
This bit enables both the soft PCIRST and the THRMTRIP
function.
Set to 1 to let HPET enable bit to control IRQ output
When set, GPM7 becomes user reset pin.
Setting this bit to 1 will cause PCIeHotPlug PCIePme and
WakeAsGevent status to not be set by corresponding events
as required by PCIe native mode.
Setting this bit will cause PCIEXP_WAKE_STS and
PCIEXP_WAKE_DIS to not be visible as required by WinXP.

SoftPciRst register

Reserved – 8 bits - [PM_Reg: 56h]
Field Name
Reserved
Reserved

Bits
7:0

Default
00h

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

Description

SMBus Module and ACPI Block (Device 20, Function 0)
Proprietary

Page 157

Reserved – 8 bits - [PM_Reg: 57h]
Field Name
Reserved
Reserved

Bits
7:0

Default
00h

Field Name
Reserved
Reserved

Bits
7:0

Field Name
MaskAc97[1:0]

Bits
1:0

Default
00b

SataClkSelect
AzEnable

2
3

0b
1b

AzSnoopEnable

4

0b

Gpio5ShutdownEn
Reserved
MiscOption register

5
7:6

0b
00b

Field Name
GeventStatus

Bits
7:0

Description

Reserved – 8 bits - [PM_Reg: 58h]
Default
00h

Description

MiscOption - RW – 8 bits - [PM_Reg: 59h]
Description
Setting the bit will mask out the ac97 PCI configuration space
(function 5, 6)
0-external clock, 1-shared with PCIE 100MHz clock
1 – Enable HD AUDIO module
0 – Disable HD AUDIO module
When set, HD AUDIO data transfer will not cause the
BM_STS bit to be set and to wake up the CPU from C3 state.
This is used when previous version of SB did not have C
state pop-up/down function. With the new pop-up/down
function in SB600, this function is not necessary and should
not be enabled if the C-state pop-up/down is enabled.
Shutdown system if seeing a negative edge on Gpio5

SmiSciSts0 - RW – 8 bits - [PM_Reg: 5Ah]
Default
00h

Description
These bits indicate the SMI# status of the eight general
purpose event signals if they are configured to generate SMI#
followed by SCI

SmiSciSts0 register

SmiSciSts1 - RW – 8 bits - [PM_Reg: 5Bh]
Field Name
LEventStatus

Bits
0

Default
0b

TwarnStatus

1

0b

Reserved
USBStatus

2
3

0b
0b

AC97Status

4

0b

OtherThermStatus

5

0b

GPM9Status

6

0b

PCIeHotPlugStatus

7

0b

Description
This bit indicates the SMI# status of the legacy power
management logic if it is configured to generate SMI#
followed by SCI
This bit indicates the SMI# status of the Temperature Caution
input if it is configured to generate SMI# followed by SCI
This bit indicates the SMI# status of the PME# from the
internal USB controller if it is configured to generate SMI#
followed by SCI
This bit indicates SMI# status of the PME# from the internal
ac97 controller if it is configured to generate SMI# followed by
SCI
This bit indicates the SMI# status of OtherTherm from NB,
fan, etc. if it is configured to generate SMI# followed by SCI
This bit indicates the SMI# status of GPM[9] if it is configured
to generate SMI# followed by SCI
This bit indicates the SMI# status of PCIeHotPlug if it is
configured to generate SMI# followed by SCI

SmiSciSts1 register

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

SMBus Module and ACPI Block (Device 20, Function 0)
Proprietary

Page 158

SmiSciSts2 - RW – 8 bits - [PM_Reg: 5Ch]
Field Name
ExtEvent0Status

Bits
0

Default
0b

ExtEvent1Status

1

0b

PCIePmeStatus

2

0b

GPM0Status

3

0b

GPM1Status

4

0b

GPM2Status

5

0b

GPM3Status

6

0b

GPM8Status

7

0b

Description
This bit indicates the SMI# status of ExtEvent0 to
SCI/Wakeup if it is configured to generate SMI# followed by
SCI
This bit indicates the SMI# status of ExtEvent1 to
SCI/Wakeup if it is configured to generate SMI# followed by
SCI
This bit indicates the SMI# status of the PME# from
PCIExpress if it is configured to generate SMI# followed by
SCI
This bit indicates the SMI# status of GPM[0] to SCI/Wakeup if
it is configured to generate SMI# followed by SCI
This bit indicates the SMI# status of GPM[1] to SCI/Wakeup if
it is configured to generate SMI# followed by SCI
This bit indicates the SMI# status of GPM[2] to SCI/Wakeup if
it is configured to generate SMI# followed by SCI
This bit indicates the SMI# status of GPM[3] to SCI/Wakeup if
it is configured to generate SMI# followed by SCI
This bit indicates the SMI# status of GPM[8] to SCI/Wakeup if
it is configured to generate SMI# followed by SCI

SmiSciSts2 register

SmiSciSts3 - RW – 8 bits - [PM_Reg: 5Dh]
Field Name
Gpio0Status

Bits
0

Default
0b

GPM4Status

1

0b

GPM5Status
AzaliaStatus

2
3

0b
0b

GPM6Status

4

0b

GPM7Status

5

0b

Gpio2Status

6

0b

SataSciStatus
SmiSciSts3 register

7

0b

Field Name
Mwait_any_smi_en

Bits
0

Default
0b

Mwait_2cpu_smi_en

1

0b

Mwait_4cpu_smi_en

2

0b

Mwait_2cpu_C23_en

3

0b

Mwait_4cpu_C23_en

4

0b

7:5

000b

Description
This bit indicates the SMI# status of GPIO0 (or
WAKE#/GEVENT8 pin if PM IO Reg 84h bit1 =1) to
SCI/wakeup if it is configured to generate SMI# followed by
SCI
This bit indicates the SMI# status of GPM[4] to SCI/Wakeup if
it is configured to generate SMI# followed by SCI
This bit indicates the SMI# status of GPM[5] to SCI/Wakeup
This bit indicates the SMI# status from the internal HD Audio
controller if it is configured to generate SMI# followed by SCI
This bit indicates the SMI# status of GPM[6] to SCI/Wakeup if
it is configured to generate SMI# followed by SCI
This bit indicates the SMI# status of GPM[7] to SCI/Wakeup if
it is configured to generate SMI# followed by SCI
This bit indicates the SMI# status of GPIO2 to SCI/wakeup if
it is configured to generate SMI# followed by SCI
This bit indicates the SMI# status of SataSci to SCI/wakeup

MwaitEnable - RW – 8 bits - [PM_Reg: 5Eh]

Reserved

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

Description
SMI# is generated when any CPU is in mwait state if this bit
is set to 1
For 2 CPU system (dual core, non HT) SMI# is generated
when both CPUs are in mwait state if this bit is set to 1
For 4 CPU system (dual core, HT) SMI# is generated when
all 4 CPUs are in mwait state if this bit is set to 1
For 2 CPU system (dual core, non HT) C2 or C3 is generated
when both CPUs are in mwait state if this bit is set to 1. C2 or
C3 is determined by ARB_DIS = 0 or 1.
For 4 CPU system (dual core, HT) C2 or C3 is generated
when all 4 CPUs are in mwait state if this bit is set to 1. C2 or
C3 is determined by ARB_DIS = 0 or 1.

SMBus Module and ACPI Block (Device 20, Function 0)
Proprietary

Page 159

MwaitEnable - RW – 8 bits - [PM_Reg: 5Eh]
Field Name
MwaitEnable register

Bits

Default

Description

This register is used only in the P4 system.

MwaitSmiSts - RW – 8 bits - [PM_Reg: 5Fh]
Field Name
Mwait_any_smi_sts

Bits
0

Default
0b

Mwait_2cpu_smi_sts

1

0b

Mwait_4cpu_smi_sts

2

0b

Reserved
MwaitSmiSts register

7:3

00h

Description
This bit indicates that SMI# is generated when any CPU is in
mwait state
This bit indicates that for 2 CPU system (dual core, non HT)
SMI# is generated when both CPUs are in mwait state
This bit indicates that for 4 CPU system (dual core, HT) SMI#
is generated when all 4 CPUs are in mwait state

This register is used only in the P4 system.

Options_0 - RW – 8 bits - [PM_Reg: 60h]
Field Name
TAlertFanEn
ProcHotFanEn

Bits
0
1

Default
0b
0b

Fan1En
Fan2En
Reserved
SpkrEn
Fan0En
Reserved
Options_0 register

2
3
4
5
6
7

0b
0b
0b
0b
0b
0b

Field Name
Reserved
IsAmd

Bits
0
1

Default
0b
0b

PCI_Active_enable

2

0b

UseCpuRst

3

1b

ProcHotStsEn

4

0b

Reserved
UsbPmeEnable
Reserved
Options_1 register

5
6
7

0b
0b
0b

Description
Set this bit to put all fans to full speed if TALERT# is asserted
Set this bit to put all fans to full speed if PROCHOT# is
asserted
Setting this bit will configure GPIO48 pin to be FAN1 output
Setting this bit will configure GPIO49 pin to be FAN2 output
Setting this bit will configure GPIO2 to be speaker output
Setting this bit will configure GPIO3 to be FAN0 output

Options_1 - RW – 8 bits - [PM_Reg: 61h]
Description
Set to enable NB/SB handshake during IOAPIC interrupt for
AMD K6 or K7 class; Clear for other CPU.
BIOS should set this bit in order to monitor BM_STS pin from
NB (the pin is called BMREQ# on SB) and bus mastering
from the SB itself.
If this bit is not set, then system reset will cause INIT# instead
of CPURST#.
Set to enable PROCHOT# to generate TwarnStatus and
thermal throttle
USB PME enable

Shadow_SCI- R – 8 bits - [PM_Reg: 62h]
Field Name
Shadow_SCI
Reserved
Shadow_SCI register

Bits
0
7:1

Default
0b
00h

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

Description
SCI output

SMBus Module and ACPI Block (Device 20, Function 0)
Proprietary

Page 160

SwitchVoltageTime - RW – 8 bits - [PM_Reg: 63h]
Field Name
SwitchVoltageTime
Reserved
SwitchVoltageTime register

Bits
5:0
7:6

Default
05h
00b

Description
Programmable value (in 2us increment with 2us uncertainty)

SwitchGHI_Time - RW – 8 bits - [PM_Reg: 64h]
Field Name
SwitchGhiTime
Reserved
SwitchGHITime register

Bits
5:0
7:6

Default
02h
00b

Field Name
UsbPhyS5PwrDwnEnable

Bits
0

Default
0b

Reserved
UsbResumeEnable
Reserved
UsbResetByPciRstEnable

1
2
3

0b
1b
0b
1b

UsbS5ResetEnable
Reserved
SpecialFunc

5
6
7

Description
Programmable value (in 2us increment with 2us uncertainty)

UsbPMControl- RW – 8 bits - [PM_Reg: 65h]

4

1b
0b
0b

Description
Set to 1 to enable S4/S5 USB Phy power down support and to
disable S4 USB wakeup support.
The bit has to be clear to 0 (default) to support S4 USB
wakeup.
Set to 1 to enable S3 wakeup on USB device resume
Set to 1 to reset USB on the software (such as IO-64 or IOCF9 cycles) generated PCIRST#.
Set to 1 to enable USB reset on S4/S5 resume detection
If set to 1, S* -> S0 state transitions will use 1ms clock for
timing sequence; otherwise, 8µs clock will be used.
For K8 system, this bit must be cleared to use 8µs clock.

UsbPMControl register

MiscEnable66 - RW – 8 bits - [PM_Reg: 66h]
Field Name
UsbBusyBreakEn
(available after A13)
UsbOhciCstateMask
(available after A13)
Reserved
K8KbRstEn
UsbBusyBmStsEn
UsbOhciBmStsRdEn
(available after A13)
MiscEnable66 register

Bits

Default

0

0b

1

0b

4:2

000b

5

0b
0b

6
7

0b

Description
Setting this bit to 1 will cause C3/4 wakeup when USB OHCI
or EHCI DMA is active.
Setting this bit to 1 will prevent the system from entering C
state when USB OHCI DMA is active.
KB_RST# control for K8 system
0: Generate INIT#
1: Generate PCIRST#
Setting this bit to 1 will cause C3/4 pop-up when USB OHCI or
EHCI DMA is active.
Setting this bit to 1 will keep BM_STS read as 1 regardless of
BmStsRdMask when USB OHCI DMA is active.

MiscEnable67 – RW – 8 bits – [PM_Reg:67h]
Field Name
CPU_STP_En

Bits

Default

0

0b

Slp_En
CC_En
Reserved
BypassPwrGoodEn

1
2
3
4

0b
0b

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

0b

Description
CPU_STP# enable for C3 state in P4 system; no effect in K8
systems, for which CPU_STP# is always deasserted.
SLP# enable in C states
C State enable; must be set in order to exercise C state
If asserted, Southbridge will not wait for deassertion of
PWRGOOD to monitor for wakeup event

SMBus Module and ACPI Block (Device 20, Function 0)
Proprietary

Page 161

MiscEnable67 – RW – 8 bits – [PM_Reg:67h]
Field Name
TempPolarity
DlySlpEn

Bits
6:5

Default
00b

7

0b

Description
Temperature polarity control for THRMTRIP and TALERT
respectively. 0: active low; 1; active high
Set to 1 to delay recognition of STPGNT# until there is no
pending read in AB

MiscEnable67 register

MiscEnable68 – RW – 8 bits – [PM_Reg:68h]
Field Name
NicePBE

Bits
0

Default
0b

MaskCState

1

0b

MaskApicEn

2

0b

THRMTRIP_Enable

3

1b

MaskRtcClkOut
LLB_Enable

4
5

0b
0b

AcpiThrotPeriod

7:6

00b

Description
When set, the CPU ‘s assertion of PBE# during C state will
cause SB to break out from C state gracefully; i.e., it will finish
the C state entry sequence first before it will revert back to C0.
If this bit is not set, it will break out from C state abruptly. It is
recommended to set this bit.
(Use this only for the P4 system. Leave it 0 for the K8 system).
If this bit is set, the pending break event will prevent the SB
from entering C state. The LVL read will be completed with no
effect.
If set, the APIC interrupt will be deferred until the first ACPI
access when the system resumes from S state. For K8 CPU
additionally A20M# IGNNE# INTR NMI INIT# will be deferred
the same way, but SMI# will not be deferred.
When set, GEVENT2 becomes THRMTRIP function. When
THRMTRIP pin is low and PM 55h, bit 0 is set, hardware will
switch the system to S5 automatically.
If set, RtcClkOut will stop toggling.
If set, LLB function is enabled, system won’t wakeup from
ACPI S state until LLB# is de-asserted.
Selects the software clock throttling period
00: 15µs
01: 30µs
10: 244µs
11: Reserved

MiscEnable68 register

WatchDogTimerControl – RW – 8 bits – [PM_Reg:69h]
Field Name
Bits
WatchDogTimerDisable
0
Reserved
7:1
WatchDogTimerControl register

Default
1b
00h

Description
When set, watchdog timer will be disabled

WatchDogTimerBase0 – RW – 8 bits – [PM_Reg:6Ch]
Field Name
Bits
Reserved
2:0
WatchDogTimerBase0
7:3
WatchDogTimerBase0 register

Default
000b
00000b

Description
WatchDogTimer Base address [7:3]

WatchDogTimerBase1 – RW – 8 bits – [PM_Reg:6Dh]
Field Name
Bits
WatchDogTimerBase1
7:0
WatchDogTimerBase1 register

Default
00h

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

Description
WatchDogTimer Base address [15:8]

SMBus Module and ACPI Block (Device 20, Function 0)
Proprietary

Page 162

WatchDogTimerBase2 – RW – 8 bits – [PM_Reg:6Eh]
Field Name
Bits
WatchDogTimerBase2
7:0
WatchDogTimerBase2 register

Default
00h

Description
WatchDogTimer Base address [23:16]

WatchDogTimerBase3 – RW – 8 bits – [PM_Reg:6Fh]
Field Name
Bits
WatchDogTimerBase3
7:0
WatchDogTimerBase3 register

Default
00h

Description
WatchDogTimer Base address [31:24]

S_LdtStartTime – RW – 8 bits – [PM_Reg:70h]
Field Name
S_LdtStartTime

Bits
7:0

Default
00h

Description
This register defines the delay between SUS_STAT# assertion
and LDTSTP# assertion when the K8 system enters ACPI S
states, in 1us increment, with 1us uncertainty.

S_LdtStartTime register

EnhanceOption – RW – 8 bits – [PM_Reg:71h]
Field Name
Reserved
P4C34PopUpEn

Bits
0
1

Default
0b
0b

C2EnhanceEn

2

0b

Reserved
VidFidExtraDelayEn

3
4

0b
0b

7:5

000b

VidFidExtraDelaySelect

Description
If enabled, for P4 system C3/4 can pop up to C2 for internal
DMA request and back down to C3/4 after A-link bus is idle for
number of clocks defined by PopUpEndTime.
1 = Enable
0 = Disable
For both P4 and K8 system, in C2 state NB can toggle
SLP#/LDTSTP#. When entering C2 state, SB sends out
STPCLK# assertion message. NB takes control of
SLP#/LDTSTP#. When exiting C2 state, SB sends out
STPCLK# de-assertion message. NB de-assert
SLP#/LDTSTP# if needed. If this bit is enabled, SB will wait for
NB to send the same message back then de-assert STPCLK#
signal for P4 system or send another STPCLK# de-assertion
message for K8 system. If this bit is disabled, SB will not wait
for NB to send the message back.
1 = Enable
0 = Disable
If enabled, extra duration of LDTSTP# assertion as specified
by VidFidExtraDelaySelect will be added to the VID/FID
change sequence.
1 = Enable
0 = Disable
3’b000: 0ns
3'b001: 140ns
3'b010: 210ns
3'b011: 280ns
3'b110: 350ns
3'b111: 420ns
3'b100: 490ns
3'b101: 560ns

EnhanceOption register

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

SMBus Module and ACPI Block (Device 20, Function 0)
Proprietary

Page 163

C4Control – RW – 8 bits – [PM_Reg:72h]
Field Name
DPRSLPVR_delay
C4ChkVgate

Bits
6:0

Default
000_0000b

7

0b

Description
This defines the delay between CPU_STP# de-assertion and
DPRSLPVR de-assertion in C4 state, in 2us increment with
2us uncertainty.
1: check VGATE=1 before DPRSLPVR de-assertion
0: use DPRSLPVR_delay for DPRSLPVR de-assertion

C4Control register for the P4 system.

PopUpEndTime – RW – 8 bits – [PM_Reg:73h]
Field Name
PopUpEndTime

Bits
7:0

Default
80h

Description
This register applies to both P4 and K8 system. During C3/4
pop-up, SB monitors DMA traffic. If there has been no traffic
for PopUpEndTime, SB will bring system back to C3/4.
For P4 system, the time is counted by A-link clock.
For K8 system, the time is counted by OSC clock.

PopUpEndTime register

PwrFailShadow – RW – 8 bits – [PM_Reg:74h]
Field Name
PwrFailShadow

Bits
3:0

Default
0h

PwrFailOption

5:4

00b

6
7

0b
0b

PowerState
ForcePwrOn

Description
Writing to these four bits will set the value onto bits [7:4].
Software should always set bit 2 = 1
These two bits will determine how system should resume after
a power failure.
00: Use default: Wait for wake event to power up
01: Always on: always power on after power resumes
10: Always off: always power off after power resumes
11: Use previous: resume to same setting when power fails.
Power state indicator: 1 = on; 0 = off
If set and RTC AIE =1, will force power on after power
resumes regardless of Bit[5:4] setting; if cleared and RTC AIE
= 1, will wakeup when RTC alarm fires after a power
failure/resume.

PwrFailShadow register
Note: For ASIC revisions A11, A12, and A13 this register needs to be written twice for bits [7:4] to be updated
correctly. There is no such restriction with other revisions.

Tpreset1b – RW – 6 bits – [PM_Reg:75h]
Field Name
Tpreset1b

Bits
5:0

Default
05h

DelayRomRstEn

6

1b

DelayLanRstEn

7

1b

Description
Timing parameter used for S* -> S0 state transition.
This determines the delay between CPU_STP# de-assertion
and SUS_STAT# de-assertion, in 8us increment with 8us
uncertainty.
1: 30ms ahead of deassertion of PciRst#
0: ROM_RST functions the same as PciRst#
1: 20ms ahead of deassertion of PciRst#
0: Lan_RST functions the same as PciRst#

S0S3ToS5Enable0 – RW – 8 bits – [PM_Reg:76h]
Field Name
S0S3ToS5Enable0

Bits
7:0

Default
FFh

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

Description
This register determines which wakeup signals can be passed
onto the S5 region. For S4/S5 wake up, this bit must be set in
before the corresponding pin can be used
Bit [7:0]: GEVENT#[7:0]
1: Enable
0: Disable

SMBus Module and ACPI Block (Device 20, Function 0)
Proprietary

Page 164

S0S3ToS5Enable0 – RW – 8 bits – [PM_Reg:76h]
Field Name
S0S3ToS5Enable0 register

Bits

Default

Description

S0S3ToS5Enable1 – RW – 8 bits – [PM_Reg:77h]
Field Name
S0S3ToS5Enable1

Bits
7:0

Default
FFh

Description
This register determines which wakeup signals can be passed
onto the S5 region. For S4/S5 wake up, this bit must be set in
before the corresponding pin can be used
Bit [7:0]: GPM#[7:0]
1: Enable
0: Disable

S0S3ToS5Enable1 register

S0S3ToS5Enable2 – RW – 8 bits – [PM_Reg:78h]
Field Name
S0S3ToS5Enable2

Bits
7:0

Default
FFh

Description
This register determines which wakeup signals can be passed
onto the S5 region. For S4/S5 wake up, this bit must be set in
before the corresponding pin can be used
Bit [0]: Spare
Bit [1]: Internal USB
Bit [2]: EXTEVENT#[0]
Bit [3]: EXTEVENT#[1]
Bit [4]: External IRQ8
Bit [5]: GPIO[0]
Bit [6]: GPIO[1]
Bit [7]: GPIO[2]
1: Enable
0: Disable

S0S3ToS5Enable2 register

S0S3ToS5Enable3 – RW – 8 bits – [PM_Reg:79h]
Field Name
S0S3ToS5Enable3

Bits
7:0

Default
FFh

Description
This register determines which wakeup signals can be passed
onto the S5 region. For S4/S5 wake up, this bit must be set in
before the corresponding pin can be used
Bit [0]: GPIO[3]
Bit [1]: Spare
Bit [2]: SATA_SCI
Bit [3]: Spare
Bit [4]: Spare
Bit [5]: Spare
Bit [6]: S5ResetOverride
Bit [7]: Enable bit to pass PCI config gevent1_en* bits
1: Enable
0: Disable

S0S3ToS5Enable3 register

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

SMBus Module and ACPI Block (Device 20, Function 0)
Proprietary

Page 165

NoStatusControl0 – RW – 8 bits – [PM_Reg:7Ah]
Field Name
NoStatusControl0

Bits
7:0

Default
00h

Description
For GEVENT#[7:0] configured as PME# (wakeup function),
additional setting of these bits will still allow GEVENT# pins to
wakeup the system but they will not set the status bit in the
ACPI GEVENT status register.
Bits [7:0] control GEVENT#[7:0] respectively
0 – Allow status
1 – Not-allow status

NoStatusControl0 register

NoStatusControl1 – RW – 8 bits – [PM_Reg:7Bh]
Field Name
NoStatusControl1
NoStatusControl1 register

Bits
7:0

Default
00h

Field Name
BreakEnable

Bits
0

Default
0b

Reserved
BlinkControl

1
3:2

0b
00b

AltCenturyEnable
SusStatOption
WaitStpGntEnB

4
5
6

0b
0b
0b

Reserved
MiscEnable7C register

7

0b

Description
This register should be set the same as 7A

MiscEnable7C – RW – 8 bits – [PM_Reg:7Ch]
Description
Set to 1 to allow wakeup from C3 without asserting LDTSTP#
in K8 system
Blinking interval select
00: Always off
01: 1sec on, 3sec off, repeating
10: 2sec on, 2sec off, repeating
11: Always on
Set to 1 to enable RTC AltCentury register
SUS_STAT# timing option enable
0: Wait for STPGNT# in ACPI S state;
1: No wait

DprSlpVrMinTime – RW – 8 bits – [PM_Reg:7Dh]
Field Name
DprSlpVrMinTime

Bits
3:0

Default
2h

Reserved
DprSlpVrMinTime register

7:4

0h

Field Name
S45SMAF
Reserved
C2SMAF
Reserved
SMAF0 register

Bits
2:0
3
6:4
7

Field Name
C3SMAF
Reserved
VFSMAF
Reserved

Bits
2:0
3
6:4
7

Description
This defines the minimum assertion time of DPRSLPVR, in
2us increment with 2us uncertainty.

SMAF0 – RW – 8 bits – [PM_Reg:80h]
Default
110b
0b
0h
0b

Description
System management action field for S4/5 STPCLK message
System management action field for C2 STPCLK message

SMAF1 – RW – 8 bits – [PM_Reg:81h]
Default
001b
0b
010b
0b

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

Description
System management action field for C3 STPCLK message
System management action field for VFID STPCLK message

SMBus Module and ACPI Block (Device 20, Function 0)
Proprietary

Page 166

SMAF1 – RW – 8 bits – [PM_Reg:81h]
Field Name
SMAF1 register

Bits

Default

Field Name
S1SMAF
Reserved
S3SMAF
Reserved
SMAF2 register

Bits
2:0
3
6:4
7

Field Name
NSSMAF

Bits
2:0

Default
101b

Reserved
TTSMAF

3
6:4

0b
101b

7

0b

Description

SMAF2 – RW – 8 bits – [PM_Reg:82h]
Default
011b
0b
100b
0b

Description
System management action field for S1 STPCLK message
System management action field for S3 STPCLK message

SMAF3 – RW – 8 bits – [PM_Reg:83h]

Reserved
SMAF3 register

Description
System management action field for Normal Throttling
STPCLK message
System management action field for Thermal Throttling
STPCLK message

WakePinCntl – RW – 8 bits – [PM_Reg:84h]
Field Name
WakePinEnable
WakePinAsGEvent

Bits
0
1

Default
1b
0b

WakeOut
WakeOutEnB
WakePinStatus
Reserved
WakePinCntl register

2
3
4
7:5

0b
1b
0b
000b

Field Name
Reserved
SysRst

Bits
0
1

Default
0b
0b

RstCmd

2

0b

FullRst

3

0b

Reserved
CF9Rst register

7:4

0h

Field Name
Therm2SecDelay

Bits
0

Description
Set to 1 to enable wakeup from WAKE#/GEVENT#[8] pin
Set to 1 to use WAKE#/GEVENT#[8] pin as GEvent, replacing
GPIO0
Output data for wake pin
Output enable for wake pin (active low)
Input status for wake pin

CF9Rst – RW – 8 bits – [PM_Reg:85h]
Description
0: Send INIT HT message
1: Reset as specified by bit3
Write with 1 to generate reset as specified by bit[3,1]
Write only, always read as 0
0: Assert reset signals only
1: Place system in S5 state for 3 to 5 seconds

ThermThrotCntl – RW – 8 bits – [PM_Reg:86h]
Default
0b

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

Description
Enable 2 second delay for thermal clock throttle

SMBus Module and ACPI Block (Device 20, Function 0)
Proprietary

Page 167

ThermThrotCntl – RW – 8 bits – [PM_Reg:86h]
Field Name
ThrottleControl

Bits
4:1

Default
0000b

ThermThrotPeriod

5

0b

Reserved
PllRstEn
(available after A13)
ThermThrotCntl register

6
7

0b
0b

Description
Bit[4] Enable thermal clock throttle
Bit[3:1] Throttle interval for STPCLK# de-assertion
000b: 50%
001b: 12.5%
010b: 25%
011b: 37.5%
100b: 50%
101b: 62.5%
110b: 75%
111b: 87.5%
Selects the thermal clock throttle period
0: 30us
1: 244us
Resets PLL whenever the system gets reset.

LdtStpCmd – RW – 8 bits – [PM_Reg:87h]
Field Name
LSCmd

Bits
0

Default
0b

Reserved
LdtStpCmd register

7:1

00h

Description
Write 1 to generate VID/FID change sequence with C3
STPCLK# message

LdtStartTime – RW – 8 bits – [PM_Reg:88h]
Field Name
Bits
Default
Description
LdtStartTime
7:0
00h
LDTSTP# assertion delay in 1us increment
LdtStartTime register for ACPI C state in the K8 system.

AgpStartTime – RW – 8 bits – [PM_Reg:89h]
Field Name
Bits
Default
Description
AgpStartTime
7:0
00h
AGP_STP# assertion delay in 1us increment
AgpStartTime register for ACPI C state in the K8 system.

LdtAgpTimeCntl – RW – 8 bits – [PM_Reg:8Ah]
Field Name
LdtEndTime

Bits
1:0

Default
00b

Reserved
VfidTime

3:2
6:4

00b
000b

7

0b

StutterMode

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

Description
LDTSTP# de-assertion delay select
00: 0µs
01: 1µs
10: 32µs
11: 64µs
VID/FID LDTSTP# duration select
000: 1µs
001: 2µs
010: 4µs
011: 8µs
100: 16µs
101: 32µs
110: 64µs
111: 128µs
Set to 1 to enable stutter mode

SMBus Module and ACPI Block (Device 20, Function 0)
Proprietary

Page 168

LdtAgpTimeCntl – RW – 8 bits – [PM_Reg:8Ah]
Field Name
Bits
Default
LdtAgpTimeCntl register for ACPI C state in the K8 system.

Description

StutterTime – RW – 8 bits – [PM_Reg:8Bh]
Field Name
Bits
Default
Description
StutterTime
7:0
00h
LDTSTP# duration in 1us increment
StutterTime register for ACPI C state in the K8 system.

StpClkDlyTime – RW – 8 bits – [PM_Reg:8Ch]
Field Name
StpClkDlyTime

Bits
7:0

Default
00h

Description
STPCLK# deassertion delay in number of OSC clocks for S1
resume in K8 system.

StpClkDlyTime register for ACPI S state

MiscEnable8D – RW – 8 bits – [PM_Reg:8Dh]
Field Name
PmeMsgEn
SlpS2En
AzRstEn
DprStpEn
Ac97PciClkEnB
LongReset
EffMaskEn

Bits
0
1
2
3
4
5
6

Default
0b
0b
0b
0b
0b
0b
0b

Reserved
AbPmeCntl register

7

0b

Field Name
FakeAsr
FakeAsr register

Bits
7:0

Field Name
FakeAsrEn

Bits
0

Default
0b

UseBypassRom

1

0b

BypassRomSel

3:2

00b

4

0b

Description
Set to 1 to enable PmeTurnOff/PmeMsgAck handshake
Set to 1 to enable GPM9 as SLP_S2 output
Set to 1 to enable GPM8 as AZ_RST# output
Set to 1 to enable DPRSTP# output
Clear to 0 to enable gating of the ac97 internal clock
Set to 1 will cause all reset to be 6ms longer
(Set to 1 for the P4 system and leave it 0 for K8 system).
On the P4 platform, right after the SB exits from the C state,
the LVL read will have no effect until the previous break event
has been cleared. Setting the bit will prevent the SB from
sending the STPCLK# message to the NB during such time.
On the K8 platform the bit has no meaning and must be 0.

FakeAsr– RW – 8 bits – [PM_Reg:8Eh]
Default
00h

Description
Fake alternate status

FakeAsrEn– RW – 8 bits – [PM_Reg:8Fh]

BmReqPopUpEn

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

Description
FakeAsr enable. If set, SB will return a fake status (defined in
PMIO_8Eh) when IDE DMA is actively busy and software tries
to read the status from the IDE device
When this bit is set, it will override the ROM straps and use
bits 3:2 of this register to determine which type of ROM to use.
This is for BIOS debugging purpose or for if system desires to
have multiple BIOS on board
These two bits will override the two ROM strap pins.
00 – LPC ROM
10 – FWH ROM
11 – SPI ROM
01 – PCI ROM (not used after A13)
When set (along with C state PopUp enabled), BmReq# input
will not cause BM_STS to be set; instead, it will simply act just
like AllowLdtStop and cause the C state machine to pop-up to
C2. This bit is only valid under K8 CPU configuration.

SMBus Module and ACPI Block (Device 20, Function 0)
Proprietary

Page 169

FakeAsrEn– RW – 8 bits – [PM_Reg:8Fh]
Field Name
MaskNbBmStsSet

Bits
5

Default
0b

MemRstDisable

6

0b

DisableOtherIrq8

7

0b

Description
When set, BmStsSet message from NB will not cause wake up
from C state.
When set, the memory reset function at DDR_RST# pin will be
disabled and can be used as GPM5#
When set, other source of interrupt 8 (serial IRQ, HPET) will
not be routed to the SCI. Only RTC interrupt will be routed to
the SCI

FakeAsrEn register

GEVENTOUT – RW – 8 bits – [PM_Reg:90h]
Field Name
GEVENTOUT
GEVENTOUT register

Bits
7:0

Field Name
GEVENTEN

Bits
7:0

Default
00h

Description
GEVENT[7:0] output value

GEVENTEN – RW – 8 bits – [PM_Reg:91h]
Default
FFh

Description
GEVENT[7:0] output enable
0: Enable
1: Tristate

GEVENTEN register

GEVENTIN – RW – 8 bits – [PM_Reg:92h]
Field Name
GEVENTIN
GEVENTIN register

Bits
7:0

Default
--

Field Name
GPM98OUT
Reserved
GPM98OUT register

Bits
1:0
7:2

Field Name
GPM98EN

Bits
1:0

Default
11b

Reserved
GPM98EN register

7:2

00h

Field Name
GPM98IN
Reserved
GPM98IN register

Bits
1:0
7:2

Description
GEVENT[7:0] input status

GPM98OUT – RW – 8 bits – [PM_Reg:94h]
Default
00b

Description
GPM[9:8] output value

GPM98EN – RW – 8 bits – [PM_Reg:95h]
Description
GPM[9:8] output enable
0: Enable
1: Tristate

GPM98IN – RW – 8 bits – [PM_Reg:96h]
Default
-00h

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

Description
GPM[9:8] input status

SMBus Module and ACPI Block (Device 20, Function 0)
Proprietary

Page 170

K8C1ePort - RW - 16 bits - [PM_Reg: 99:98h]
Field Name
K8C1ePort

Bits
15:0

Default
0000h

Description
This register defines the 16 bit IO address for the K8 C1e
support. In AMD K8 dual core system, when both CPUs have
entered the C1e state, it will broadcast an IO cycle. BIOS can
program CPU with this address for such function. When SB
receives this IO cycle, it can automatically sequence to C2 or
C3 depending on PMIO9Ah, bits [1:0].

K8C1ePort register

EnhanceControl - RW - 8 bits - [PM_Reg: 9Ah]
Field Name
K8C1eToC2En

Bits
0

Default
0b

K8C1eToC3En

1

1b

K8C3PopUpEn

2

0b

AutoArbDisEn

3

0b

auto_bm_rld

4

0b

auto_clr_bm_sts

5

0b

FastReadEnable
HPET_Periodic
EnhanceControl register

6
7

0b
0b

Description
If this bit is set, a write to the IO address defined by
K8C1ePort will cause SB to automatically sequence to C2
If this bit is set, a write to the IO address defined by
K8C1ePort will cause SB to automatically sequence to C3. It
is BIOS’s responsibility not to set both bits 0 and 1 to 1; only
one bit can be set to 1.
If this bit is set, SB can pop up from C3 to C2 in the case of
bus mastering (DMA) instead of transitioning to C0. After
DMA, it goes back to C3 with minimum delay of LdtStartTime.
K8 system –
If this bit is set and K8C1eToC3En is also set, a write to the IO
address defined by K8C1ePort will cause SB automatically set
the ARB_DIS bit.
P4 system –
If this bit is set, LVL3 read will cause SB automatically set the
ARB_DIS bit.
If this bit is set, BM_STS will cause SB to wakeup from C3/4
even if BM_RLD is not set.
If this bit is set, BM_STS will be cleared when system enters
C3/4.
This bit is to make the read from ADC as fast as possible.
Set to 1 to enable HPET periodic mode hw support.

K8C1eReadPort - R - 8 bits - [PM_Reg: 9Bh]
Field Name
K8C1eReadPort

Bits
7:0

Default
00h

Description
The C1e Write by CPU is stored in this register. The value
written by the C1e write can also be read from the defined IO
address

K8C1eReadPort register

MsiSignature - R - 24 bits - [PM_Reg: 9E:9Ch]
Field Name
MsiSignature

Bits
19:0

Default
00000h

Spare
HPET_Version
MsiSignature register

21:20
23:22

00b
00b

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

Description
This defines the MSI signature SB will monitor. This
corresponds to address [39:20]. When SB sees transaction
with this address, it will issue a break event to the C state
machine if the CPU is in C2/3/4 state
Set to 11b to make HPET revision id to be 01.

SMBus Module and ACPI Block (Device 20, Function 0)
Proprietary

Page 171

AutoArbDisWaitTime - RW - 8 bits - [PM_Reg: 9Fh]
Field Name
AutoArbDisWaitTime

Bits
3:0

Default
0h

HPET_DisablePeriodic
HPET_Load

4
5

0h
0h

ASFRemoteDelay
RstCstate/9E

6
7

0h
0h

Description
This defines the amount of time (in 2us increment) that SB will
hold ARB_DIS set after breaking from C3. This is to allow
sometime for CPU to resume from C3 before allowing any bus
mastering to the memory. This timer has an uncertainty of 2us. This applies to K8 C1e or P4 LVL3 if AutoArbDisEn is set.
Set to 1 to make Periodical capability bit appear to be 0.
Set to 1 to make HPET timer load the new value in periodical
mode
Set to 1 to delay the remote action(reset,power dwon..)
Set to 1 to make state machine of C state reset by pcirst,
otherwise rsmrst

AutoArbDisWaitTime register

Programlo4RangeLo - RW – 8 bits - [PM_Reg: A0h]
Field Name
ProgramIo4Mask

Bits
3:0

Default
0h

ProgramIo4RangeLo

7:4

0h

Description
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)
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].

ProgramIo4RangeLo register

ProgramIo4RangeHi - RW – 8 bits - [PM_Reg: A1h]
Field Name
ProgramIo4RangeHi

Bits
7:0

Default
00h

Description
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].

ProgramIo4RangeHi register

Programlo5RangeLo - RW – 8 bits - [PM_Reg: A2h]
Field Name
ProgramIo5Mask

Bits
3:0

Default
0h

ProgramIo5RangeLo

7:4

0h

Description
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)
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].

ProgramIo5RangeLo register

ProgramIo5RangeHi - RW – 8 bits - [PM_Reg: A3h]
Field Name
ProgramIo5RangeHi

Bits
7:0

Default
00h

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

Description
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].

SMBus Module and ACPI Block (Device 20, Function 0)
Proprietary

Page 172

ProgramIo5RangeHi - RW – 8 bits - [PM_Reg: A3h]
Field Name
Bits
ProgramIo5RangeHi register

Default

Description

Programlo6RangeLo - RW – 8 bits - [PM_Reg: A4h]
Field Name
ProgramIo6Mask

Bits
3:0

Default
0h

ProgramIo6RangeLo

7:4

0h

Description
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)
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].

ProgramIo6RangeLo register

ProgramIo6RangeHi - RW – 8 bits - [PM_Reg: A5h]
Field Name
ProgramIo6RangeHi

Bits
7:0

Default
00h

Description
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].

ProgramIo6RangeHi register

Programlo7RangeLo - RW – 8 bits - [PM_Reg: A6h]
Field Name
ProgramIo7Mask

Bits
3:0

Default
0h

ProgramIo7RangeLo

7:4

0h

Description
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)
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].

ProgramIo7RangeLo register

ProgramIo7RangeHi - RW – 8 bits - [PM_Reg: A7h]
Field Name
ProgramIo7RangeHi

Bits
7:0

Default
00h

Description
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].

ProgramIo7RangeHi register

Field Name
ProgramIo4Enable

PIO7654Enable - RW – 8 bits - [PM_Reg: A8h]
Bits
Default
Description
0
0b
Enables IO monitoring for ProgramIO4 (defined by index A0,
A1).
1 = On
0 = Off

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

SMBus Module and ACPI Block (Device 20, Function 0)
Proprietary

Page 173

Field Name
ProgramIo5Enable

ProgramIo6Enable

ProgramIo7Enable

Spare
PIO7654Enable register

Field Name
ProgramIo4Status
ProgramIo5Status
ProgramIo6Status
ProgramIo7Status
Spare
PIO7654Status register

PIO7654Enable - RW – 8 bits - [PM_Reg: A8h]
Bits
Default
Description
1
0b
Enables IO monitoring for ProgramIO5 (defined by index A2,
A3).
1 = On
0 = Off
2
0b
Enables IO monitoring for ProgramIO6 (defined by index A4,
A5).
1 = On
0 = Off
3
0b
Enables IO monitoring for ProgramIO7 (defined by index A6,
A7).
1 = On
0 = Off
7:4
0h
Scratch bits

PIO7654Status - RW – 8 bits - [PM_Reg: A9h]
Bits
Default
Description
0
0b
Programmable IO 4 status bit; write 1’b1 to clear the status
bit
1
0b
Programmable IO 5 status bit; write 1’b1 to clear the status
bit
2
0b
Programmable IO 6 status bit; write 1’b1 to clear the status
bit
3
0b
Programmable IO 7 status bit; write 1’b1 to clear the status
bit
7:4
0h
Scratch bits

Field Name
PLL_debug_delay
(available after A13)
PllDebug register

Bits
7:0

PllDebug– R/W – 8 bits - [PM_Reg: B0h]
Default
Description
08h
These bits are for PLL debugging purposes.

Field Name
PLL_debug_range
(available after A13)
Spare
PllDebug register

Bits
5:0

PllDebug– R/W – 8 bits - [PM_Reg: B1h]
Default
Description
00_1001b
These bits are for PLL debugging purposes.

Field Name
Disable IDE block
(available after A13)
Spare
AltDebugBusCntrl register

Field Name
C2Count

7:6

00b

Scratch bits

AltDebugBusCntrl – R/W – 8 bits - [PM_Reg: B2h]
Bits
Default
Description
0
0b
This bit is used to disable entire IDE block.
7:1

Bits
7:0

00h

Scratch bits

C2Count - R – 8 bits - [PM_Reg: B3h]
Default
Description
00h
The value shows the amount of time the CPU spends in C2.
Each increment represents approximately 0.39% (1/256).
This register is updated by HW automatically every second

C2Count register

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

SMBus Module and ACPI Block (Device 20, Function 0)
Proprietary

Page 174

Field Name
C3Count

Bits
7:0

C3Count - R – 8 bits - [PM_Reg: B4h]
Default
Description
00h
The value shows the amount of time the CPU spends in C3.
Each increment represents approximately 0.39% (1/256).
This register is updated by HW automatically every second

C3Count register

Field Name
SmiIndicator0

Reserved
SmiIndicator0 register

Field Name
SmiIndicator1

Reserved
SmiIndicator1 register

Field Name
SmiIndicator2

Reserved
SmiIndicator2 register

SmiIndicator0 - R – 8 bits - [PM_Reg: C0h]
Default
Description
This register is a read only register and is meant to help BIOS
to search the SMI source quicker
Bit [0] = 1 means the SMI source is coming from PM_Reg0F
Bit [1] = 1 means the SMI source is coming from CMS (IO
C50/C51, Index02)
Bit [2] = 1 means the SMI source is coming from PM_RegA9
Bit [3] = 1 means the SMI source is coming from PM_Reg1D
Bit [4] = 1 means the SMI source is coming from PM_Reg07
Bit [5] = 1 means the SMI source is coming from PM_Reg06
Bit [6] = 1 means the SMI source is coming from PM_Reg05
Bit [7] = 1 means the SMI source is coming from PM_Reg01
7
0b

Bits
6:0

SmiIndicator1 - R – 8 bits - [PM_Reg: C1h]
Default
Description
This register is a read only register and is meant to help BIOS
to search the SMI source quicker
Bit [0] = 1 means the SMI source is coming from PM_Reg5F
Bit [1] = 1 means the SMI source is coming from PM_Reg5D
Bit [2] = 1 means the SMI source is coming from PM_Reg5C
Bit [3] = 1 means the SMI source is coming from PM_Reg5B
Bit [4] = 1 means the SMI source is coming from PM_Reg5A
7:5
000b

Bits
4:0

SmiIndicator2 - R – 8 bits - [PM_Reg: C2h]
Default
Description
This register is a read only register and is meant to help BIOS
to search the SMI source quicker
Bit [0] = 1 means the SMI source is coming from HWM
(PMIO2)
Bit [1] = 1 means the SMI source is coming from AMDSI
(PMIO2)
Bit [2] = 1 means the SMI source is coming from the fan
monitor (PMIO2)
Bit [3] = 0 means the SMI source is coming from RTC VRT
(IO 70/71, index 0D, bit 7). This bit is inverted.
Bit [4] = 1 means the SMI source is coming from SCI
Bit [5] = 1 means the SMI source is coming from
ACPI_GEVENT_STATUS
7:6
00b

Bits
5:0

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

SMBus Module and ACPI Block (Device 20, Function 0)
Proprietary

Page 175

2.3.3.3

ACPI Registers

Register Name
Offset Address*
Pm1Status
00h
Pm1Enable
02h
PmControl
00h
PmaControl
00h
TmrValue/ETmrValue
00h
CLKVALUE
00h
PLvl2
04h
PLvl3
05h
PLvl4
06h
AcpiSsCnt
00h
EVENT_STATUS
00h
EVENT_ENABLE
04h
* Note: The offset addresses listed here for the ACPI registers belong to different apertures/decodes. Check the register
descriptions for details.

Pm1Status - RW - 16 bits - [AcpiPmEvtBlk:00h]
Field Name
TmrStatus

Bits
0

Default
0b

Reserved
BmStatus

3:1
4

000b
0b

GblStatus

5

0b

7:6
8
9
10
13:11
14

00b
0b
0b
0b
000b
0b

Reserved
PwrBtnStatus
Reserved
RtcStatus
Reserved
PciExpWakeStatus

Description
Timer carry status bit. This bit gets set anytime the 23rd/31st
bit of 24/32 bit counter changes (whenever the MSB changes
from low to high or high to low. While TmrEn and TmrStatus
are set, an interrupt event is raised). [Read-only]
Bus master status bit. This bit is set any time a system bus
master requests the system bus, and can only be cleared by
writing an one to this bit position.
This bit is set when an SCI is generated due to the BIOS
wanting the attention of the SCI handler. This is set by writing
1 to PM_Reg: 0Eh bit [1].
Power button status bit
This bit is set when RTC generates an alarm.

This bit is set by hardware to indicate that the system woke
due to a PCI Express wakeup event.
WakeStatus
15
0b
This bit is set when the system is in the sleep state and a
wake-up event occurs.
This register is located at the base address defined by AcpiPmEvtBlk.

Pm1Enable - RW - 16 bits - [AcpiPmEvtBlk:02h]
Field Name
TmrEn

Bits
0

Default
0b

Reserved
GblEn

4:1
5

0h
0b

Reserved
PwrBtnEn

7:6
8

00b
0b

Reserved
RtcEn

9
10

0b
0b

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

Description
This is the timer carry interrupt enable bit. When this bit is
set then an SCI event is generated anytime the TmrStatus is
set. When this bit is reset then no interrupt is generated
when the TmrStatus bit is set.
If this bit is set, SCI is raised whenever both GblEn and
GblStatus are true.
If this bit is set, SCI is generated whenever PwrBtnStatus is
true.
RTC enable. If this bit is set, SCI is generated whenever
RtcStatus is true.

SMBus Module and ACPI Block (Device 20, Function 0)
Proprietary

Page 176

Pm1Enable - RW - 16 bits - [AcpiPmEvtBlk:02h]
Field Name
Reserved
PciExpWakeDis

Bits
13:11
14

Default
000b
1b

Description
This bit disables the inputs to the PciExpWakeStatus from
waking the system.

Reserved
15
0b
This register is located at the base address defined by AcpiPmEvtBlk.

PmControl - RW - 16 bits - [AcpiPm1CntBlk:00h]
Field Name
SCI_EN

Bits
0

Default
0b

BmRld

1

0b

GBL_RLS

2

0b

Reserved
SlpType

9:3
12:10

00h
000b

13

0b

SlpEn

Description
Selects the power management event to be either an SCI or
SMI# interrupt for the following events. When this bit is set,
then PM events will generate an SCI interrupt; otherwise, it
will be SMI#.
If this bit is set, SCI is raised whenever there is a bus master
active
If PM IO x0E bit[0] is set, writing 1 to this bit will generate
SMI# and set PM IO x0F bit[0]. This bit will always return 0.
Defines the sleep state the system enters when the SlpEn is
set to one. This design currently implements 3 states: S1,
S3, and S5
This is a write-only bit and reads from it always return zero.
If PM_Reg 04h bit7 SLP_SMI_EN is 0, setting this bit causes
the system to sequence into the sleeping state associated
with the SlpType fields programmed. If SLP_SMI_EN is 1,
setting this bit causes SMI#. Writing 0 to this bit has no
effect. This applies to both P4 and K8 systems.

Reserved
15:14
00b
This register is located at the base address defined by AcpiPm1CntBlk.

PmaControl - RW - 8 bits - [AcpiPmaCntBlk:00h]
Field Name
Bits
Default
Description
ARB_DIS
0
0b
System arbiter is disabled when this bit is set.
Reserved
7:1
00h
This register is located at the base address defined by AcpiPmaCntBlk.

TmrValue/ETmrValue – R - 32 bits - [AcpiPmTmrBlk:00h]
Field Name
TmrValue

Bits
31:0

Default
-

Description
This read-only field returns the running count of the power
management timer.
This register is located at the base address defined by AcpiPmTmrBlk.

Field Name
Reserved
ClkValue

Bits
0
3:1

Default
0b
000b

ThtEn
Reserved

4
31:5

0b
0000000h

CLKVALUE - RW - 32 bits - [CpuControl:00h]

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

Description
These bits define throttle interval for STPCLK# de-assertion
000b: 50%
001b: 12.5%
010b: 25%
011b: 37.5%
100b: 50%
101b: 62.5%
110b: 75%
111b: 87.5%
This bit enables clock throttling as set in the ClkValue.

SMBus Module and ACPI Block (Device 20, Function 0)
Proprietary

Page 177

CLKVALUE - RW - 32 bits - [CpuControl:00h]
Field Name
Bits
Default
This register is located at the base address defined by CpuControl

Description

PLvl2 - R - 8 bits - [CpuControl:04h]
Field Name

Bits
7:0

Description
Reads to this register return all zeros; writes to this register
have no effect. Reads to this register generates a “enter C2
power” to the clock control logic (STPCLK logic).
This register is located at the base address defined by CpuControl

Field Name

Bits
7:0

Field Name

Bits
7:0

PLvl2

Default
00h

PLvl3 – R – 8 bits - [CpuControl:05h]
Description
Reads to this register return all zeros; writes to this register
have no effect. Reads to this register generates a “enter C3
power” to the clock control logic (STPCLK logic).
This register is located at the base address defined by CpuControl
PLvl3

Default
00h

PLvl4 – R - 8 bits - [CpuControl:06h]
Description
Reads to this register return all zeros; writes to this register
have no effect. Reads to this register generates a “enter C4
power” to the clock control logic (STPCLK logic).
This register is located at the base address defined by CpuControl
PLvl4

Default
00h

AcpiSsCnt - RW - 8 bits - [AcpiSsCntBlk:00h]
Field Name
Bits
Default
AcpiSsCnt
0
0b
Reserved
Reserved
7:1
00h
This register is located at the base address defined by AcpiSsCntBlk

Description

EVENT_STATUS - RW - 32 bits - [AcpiGpe0Blk:00h]
Field Name
GeventStatus

Bits
7:0

Default
00h

LEventStatus

8

0b

TwarnStatus
Reserved
USBStatus
AC97Status
OtherThermStatus
GPM9Status
PCIeHotPlugStatus
ExtEvent0Status
ExtEvent1Status
PCIePmeStatus
GPM0Status
GPM1Status
GPM2Status
GPM3Status
GPM8Status
Gpio0Status

9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24

0b
0b
0b
0b
0b
0b
0b
0b
0b
0b
0b
0b
0b
0b
0b

GPM4Status
GPM5Status

25
26

0b
0b

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

Description
These bits indicate the status of the eight general purpose
event signals events to the SB
This bit indicates the status of the legacy power management
logic implemented inside the SB.
This bit indicates the Temperature Caution input.
This bit indicates the PME# from the internal USB controller
This bit indicates the PME# from the internal ac97 controller
This bit indicates the status of OtherTherm from NB, fan, etc.
This bit indicates the status of GPM[9] to SCI/Wakeup
This bit indicates the status of PCIeHotPlug
This bit indicates the status of ExtEvent0 to SCI/Wakeup
This bit indicates the status of ExtEvent1 to SCI/Wakeup
This bit indicates the PME# from PCIExpress
This bit indicates the status of GPM[0] to SCI/Wakeup
This bit indicates the status of GPM[1] to SCI/Wakeup
This bit indicates the status of GPM[2] to SCI/Wakeup
This bit indicates the status of GPM[3] to SCI/Wakeup
This bit indicates the status of GPM[8] to SCI/Wakeup
This bit indicates the status of GPIO0 (or WAKE#/GEVENT8
pin if PM IO Reg 84h bit1 =1) to SCI/wakeup
This bit indicates the status of GPM[4] to SCI/Wakeup
This bit indicates the status of GPM[5] to SCI/Wakeup

SMBus Module and ACPI Block (Device 20, Function 0)
Proprietary

Page 178

EVENT_STATUS - RW - 32 bits - [AcpiGpe0Blk:00h]
Field Name
AzaliaStatus

Bits
27

Default
0b

Description
This bit indicates the status from the internal HD Audio
controller
GPM6Status
28
0b
This bit indicates the status of GPM[6] to SCI/Wakeup
GPM7Status
29
0b
This bit indicates the status of GPM[7] to SCI/Wakeup
A11: Gpio2Status
30
0b
A11: This bit indicates the status of GPIO2 to SCI/wakeup
A12:
A12: This bit indicates the status of GPIO2 or GPIO66;
Gpio2Status/Gpio66Status
depending on PMIO_10h[7]. If PMIO_10h[7]=0, then it is
routed to GPIO2. If PMIO_10h[7]=1, then it is GPIO66
SataSciStatus
31
0b
This bit indicates the status of SataSci to SCI/wakeup
This register is located at the base address defined by AcpiGpe0Blk.

EVENT_ENABLE - RW - 32 bits - [AcpiGpe0Blk:04h]
Field Name
GeventEnable
LeventEnable
TwarnEnable
Reserved
USBEnable
AC97Enable
OtherThermEnable

Bits
7:0
8
9
10
11
12
13

Default
00h
0b
0b
0b
0b
0b
0b

Description
These bits enable the GeventStatus to SCI output.
This bit enables LEventStatus to SCI generation.
This bit enables TwarnStatus to SCI generation.

This bit enables PME# from the internal USB controllers
This bit enables PME# from the internal ac97 controllers
Enables bit for AcpiGpe0Blk, offset 00, bit 13
OtherThermStatus
GPM9Enable
14
0b
Enables bit for AcpiGpe0Blk, offset 00, bit 14 GPM9Status
PCIeHotPlugEnable
15
0b
Enable bit for AcpiGpe0Blk, offset 00, bit 15
PCIeHotPlugStatus
ExtEvent0Enable
16
0b
Enables bit for AcpiGpe0Blk, offset 00, bit 16
ExtEvent0Status
ExtEvent1Enable
17
0b
Enables bit for AcpiGpe0Blk, offset 00, bit 17
ExtEvent1Status
PCIePmeEnable
18
0b
Enables bit for AcpiGpe0Blk, offset 00, bit 18 PCIePmeStatus
GPM0Enable
19
0b
Enables bit for AcpiGpe0Blk, offset 00, bit 19 GPM0Status
GPM1Enable
20
0b
Enables bit for AcpiGpe0Blk, offset 00, bit 20 GPM1Status
GPM2Enable
21
0b
Enables bit for AcpiGpe0Blk, offset 00, bit 21 GPM2Status
GPM3Enable
22
0b
Enables bit for AcpiGpe0Blk, offset 00, bit 22 GPM3Status
GPM8Enable
23
0b
Enables bit for AcpiGpe0Blk, offset 00, bit 23 GPM8Status
Gpio0Enable
24
0b
Enables bit for AcpiGpe0Blk, offset 00, bit 24 Gpio0Status
GPM4Enable
25
0b
Enables bit for AcpiGpe0Blk, offset 00, bit 25 GPM4Status
GPM5Enable
26
0b
Enables bit for AcpiGpe0Blk, offset 00, bit 26 GPM5Status
AzaliaEnable
27
0b
Enables bit for AcpiGpe0Blk, offset 00, bit 27; for the internal
HD Audio PME
GPM6Enable
28
0b
Enables bit for AcpiGpe0Blk, offset 00, bit 28 GPM6Status
GPM7Enable
29
0b
Enables bit for AcpiGpe0Blk, offset 00, bit 29 GPM7Status
Gpio2Enable
30
0b
Enables bit for AcpiGpe0Blk, offset 00, bit 30 Gpio2Status
SataSciEnable
31
0b
Enables bit for AcpiGpe0Blk, offset 00, bit 31 SataSciStatus
This register is located at the base address defined by AcpiGpe0Blk.

SmiCmdPort - RW - 8 bits – [SmiCmdBlk: 00h]
Field Name
Bits
Default
Description
SmiCmdPort
7:0
00h
Used by BIOS and OS
This register is located at the base address defined by AcpiSmiCmd + offset 0.

SmiCmdStatus - RW - 8 bits – [SmiCmdBlk: 01h]
Field Name
SmiCmdStatus

Bits
7:0

Default
00h

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

Description
Used by BIOS and OS

SMBus Module and ACPI Block (Device 20, Function 0)
Proprietary

Page 179

SmiCmdStatus - RW - 8 bits – [SmiCmdBlk: 01h]
Field Name
Bits
Default
Description
This register is located at the base address defined by AcpiSmiCmd + offset 1.

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

SMBus Module and ACPI Block (Device 20, Function 0)
Proprietary

Page 180

2.3.4

WatchDogTimer Registers

WatchDogTimer base address is defined in PM_Reg 6F:6Ch.
Register Name
WatchDogControl
WatchDogCount

Offset Address
00h
04h

WatchDogControl - RW - 32 bits - [WD_Mem_Reg: 00h]
Field Name
WatchDogRunStopB

Bits
0

Default
0b

WatchDogFired

1

0b

WatchDogAction

2

0b

WatchDogDisable

3

Reserved
WatchDogTrigger (WO)

6:4
7

Same as
PM IO x69,
bit 0
000b
0b

Reserved

31:8

000000h

Description
This bit is used to control or indicate whether the watchdog is
in the Running and Stopped states.
1 = Watchdog is in the Running state
0 = Watchdog is in the Stopped state
If the watchdog is in the Stopped state and a 1 is written to bit
0, the watchdog moves to the Running state, but a count
interval is not started until a 1 is written to bit 7.
If the watchdog is in the Running state, writing a 1 to bit 0 has
no effect.
The bit is only valid when the watchdog is enabled.
A value of “1” indicates that the watchdog timer has expired
and caused the current restart. The bit is cleared by writing a
“1” to bit 1 in the Watchdog Control register. Writing a “0” has
no effect.
The bit is cleared by a power cycle or by the operating
system and it must remain cleared for any restart that is not
caused by the watchdog timer firing.
The bit is only valid when the watchdog is enabled.
This bit determines the action to be taken when the watchdog
timer expires.
0=system reset
1=system power off
The bit is only valid when the watchdog is enabled.
This bit reflects the state of the watchdog timer hardware.
0=Enable
1=Disable
Write only. Setting this bit triggers the watchdog to start a
new count interval, counting down from the value that was
last written to the Watchdog Count Register.
This bit is always read as zero. Setting this bit has no effect if
the watchdog is disabled or stopped.

WatchDogCount - RW - 32 bits - [WD_Mem_Reg: 04h]
Field Name
WatchDogCount

Bits
15:0

Default
----

Reserved

31:16

0000h

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

Description
This defines the countdown time for the counter. The units
are defined in the Units field in the Watchdog Resource Table
(WDRT). The maximum value is defined in the Max Count
field in the WDRT.
Reading this register returns in the current counter value.

SMBus Module and ACPI Block (Device 20, Function 0)
Proprietary

Page 181

2.3.5

ASF SM bus Host Interface Registers

The ASF SM bus host register block is resident in the Io space whose base defined at offset 58h/59h of
config space.

Register Name
HostStatus
HostControl
HostCommand
SlaveAddress
Data0
Data1
Data
PEC
ASFStatus
StatusMask0
StatusMask1
SlaveControl
RemoteCtrlAdr
SensorAdr

Offset Address
00h
02h
03h
04h
05h
06h
07h
08h
0Ah
0Bh
0Ch
0Dh
0Eh
0Fh

HostStatus – R - 8 bits - [ASF_IO: 00h]
Field Name
HostBusy

Bits
0

Default
0b

Reserve
DevError

1
2

0b
0b

BusCollision

3

0b

PECError

4

0b

Reserve
LastByte

6:5
7

00b
0b

Field Name
Reserved
KillHost

Bits
0
1

Default
0b
0b

Protocol

4:2

000b

PECAppend

5

0b

Start

6

0b

Description
0 – SM bus Host is idle
1 – SM bus Host is busy
0: Slave device behave correctly
1: No ACK or Slave device responses incorrectly
0: No bus collision
1: Bus collision
0: No CRC error
1: CRC error happens
0: Last byte has not received
1: Last byte has received

HostControl – RW - 8 bits - [ASF_IO: 02h]

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

Description
0 – Enable SM master
1 – Reset SM master
000: Quick
001: Byte
010: Byte Data
011: Word Data
100: Process call
101: Block
0: No PEC append
1: Automatic PEC append. ASF HC calculates CRC code and
append to the tail of the data packets.
WO:
0: Always read 0 on reads
1: Writing 1 to initiate the command

SMBus Module and ACPI Block (Device 20, Function 0)
Proprietary

Page 182

HostControl – RW - 8 bits - [ASF_IO: 02h]
Field Name
PECEnable

Bits
7

Default
0b

Field Name
HostCommand

Bits
7:0

Field Name
RW

Bits
0

Default
0b

Address

7:1

00h

Description
0: PEC disable
1: PEC enable, enable CRC checking when ASF HC presents
as SM master and SM slave.

HostCommand – RW - 8 bits - [ASF_IO: 03h]
Default
00h

Description
Command to be transmitted by master

SlaveAddress– RW - 8 bits - [ASF_IO: 04h]
Description
0: Write
1: Read
Provide the SM address of Slave

Data0– RW - 8 bits - [ASF_IO: 05h]
Field Name

Bits
7:0

Field Name
Data1

Bits
7:0

Field Name
DataIndex

Bits
7:0

Field Name
PEC

Bits
7:0

Field Name
EnableStatus

Bits
7

Default
0b

Reserved
RemotePowerCycle
RemotePowerUp
RemotePowerDown
RemoteReset

6:4
3
2
1
0

000b
0b
0b
0b
0b

Data0

Default
00h

Description
Contains count or DATA0 field of transaction

Data1– RW - 8 bits - [ASF_IO: 06h]
Default
00h

Description
Contains DATA1 field of transaction

DataIndex– RW - 8 bits - [ASF_IO: 07h]
Default
00h

Description
Index to 32 Data registers.

PEC– RW - 8 bits - [ASF_IO: 08h]
Default
00h

Description
PEC byte to be sent to slave.

ASFStatus– RW - 8 bits - [ASF_IO: 0Ah]

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

Description
1: Reset all the status bit in this register.
0: Enable status bit in this register
Power cycle has happened from ASF
Power up has happened. from ASF
Power down has happened from ASF
Reset has happened from ASF

SMBus Module and ACPI Block (Device 20, Function 0)
Proprietary

Page 183

StatusMask0– RW - 8 bits - [ASF_IO: 0Bh]
Field Name
Temp0StatusEnable

Bits
0

Default
0b

Temp1StatusEnable

1

0b

Temp2StatusEnable

2

0b

Temp3StatusEnable

3

0b

AMDSIStatusEnable

4

0b

FanSpeed0StatusEnable

5

0b

FanSpeed1StatusEnable

6

0b

FanSpeed2StatusEnable

7

0b

Description
1: Report Temp0 status to ASF
0: No report
1: Report Temp1 status to ASF
0: No report
1: Report Temp2 status to ASF
0: No report
1: Report Temp3 status to ASF
0: No report
1: Report AMDSI status to ASF
0: No report
1: Report Fan0 Speed Status to ASF
0: No report
1: Report Fan1 Speed Status to ASF
0: No report
1: Report Fan2 Speed Status to ASF
0: No report

StatusMask1– RW - 8 bits - [ASF_IO: 0Ch]
Field Name
AnalogIo0StatusEnable

Bits
0

Default
0b

AnalogIo1StatusEnable

1

0b

AnalogIo2StatusEnable

2

0b

AnalogIo3StatusEnable

3

0b

AnalogIo4StatusEnable

4

0b

AnalogIo5StatusEnable

5

0b

AnalogIo6StatusEnable

6

0b

AnalogIo7StatusEnable

7

0b

Description
1: Report AnalogIo0 status to ASF
0: No report
1: Report AnalogIo1 status to ASF
0: No report
1: Report AnalogIo2 status to ASF
0: No report
1: Report AnalogIo3 status to ASF
0: No report
1: Report AnalogIo4 status to ASF
0: No report
1: Report AnalogIo5 status to ASF
0: No report
1: Report AnalogIo6 status to ASF
0: No report
1: Report AnalogIo7 status to ASF
0: No report

SlaveMisc- RW - 8 bits - [ASF_IO: 0Dh]
Field Name
SlavePECError

Bits
0

Default
0b

SlaveBusCollision

1

0b

SlaveDevError

2

0b

WrongSP

3

0b

Reserved
SuspendSlave

4
5

0b
0b

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

Description
RO
0: No PEC error
1: PEC error
RO
0: No BusCollision
1: BusCollision happens
RO
0: Expected response
1: Unexpected response
RO
0: No SP error
1: No SP when turn to read
RW
Write 1 to Suspend (stop) ASF Slave state machine

SMBus Module and ACPI Block (Device 20, Function 0)
Proprietary

Page 184

SlaveMisc- RW - 8 bits - [ASF_IO: 0Dh]
Field Name
KillSlave
LegacySensorEn

Bits
6

Default
0b

7

0b

Description
RW
Write 1 to reset Slave ASF Slave state machine
RW
0: Disable Legacy Sensor
1: Enable Legacy Sensor

RemoteCtrlAdr– RW - 8 bits - [ASF_IO: 0Eh]
Field Name
Reserved
RemoteCtrlAdr

Bits
0
7:1

Field Name
Reserved
SensorAdr

Bits
0
7:1

Default
0b
00h

Description
SM address of Remote Control device.

SensorAdr– RW - 8 bits - [ASF_IO: 0Fh]
Default
0b
00h

Description
SM address of Sensor.

The SB600 is hardcoded to recognize the following ASF commands. The BIOS should report these values
accordingly in the ASF table if the system supports ASF function.
Control command

Control data value

Reset

00h

00h

PowerUp

01h

00h

PowerDown

02h

00h

PowerCycle

03h

00h

SensorPolling

23h

00h

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

SMBus Module and ACPI Block (Device 20, Function 0)
Proprietary

Page 185

2.4

IDE Controller (Device 20, Function 1)

2.4.1

PCI Configuration Registers

Register Name
Vendor ID
Device ID
Command
Status
Revision ID/Class Code
Cache Line Size
Master Latency Timer
Header Type
BIST Mode Type
Base Address 0
Base Address 1
Base Address 2
Base Address 3
Bus Master Interface Base Address
Subsystem ID and Subsystem Vendor ID
Capabilities Pointer
Interrupt Line
Interrupt Pin
Min_gnt
Max_latency
IDE PIO Timing
IDE Legacy DMA (Multi-words DMA) Timing Modes
IDE PIO Control
IDE PIO Mode
IDE Status
IDE Ultra DMA Control
IDE Ultra DMA Status
IDE Ultra DMA Mode
IDE PCI Retry Timing Counter
PCI Error Control
IDE Internal Control
IDE Misc. Control
IDE MSI Programmable Weight
IDE Dynamic Clocking
IDE MSI Control
IDE MSI Address Register
IDE MSI Data Register

Offset Address
00h
02h
04h
06h
08h
0Ch
0Dh
0Eh
0Fh
10h
14h
18h
1Ch
20h
2Ch
34h
3Ch
3Dh
3Eh
3Fh
40h
44h
48h
4Ah
4Ch
54h
55h
56h
60h
61h
62h
64h
68h
6Ch
70h
74h
78h

Vendor ID - R - 16 bits - [PCI_Reg:00h]
Field Name
Vendor ID

Bits
15:0

Field Name
Device ID

Bits
15:0

Default
1002h

Description
This register holds a unique 16-bit value assigned to a vendor,
and combined with the device ID, it identifies any PCI device.
Vendor ID Register: This register holds a unique 16-bit value assigned to a vendor, and combined with the device
ID it identifies any PCI device.

Device ID - R - 16 bits - [PCI_Reg:02h]
Default
438Ch

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

Description
This register holds a unique 16-bit value assigned to a device,
and combined with the vendor ID it, identifies any PCI device.

IDE Controller (Device 20, Function 1)
Proprietary

Page 186

Device ID - R - 16 bits - [PCI_Reg:02h]
Field Name
Bits
Default
Description
Device ID Register: This register holds a unique 16-bit value assigned to a device, and combined with the vendor ID
it identifies any PCI device.

Command - RW - 16 bits - [PCI_Reg:04h]
Field Name
I/O Access Enable

Bits
0

Default
0b

Memory Access Enable

1

0b

Bus Master Enable

2

0b

Special Cycle
Recognition Enable
Memory Write and
Invalidate Enable
VGA Palette Snoop
Enable
PERR- Detection Enable

3

0b

4

0b

5

0b

Description
I/O Access Enable. This bit controls access to the I/O space
registers. When this bit is 1, it enables access to Legacy IDE
ports, and PCI bus master IDE I/O registers are enabled.
Memory Access Enable. This function is not implemented.
This bit is always 0.
Master Enable. Bus master function enable.
1 = Enable
0 = Disable.
Special Cycle recognition enable. This feature is not
implemented and this bit is always 0.
Memory Write and Invalidate Enable.

VGA Palette Snoop Enable- The IDE host controller does not
need to snoop VGA palette cycles. This bit is always 0.
6
0b
PERR- (Response) Detection Enable bit - 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.
Default - 0.
Wait Cycle Enable
7
0b
Wait Cycle enable - The IDE host controller does not need to
insert a wait state between the address and data on the AD
lines. This bit is always 0.
SERR- Enable
8
0b
SERR- enable - If set to 1, the IDE host controller asserts
SERR- when it detects an address parity error. SERR- is not
asserted if this bit is 0.
Default - 0.
Fast Back-to-Back
9
0b
Fast Back-to-back enable. The IDE host controller only acts as
Enable
a master to a single device, so this functionality is not needed.
This bit is always 0.
Interrupt Disable
10
0b
Interrupt disable bit (comply to PCI 2.3 spec.)
Reserved
15:11
00h
Reserved. Always wired as 0’s.
Command Register: The PCI specification defines this register to control a PCI device’s ability to generate and
respond to PCI cycles.

Status - RW - 16 bits - [PCI_Reg:06h]
Field Name
Reserved
Interrupt Status
Capabilities List

Bits
2:0
3
4

Default
0b
0b
0b

66MHz Support

5

1b

UDF Supported

6

0b

Fast Back-to-Back
Capable
Data Parity Error

7

0b

8

0b

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

Description
Reserved. These bits are always read as 0.
Interrupt status bit. It complies with the PCI 2.3 specification.
This bit is enabled by PCI Config offset 0x62 bit 13 to indicate
that the Capabilities Pointer is located at 34h.
66MHz capable. This feature is supported in the IDE host
controller.
UDF Supported. This feature is not implemented and this bit is
always 0.
Fast Back-to-Back Capable. This feature is not implemented
and this bit is always 0.
Data Parity reported – Set to 1 if the IDE host controller
detects PERR- asserted while acting as PCI master (whether
PERR- was driven by IDE host controller or not.)

IDE Controller (Device 20, Function 1)
Proprietary

Page 187

Status - RW - 16 bits - [PCI_Reg:06h]
Field Name
DEVSEL- Timing

Bits
10:9

Default
01b

Description
DEVSEL- timing – Read only bits indicating 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
11
0b
Signaled Target Abort – This bit is set to 1, when the IDE host
controller signals Target Abort.
Received Target Abort
12
0b
Received Target Abort – This bit is set to 1 when the IDE host
controller-generated PCI cycle (IDE host controller is the PCI
master) is aborted by a PCI target. Cleared by writing a 1 to it.
Received Master Abort
13
0b
Received Master Abort Status. Set to 1 when the IDE host
Status
controller acting as a PCI master, aborts a PCI bus memory
cycle. Cleared by writing a 1 to this bit.
Default - 0.
SERR- Status
14
0b
SERR- status. This bit is set to 1 when the IDE host controller
detects a PCI address parity error.
Detected Parity Error
15
0b
Detected Parity Error. This bit is set to 1 when the IDE host
controller detects a parity error.
Status Register: The PCI specification defines this register to record status information for PCI related events. This
is a read/write register. However, writes can only reset bits. A bit is reset when the register is written and the data in
the corresponding bit location is a 1.

Revision ID/Class Code- RW - 32 bits - [PCI_Reg:08h]
Field Name
Revision ID

Bits
7:0

Default
00h

Description
These bits are hardwired to 00h to indicate the revision level of
the chip design (for the SB600).
IDE Host Controller
15:8
8Ah
Programmable I/F. These 8 bits are read/write.
Operating Mode
Bit 7 – Master IDE Device. Always 1.
Selection
Bit 6-4 – Reserved. Always read as 0’s.
Bit 3 – Secondary IDE Enable bit. Setting this bit with PCI
configuration offset 0x49 bit 8 back to back will disable
secondary IDE host controller.
Bit 2 – Operating Mode for Secondary.
1 = Native PCI-mode.
0 = Compatibility Mode(Default).
Bit 1 – Primary IDE Enable bit. Setting this bit with PCI
configuration offset 0x49 bit 0 back to back will disable primary
IDE host controller.
Bit 0 – Operating Mode for Primary.
1 = Native PCI-mode.
0 = Compatibility mode (Default).
Sub-Class Code
23:16
01h
Sub-Class Code. These 8 bits are read only and wired to 01h
to indicate an IDE Controller.
Class Code
31:24
01h
Class Code. These 8 bits are read only and wired to 01h to
indicate a Mass-Storage Controller.
Revision ID/Class Code Register: This register contains the device’s revision information, generic function of a
device, and the specific register level programming interface. The Base class is 01h (Mass-Storage Controller),
Sub-class is 01h (IDE Controller).

Cache Line Size - RW - 8 bits - [PCI_Reg:0Ch]
Field Name
Cache Line Size Register

Bits
7:0

Default
00h

Description
If the value is 10 that means the cache line size is 16 DW (64
byte).
Cache Line Size Register: This register specifies cache line size and the default value is 00.

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

IDE Controller (Device 20, Function 1)
Proprietary

Page 188

Master Latency Timer - RW - 8 bits - [PCI_Reg:0Dh]
Field Name
Reserved
Master Latency Timer

Bits
2:0
7:3

Field Name
Header Type

Bits
7:0

Field Name
Built-in-Self Test Mode

Bits
7:0

Default
0h
00h

Description
They are not used and wired to 0.
Master Latency Timer. This number represents the guaranteed
time slice allotted to IDE host controller for burst transactions.
Master Latency Timer: This register specifies the value of Latency Timer in units of PCICLKs.

Header Type - R - 8 bits - [PCI_Reg:0Eh]
Default
00h

Description
Header Type. Since the IDE host controller is a single-function
device, this register contains a value of 00h.
Header Type Register: This register identifies the IDE controller module as a single function device.

BIST Mode Type - R - 8 bits - [PCI_Reg:0Fh]
Default
00h

Description
Built-in-Self Test modes. Since the IDE host controller does
not support BIST modes, this register is always read as 00.
BIST Mode Type Register: This register is used for control and status for Built-in-Self test. The IDE host controller
has no BIST modes

Base Address 0 - RW - 32 bits - [PCI_Reg:10h]
Field Name
Resource Type Indicator

Bits
0

Default
1b

Reserved
Primary IDE CS0 Base
Address

2:1
15:3

00b
0000h

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.
Reserved. Always read as 0’s.
Base Address for Primary IDE Bus CS0. This register is

used for native mode only. Base Address 0 is not used
in compatibility mode.

Reserved
31:16
0000h
Reserved. Always read as 0’s.
Base Address 0 Register (Primary CS0): This register identifies the base address of a contiguous IO space of
command register block for the primary channel.

Base Address 1 - RW - 32 bits - [PCI_Reg:14h]
Field Name
Resource Type Indicator

Bits
0

Default
1b

Reserved
Primary IDE CS1 Base
Address

1
15:2

0b
0000h

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.
Reserved. Always read as 0’s.
Base Address for Primary IDE Bus CS1. This register is

used for native mode only. Base Address 1 is not used
in compatibility mode.

Reserved
31:16
0000h
Reserved. Always read as 0’s.
Base Address 1 Register (Primary CS1): This register identifies the base address of a contiguous IO space of
command register block for the primary channel.

Base Address 2 - RW - 32 bits - [PCI_Reg:18h]
Field Name
Resource Type Indicator

Bits
0

Default
1b

Reserved
Secondary IDE CS0
Base Address

2:1
15:3

00b
0000h

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

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.
Reserved. Always read as 0’s.
Base Address for Secondary IDE Bus CS0. This register is

used for native mode only. Base Address 2 is not used
in compatibility mode.

IDE Controller (Device 20, Function 1)
Proprietary

Page 189

Base Address 2 - RW - 32 bits - [PCI_Reg:18h]
Field Name
Bits
Default
Description
Reserved
31:16
0000h
Reserved. Always read as 0’s.
Base Address 2 Register (Secondary CS0): This register identifies the base address of a contiguous IO space of
command register block for the primary channel.

Base Address 3 - RW - 32 bits - [PCI_Reg:1Ch]
Field Name
Resource Type Indicator

Bits
0

Default
1b

Reserved
Secondary IDE CS1
Base Address

1
15:2

0b
0000h

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.
Reserved. Always read as 0’s.
Base Address for Secondary IDE Bus CS1. This register is

used for native mode only. Base Address 3 is not used
in compatibility mode.

Reserved
31:16
0000h
Reserved. Always read as 0’s.
Base Address 3 Register (Secondary CS1): This register identifies the base address of a contiguous IO space of
command register block for the primary channel.

Bus Master Interface Base Address - RW - 32 bits - [PCI_Reg:20h]
Field Name
Resource Type Indicator

Bits
0

Default
1b

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.
Reserved
3:1
0h
Reserved. Always read as 0’s.
Bus Master Interface
15:4
000h
Base Address for Bus Master interface registers and
Register Base Address
correspond to AD[15:4].
Reserved
31:16
0000h
Reserved. Always read as 0’s.
Bus Master Interface Base Address Register: This register selects the base address of a 16-byte I/O space
interface for bus-master functions.

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
Subsystem ID
31:16
0000h
Subsystem ID
Subsystem ID and Subsystem Vendor ID: This subsystem ID and subsystem Vendor ID register is write once and
read only.

MSI Capabilities Pointer - R - 8 bits - [PCI_Reg:34h]
Field Name
Capabilities Pointer

Bits
7:0

Field Name
Interrupt Line

Bits
7:0

Default
00h

Description
The first pointer of Capability block
Note: the capabilities pointer (0x70) can be enabled by setting
PCI config offset 0x62 bit 13 to 1
MSI Capabilities Pointer Register: This register will show the PCI configuration register starting address and it is
read only.

Interrupt Line - RW - 8 bits - [PCI_Reg:3Ch]
Default
00h

Description
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 Line Register: This register identifies which of the system interrupt controllers the device interrupt pin is
connected to. The value of this register is used by device drivers.

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

IDE Controller (Device 20, Function 1)
Proprietary

Page 190

Interrupt Pin - R - 8 bits - [PCI_Reg:3Dh]
Field Name
Bits
Default
Description
Interrupt Pin
7:0
01h
Hard-wired to 01h.
Interrupt Pin Register: This register identifies the interrupt pin a device uses. Since the IDE host controller uses
IRQ14, this value is supposed to be 00. However, the IDE controller will generate the PCI interrupt INTA# signal on
the PCI bus. Therefore, this pin register is set to 01h.

Min_gnt - R - 8 bits - [PCI_Reg:3Eh]
Field Name
Bits
Default
Description
Minimum Grant
7:0
00h
Hard-wired to 0’s and always read as 0’s.
Min_gnt Register: This register specifies the desired settings for how long of a burst the IDE host controller needs
assuming a clock rate of 33MHz. The value specifies a period of time in units of ¼ microseconds.

Max_latency - R - 8 bits - [PCI_Reg:3Fh]
Field Name
Bits
Default
Description
Maximum Latency
7:0
00h
Hard-wired to 0’s and always read as 0’s.
Max_latency Register: This register specifies the Maximum Latency time required before the IDE host controller as
a bus-master can start an accesses.

IDE PIO Timing - RW - 32 bits - [PCI_Reg:40h]
Field Name
Bits
Default
Description
Primary Slave Data
3:0
9h
Slave Data register command recovery width for Primary IDE
Register Command
bus slave PIO device.
Recovery Width
Primary Slave Data
7:4
9h
Slave Data register command width for Primary IDE bus slave
Register Command width
PIO device.
Primary Master Data
11:8
9h
Master Data register command recovery width for primary IDE
Register Command
bus Master PIO device.
Recovery Width
Primary Master Data
15:12
9h
Master Data register command width for Primary IDE bus
Register Command
Master PIO device.
Width
Reserved
31:16
0000h
Reserved. Always read as 0’s
IDE PIO Timing Register: This register controls the IDE interface and selects the timing of the IDE PIO bus-master
cycles.
Note: Relation of setting value and actual timing of each mode are
PIO Mode
Command Width
Recover Width

4
2(90ns)
0(30ns)

3
2(90ns)
2(90ns)

2
3(120ns)
4(150ns)

1
4(150ns)
7(240ns)

0
9(270ns)
9(270ns)

The above timings are valid and A-Link clock is always 66MHz.
Actual timing is setting value + 1 A-Link clock cycle.

IDE Legacy DMA (Multi-words DMA) Timing Modes - RW - 32 bits - [PCI_Reg:44h]
Field Name
Primary Slave DMA
Command Recovery
Width
Primary Slave DMA
Command Width
Primary Master DMA
Command Recovery
Width
Primary Master DMA
Command Width
Reserved

Bits
3:0

Default
Fh

7:4

Fh

11:8

Fh

15:12

Fh

31:16

0h

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

Description
Slave DMA command recovery width for Primary IDE bus
Slave DMA device.
Slave DMA command width for Primary IDE bus Slave DMA
device.
Master DMA Command recovery width for primary IDE bus
Master DMA device.
Master DMA Command width for Primary IDE bus Master
DMA device.
Reserved. Always read as 0’s

IDE Controller (Device 20, Function 1)
Proprietary

Page 191

IDE Legacy DMA (Multi-words DMA) Timing Modes - RW - 32 bits - [PCI_Reg:44h]
Field Name
Bits
Default
Description
IDE Legacy DMA (Multi-words DMA) Timing Modes Register: This register controls the IDE interface and selects
the timing of the IDE DMA bus-master cycles.
Note: Relation of setting value and actual timing of each mode are
DMA Mode
2
1
0
Command Width 2(90ns) 2(90ns) 7(240ns)
Recover Width 0(30ns) 1(60ns) 7(240ns)
The above timings are valid and A-Link clock is always 66MHz.
Actual timing is setting value + 1 A-Link clock cycle.

IDE PIO Control - RW - 16 bits - [PCI_Reg:48h]
Field Name
Primary IDE Disable

Bits
0

Default
0b

Description
Disable Primary IDE controller. When set Primary IDE
controller is disabled.
Reserved
3:1
000b
Reserved. Always read as 0’s
Reserved
8:4
00h
Obsolete bits
Reserved
11:9
000b
Reserved. Always read as 0’s
Reserved
15:12
0h
Obsolete bits
IDE PIO Control Register: This register controls the IDE interface and selects the control functions of the PCI bus
IDE PIO bus-master cycles.

IDE PIO Mode - RW- 16 bits - [PCI_Reg:4Ah]
Field Name
Bits
Default
Description
Primary Master PIO
2:0
0h
PIO access mode for Primary IDE Master device. For
Access Mode
instance, PIO 0 = 000, PIO 1 = 001, … etc..
Reserved
3
0b
Reserved. Always read as 0’s.
Primary Slave PIO
6:4
0h
PIO access mode for Primary IDE Slave device. For instance,
Access Mode
PIO 0 = 000, PIO 1 = 001, … etc..
Reserved
15:7
000h
Reserved. Always read as 0’s.
IDE PIO Mode Register: This register specifies PIO modes primary channel.

IDE Status - R- 8 bits - [PCI_Reg:4Ch]
Field Name
Bits
Default
Description
Reserved
7:0
00h
Reserved. These bits always read as0’s.
IDE Status Register: This register specifies the IDE Status of primary channel.

IDE Ultra DMAControl - RW- 8 bits - [PCI_Reg:54h]
Field Name
Primary Master Ultra
DMA enable
Primary Slave Ultra DMA
enable
Reserved
Ultra DMA Report Mode

Bits
0

Default
0b

Description
Ultra DMA Enable Primary IDE Master device.

1

0b

Ultra DMA Enable Primary IDE Slave device.

6:2
7

00000b
0b

Reserved. Always read as 0’s.
Report Mode.
When host receives last data as extra word, reporting will be:
If this bit is 1, set IDE Ultra DMA Status register only.
If this bit is 0, clear the interrupt bit of BusMaster Status
Register and also set IDE Ultra DMA Status Register.
IDE Ultra DMA Control Register: This register specifies the IDE Control of primary channel.

IDE Ultra DMA Status - RW- 8 bits - [PCI_Reg:55h]
Field Name
Primary Extra Data
Status
Reserved

Bits
0

Default
0b

7:1

00h

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

Description
Transaction is complete, but internal buffer has some data.
This bit will be cleared by resetting the DMA start bit.
Reserved. Always read as 0’s.

IDE Controller (Device 20, Function 1)
Proprietary

Page 192

IDE Ultra DMA Status - RW- 8 bits - [PCI_Reg:55h]
Field Name
Bits
Default
Description
IDE Ultra DMA Status Register: This register specifies the Ultra DMA status for primary channel.

IDE Ultra DMA Mode - RW- 16 bits - [PCI_Reg:56h]
Field Name
Bits
Default
Description
Primary Master Ultra
2:0
0h
Ultra DMA access mode for Primary IDE master device. For
DMA Access Mode
instance, UDMA-5 = 101, UDMA-6 = 110.
Reserved
3
0b
Reserved. Always read as 0’s.
Primary Slave Ultra DMA
6:4
0h
Ultra DMA access mode for Primary IDE Slave device. For
Access Mode
instance, UDMA-5 = 101, UDMA-6 = 110.
Reserved
15:7
000h
Reserved. Always wired as 0’s.
IDE Ultra DMA Mode Register: This register specifies the Ultra DMA timings for primary channel.

IDE PCI Retry Timing Counter - RW- 8 bits - [PCI_Reg:60h]
Field Name
PCI Retry Timing
Counter

Bits
3:0

Default
0h

Description
Waiting number of PCI clocks. If a PCI Master transaction is
retried, the IDE host controller will wait for 0-15 PCI clocks,
depending upon the value programmed, and will re-issue the
PCI master transaction.
Reserved
7:4
0h
Reserved. Always wired as 0’s.
IDE PCI Retry Timing Counter Register: This register specifies the Ultra DMA re-try timings for primary channel.

PCI Error Control - RW- 8 bits - [PCI_Reg:61h]
Field Name
PCI Data Parity Check
Ignore

Bits
0

Default
0b

Description
0 - Check parity bit for DMA transaction.
1 - Ignore parity bit for DMA transaction.
If there is a parity error with a DMA transaction, the IDE
host controller does not set the error bit (Bus Master IDE
Reg.) If this bit is 1, bit 1 is “don’t care.” (same as bit 1=0.)
PCI Descriptor DMA
1
0b
0 - DMA will not be aborted by PCI parity error at descriptor
Abort Enable
table read.
1- DMA will be aborted by PCI parity error at descriptor table
read.
PCI Master/Target Abort
2
0b
0 - DMA will be aborted by parity error, master abort, and
Ignore
target abort at data transaction (if bit0=1 or bit1=0, DMA
does not abort by parity error.)
1 - DMA does not abort by parity error, master abort, and
target abort at data transaction.
Reserved
7:3
00h
Reserved. Always wired as 0’s.
PCI Error Control Register: This register specifies DMA parity bit errors.

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

IDE Controller (Device 20, Function 1)
Proprietary

Page 193

IDE Internal Control - RW- 16 bits - [PCI_Reg:62h]
Field Name
IDE Internal PCI master
request selection

Bits
0

Default
0b

IDE PCI request control

1

0b

5:2
6

0h
1b

7
8

0b
0b

12:9
13

0h
0b

14
15

0b
0b

Reserved
IDE Fast sampling
Enable
Reserved
Explicit/Implicit prefetch
Switch

Reserved
MSI capability visible
control
Reserved
MSI_MME[0] hidden
control bit

Description
Select number of delay cycles on internal PCI master request
0: delay two PCI cycles
1: delay three PCI cycles
Control PCI request deassertion timing at PCI retry cycle.
0: allows IDE’s PCI request to be deasserted one cycle early.
1: PCI request will be deasserted one cycle late.
Reserved. Always read as 0’s
Enable fast sampling on IORDY (DDMARDY#) port
0: Use regular IDE clock to sample
1: Use either (50/66MHz) sampling IORDY (DDMARDY#) port
at ultra DMA mode
Reserved.
Control implicit or explicit prefetch function
0: Explicit prefetch is enabled
1: Implicit prefetch is enabled
Recommendation is to have it reset to 0 for better bus
efficiency
Reserved
When this bit is set MSI capability will be visible.

Reserved
Control Multiple/Single Message Enable
0: Only 1 message allocated
1: 2 messages allocated
IDE Internal Control Register: This register can enable internal PCI request timing and different IDE arbitration
schemes.

IDE Misc. Control - RW- 32 bits - [PCI_Reg:64h]
Field Name
Reserved
IDE Internal Logic Reset
Primary Channel Tristate Mode
Reserved
Preliminary Buffer
Threshold Control
Reserved

Bits
0
1

Default
0b
0b

2

0b

3
6:4

0b
001b

Description
Reserved.
IDE internal reset. This reset follows IDE PLL reset. Software
control the duration between both resets.
Primary channel tri-state mode if it is set to 1.
Reserved. Always read as 0’s.
Programmable threshold control for preliminary buffer.

31:7

00E0258 Reserved. Do not use
h
IDE Misc. Control Register: This register specifies IDE tri-state channel enable, and preliminary buffer threshold
control.

IDE MSI Programmable Weight - RW- 8 bits - [PCI_Reg:68h]
Field Name
MSI Interrupt Weight
Reserved

Bits
5:0
7:6

Default
01h
0h

Description
MSI programmable interrupt weight.
Reserved. Always wired as 0’s.

IDE MSI Programmable Weight Register: This register specifies MSI weight.

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

IDE Controller (Device 20, Function 1)
Proprietary

Page 194

IDE Dynamic Clocking - RW- 20 bits - [PCI_Reg:6Ch]
Field Name
IDE Power Down
Counter

Bits
19:0

Default
FFFFFh

Description
The IDE power down counter can be programmed to shut
down the IDE clock.
The counter is running at 66Mhz clock. If the value is set to
0x3FF, it means that the IDE controller detects that the bus is
without activity for more than 15us, the internal clock is
powered down for advance power saving. Any detected
activity will turn the clock back on. The default is FFFFFh and
dynamic clocking is disabled.
Reserved
31:20
000h
Reserved. Always wired as 0’s.
IDE Dynamic Clocking Register: This register specifies the time (in number of IDE clocks) to shut down the IDE
clock after there are no more IDE transactions.
Note: A 32-bit double-word (DW) PCI configuration write is required to update this register.

IDE MSI Control - RW- 32 bits - [PCI_Reg:70h]
Field Name
Bits
Default
Description
Capability ID
7:0
05h
Capability ID (hard_wired to 05h)
Capability Next Pointer
15:8
00h
Next Pointer (hard_wired to 00h)
Message Signaled
16
0b
MSI Enable (MSI_En)
Interrupt Enable
Multiple Message
19:17
0h
Multiple Message Capable (MMC)
Capable
Multiple Message Enable
22:20
0h
Multiple Message Enable (MME) (hard_wired to 0h)
MSI 64-bit Address
23
0b
64-bit address (hard_wired to 0b)
Reserved
31:24
00h
Reserved. Always wired as 0’s.
IDE MSI Control Register: This register specifies MSI Capability ID, next pointer, MSI enable, multiple message
capable, multiple message enable bits.

IDE MSI Address Register - RW- 32 bits - [PCI_Reg:74h]
Field Name
Bits
Default
IDE MSI Address
31:0
0000_0000h MSI Address
IDE MSI Address Register: This register specifies MSI address.

Description

IDE MSI Data Register - RW- 16 bits - [PCI_Reg:78h]
Field Name
Bits
Default
IDE MSI Data
15:0
0000h
MSI Data
IDE MSI Data Register: This register specifies MSI data.

2.4.2

Description

IDE I/O Registers

The PCI IDE function uses 16 bytes of I/O space. These registers are accessed through the Bus-master
interface base address register.
Bus-master IDE Command Register
Address Offset:

Primary – Base + 00h

Register Name

Offset Address
[Primary]
00h/08h
02h/0Ah
04h/0Ch

Bus-master IDE Command
Bus-master IDE Status
Bus-master IDE Command

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

IDE Controller (Device 20, Function 1)
Proprietary

Page 195

Bus-master IDE Command - RW- 8 bits - [IDE:00h]
Field Name
Bus Master IDE
Start/Stop

Bits
0

Default
0b

Reserved
Bus Master Read/Write

2:1
3

0h
0b

Reserved

7:4

0h

Description
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. Wired 0’s.
Bus Master IDE r/w (direction) control
0 = Memory -> IDE
1 = IDE -> Memory
This bit should not change during Bus Master transfer cycle, even
if terminated by Bus Master IDE stop.
Reserved. These bits are always read as 0’s.

Bus-master IDE Status Register
Address Offset:

Primary – Base + 02h
Bus-master IDE Status - RW- 8 bits - [IDE:02h]

Field Name
Bus Master Active

Bits
0

Default
0b

Bus Master DMA Error

1

0b

IDE Interrupt

2

0b

4:3
5

0h
0b

Description
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.
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. Software sets this bit to a 0, by
writing a 1 to it.
IDE Interrupt. Indicates when an IDE device has asserted its
interrupt line. IRQ14 is used for the primary 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. Always read as 0’s.
Device 0 (Master) DMA capable.

6

0b

Device 1 (Slave) DMA capable.

7

0b

Simplex only. This bit is hard-wired as 0.

Reserved
Master Device DMA
Capable
Slave Device DMA
Capable
Simplex Only

Descriptor Table Pointer Register
Address Offset:

Primary – Base + 04h
Bus-master IDE Command - RW- 32 bits - [IDE:04h]

Field Name
Reserved
Descriptor Table Base
Address

Bits
1:0
31:2

Default
0h
0000_0000h

Description
Reserved. Always read as 0’s.
Base Address of Descriptor Table. These bits correspond to
Address [31-02].

Table 2-8 IDE Device Registers Mapping
Address (hex)
Compatibility Mode
Native Mode (Offset)
IDE Command Block Registers
Primary
1F0
Base Address 0 + 0
Data (16 bit)

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

Name and Function
Read Function

Write Function

Data (16 bit)

IDE Controller (Device 20, Function 1)
Proprietary

Page 196

Address (hex)
Compatibility Mode
Native Mode (Offset)
1F1
Base Address 0 + 1
Error register
1F2
Base Address 0 + 2
Sector Count
1F3
Base Address 0 + 3
Sector Number
1F4
Base Address 0 + 4
Cylinder Low
1F5
Base Address 0 + 5
Cylinder High
1F6
Base Address 0 + 6
Drive/Head
1F7
Base Address 0 + 7
Status
IDE Control Block Registers
Primary
3F6
Base Address 1 + 2
Alternate Status

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

Name and Function
Read Function
Features register
Sector Count
Sector Number
Cylinder Low
Cylinder High
Drive/Head
Command

Write Function

Device Control

IDE Controller (Device 20, Function 1)
Proprietary

Page 197

2.5

AC ’97 Controller Functional Descriptions

2.5.1

Audio Registers (Device 20, Function 5)

The PCI based registers for Audio are defined according to the PCI 2.1 specification and Windows 2000
requirements.
2.5.1.1

PCI Configuration Registers

Register Name
Vendor ID
Device ID
PCI Command
PCI Device Status
Revision ID/Class Code
Cache Line Size
Latency Timer
Header Type
Built-in Self Test
Base Address Register 0
Base Address Register 1
Cardbus CIS pointer (Reserved)
Subsystem ID & Subsystem Vendor ID
Capabilities Pointer
Interrupt Line
Interrupt Pin
Min Grant
Max Latency
MSI Capability Register Set IDs
MSI Message Control
MSI Message Address
MSI Message Data
MSI Program Weight
UnMask Latency Timer Expiration

Offset Address
00h
02h
04h
06h
08h
0Ch
0Dh
0Eh
0Fh
10h
14h
28h
2Ch
34h
3Ch
3Dh
3Eh
3Fh
40h
42h
44h
48h
4Ch
50h

IMPORTANT: The driver is required to check revision ID to enable functions
appropriately. AMD’s AC’97 controller will be backward compatible to previous
revisions. For example, revision 01 will have everything the same as revision 00,
plus the enhancement.
Vendor ID- R - 16 bits - [PCI_Reg: 00h]
Field Name
Bits
Default
Description
Vendor ID
15:0
1002h
Vendor ID
Vendor ID Register: This register holds a unique 16-bit value assigned to a vendor, and combined with the device
ID it identifies any PCI device.

Device ID- R - 16 bits - [PCI_Reg: 02h]
Field Name
Bits
Default
Description
Device ID
15:0
4382h
Device ID
Device ID Register: This register holds a unique 16-bit value assigned to a device, and combined with the vendor ID
it identifies any PCI device.

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

AC ’97 Controller Functional Descriptions
Proprietary

Page 198

CMD- RW - 16 bits - [PCI_Reg: 04h]
Field Name
IO Space
Memory Space
Bus Master
Special Cycles

Bits
0
1
2
3

Default
0b
0b
0b
0b

Memory Write and
Invalidate Enable
VGA Palette Snoop

4

0b

5

0b

Parity Error Response
Stepping Control

6
7

0b
0b

SERR# Enable
Fast Back-to-Back Enable

8
9

0b
0b

INTA# Enable#

10

0b

Description
I/O Access Enable.
Memory Access Enable.
Master Enable.
Hardwired to 0 to indicate that Special Cycle recognition is
disabled.
Memory Write and Invalidate Enable.
Hardwired to 0 to indicate that the VGA Palette Snoop is
disabled. The controller does not need to snoop VGA
palette cycles.
PERR# (Response) Detection Enable bit
Hardwired to 0 to indicate that the Wait Cycle is
disenabled. The controller does not need to insert a wait
state between the address and data on the AD lines.
SERR# enable
Hardwired to 0 to indicate that Fast Back-to-back is
disabled. The controller only acts as a master to a single
device, so this functionality is not needed.
When it is 0, INTA# is allowed to send out. When it is 1,
INTA# is not allowed to send out.

Reserved
15:11
00h
Command Register: The PCI specification defines this register to control a PCI device’s ability to generate and
respond to PCI cycles.

STATUS- RW - 16 bits - [PCI_Reg: 06h]
Field Name
Reserved
Interrupt A status

Bits
2:0
3

Default
0h
0b

Capabilities List

4

1b

66MHz-Capable
Reserved
Fast Back-to-Back
Capable
Master Data Parity
Error
Device Select Timing

5
6
7

1b
0b
0b

Description
When there is interrupt A, this bit will be 1, regardless of the
value in reg0x04[10].
Read only. Indicates that the new capabilities list pointer
configuration register is implemented in reg0x34.
Read only. Indicates that device is capable of running at 66MHz.

Read only. Indicates that device does not support fast back-toback transactions.
8
0b
Master Data Parity Error. This bit is set to 1 when the controller
detects master data parity error. Cleared by writing a 1 to it.
10:9
10b
DEVSEL# timing – Read only bits indicating DEVSEL# timing
when performing a positive decode.
Signaled Target Abort
11
0b
Read only. The device does not support target aborts.
Received Target Abort
12
0b
Received Target Abort .This bit is set to 1 when the controller,
acting as a PCI master, is aborted by a PCI target. Cleared by
writing a 1 to it.
Received Master Abort
13
0b
Received Master Abort Status. Set to 1 when the controller,
acting as a PCI master, aborts a PCI bus memory cycle. Cleared
by writing a 1 to it.
Signaled System Error
14
0b
SERR# status. This bit is set to 1 when the controller detects a
PCI address parity error. Cleared by writing a 1 to it.
Detected Parity Error
15
0b
Detected Parity Error. This bit is set to 1 when the controller
detects a parity error. Cleared by writing 1 to it.
Status Register: The PCI specification defines this register to record status information for PCI related events. This
is a read/write register. However, writes can only reset bits.

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

AC ’97 Controller Functional Descriptions
Proprietary

Page 199

Revision ID/Class Code - R - 32 bits - [PCI_Reg: 08h]
Field Name
Bits
Default
Description
Revision ID
7:0
00h
Revision ID.
Class Code
31:8
040100h Class Code.
Revision ID/Class Code Register: This read only register contains the device’s revision information and generic
function.

Cache Line Size - RW - 8 bits - [PCI_Reg: 0Ch]
Field Name
Bits
Default
Description
Cache Line Size
7:0
00h
Cache Line Size.
Cache Line Size Register: This register specifies the system cache line size.

Latency Timer - RW - 8 bits - [PCI_Reg: 0Dh]
Field Name
Bits
Default
Description
Latency Timer
7:0
00h
Latency Timer.
Latency Timer Register: This register specifies the value of the Latency Timer in units of PCICLKs.

Header Type - R - 8 bits - [PCI_Reg: 0Eh]
Field Name
Bits
Default
Description
Header Type
7:0
80h
Header Type.
Header Type Register: This register identifies the type of the predefined header in the configuration space. Since
SB600 is a multifunction device, the most significant bit is set.

BIST- R – 8 bits – [PCI_Reg: 0Fh]
Field Name

Bits
Default
Description
BIST
7:0
00h
BIST register.
Built-in Self Test Register: This register is used for control and status for Built-in Self Test. Ac97 has no BIST
modes.

Base Address Reg 0- RW - 32 bits – [PCI_Reg: 10h]
Field Name
MemoryIndicator
Type

Bits
0
2:1

Default
0b
00b

Prefetchable
Reserved

3
7:4

0b
0h

BAR0

31:8

0000_00h

Description
Always 0; meaning it is always memory mapped
Always 0; meaning it can be located anywhere in 32 bit
address space
Always 0; meaning it is not prefetchable
Always 0; meaning the memory mapped registers occupy
256 bytes
Base address register 0. Defines the base address for the
memory mapped register space of audio. If index 50h, bit 3
is set, bits [13:8] of this register become unwritable. The
effect will cause the OS to allocate a wider memory map for
this controller.

Base Address Reg 1- RW - 32 bits – [PCI_Reg: 14h]
Field Name
MemoryIndicator

Bits
0

Default
0b

Type

2:1

00b

3

0b

Prefetchable

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

Description
This bit will return 1 if index 50h, bit [1] is set. 1 means IO
mapping
Always 0; meaning that it can be located anywhere in 32 bit
address space.
Always 0; meaning that it is not prefetchable.

AC ’97 Controller Functional Descriptions
Proprietary

Page 200

Base Address Reg 1- RW - 32 bits – [PCI_Reg: 14h]
Field Name
Reserved

Bits
7:4

Default
0h

BAR1

31:8

0000_00h

Description
Always 0; meaning that the IO mapped registers occupy 256
bytes.
Base address register 1. Defines the base address for the
IO mapped register space of audio. This is to allow dual IO
and memory mapped addressing. In other words, if IO
mapping is enabled through this register, the IO indexed
registers are basically dual port as the memory mapped
registers. This register can only be programmed if index
50h, bit [1] is set. The purpose of this dual address
mapping is for diagnostics; not for OS usage

Subsystem ID & Subsystem Vendor ID – W/R – 32 bits – [PCI_Reg: 2Ch]
Field Name
Bits
Default
Description
Subsystem Vendor ID
15:0
0000h
Subsystem Vendor ID.
Subsystem ID
31:16
0000h
Subsystem ID.
This 4-byte register is a write-once & read-only afterward register. The BIOS writes to this register once (all 4 bytes
at once) & software reads its value when needed.

Capabilities Pointer – R – 8 bits – [PCI_Reg: 34h]
Field Name
Capabilities Pointer

Bits
7:0

Field Name
Interrupt Line

Bits
7:0

Field Name
Interrupt Pin

Bits
7:0

Field Name
Min_Gnt

Bits
7:0

Field Name
Max_Lat

Bits
7:0

Default
40h

Description
Read only. Indicates that the device has New Capabilities
register set starting at address 40h.

Interrupt Line – RW – 8 bits – [PCI_Reg: 3Ch]
Default
00h

Description
Identifies which input of the system interrupt controller the
function’s PCI interrupt request pin (as specified in its
Interrupt Pin register) is routed to. The south bridge itself
does not use this value, rather it is used by device drivers
and operating systems.

Interrupt Pin – R – 8 bits – [PCI_Reg: 3Dh]
Default
02h

Description
Hard-wired to 2 to indicate that this function (audio
controller) uses interrupt pin INTB# on PCI bus..

Min_Gnt – R – 8 bits – [PCI_Reg: 3Eh]
Default
02h

Description
Hardwired to 2 to indicate the bus master would like to retain
PCI bus ownership for 500ns during a cycle.

Max_Lat – R – 8 bits – [PCI_Reg: 3Fh]
Default
00h

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

Description
Hard-wired to 0 to indicate the bus master has no stringent
requirement as to how often the device needs access to the
PCI bus.

AC ’97 Controller Functional Descriptions
Proprietary

Page 201

MSI Capability Register Set IDs- R – 16 bits – [PCI_Reg: 40h]
Field Name
Capability ID
Pointer to Next ID

Bits
7:0
15:8

Default
05h
00h

Description
Read only. 05h indicates it is an MSI capability register set.
Read only. 00h indicates there is no additional register set.

MSI Message Control Register- RW – 16 bits – [PCI_Reg: 42h]
Field Name
MSI Enable

Bits
0

Default
0b

Multiple Message
Capable
Multiple Message
Enable

3:1

0h

6:4

0h

7

0b

15:8

00h

64-bit Address
Capable
Reserved

Description
0 - Function Is disabled from using MSI.
1 - Function is enabled to use MSI.
Hardwired to 0 to indicate the device would like 1 message
allocated to it.
Read/Write. Software programs a 3-bit value into this field
indicating the actual number of messages allocated to the
device. The number allocated can be equal or less than the
number actually requested. The field is encoded as follows:
Value
Number of Messages Requested
000b
1
001b
2
010b
4
011b
8
100b
16
101b
32
110b
reserved
111b
reserved
Hardwired to 0 to indicates that function does not implement the
upper 32 bits of the Message Address register and is incapable
of generating a 64-bit memory address.

MSI Message Address Register- RW – 32 bits – [PCI_Reg: 44h]
Field Name
Reserved
MSI Address

Bits
1:0
31:2

Default
0000_00
00h

Description
Reserved.
Lower 32 bits of the system specified message address always
DW aligned.

MSI Message Data Register- RW – 16 bits – [PCI_Reg: 48h]
Field Name
MSI Data

Bits
15:0

Default
0h

Description
System-specified message.

MSI Program Weight- RW – 8 bits – [PCI_Reg: 4Ch]
Field Name
Program Weight

Bits
5:0

Default
04h

Reserved

7:6

0h

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

Description
This register specifies the programmable priority of audio
device’s message signaled interrupt request.

AC ’97 Controller Functional Descriptions
Proprietary

Page 202

UnMask Latency Timer Expiration W - 32 bits - [PCI_Reg: 50h]
Field Name
UnMask Latency Timer
Expiration
Base1Enable
ReqMask
LargeMemEnable
Reserved

2.5.1.2

Bits
0

Default
0b

1
2
3

0b
0b
0b

31:4

0000_0
000h

Description
When this bit is set to 0, latency timer register will be ignored, and
AC97’s PCI master will not time out.
this bit is write-only, i.e., reading from it always returns 0.
When set, Base 1 (offset 14h) becomes writeable.
This is for internal bus performance enhancement.
When set, bits [13:8] of base 0 (offset 10h) becomes unwritable.
This is to cause OS to allocate wider memory map for ac97.

Audio Memory Mapped Registers

All AC’97 controller audio registers are mapped to the memory.

Name
Interrupt
Interrupt Enable
Audio Command
Output Phy Status and Address
Input Phy Address & Data
SLOTREQ
Counter
Input FIFO Threshold
Input DMA Link List Pointer
Input DMA DT Start
Input DMA DT Next
Input DMA DT Current
Input DT Size And FIFO Info
Out DMA Slot Enbl. & Thresh
Out DMA Link List Pointer
Out DMA DT Start
Out DMA DT Next
Out DMA DT Current
Out DMA DT Size and State
SPDIF Command
SPDIF Link List Pointer
SPDIF DT Start
SPDIF DT Next
SPDIF DT Current
SPDIF DT Size & FIFO Info
Modem Mirror
Audio Mirror
6-Channel Reorder Enable
Audio FIFO Flush
Output DMA FIFO Info
SPDIF status bits reg1
SPDIF status bits reg2
SPDIF status bits reg3
SPDIF status bits reg4
SPDIF status bits reg5
SPDIF status bits reg6
Audio Phy Semaphore

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

Reg.
00h
04h
08h
0Ch
10h
14h
18h
1ch
20h
24h
28h
2Ch
30h
34h
38h
3Ch
40h
44h
48h
4ch
50h
54h
58h
5Ch
60h
7Ch
80h
84h
88h
8Ch
90h
94h
98h
9Ch
A0h
A4h
A8h

AC ’97 Controller Functional Descriptions
Proprietary

Page 203

Interrupt - RW - 32 bits - [MEM_Reg: 00h]
Field Name
in DMA Overflow
in DMA Status

Bits
0
1

Default
0b
0b

out DMA Underflow

2

0b

out DMA Status

3

0b

SPDIF Underflow
SPDIF Status

4
5

0b
0b

Reserved
Phy Data Incoming
Phy Addr Mismatch

7:6
8
9

0b
0b
0b

Codec0 Not Ready

10

0b

Codec1 Not Ready

11

0b

Codec2 Not Ready

12

0b

New Frame Starts
Reserved
Audio Gpio Interrupt

13
14
15

0b
0b
0b

Description
Input Channel overflow on the next AC'97 clock - out of FIFO space.
Set to “1” after finishing an input audio DT data block (if
reg0x04[1]=1 and reg0x08[3]=0).
Output Channel underflow on the next AC'97 clock – no data in
FIFO
Set to "1" after finishing an output audio DT data block (if
reg0x04[1]=1 and reg0x08[3]=0).
SPDIF is out of data
SPDIF status bit - set to "1" after finishing an SPDIF DT data block
(if reg0x04[5]=1 and reg0x08[5]=0).
Got OR’ed Physical register address and data from Codecs
There is mismatch between in Physical and out Physical address
values
The Ac97_Phy registers in the master Ac97 codec are not ready for
normal operation
The Ac97_Phy registers in the 1st slave Ac97 codec are not ready
for normal operation
The Ac97_Phy registers in the 2nd slave Ac97 codec are not ready
for normal operation
This bit is set when new frame starts
When the input audio GPIO interrupt is enabled, input bus slot 12 bit
0 is considered as audio GPIO data. When that is true, if slot 12 is
valid and bit 0 changes, this bit is set to indicate audio GPIO
interrupt.

Reserved
31:16
0000h
Interrupt Source Register: Each bit in this register expresses an error flag. "1" indicates the error. Driver can read
status or clear by writing “1”. Writing 0 to bit doesn't change its value.

Interrupt Enable- RW - 32 bits - [MEM_Reg: 04h]
Field Name
in DMA Overflow en.
Audio Status Enable

Bits
0
1

Default
0b
0b

out DMA Underflow en
Out DMA Underflow
Condition Select

2
3

0b
0b

SPDIF Underflow en
SPDIF Status enable

4
5

0b
0b

7:6
8
9

00b
0b
0b

Enable "Got Physical register data from Codec" interrupt
Enable Physical address in/out mismatch interrupt

10
11
12
13
14
15

0b
0b
0b
0b
0b
0b

Enable Codec0_not_ready interrupt
Enable Codec1_not_ready interrupt
Enable Codec2_not_ready interrupt
Enable new frame start interrupt
Audio is running (write only). Set/cleared by software.
Enable audio GPIO interrupt

Reserved
Phy in Interrupt en
Phy_addr_mismatch_e
n
Codec0 Not Ready En
Codec1 Not Ready En
Codec2 Not Ready En
New Frame Start En
Set Bus Busy Audio
Audio gpio interrupt en

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

Description
Enable Input Channel overflow interrupt.
1- When an input or output audio DT data block is finished, status
will be updated in either DT memory or in reg0x00 (depending on
reg0x08[3]).
0 – Don’t update status
Enable Output channel 0 underflow interrupt.
0—Underflow interrupt is asserted only when output DMA FIFO has
zero valid entry.
1—Underflow interrupt is asserted as long as output DMA FIFO
does not have enough valid entries for the coming frame
Enable SPDIF underflow interrupt.
1- When an SPDIF DT data block is finished, status will be updated
in either DT memory or in reg0x00 (depending on reg0x08[5]).
0 – Don’t update status

AC ’97 Controller Functional Descriptions
Proprietary

Page 204

Interrupt Enable- RW - 32 bits - [MEM_Reg: 04h]
Field Name
Bits
Default
Description
Reserved
31:16
0000h
Interrupt Enable Register: If a bit in this register is set to “1”, the corresponding interrupt is enabled. Default—all
disabled.

Audio Command- RW - 32 bits - [MEM_Reg: 08h]
Field Name
Power down

Bits
0

Default
0b

Audio receive enable
Audio send out enable
Audio Status To Mem

1
2
3

0b
0b
0b

SPDIF send out en

4

0b

SPDIF Status To Mem

5

0b

Modem_slots_alloc_1

6

0b

Reserved
in DMA enable
out DMA enable
SPDIF DMA enable
SPDIF out Stopped

7
8
9
10
11

0b
0b
0b
0b
0b

SPDIF concurrency

14:12

0h

15
16

0b
0b

19:17
20

0h
0b

Interleave in

21

0b

Interleave out

22

0b

Loop back enable

23

0b

Reserved
SPDIF interleave
enable
Reserved
Audio present

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

Description
When this bit is set, the INTA# will be only set when any of the
SDATA_IN is '1'. Should be used for catching of PME# event.
Enable receiving of audio data from AC-link.
Enables sending of audio data to AC97 link.
When reg0x04[1] is enabled, after finishing an input or output audio
DT data block, the status will be updated in either DT memory or in
reg0x00.
0 – Update status to register.
1 – Update status to DT memory.
Enable SPDIF to send out data. Also it enables Underflow interrupt
for SPDIF.
When reg0x04[5] is enabled, after finishing an SPDIF DT data block,
the status will be updated in either DT memory or in reg0x00.
0 – Update status to register.
1 – Update status to DT memory.
Mirror bit of modem memory mapped register0x08[6]. This is only
available in ASIC revision A32 or later. Refer to that bit for more
detailed information.
Enable input DMA
Enable output DMA
Enable SPDIF DMA
1 - the SPDIF_OUT is set to the 0 because SPDIF FIFO run out of
data or SPDIF_en =0
0 - the SPDIF_OUT is processing the active data. [Read-only]
000 – no SPDIF concurrency, SPDIF data go to SPDIF bus.
001 – SPDIF data go to slot 3 & 4
010 – SPDIF data go to slot 7 & 8
011 – SPDIF data go to slot 6 & 9
100 – SPDIF data go to slot 10 & 11
0 – Disable SPDIF interleave mode
1 – Enable SPDIF interleave mode. In this mode a 32-bit PCI dword
will split into two 16-bit words and be put onto SPDIF bus as two
frames.
1 - Audio is present
0 - Audio is not present (for Modem driver), set by BIOS [Read-only]
1 - Enable Interleave format for the input slot 3 and 4 data, 31:16 slot 4, 15:0- slot 3.
Also this disables catching and transferring of slot 6 data.
0 - Enable transfer of slot 3,4 and 6 in regular format, where bits
31:12 - data and bits 11:8 are slot id (11 is slot 3, 100 is slot 4 and
110 is slot 6)
1 - Enable transferring from memory the data in interleave format the upper part of DWORD [31:16] is right data and lower part of
DWORD [15:0] is left data.
0 - Data from memory is transferred in regular way - one DWORD ,
one data.
Enable loop-back mode. The SDATA_OUT connected directly to the
SDATA_IN

AC ’97 Controller Functional Descriptions
Proprietary

Page 205

Audio Command- RW - 32 bits - [MEM_Reg: 08h]
Field Name
Packed format disable

Bits
24

Default
0b

Description
1 - Disable packed format for sending data: data is sent to memory
including data from Slot1 and 2 (physical address and data are send
to memory along with other data).
0 - Data send to memory through DMA in packed format, no slot 1
and 2 - default
Burst enable.
25
0b
Enable DMA operation in burst mode: Will send/request data only
based on threshold value & overflow condition. All other cases
(lowest priority) will be disabled.
Panic enable
26
0b
Enable panic signal - to get more priority over internal bus.
Modem_slots_alloc_0
27
0b
Mirror bit of modem memory mapped register0x08[27]. Refer to that
bit for more detailed information.
AC Link active
28
0b
Read only.
0 - AC Link is not active;
1 - AC Link is active.
AC'97 software reset
29
0b
0 – De-assert ac97 software reset asynchronous to BIT_CLK;
1 – Assert ac97 software reset asynchronous to BIT_CLK. Registers
in BIT_CLK domain will be reset.
AC97 Sync
30
0b
0 – De-assert AC link’s SYNC asynchronous to BIT_CLK
1 – Assert AC link’s SYNC asynchronous to BIT_CLK. After being
asserted, the bit will automatically deassert itself in one clock.
AC97 Reset#
31
0b
0 – Assert AC link’s RESET# asynchronous to BIT_CLK;
1 – De-assert AC link’s RESET# asynchronous to BIT_CLK
Audio Command Register: Controls the operation of Audio Controller. Value of "1" in bit position enables
corresponding function. Value of "0" disables it.

Phy Out Address and Data- RW - 32 bits - [MEM_Reg: 0Ch]
Field Name
Codec ID

Read/Write request
Reserved
Phy out enable

Bits
1:0

Default
0b

2

0b

7:3
8

0h
0b

Description
0 – Master AC97
1 – 1st slave AC97
nd
2 – 2 slave AC97
3 – Reserved
1 – Read request.
0 – Write request

1 - Enable sending out of Physical address in next frame
0 - Physical out address have been sent out; open to get new value.
When the bit is 0, writing 1 to it makes it 1. Once it is 1, writing to it
is ignored. It will automatically return to 0 when physical address is
sent out.
Phy out address
15:9
00h
Physical out address (will not be able to write new address until old
one is send out - until Physical out address enable is '1') (for
address write bit [8] is asserted until data send out)
Phy out Data
31:16
0000h
Physical register out data (for write). When Physical out address
enabled and Write request is set (bit [2]=0), then the value in this
register will be sent out in slot 2
Phy out address and data Register: Until Physical out address enable is 0, driver cannot write any new data to this
register.

Input Phy Address and Data- R - 32 bits - [MEM_Reg: 10h]
Field Name
Reserved
Phy_in_read_flag

Bits
7:0
8

Default
00h
0h

in_Phy_addr
15:9
00h
Input Phy data
31:16
0000h
Input Phy address and data Register

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

Description
It is cleared whenever reg0x0Ch[8]=1 and reg0x0C[2]=1.
It is set when input physical data (due to a physical read) arrives.
Physical address from AC'97 Codec.
Input Physical data from AC'97 Codec.

AC ’97 Controller Functional Descriptions
Proprietary

Page 206

Slot Request- R - 32 bits - [MEM_Reg: 14h]
Field Name
SLOTREQ

Reserved

Bits
9:0

Default
000h

31:10

000000
h

Description
The read only bits [0:9] of this field respectively come from
slot1[11:2] of AC link’s SDATA_IN0/1/2 OR’ed together (even if slot
1 may not be valid as indicated by slot 0[14]). These bits [0:9]
respectively decide whether slot 3~12 of SDATA_OUT is allowed or
not.
0 – Slot is allowed
1 – Slot is allowed
Even if a bit in this field being 0 indicates a slot is allowed, the
controller further looks at reg0x34[9:0] to finally decide whether the
slot is enabled.

SLOTREQ Register

Counter- R - 32 bits - [MEM_Reg: 18h]
Field Name
Slot Counter
Reserved
Bit Clock Counter

Bits
3:0
7:4
12:8

Default
0h
0h
00h

Reserved
Counter Register

31:13

00000h

Description
The current slot number (0-12) which the AC97 controller handling.
For tag slot, the value changes from 0 to F. For other slots the value
changes from 0 to 20.

Input FIFO Threshold- RW - 32 bits - [MEM_Reg: 1Ch]
Field Name
Input Threshold
Reserved

Bits
4:0
31:5

Default
Description
00h
Threshold value for the Input Channel's FIFOs. (FIFO size 16x20)
000000
0h
Input FIFO Threshold Register: Input DMA's FIFOs threshold value.

Input DMA Link List Pointer- RW - 32 bits - [MEM_Reg: 20h]
Field Name
Bits
Default
in DMA Link List
0
0b
Pointer En
in DMA Link List
31:1
0000_0
Pointer
000h
Input DMA Link List Pointer Register:

Description
Input DMA Link List Pointer enable
Pointer to the start of the Link List - to the first DT.

Input DMA DT Start- R - 32 bits - [MEM_Reg: 24h]
Field Name
in DMA DT start

Bits
31:0

Default
Description
0000_0 Pointer to the start of data associated with current DT for the input
000h
DMA
Input DMA Discrete Table (DT) Start Pointer Register:

Field Name
in DMA DT next

Bits
31:0

Input DMA DT Next- R - 32 bits - [MEM_Reg: 28h]
Default
0000_0
000h
Input DMA DT Next Pointer Register:

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

Description
Pointer to the next DT for the input DMA

AC ’97 Controller Functional Descriptions
Proprietary

Page 207

Input DMA DT Current- R - 32 bits - [MEM_Reg: 2Ch]
Field Name
in DMA DT current

Bits
31:0

Default
0000_0
000h
Input DMA DT Current Pointer Register:

Description
Pointer to the currently accessing memory address for the input
DMA.

Input DMA DT Size & FIFO Info- R - 32 bits - [MEM_Reg: 30h]
Field Name
Bits
Default
Description
in DMA DT size
15:0
0000h
Data size of DT for input DMA.
in FIFO Used
20:16
00h
Number of filled FIFO entries of input DMA.
in FIFO Free
25:21
1eh
Number of free FIFO entries of input DMA.
in DMA state
28:26
0h
Current state of in DMA
Reserved
31:29
0h
Input DMA DT Size & FIFO info Register: Size of data associated with DT for input channels and number of FIFO
entries free and used for the input channels.

Output DMA Slot Enable & Threshold- RW - 32 bits - [MEM_Reg: 34h]
Field Name
out DMA Slot enable

Bits
9:0

Default
000h

Description
Slot enable for audio output.
[0] = 1 Enable slot 3
[1] = 1 Enable slot 4
|
[9] = 1 Enable slot 12

Reserved
10
0b
Out DMA Threshold
17:11
00h
Threshold value for the Out DMA FIFO. (FIFO size 90x20)
Reserved
31:18
0000h
Output DMA Slot Enable & Threshold Register: Configure Slot responsibility for Output channels 0 and also
threshold values of out DMA FIFO's.

Output DMA Link List Pointer- RW - 32 bits - [MEM_Reg: 38h]
Field Name
Bits
Default
out DMA Link List
0
0b
Pointer En
out DMA Link List
31:1
0000_0
Pointer
000h
Output DMA Link List Pointer Register:

Description
Output DMA Link List Pointer enable
Pointer to the start of the Link List - to the first DT.

Output DMA DT Start- R - 32 bits - [MEM_Reg: 3Ch]
Field Name
out DMA DT start

Bits
31:0

Default
Description
0000_0 Pointer to the start of data associated with current DT for the Output
000h
DMA.
Output DMA Discrete Table (DT) Start Pointer Register:

Field Name
out DMA DT next

Bits
31:0

Output DMA DT Next- R - 32 bits - [MEM_Reg: 40h]
Default
0000_0
000h
Output DMA DT Next Pointer Register:

Description
Pointer to the next DT for the Output DMA

Output DMA DT Current- R - 32 bits - [MEM_Reg: 44h]
Field Name
out DMA DT current

Bits
31:0

Default
0000_0
000h
Output DMA DT Current Pointer Register:

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

Description
Pointer to the currently accessing memory address for the Output
DMA.

AC ’97 Controller Functional Descriptions
Proprietary

Page 208

Output DMA DT Size and State- R - 32 bits - [MEM_Reg: 48h]
Field Name
Bits
Default
Out DMA DT size
15:0
0000h
Reserved
25:16
000h
out DMA state
28:26
0h
Reserved
31:29
0h
Output DMA DT Size & State Register:

Description
Data size of DT for Output DMA.
Current state of out DMA

SPDIF Command- RW - 32 bits - [MEM_Reg: 4Ch]
Field Name
Spdif valid bit

Bits
0

Default
0b

Spdif user bit

1

0b

SPDIF bus mute

2

0b

Reserved
LFSR Control

3
4

0b
0b

Single channel mode

5

0b

Reserved
Data mute

6
7

0b
0b

15:8
20:16

00h
00h

LFSR Accumulation
SPDIF Threshold

Description
The value of this bit will go to bit[28] of each enabled sub-frame on
SPDIF_OUT bus, which is the valid bit for that subframe.
The value of this bit will go to bit[29] of each enabled sub-frame on
SPDIF_OUT bus, which is the user bit for that subframe.
Setting it to 1 will mute the whole SPDIF bus to zero when the next
frame comes. Setting it back to 0 will unmute SPDIF bus when the
next frame comes. Changing of this bit only starts to take effect on
frame boundary.
0 - Shift direction left.
1 - Shift direction right.
1 - SPDIF operates in the single channel mode (disable second
sub-frame)
0 - SPDIF operates in the 2-channel mode (every sub-frame filed
with data from FIFO)
When this bit is set to 1, on each subframe of spdif bus, the data
field (bit[27:4]) is set to 0, no matter what data are written to spdif
FIFO.
LFSR Linear feedback shift Register [Read-only]
Threshold value for the SPIDF Channel's FIFO. (SPDIF FIFO is
30x28)

Reserved
31:21
000h
SPDIF Command Register: Controls the operation of SPDIF channel.

SPDIF Channel Link List Pointer- RW - 32 bits - [MEM_Reg: 50h]
Field Name
SPDIF LL ptr enable
SPDIF LL Pointer

Bits
0
31:1

Default
Description
0b
SPDIF Channel Link List Pointer enable
0000_0 Pointer to the start of the Link List - to the first DT.
000h
SPDIF Channel Link List Pointer Register: Pointer to the start of Link List for the SPDIF channel.

SPDIF Channel DT Start- R - 32 bits - [MEM_Reg: 54h]
Field Name
SPDIF DT start

Bits
31:0

Default
Description
0000_0 SPDIF Channel Discrete Table (DT) Start Pointer
000h
SPDIF channel DT start Pointer Register: Pointer to the start of data associated with current DT for the SPDIF
channel.

SPDIF Channel DT Next- R - 32 bits - [MEM_Reg: 58h]
Field Name
SPDIF DT next

Bits
31:0

Default
0000_0
000h
SPDIF channel Next Pointer Register:

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

Description
Pointer to the next DT for the SPDIF channel.

AC ’97 Controller Functional Descriptions
Proprietary

Page 209

SPDIF Channel DT Current- R - 32 bits - [MEM_Reg: 5Ch]
Field Name
SPDIF DT current

Bits
31:0

Default
Description
0000_0 SPDIF Channel currently accessed memory address.
000h
SPDIF DT Current Pointer Register: Pointer to the currently accessing memory address for the SPDIF channel.

Field Name
SPDIF DT size
SPDIF Used
SPDIF Free

Bits
15:0
20:16
25:21

SPDIF DT Size- R - 32 bits - [MEM_Reg: 60h]
Default
0000h
00h
1Eh

Description
Data size of DT for SPDIF channel.
Number of filled FIFO entries of SPDIF channel. Default is 0.
Number of free FIFO entries of SPDIF channel. Default is 30 (Size
of FIFO)
Current state of SPDIF DMA

SPDIF DMA state
28:26
0h
Reserved
31:29
0h
SPDIF DT Size and FIFO Used/Free Register: Size of data associated with DT for SPDIF channels. Plus Number of
free and filled FIFO entries of SPDIF channel.

Modem Mirror- R - 32 bits - [MEM_Reg: 7Ch]
Field Name
Modem Mirror

Bits
31:0

Default
0000_0
000h

Description
Data written by modem for communication with Audio.

Modem Mirror Register:

Audio Mirror- RW - 32 bits - [MEM_Reg: 80h]
Field Name
Audio Mirror

Bits
31:0

Default
0000_0
000h

Description
Data written by audio for communication with modem. Bit 1 is used
by the BIOS to communicate with the audio driver.

Audio mirror Register:

6-Channel Reorder Enable- RW - 32 bits - [MEM_Reg: 84h]
Field Name
Reorder enable

Bits
0

Default
0

Reserved

31:1

0000_0
000h

Description
When audio output has all the 6 channels enabled, usually software
puts data in the memory using the order of 346789, and AC97
controller sends data out with the same order 346789. If software
uses the order of 346978, with this bit enabled, AC97 controller can
still send data out with the correct order 346789.

6-Channel Reorder Enable Register

Audio Fifo Flush- W - 32 bits - [MEM_Reg: 88h]
Field Name
Flush output audio fifo

Bits
0

Default
0b

Flush input audio fifo

1

0b

Flush spdif fifo

2

0b

31:3

0000_0
000h

Reserved

Description
Writing to this bit will flush audio output DMA fifo, i.e., the fifo
indexes and Used/Free counts will be reset. Reading this bit returns
0
Writing to this bit will flush audio input DMA fifo, i.e., the fifo indexes
and Used/Free counts will be reset. Reading this bit returns 0
Writing to this bit will flush spdif output DMA fifo, i.e., the fifo indexes
and Used/Free counts will be reset. Reading this bit returns 0

Audio Fifo Flush Register:

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

AC ’97 Controller Functional Descriptions
Proprietary

Page 210

Output DMA Fifo info- R - 32 bits - [MEM_Reg: 8Ch]
Field Name
Out FIFO Used
Reserved
Out FIFO Free

Bits
6:0
7
14:8

Default
00h
0b
5Ah

Reserved

31:15

00000h

Description
Number of filled FIFO entries of output DMA.
Number of free FIFO entries of output DMA. Default is 90 (size of
output fifo)

SPDIF Status bits reg1- RW - 32 bits - [MEM_Reg: 90h]
Field Name
SPDIF Status bits

Bits
31:0

Default
0000_0
000h

Description
The bits in this reg are used on spdif bus as status bits. Each spdif
bus frame has a status bit. Spdif bus frame counts from 0~191
repeatedly, so there are 192 status bits. Software can write to this
register (and the following few registers) to decide what status bits
value to output on spdif bus.
Bits 0~31 in this register correspond to frame 0~31 on spdif bus.

SPDIF Status bits reg2- RW - 32 bits - [MEM_Reg: 94h]
Field Name
SPDIF Status bits

Bits
31:0

Default
0000_0
000h

Description
Same definition as reg0x90.
Bits 0~31 in this register correspond to frame 32~63 on spdif bus.

SPDIF Status bits reg3- RW - 32 bits - [MEM_Reg: 98h]
Field Name
SPDIF Status bits

Bits
31:0

Default
0000_0
000h

Description
Same definition as reg0x90.
Bits 0~31 in this register correspond to frame 64~95 on spdif bus.

SPDIF Status bits reg4- RW - 32 bits - [MEM_Reg: 9Ch]
Field Name
SPDIF Status bits

Bits
31:0

Default
0000_0
000h

Description
Same definition as reg0x90.
Bits 0~31 in this register correspond to frame 96~127 on spdif bus.

SPDIF Status bits reg5- RW - 32 bits - [MEM_Reg: A0h]
Field Name
SPDIF Status bits

Bits
31:0

Default
0000_0
000h

Description
Same definition as reg0x90.
Bits 0~31 in this register correspond to frame 128~159 on spdif bus.

SPDIF Status bits reg6- RW - 32 bits - [MEM_Reg: A4h]
Field Name
SPDIF Status bits

Bits
31:0

Default
0000_0
000h

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

Description
Same definition as reg0x90.
Bits 0~31 in this register correspond to frame 160~191 on spdif bus.

AC ’97 Controller Functional Descriptions
Proprietary

Page 211

Audio Phy Semaphore Reg- RW - 8 bits - [MEM_Reg: A8h]
Field Name
Audio Phy semaphore

Bits
0

Default
0b

Description
PHY is ready for Audio to access:
0 = PHY is not ready for Audio to access.
1 = PHY is ready for Audio to access.
The Audio driver can only access the PHY register when the read
back value of this bit is ‘1’ (after writing a ‘1’ to this bit). It is possible
that the read back value is ‘0’ after writing a ‘1’. This means that the
PHY register is not ready for Audio to access. Since the PHY
register can be accessed by both audio and modem controllers, this
bit is used by the audio driver to establish a semaphore handshake
with the modem driver.
The driver is also responsible to clear the bit after its PHY read/write
access.
Note: The driver can check Mem_reg 0x10[8] which indicates a PHY
read access completion. For writing to PHY, the driver can clear the
semaphore bit after the write command.

Reserved

7:1

00h

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

AC ’97 Controller Functional Descriptions
Proprietary

Page 212

2.5.2

Modem Registers (Device 20, Function 6)

The PCI based registers for Modem are defined according to the PCI 2.1 spec and Windows 2000
requirements.
2.5.2.1

PCI Configuration Registers

Register Name
Vendor ID
Device ID
PCI Command
PCI Device Status
Revision ID/Class Code
Cache Line Size
Latency Timer
Header Type
Built-in Self Test
Base Address Register 0
Base Address Register 1
Subsystem ID & Subsystem Vendor ID
Capabilities Pointer
Interrupt Line
Interrupt Pin
Min Grant
Max Latency
MSI Capability Register Set IDs
MSI Message Control
MSI Message Address
MSI Message Data
MSI Program Weight

Offset Address
00h
02h
04h
06h
08h
0Ch
0Dh
0Eh
0Fh
10h
14h
2Ch
34h
3Ch
3Dh
3Eh
3Fh
40h
42h
44h
48h
4Ch

IMPORTANT: The driver is required to check revision ID to enable functions
appropriately. AMD AC’97 controller will be backward compatible to previous
revisions. E.g., Revision 01 will have everything the same as revision 00, plus the
enhancement.
Vendor ID- R - 16 bits - [PCI_Reg: 00h]
Field Name
Bits
Default
Description
Vendor ID
15:0
1002h
Vendor ID
Vendor ID Register: This register holds a unique 16-bit value assigned to a vendor, and combined with the device
ID it identifies any PCI device.

Device ID- R - 16 bits - [PCI_Reg: 02h]
Field Name
Bits
Default
Description
Device ID
15:0
438Eh
Device ID
Device ID Register: This register holds a unique 16-bit value assigned to a device, and combined with the vendor ID
it identifies any PCI device.

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

AC ’97 Controller Functional Descriptions
Proprietary

Page 213

CMD- RW - 16 bits - [PCI_Reg: 04h]
Field Name
IO Space
Memory Space
Bus Master
Special Cycles

Bits
0
1
2
3

Default
0b
0b
0b
0b

Memory Write and
Invalidate Enable
VGA Palette Snoop

4

0b

5

0b

Parity Error Response
Stepping Control

6
7

0b
0b

SERR# Enable
Fast Back-to-Back Enable

8
9

0b
0b

INTB# Enable#

10

0b

Description
I/O Access Enable.
Memory Access Enable.
Master Enable
Hardwired to 0 to indicate that Special Cycle recognition is
disabled.
Memory Write and Invalidate Enable.
Hardwired to 0 to indicate that the controller does not need
to snoop VGA palette cycles.
PERR# (Response) Detection Enable bit
Hardwired to 0 to indicate that the controller does not need
to insert a wait state between the address and data on the
AD lines.
SERR# enable
Hardwired to 0 to indicate that Fast Back-to-back is
disabled. The controller only acts as a master to a single
device, so this functionality is not needed.
When it is 0, INTB# is allowed to send out. When it is 1,
INTB# is not allowed to send out.

Reserved
15:11
00h
Command Register: The PCI specification defines this register to control a PCI device’s ability to generate and
respond to PCI cycles.

STATUS- RW - 16 bits - [PCI_Reg: 06h]
Field Name
Reserved
Interrupt B status

Bits
2:0
3

Default
0h
0b

Capabilities List

4

1b

66MHz-Capable
Reserved
Fast Back-to-Back
Capable
Master Data Parity
Error
Device Select Timing

5
6
7

1b
0b
0b

Description
When there is interrupt B, this bit will be 1, regardless of the
value in reg0x04[10].
Read only. Indicates that the new capabilities list pointer
configuration register is implemented in reg0x34.
Read only. Indicates that device is capable of running at 66MHz.

Read only. Indicates that device does not support fast back-toback transactions.
8
Master Data Parity Error. This bit is set to 1 when the controller
detects master data parity error. Cleared by writing a 1 to it.
10:9
10b
DEVSEL# timing – Read only bits indicating DEVSEL# timing
when performing a positive decode.
Signaled Target Abort
11
0b
Read only. The device does not support target aborts.
Received Target Abort
12
0b
Received Target Abort .This bit is set to 1 when the controller
generated PCI cycle is aborted by a PCI target. Cleared by
writing a 1 to it.
Received Master Abort
13
0b
Received Master Abort Status. Set to 1 when the controller
acting as a PCI master, aborts a PCI bus memory cycle. Cleared
by writing a 1 to this bit. Cleared by writing a 1 to it.
Signaled System Error
14
0b
SERR# status. This bit is set to 1, when the controller detects a
PCI address parity error. Cleared by writing a 1 to it.
Detected Parity Error
15
0b
Detected Parity Error. This bit is set to 1 when the controller
detects a parity error.
Status Register: The PCI specification defines this register to record status information for PCI related events. This
is a read/write register. However, writes can only reset bits.

Revision ID/Class Code – R - 32 bits - [PCI_Reg: 08h]
Field Name
Bits
Default
Description
Revision ID
7:0
00h
Class Code
31:8
070300h Class Code.
Revision ID Register: This read only register contains the device’s revision information and generic function.

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

AC ’97 Controller Functional Descriptions
Proprietary

Page 214

Cache Line Size - RW - 8 bits - [PCI_Reg: 0Ch]
Field Name
Bits
Default
Description
Cache Line Size
7:0
00h
Cache Lien Size.
Cache Line Size Register: This register specifies the system cache line size.

Latency Timer - RW - 8 bits - [PCI_Reg: 0Dh]
Field Name
Bits
Default
Description
Latency Timer
7:0
00h
Latency Timer.
Latency Timer Register: This register specifies the value of the Latency Timer in units of PCICLKs.

Header Type - R - 8 bits - [PCI_Reg: 0Eh]
Field Name
Bits
Default
Description
Header Type
7:0
80h
Header Type.
Header Type Register: This register identifies the type of the predefined header in the configuration space. Since
SB600 is a multifunction device, the most significant bit is set.

BIST- R - 8 bits - [PCI_Reg: 0Fh]
Field Name

Bits
Default
Description
BIST
7:0
00h
BIST.
Built-in Self Test Register: This register is used for control and status for Built-in Self Test. Ac97 has no BIST
modes.

Base Address Reg 0- RW* - 32 bits – [PCI_Reg: 10h]
Field Name
MemoryIndicator
Type

Bits
0
2:1

Default
0b
00b

Prefetchable
Reserved

3
7:4

0b
0h

BAR0

31:8

0000_00h

Description
Always 0; meaning it is always memory mapped
Always 0; meaning it can be located anywhere in 32 bit
address space
Always 0; meaning it is not prefetchable
Always 0; meaning the memory mapped registers occupy
256 bytes
Base address register 0. Defines the base address for the
memory mapped register space of modem. If index 50h, bit
3 is set, bits [13:8] of this register become unwritable. The
effect will cause the OS to allocate a wider memory map for
this controller.

Base Address Reg 1- RW* - 32 bits – [PCI_Reg: 14h]
Field Name
MemoryIndicator

Bits
0

Default
0b

Type

2:1

00b

Prefetchable
Reserved

3
7:4

0b
0h

BAR1

31:8

0000_00h

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

Description
This bit will return 1 if index 50h, bit [1] is set. 1 means IO
mapping.
Always 0; meaning it can be located anywhere in 32 bit
address space
Always 0; meaning it is not prefetchable
Always 0; meaning the IO mapped registers occupy 256
bytes
Base address register 1. Defines the base address for the
IO mapped register space of modem. This is to allow dual
IO and memory mapped addressing. In other words, if IO
mapping is enabled through this register, the IO indexed
registers are basically dual port as the memory mapped
registers. This register can only be programmed if index
50h, bit [1] is set. The purpose of this dual address
mapping is for diagnostics; not for OS usage

AC ’97 Controller Functional Descriptions
Proprietary

Page 215

Subsystem ID & Subsystem Vendor ID - W/R - 32 bits - [PCI_Reg: 2Ch]
Field Name
Bits
Default
Description
Subsystem Vendor ID
15:0
0000h
Subsystem Vendor ID.
Subsystem ID
31:16
0000h
Subsystem ID.
This 4-byte register is a write-once & read-only afterward register. The BIOS writes to this register once (all 4 bytes
at once) & software reads its value when needed.

Capabilities Pointer - R - 8 bits - [PCI_Reg: 34h]
Field Name
Capabilities Pointer

Bits
7:0

Field Name
Interrupt Line

Bits
7:0

Field Name
Interrupt Pin

Bits
7:0

Field Name
Min_Gnt

Bits
7:0

Field Name
Max_Lat

Bits
7:0

Default
40h

Description
Read only. Indicates that the device has New Capabilities
register set starting at address 40h.

Interrupt Line - RW - 8 bits - [PCI_Reg: 3Ch]
Default
00h

Description
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]
Default
02h

Description
Hard-wired to 2 to indicate that this function (modem
controller) uses interrupt pin INTB# on PCI bus.

Min_Gnt - R - 8 bits - [PCI_Reg: 3Eh]
Default
02h

Description
The value hardwired into this register indicates how long the
bus master would like to retain PCI bus ownership.

Min_Gnt - R - 8 bits - [PCI_Reg: 3Fh]
Default
00h

Description
This read-only register specifies how often the device needs
access to the PCI bus (in increments of 250ns).

MSI Capability Register Set IDs- R – 16 bits - [PCI_Reg: 40h]
Field Name
Capability ID
Pointer to Next ID

Bits
7:0
15:8

Default
05h
00h

Description
Read only. 05h indicates it is an MSI capability register set.
Read only. 00h indicates there is no additional register set.

MSI Message Control Register- RW - 16 bits - [PCI_Reg: 42h]
Field Name
MSI Enable

Bits
0

Default
0b

Multiple Message
Capable

3:1

0b

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

Description
0 - Function Is disabled from using MSI.
1 - Function is enabled to use MSI.
Hardwired to 0 to indicate the device would like 1 message
allocated to it.

AC ’97 Controller Functional Descriptions
Proprietary

Page 216

MSI Message Control Register- RW - 16 bits - [PCI_Reg: 42h]
Field Name
Multiple Message
Enable

64-bit Address
Capable
Reserved

Bits
6:4

Default
0b

7

0b

15:8

00h

Description
Software programs a 3-bit value into this field indicating the
actual number of messages allocated to the device. The number
allocated can be equal or less than the number actually
requested. The field is encoded as follows:
Value
Number of Messages Requested
000b
1
001b
2
010b
4
011b
8
100b
16
101b
32
110b
Reserved
111b
Reserved
Hardwired to 0 to indicates that function does not implement the
upper 32 bits of the Message Address register and is incapable
of generating a 64-bit memory address.

MSI Message Address Register- RW – 32 bits - [PCI_Reg: 44h]
Field Name
Reserved
MSI Address

Bits
1:0
31:2

Default
0000_00
00h

Description
Reserved.
Lower 32 bits of the system specified message address always
DW aligned.

MSI Message Data Register- RW – 16 bits - [PCI_Reg: 48h]
Field Name
MSI Data

Bits
15:0

Default
0h

Description
System-specified message.

MSI Program Weight Register RW- 8 bits - [PCI_Reg: 4Ch]
Field Name
MSI Program Weight

Bits
5:0

Reserved

7:6

Default
000100
b
0h

Description
This register specifies the programmable priority of modem device’s
message signaled interrupt request.

UnMask Latency Timer Expiration W - 32 bits - [PCI_Reg: 50h]
Field Name
Reserved
Base1Enable
Reserved
LargeMemEnable

Bits
0
1
2
3

Default
0b
0b
0b
0b

Reserved

31:4

0000_0
00h

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

Description
When set, Base 1 (offset 14h) becomes writeable.
When set, bits [13:8] of base 0 (offset 10h) becomes unwritable.
This is to cause OS to allocate wider memory map for ac97.

AC ’97 Controller Functional Descriptions
Proprietary

Page 217

2.5.2.2

Modem Memory Mapped Registers

All the AC’97 Controller modem registers are mapped to memory.

Register Name
Interrupt
Interrupt Enable
Modem Command
Output Phy Status And Address
Input Phy Address & Data
SLOTREQ
Counter
Input Fifo Threshold
Input DMA Link List Pointer
Input DMA DT Start
Input DMA DT Next
Input DMA DT Current
Input DT Size And FIFO Info
Out Fifo's Threshold
Output DMA1 Link List Pointer
Output DMA2 Link List Pointer
Output DMA3 Link List Pointer
Output DMA1 DT Start
Output DMA1 DT Next
Output DMA1 DT Current
Output DMA2 DT Start
Output DMA2 DT Next
Output DMA2 DT Current
Output DMA3 DT Start
Output DMA3 DT Next
Output DMA3 DT Current
Output DMA 1/2 Size
Output DMA 3 DT Size
Output Dma 1/2/3 Fifo Info
Output GPIO Out Data
Input GPIO Data
Modem Mirror
Audio Mirror
Modem FIFO Flush
Phy Semphore Register

Offset Address
00h
04h
08h
0Ch
10h
14h
18h
1Ch
20h
24h
28h
2Ch
30h
34h
38h
3Ch
40h
44h
48h
4Ch
50h
54h
58h
5Ch
60h
64h
68h
6Ch
70h
74h
78h
7Ch
80h
88h
A8h

Interrupt - RW - 32 bits - [MEM_Reg: 00h]
Field Name
in DMA Overflow
in DMA Status

Bits
0
1

Default
0b
0b

out DMA1 Underflow
out DMA1 Status

2
3

0b
0b

out DMA2 Underflow
out DMA2 Status

4
5

0b
0b

out DMA3 Underflow
out DMA3 Status

6
7

0b
0b

Phy Data Incoming

8

0b

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

Description
Input Channel overflow - out of FIFO space
Input Channel status bit - set to "1" after finishing DT
(if reg0x04[1]=1 and reg0x08[5]=1)
Output DMA1 underflow - no data in FIFO
Output DMA1 status bit - set to "1" after finishing DT (if
reg0x04[1]=1 and reg0x08[5]=1)
Output DMA2 underflow - no data in FIFO
Output DMA2 status bit - set to "1" after finishing DT (if
reg0x04[1]=1 and reg0x08[5]=1)
Output DMA3 underflow - no data in FIFO
Output DMA3 status bit - set to "1" after finishing DT (if
reg0x04[1]=1 and reg0x08[5]=1)
Got OR’ed Phy register address and data from Codecs

AC ’97 Controller Functional Descriptions
Proprietary

Page 218

Interrupt - RW - 32 bits - [MEM_Reg: 00h]
Field Name
Phy Addr mismatch

Bits
9

Default
0b

Codec0 Not Ready

10

0b

Codec1 Not Ready

11

0b

Codec2 Not Ready

12

0b

Description
There is mismatch between in Phy and out Phy
address values
The Ac97_Phy registers in the master Ac97 are not
ready for normal operation
The Ac97_Phy registers in the 1st slave Ac97 are not
ready for normal operation
The Ac97_Phy registers in the 2nd slave Ac97 are not
ready for normal operation
Signal when new frame starts
Got Gpio data from Codec

New Frame Starts
13
0b
Gpio in Data Intr.
14
0b
Reserved
31:15
00000h
Interrupt Source Register: Each bit in this register expresses an error flag. "1" indicates the error. Driver can read
status or clear by writing “1”. Writing 0 to bit doesn't change its value.

Interrupt Enable - RW - 32 bits - [MEM_Reg: 04h]
Field Name
in DMA Overflow en
Status enable

Bits
0
1

Default
0b
0b

out DMA1 Underflow en
Reserved
out DMA2 Underflow en
Reserved
out DMA3 Underflow en
Reserved
Phy in Intr. En

2
3
4
5
6
7
8

0b
0b
0b
0b
0b
0b
0b

Phy_addr_mismatch_en
Codec0_not_ready en
Codec1_not_ready en
Codec2_not_ready en
New_Frame_start enable
Gpio in Data Intr. En
Gpio in Data Intr. Diff En

9
10
11
12
13
14
15

0b
0b
0b
0b
0b
0b
0b

Set Bus Busy Modem

16

0b

Description
Enables Input Channel overflow interrupt.
1 – When an input or output modem DT data block is
finished, status will be updated in either DT memory or
in reg0x00 (depending on reg0x08[5]).
0 - Don’t update status
Enables out DMA3 underflow interrupt.
Enables out DMA3 underflow interrupt.
Enables out DMA3 underflow interrupt.
Enables "Got Physical register data from Codec"
interrupt.
Enables Physical address in/out mismatch interrupt
Enables Codec0 Not Ready interrupt
Enables Codec1 Not Ready interrupt
Enables Codec2_not_ready interrupt
Enables new frame start interrupt
Enables "Got Gpio data from Codec" interrupt
This bit is effective only when “Gpio in Data Intr En” bit
is asserted.
0 – Gpio interrupt happens whenever valid GPIO data
come in
1 – Gpio interrupt happens only when valid GPIO data
change in different frames.
Modem is running (write only). Set/cleared by
software.

Reserved
31:17
0000h
Interrupt Enable Register: If a bit in this register is set to “1”, then the corresponding interrupt is enabled. Default -all disabled.

Modem Command - RW - 32 bits - [MEM_Reg: 08h]
Field Name
Power down
Modem receive enable
Modem send out through
DMA1 enable

Bits
0

Default
0b

1
2

0b
0b

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

Description
When this bit is set, the INTA# will be only set when
any of the SDATA_IN is '1'. Should be used for
catching of PME# event.
Enables receiving of modem data from AC link.
Enables sending of modem data to slot 5 on AC link
using out DMA1

AC ’97 Controller Functional Descriptions
Proprietary

Page 219

Modem Command - RW - 32 bits - [MEM_Reg: 08h]
Field Name
Modem send out through
DMA2 enable
Modem send out through
DMA3 enable
Status To Mem

Bits
3

Default
0b

4

0b

5

0b

6

0h

7
8
9
10
11
19:12
20

0h
0b
0b
0b
0b
00h
0b

Reserved
Gpio through DMA en

21
22

0b
0b

Loop back enable

23

0b

Packed format disable

24

0b

Burst enable.

25

0b

Panic enable

26

0b

Modem_slots_alloc_0

27

0b

Modem_slots_alloc_1
Reserved
In DMA enable
Out DMA #1 enable
Out DMA #2 enable
Out DMA #3 enable
Reserved
Audio present

AC Link active

28

0b

AC'97 software reset

29

0b

AC97 Sync

30

0b

AC97 Reset#

31

0b

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

Description
Enables sending of modem data to slot 10 on AC link
using out DMA2
Enables sending of modem data to slot 11 on AC link
using out DMA3
When reg0x04[1] is enabled, after finishing an input or
output modem DT data block, the status will be
updated in either DT memory or in reg0x00.
0: Update status to register
1: Update status to memory
Refer to Modem_slots_alloc_0 (bit 27 of this register)
for more detailed information.
Enables input DMA
Enables output DMA 1
Enables output DMA 2
Enables output DMA 3
1 - Audio is present;
0 - Audio is not present (for Modem driver), set by
BIOS [Read-only]
1 - Gpio data (slot 12) comes from DMA 3 along with
data for slot 11.
0 - Gpio data (slot 12) comes from Gpio register 74h.
Enables loop-back mode. The SDATA_OUT
connected directly to the SDATA_IN
1 - Disable packed format for sending data: data is
sent to memory including data from Slot1 and 2
(physical address and data are sent to memory along
with other data).
0 - Data sent to memory through DMA in packed
format, no slot 1 and 2 - default
Enables Burst operation: Will send/request data only
based on threshold value & overflow condition.
Enables panic signal - to get more priority over internal
bus.
Once this bit is set to 1, writing 0 to it has no effect.
{Modem_slots_alloc_1, Modem_slots_alloc_0} =
00: Only slot 5 is allocated to the modem.
01: Slots 5 and 12 are allocated to the modem.
10: Slots 5, 10, 11, and 12 are allocated to the
modem.
11: Slots 5, 10, 11, and 12 are allocated to the
modem.
1 - AC Link is in the ACTIVE state.;
0 - AC Link is not in the ACTIVE state. [Read-only]
0 – De-assert ac97 software reset asynchronous to
BIT_CLK
1 – Assert ac97software reset asynchronous to
BIT_CLK. Registers in BIT_CLK domain will be reset.
0 – De-assert AC link’s SYNC asynchronous to
BIT_CLK
1 – Assert AC link’s SYNC asynchronous to BIT_CLK
1 – De-assert AC link’s RESET# asynchronous to
BIT_CLK
0 – Assert AC link’s RESET# asynchronous to
BIT_CLK

AC ’97 Controller Functional Descriptions
Proprietary

Page 220

Modem Command - RW - 32 bits - [MEM_Reg: 08h]
Field Name
Bits
Default
Description
Modem Command Register: Controls the operation of Audio Controller. Value of "1" in bit position enables
corresponding function. Value of "0" disables it.

Phy Status and Address - RW - 32 bits - [MEM_Reg: 0Ch]
Field Name
Codec ID

Bits
1:0

Default
00b

Read/Write request

2

0b

7:3
8

0b
0b

Reserved
Phy out address enable

Description
0 – Master AC97
st
1 – 1 slave AC97
2 – 2nd slave AC97
3 – Reserved
1 – Read request.
0 – Write request

1 - Enable sending out of Physical address in next
frame
0 - Physical out address have been sent out; open to
get new value.
When the bit is 0, writing 1 to it makes it 1. Once it is 1,
writing to it is ignored. It will automatically return to 0
when physical address is sent out.
Phy out address
15:9
0b
Physical out address (wont be able to write new
address until old one is send out - until Physical out
address enable is '1') (for address write bit [8] is
asserted until data send out)
Phy out Data
31:16
0000h
Physical register out data (for write). When Physical
out address enabled and Write request is set (Physical
status [2]=0) then the value in this register will be send
out in slot 2
Phy Status/ Phy out address and data Register: Controls the Physical status of the AC'97 Controller and also has
the Physical out address and data to be sent with the next frame.

Input Phy Address and Data - R - 32 bits - [MEM_Reg: 10h]
Field Name
Reserved
Phy_in_read_flag

Bits
7:0
8

in_Phy_addr
15:9
Input Phy data
31:16
Input Phy address and data Register:

Default
00h
0b

00h
0000h

Description
It is cleared whenever reg0x0Ch[8]=1 and
reg0x0C[2]=1.
It is set when input physical data (due to a physical
read) arrives.
Physical address from AC'97 Codec
Input Physical data from AC'97 Codec.

Input Ch2 GPIO Data - R - 32 bits - [MEM_Reg: 14h]
Field Name
SLOTREQ

Bits
9:0

Default
000h

Reserved
SLOTREQ Register:

31:10

000000h

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

Description
The read only bits [0:9] of this field respectively come
from slot1[11:2] of AC link’s SDATA_IN0/1/2 OR’ed
together (even if slot 1 may not be valid as indicated
by slot 0[14]). These bits [0:9] respectively decide
whether slot 3~12 of SDATA_OUT is allowed or not.
0 – Slot is allowed
1 – Slot is allowed
Even if a bit in this field being 0 indicates a slot is
allowed, the controller further looks at reg0x34[9:0] to
finally decide whether the slot is enabled.

AC ’97 Controller Functional Descriptions
Proprietary

Page 221

Counter - R - 32 bits - [MEM_Reg: 18h]
Field Name
Slot Counter

Bits
3:0

Default
0h

Reserved
Bit Clock Counter

7:4
12:8

0h
00h

Reserved
Counter Register:

31:13

00000h

Description
The current slot number (0-12) which the AC97
controller handling.
For the tag slot, the value changes from 0 to F. For
other slots the value changes from 0 to 20.

Input FIFO Threshold - RW - 32 bits - [MEM_Reg: 1Ch]
Field Name
Input Threshold

Bits
4:0

Default
00h

Description
Threshold value for the Input Channel's FIFOs. (FIFO
size 16x20)

Reserved
31:5
0000000h
Input FIFO Threshold Register: Input DMA's FIFOs threshold value.

Input DMA Link List Pointer - RW - 32 bits - [MEM_Reg: 20h]
Field Name
in DMA LL ptr en
in DMA LL Pointer

Bits
0
31:1

Default
0b
0000_0000h

Description
Input DMA Link List Pointer enable
Pointer to the start of the Link List - to the first DT.

Input DMA Link List Pointer Register:

Input DMA DT Start - R - 32 bits - [MEM_Reg: 24h]
Field Name
in DMA DT start

Bits
31:0

Default
0000_0000h

Description
Pointer to the start of data associated with current DT
for the input DMA

Input DMA Discrete Table (DT) Start Pointer Register.

Input DMA DT Next - R - 32 bits - [MEM_Reg: 28h]
Field Name
Bits
in DMA DT next
31:0
Input DMA DT Next Pointer Register.

Default
0000_0000h

Description
Pointer to the next DT for the input DMA

Input DMA DT Current - R - 32 bits - [MEM_Reg: 2Ch]
Field Name
in DMA DT current

Bits
31:0

Default
0000_0000h

Description
Pointer to the currently accessing memory address for
the input DMA

Input DMA DT Current Pointer Register.

Input DMA DT Size & FIFO Info - R - 32 bits - [MEM_Reg: 30h]
Field Name
Bits
Default
Description
in DMA DT size
15:0
0000h
Data size of DT for input DMA.
in FIFO Used
20:16
00h
Number of filled FIFO entries of input DMA.
in FIFO Free
25:21
06h
Number of free FIFO entries of input DMA.
in DMA State
28:26
0h
Current state of the in DMA
Reserved
31:20
000h
Input DMA DT Size & FIFO info Register: Size of data associated with DT for input channels and number of FIFO
entries free and used for the input channels.

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

AC ’97 Controller Functional Descriptions
Proprietary

Page 222

Output DMA 1/2/3 Threshold – RW - 32 bits - [MEM_Reg: 34h]
Field Name
out DMA #1 State

Bits
2:0

Default
0h

out DMA #2 State

5:3

0h

out DMA #3 State

8:6

0h

Reserved
Output Threshold 1

15:9
20:16

00h
00h

Output Threshold 2

25:21

00h

Output Threshold 3

30:26

00h

Description
Current state of out DMA # 1 (Modem 1 for slot 5)
[Read-only]
Current state of out DMA # 2 (Modem 2 for slot 10)
[Read-only]
Current state of out DMA # 3 (Handset for slot 11)
[Read-only]
Threshold value for the Out DMA 1 FIFO. (FIFO size
4x20)
Threshold value for the Out DMA 2 FIFO. (FIFO size
4x20)
Threshold value for the Out DMA 3 FIFO. (FIFO size
4x20)

Reserved
31
0b
Output DMA1/2/3 Threshold Register: Configure Slot responsibility for Output channels 0 and also threshold values
of all out DMA FIFO's.

Output DMA1 Link List Pointer – RW - 32 bits - [MEM_Reg: 38h]
Field Name
Bits
out DMA1 LL ptr en.
0
out DMA1 LL ptr
31:1
Output DMA1 Link List Pointer Register:

Default
0b
0000_0000h

Description
Output DMA1 Link List Pointer enable
Pointer to the start of the Link List - to the first DT.

Output DMA2 Link List Pointer – RW - 32 bits - [MEM_Reg: 3Ch]
Field Name
Bits
out DMA2 LL ptr en.
0
out DMA2 LL ptr
31:1
Output DMA2 Link List Pointer Register:

Default
0b
0000_0000h

Description
Output DMA2 Link List Pointer enable
Pointer to the start of the Link List - to the first DT.

Output DMA3 Link List Pointer – RW - 32 bits - [MEM_Reg: 40h]
Field Name
Bits
out DMA3 LL ptr en.
0
out DMA3 LL ptr
31:1
Output DMA3 Link List Pointer Register:

Default
0b
0000_0000h

Description
Output DMA3 Link List Pointer enable
Pointer to the start of the Link List - to the first DT.

Output DMA1 DT Start – R - 32 bits - [MEM_Reg: 44h]
Field Name
out DMA1 DT start

Bits
31:0

Default
0000_0000h

Description
Pointer to the start of data associated with current DT
for the Output DMA1.

Output DMA1 Discrete Table (DT) Start Pointer Register:

Output DMA1 DT Next– R - 32 bits - [MEM_Reg: 48h]
Field Name
Bits
out DMA1 DT next
31:0
Output DMA1 DT Next Pointer Register:

Default
0000_0000h

Description
Pointer to the next DT for the Output DMA1

Output DMA1 DT Current– R - 32 bits - [MEM_Reg: 4Ch]
Field Name
out DMA1 DT current

Bits
31:0

Default
0000_0000h

Description
Pointer to the currently accessing memory address for
the Output DMA1.

Output DMA1 DT Current Pointer Register:

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

AC ’97 Controller Functional Descriptions
Proprietary

Page 223

Output DMA2 DT Start– R - 32 bits - [MEM_Reg: 50h]
Field Name
out DMA2 DT start

Bits
31:0

Default
0000_0000h

Description
Pointer to the start of data associated with current DT
for the Output DMA2.

Output DMA2 Discrete Table (DT) Start Pointer Register:

Output DMA2 DT Next– R - 32 bits - [MEM_Reg: 54h]
Field Name
Bits
out DMA2 DT next
31:0
Output DMA2 DT Next Pointer Register:

Default
0000_0000h

Description
Pointer to the next DT for the Output DMA2

Output DMA2 DT Current– R - 32 bits - [MEM_Reg: 58h]
Field Name
out DMA2 DT current

Bits
31:0

Default
0000_0000h

Description
Pointer to the currently accessing memory address for
the Output DMA2.

Output DMA2 DT Current Pointer Register:

Output DMA3 DT Start– R - 32 bits - [MEM_Reg: 5Ch]
Field Name
out DMA3 DT start

Bits
31:0

Default
0000_0000h

Description
Pointer to the start of data associated with current DT
for the Output DMA3.

Output DMA3 Discrete Table (DT) Start Pointer Register:

Output DMA3 DT Next– R - 32 bits - [MEM_Reg: 60h]
Field Name
Bits
out DMA3 DT next
31:0
Output DMA3 DT Next Pointer Register:

Default
0000_0000h

Description
Pointer to the next DT for the Output DMA3

Output DMA3 DT Current– R - 32 bits - [MEM_Reg: 64h]
Field Name
out DMA3 DT current

Bits
31:0

Default
0000_0000h

Description
Pointer to the currently accessing memory address for
the Output DMA3.

Output DMA3 DT Current Pointer Register:

Output DMA 1/2 DT Size– R - 32 bits - [MEM_Reg: 68h]
Field Name
Bits
out DMA 1 DT size
15:0
out DMA 2 DT size
31:16
Output DMA 1/2 DT Size Register:

Default
0000h
0000h

Description
Data size of DT for Output DMA # 1.
Data size of DT for Output DMA # 2.

Output DMA 3 DT Size– R - 32 bits - [MEM_Reg: 6Ch]
Field Name
Bits
out DMA 1 DT size
15:0
Reserved
31:16
Output DMA 3 DT Size Register:

Default
0000h
0000h

Description
Data size of DT for Output DMA # 1.

Output DMA 1/2/3 FIFO Info– R - 32 bits - [MEM_Reg: 70h]
Field Name
out DMA1 Used

Bits
4:0

Default
00h

out DMA2 Used

9:5

00h

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

Description
Number of filled FIFO entries of Output DMA1 (FIFO
size 6).
Number of filled FIFO entries of Output DAM2 (FIFO
size 6).

AC ’97 Controller Functional Descriptions
Proprietary

Page 224

Output DMA 1/2/3 FIFO Info– R - 32 bits - [MEM_Reg: 70h]
Field Name
out DMA3 Used

Bits
14:10

Default
00h

Reserved
out DMA1 Free

15
20:16

0b
00h

out DMA2 Free

25:21

00h

out DMA3 Free

30:26

00h

Reserved
31
Output DMA1/2/3 FIFO Used/Free Register:

Description
Number of filled FIFO entries of Output DMA3 (FIFO
size 6).
Number of free FIFO entries of Output DMA1 (FIFO
size 6).
Number of free FIFO entries of Output DMA2 (FIFO
size 6).
Number of free FIFO entries of Output DMA3 (FIFO
size 6).

0b

GPIO Out Data– RW - 32 bits - [MEM_Reg: 74h]
Field Name
Gpio Out Data en

Bits
0

Gpio Out Data
20:1
Reserved
31:21
Gpio Out Data Register: Data to the modem.

Default
0b

000h
000h

Description
Enables the sending of GPIO data on the next frame’s
slot 12. Data comes from bit[20:1] of this register. This
bit has higher priority than reg0x08[22]. That means if
both this bit and reg0x08[22] are set, then GPIO data
comes from bit[20:1] of this register, not from DMA3.
Writing 1 to this bit enables this data to be sent out.
After some time, when data is sent out, this bit
automatically goes back to 0. Bit[20:1] can be written
only when this bit is 0.
Gpio Out Data

Input GPIO Data– R - 32 bits - [MEM_Reg: 78h]
Field Name
Input Gpio data
Input Gpio Codec ID

Bits
19:0
22:20

Default
00000h
0h

Description
Input Gpio(modem) data from AC'97 Codecs (ORed)
ID of Codec who send the Gpio data (001 - Master,
010- Slave1, 100 - Slave2)

Reserved
31:23
00h
Input Gpio data Register: Data from the modem.

Modem Mirror– RW - 32 bits - [MEM_Reg: 7Ch]
Field Name
Modem mirror
Modem mirror Register.

Bits
31:0

Default
0000_0000h

Description
Data written by modem for communication with Audio.

Audio Mirror– R - 32 bits - [MEM_Reg: 80h]
Field Name
Audio mirror
Audio mirror Register.

Bits
31:0

Default
0000_0000h

Description
Data written by audio for communication with modem.

Modem Fifo Flush– W - 32 bits - [MEM_Reg: 88h]
Field Name
Output DMA1 Fifo Flush

Bits
0

Default
0b

Output DMA2 Fifo Flush

1

0b

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

Description
Writing to this bit flushes modem output DMA1 fifo,
i.e., the indexes and Used/Free counts are reset.
Reading this bit returns 0.
Writing to this bit flushes modem output DMA2 fifo,
i.e., the indexes and Used/Free counts are reset.
Reading this bit returns 0.

AC ’97 Controller Functional Descriptions
Proprietary

Page 225

Modem Fifo Flush– W - 32 bits - [MEM_Reg: 88h]
Field Name
Output DMA3 Fifo Flush
Input DMA Fifo Flush
Reserved
Modem Fifo Flush Register.

Bits
2

Default
0b

3

0b

31:4

0000000h

Description
Writing to this bit flushes modem output DMA3 fifo,
i.e., the indexes and Used/Free counts are reset.
Reading this bit returns 0.
Writing to this bit flushes modem input DMA fifo, i.e.,
the indexes and Used/Free counts are reset. Reading
this bit returns 0.

Modem Phy Semaphore Reg- RW - 8 bits - [MEM_Reg: A8h]
Field Name
Modem Phy
semaphore

Bits
0

Default
0b

Description
PHY is ready for Modem to access.
0 = PHY is not ready for Modem to access.
1 = PHY is ready for Modem to access.
Modem driver can only accesses PHY register when the read back
value of this bit is ‘1’ after write a ‘1’ to this bit. It is possible the read
back value is ‘0’ after write ‘1’ which mean PHY is not ready for
Modem to access. Since PHY can be accessed by both audio &
modem controllers, the bit is used by modem driver to establish
semaphore handshake with audio driver.
Driver is also responsible to clear the bit after its PHY read/write
access.
Note: The driver can check Mem_reg 0x10[8] which indicates a PHY
read access completion. For writing to PHY, the driver can clear the
semaphore bit after the write command.

Reserved

7:1

00h

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

AC ’97 Controller Functional Descriptions
Proprietary

Page 226

2.6

HD Audio Controllers Registers

Note: Some HD Audio 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 HD Audio functions and the associated registers.

2.6.1

HD Audio Controller PCI Configuration Space Registers (Device 20 Function 2)

The PCI Configuration Space Registers define the operation of the SB600’s HD Audio Controller. These
registers are accessible only when the HD Audio Controller detects a Configuration Read or Write operation,
with its IDSEL asserted.

Register Name
Device ID
Vendor ID
PCI Command
PCI Status
Revision ID
Programming Interface
Sub Class Code
Base Class Code
Cache Line Size
Latency Timer
Header Type
BIST
Lower Base Address Register
Upper Base Address Register
Subsystem Vendor ID
Subsystem ID
Capabilities Pointer
Interrupt Line
Interrupt Pin
Minimum Grant
Maximum Latency
Misc Control Register
Interrupt Pin Control Register
Power Management Capability ID
Power Management Capabilities
Power Management Control/Status
MSI Capability ID
MSI Message Control
MSI Message Lower Address
MSI Message Upper Address
MSI Message Data

Offset Address
00h
02h
04h
06h
08h
09h
0Ah
0Bh
0Ch
0Dh
0Eh
0Fh
10h
14h
2Ch
2Eh
34h
3Ch
3Dh
3Eh
3Fh
42h
44h
50h
52h
54h
60h
62h
64h
68h
6Ch

Vendor ID – R – 16 bits – [PCI_Reg: 00h]
Field Name

Vendor ID

Bits
15:0

Field Name
Device ID

Bits
15:0

Default
1002h

Description
Identifies the vendor as AMD.

Device ID – RW – 16 bits – [PCI_Reg: 02h]
Default
4383h

Description
Identifies this device as the HD Audio Controller.

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

HD Audio Controllers Registers
Proprietary

Page 227

PCI Command – RW – 16 bits – [PCI_Reg: 04h]
Field Name
Reserved
Memory Space Enable

Bits
0
1

Default
0b
0b

Bus Master Enable
Reserved
Interrupt Disable

2
9:3
10

0b
00h
0b

15:11

00h

Reserved

Description
Reserved.
Enables the HD Audio controller to respond to PCI memory
space access.
Enables the HD Audio controller’s bus mastering capability.
Reserved
Disables the device from asserting INTx#.
Note: This bit does not affect the generation of MSI.
Reserved

PCI Status – RW – 16 bits – [PCI_Reg: 06h]
Field Name
Reserved
Interrupt Status

Bits
2:0
3

Default
0h
0b

4

1b

Reserved
Received Master Abort

12:5
13

00h
0

Reserved

15:14

0h

Capabilities List

Description
Reserved
This bit is a “1” when INTx# is asserted.
Note: This bit is not set by MSI.
This bit is hardwired to “1” to indicate that the HD Audio
controller contains a capability pointer list. The first item at
offset 34h
Reserved
When set, this bit indicates that the HD Audio controller
terminated a PCI bus operation with a Master Abort.
Reserved

Revision ID – R – 8 bits – [PCI_Reg: 08h]
Field Name
Revision ID

Bits
7:0

Default
00h

Description
These bits are hardwired to “0” to indicate the revision level
of the chip design (for the SB600).

Programming Interface – R – 8 bits – [PCI_Reg: 09h]
Field Name
Programming Interface

Bits
7:0

Default
00h

Description
Programming Interface.

Sub Class Code – R – 8 bits – [PCI_Reg: 0Ah]
Field Name
Sub Class Code

Bits
7:0

Default
03h

Description
Sub Class Code. Indicates a HD Audio device in the
context of a multimedia device class.

Base Class Code – R – 8 bits – [PCI_Reg: 0Bh]
Field Name
Base Class Code

Bits
7:0

Default
04h

Description
Base Class Code. Indicates a multimedia device.

Cache Line Size – RW – 8bits – [PCI_Reg: 0Ch]
Field Name

Cache Line Size

Bits
7:0

Default
00h

Description
This field is implemented as a read/write field for legacy
compatibility purposes only and has no functional impact.

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

HD Audio Controllers Registers
Proprietary

Page 228

Latency Timer – R – 8 bits – [PCI_Reg: 0Dh]
Field Name
Latency Timer

Bits
7:0

Field Name
Header Type

Bits
7:0

Field Name

Bits
15:0

Default
00h

Description
Hardwired to “0”.

Header Type – R – 8 bits – [PCI_Reg: 0Eh]
Default
00h

Description
Hardwired to “0”.

BIST – R – 8 bits – [PCI_Reg: 0Fh]
BIST

Default
0000h

Description
Hardwired to “0”.

Lower Base Address Register – RW – 32 bits – [PCI_Reg: 10h]
Field Name
Space Type

Bits
0

Default
0b

Address Range

2:1

10b

3
13:4
31:14

0b
000h
00000h

Prefetchable
Reserved
Lower Base Address

Description
Hardwired to “0” to indicate this BAR is located in memory
space only.
Hardwired to 10b to indicate this BAR can be located
anywhere in 64-bit address space.
Hardwired to “0” to indicate this BAR is not prefetchable.
Hardwired to “0”.
Lower Base Address for the HD Audio controller’s memory
mapped configuration registers. 16K bytes are requested
by hardwiring bits[13:4] to 0.

Upper Base Address Register – RW – 32 bits – [PCI_Reg: 14h]
Field Name
Upper Base Address

Bits
31:0

Default
00000000
h

Description
Upper Base Address for the HD Audio controller’s memory
mapped configuration registers.

Subsystem Vendor ID – RW – 16 bits – [PCI_Reg: 2Ch]
Field Name
Subsystem Vendor ID

Bits
15:0

Default
0000h

Description
This register is implemented as write-once register. Any
subsequent writes have no effect.

Subsystem ID – RW – 16 bits – [PCI_Reg: 2Dh]
Field Name
Subsystem ID

Bits
15:0

Default
0000h

Description
This register is implemented as write-once register. Any
subsequent writes have no effect.

Capabilities Pointer – R – 8 bits – [PCI_Reg: 34h]
Field Name
Capabilities Pointer

Bits
7:0

Default
50h

Description
This register indicates the offset for the capability pointer

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

HD Audio Controllers Registers
Proprietary

Page 229

Interrupt Line – RW – 8 bits – [PCI_Reg: 3Ch]
Field Name

Bits
7:0

Interrupt Line

Default
00h

Description
This register is used to communicate to software the
interrupt line that the interrupt pin is connected to. It is not
used by the HD Audio controller.

Interrupt Pin – R – 8 bits – [PCI_Reg: 3Dh]
Interrupt Pin

3:0

1h

Reserved

7:4

0h

This register reflects the value programs into Interrupt
Control Pin register at offset 44h, bits[3:0]
Reserved

Minimum Grant – R – 8 bits – [PCI_Reg: 3Eh]
Field Name
Minimum Grant

Bits
7:0

Default
00h

Description
Hardwired to “0”.

Maximum Latency – R – 8 bits – [PCI_Reg: 3Fh]
Field Name
Maximum Latency

Bits
7:0

Default
00h

Description
Hardwired to “0”.

Misc Control Register – RW – 8 bits – [PCI_Reg: 42h]
Field Name

Bits
0

Default
0b

Disable Non-snoop
Override

1

0b

Enable Non-snoop
Request

2

0b

7:3

00h

Disable Non-noop

Reserved

Description
1: Non-snoop attribute is disabled on Buffer Descriptor and
Data Buffer DMA.
0: Set the Non-snoop attribute on Buffer Descriptor and
Data Buffer DMA when the Traffic Priority bit is set in the
Stream Descriptor.
1: Bit[0] of this register controls the Non-snoop attribute
0: override the bit[0] setting meaning always generate No
Snoop attribute on Buffer Descriptor and Data Buffer DMA
1: Enable Non-snoop request to ACPI
0: Disable Non-snoop request to ACPI
When enabled and the DMA cycle is Non-snoop, ACPI will
not generate a wake to CPU in C2 state.
Reserved

Interrupt Pin Control Register – RW – 8 bits – [PCI_Reg: 44h]
Field Name

Interrupt Pin Control

Bits
3:0

Default
1h

Reserved

7:4

0h

Description
Controls the value reports in Interrupt Pin Register at offset
0x3D.
Reserved

Power Management Capability ID – R – 16 bits – [PCI_Reg: 50h]
Field Name
Capability ID

Bits
7:0

Default
01h

Next Capability Pointer

15:8

60h

Description
Hardwired to 01h. Indicates PCI Power Management
Capability.
Hardwired to 60h.
Next capability is at offset 60h

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

HD Audio Controllers Registers
Proprietary

Page 230

Power Management Capabilities – R – 16 bits – [PCI_Reg: 52h]
Field Name
Version

Bits
2:0

Default
010b

PME Clock

3

0b

Reserved
Device Specific
Initialization
Aux Current

4
5

0b
0b

8:6

001b

9
10
15:11

0b
0b
11001b

D1 Support
D2 Support
PME Support

Description
Hardwired to 010b. Indicates this function complies with
Revision 1.1 of the PCI Power Management Interface
Specification
Hardwired to “0”. Indicates that no PCI clock is required for
the function to generate PME#.
Reserved
Hardwired to “0”. Indicates that no device specific
initialization is required.
Hardwired to 001b. Indicates 55mA maximum suspend well
current is required in the D3cold state.
Hardwired to “0”. Indicates D1 state is not supported.
Hardwired to “0”. Indicates D2 state is not supported.
Hardwired to 11001b. Indicates PME# can be generated
from D0 and D3 states.

Power Management Control/Status – RW – 32 bits – [PCI_Reg: 54h]
Field Name
Power State

Bits
1:0

Default
0h

Reserved
PME Enable

7:2
8

00h
0b

Reserved
PME Status

14:9
15

00h
0b

Reserved

31:16

0000h

Description
This field is used both to determine the current power state
and to set a new power state of the HD Audio controller.
Reserved
Enables the function to assert PME#.
This bit is in resume well and only cleared on power-on
reset.
Reserved
This bit set when HD Audio controller asserts the PME#
signal, it is independent of the PME Enable bit.
Writing a “1” clears this bit.
This bit is in resume well and only cleared on power-on
reset.
Reserved

MSI Capability ID – R – 16 bits – [PCI_Reg: 60h]
Field Name
Capability ID
Next Capability Pointer

Bits
7:0
15:8

Default
05h
00h

Description
Hardwired to 05h. Indicates MSI Capability.
Hardwired to “0”. Indicates this is the last capability
structure in the list.

MSI Message Control – RW - 16 bits – [PCI_Reg: 62h]
Field Name
MSI Enable
Multiple Message Capable
Multiple Message Enable
64 Bit Address Capability

Bits
0
3:1
6:4
7

Default
0b
0h
0h
1b

Reserved

15:8

00h

Description
Enables MSI if set to “1”.
Hardwired to “0”. Indicates support for one message only.
Hardwired to “0”. Indicates support for one message only.
Hardwired to “1”. Indicates the ability to generate 64-bit
message address.
Reserved

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

HD Audio Controllers Registers
Proprietary

Page 231

MSI Message Lower Address – RW - 32 bits – [PCI_Reg: 64h]
Field Name
MSI Message Lower
Address
Reserved

Bits
31:2
01:0

Default
00000000
h
0h

Description
Lower Address used for MSI Message.
Reserved

MSI Message Upper Address – RW - 32 bits – [PCI_Reg: 68h]
Field Name
MSI Message Upper
Address

Bits
31:0

Default
00000000
h

Description
Upper Address used for MSI Message.

MSI Message Data – RW - 16 bits – [PCI_Reg: 6Ch]
Field Name
MSI Message Data

2.6.2

Bits
15:0

Default
0000h

Description
Data used for MSI Message.

HD Audio Controller Memory Mapped Registers

The base memory location for these memory mapped registers is specified in the PCI Configuration Upper
and Lower Base Address Registers. The individual registers are then accessible at Base + offset as
indicated in the following table. These registers are accessed in byte, word, or dword quantities.

Register Name
Global Capabilities
Minor Version
Major Version
Output Payload Capability
Input Payload Capability
Global Control
Wake Enable
State Change Status
Global Status
Output Stream Payload Capability
Input Stream Payload Capability
Interrupt Control
Interrupt Status
Wall Clock Counter
Stream Synchronization
CORB Lower Base Address
CORB Upper Base Address
CORB Write Pointer
CORB Read Pointer
CORB Control
CORB Status
CORB SIze
RIRB Lower Base Address
RIRB Upper Address
RIRB Write Pointer
RIRB Response Interrupt Control
RIRB Control
RIRB Status
RIRB Size
Immediate Command Output Interface

Address Offset
00h
02h
03h
04h
06h
08h
0Ch
0Eh
10h
18h
1Ah
20h
24h
30h
38h
40h
44h
48h
4Ah
4Ch
4Dh
4Eh
50h
54h
58h
5Ah
5Ch
5Dh
5Eh
60h

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

HD Audio Controllers Registers
Proprietary

Page 232

Register Name
Immediate Command Input Interface
Immediate Command Input Interface
DMA Position Buffer Lower Base Address
DMA Position Buffer Upper Base Address
Control
Status
Link Position in Current Buffer
Cyclic Buffer Length
Last Valid Index
FIFO Size
Stream Format
Buffer Descriptor Lower Base Address
Buffer Descriptor Upper Base Address
Control
Status
Link Position in Current Buffer
Cyclic Buffer Length
Last Valid Index
FIFO Size
Stream Format
Buffer Descriptor Lower Base Address
Buffer Descriptor Upper Base Address
Control
Status
Link Position in Current Buffer
Cyclic Buffer Length
Last Valid Index
FIFO Size
Stream Format
Buffer Descriptor Lower Base Address
Buffer Descriptor Upper Base Address
Control
Status
Link Position in Current Buffer
Cyclic Buffer Length
Last Valid Index
FIFO Size
Stream Format
Buffer Descriptor Lower Base Address
Buffer Descriptor Upper Base Address
Control
Status
Link Position in Current Buffer
Cyclic Buffer Length
Last Valid Index
FIFO Size
Stream Format
Buffer Descriptor Lower Base Address
Buffer Descriptor Upper Base Address
Control
Status
Link Position in Current Buffer
Cyclic Buffer Length
Last Valid Index
FIFO Size
Stream Format
Buffer Descriptor Lower Base Address
Buffer Descriptor Upper Base Address

Address Offset
64h
68h
70h
74h
80h
83h
84h
88h
8Ch
90h
92h
98h
9Ch
A0h
A3h
A4h
A8h
ACh
B0h
B2h
B8h
BCh
C0h
C3h
C4h
C8h
CCh
D0h
D2h
D8h
DCh
E0h
E3h
E4h
E8h
ECh
F0h
F2h
F8h
FCh
100h
103h
104h
108h
10Ch
110h
112h
118h
11Ch
120h
123h
124h
128h
12Ch
130h
132h
138h
13Ch

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

HD Audio Controllers Registers
Proprietary

Page 233

Register Name
Control
Status
Link Position in Current Buffer
Cyclic Buffer Length
Last Valid Index
FIFO Size
Stream Format
Buffer Descriptor Lower Base Address
Buffer Descriptor Upper Base Address
Control
Status
Link Position in Current Buffer
Cyclic Buffer Length
Last Valid Index
FIFO Size
Stream Format
Buffer Descriptor Lower Base Address
Buffer Descriptor Upper Base Address
Wall Clock Counter Alias
Input Stream Descriptor 0 - Link Position in Current Buffer Alias
Input Stream Descriptor 1 - Link Position in Current Buffer Alias
Input Stream Descriptor 2 - Link Position in Current Buffer Alias
Input Stream Descriptor 3 - Link Position in Current Buffer Alias
Output Stream Descriptor 0 - Link Position in Current Buffer Alias
Output Stream Descriptor 1 - Link Position in Current Buffer Alias
Output Stream Descriptor 2 - Link Position in Current Buffer Alias
Output Stream Descriptor 3 - Link Position in Current Buffer Alias

Address Offset
140h
143h
144h
148h
14Ch
150h
152h
158h
15Ch
160h
163h
164h
168h
16Ch
170h
172h
178h
17Ch
2030h
2084h
20A4h
20C4h
20E4h
2104h
2124h
2144h
2164h

Global Capabilities – R – 16 bits - [Mem_Reg: Base + 00h]
Field Name
64 Bit Address Supported

Bits
0

Default
1b

Description
Hardwired to “1”. Indicates that 64-bit addressing capability
is supported by the HD Audio controller for BDL, Data
Buffer, Command Buffer, and Response Buffer addresses.
Hardwired to “0”. Indicates that one SDO line is supported.

Number of Serial Data
Output Signals
Number of Bidirectional
Streams Supported
Number of Input Streams
Supported
Number of Output
Streams Supported

2:1

0h

7:3

0h

11:8

4h

Hardwired to “0”. Indicates that bidirectional stream is not
supported.
4 Input Streams are supported.

15:12

4h

4 Output Streams are supported.

Minor Version – R – 8 bits - [Mem_Reg: Base + 02h]
Field Name
Minor Version

Bits
7:0

Default
00h

Description
Hardwired to “0”.

Major Version – R – 8 bits - [Mem_Reg: Base + 03h]
Field Name
Major Version

Bits
7:0

Default
01h

Description
Hardwired to 01h.

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

HD Audio Controllers Registers
Proprietary

Page 234

Output Payload Capability – R – 16 bits - [Mem_Reg: Base + 04h]
Field Name
Output Payload Capability

Bits
15:0

Default
003Ch

Description
Hardwired to 3Ch. Indicates the total output payload on the
link. This does not include bandwidth used for command
and control. This measurement is in 16-bit word quantities
per 48kHz frame. The default link clock speed of 24MHz
(double data rate) provides 1000 bits per frame minus 40
bits for command and control, leaving 960 bits (60 words)
for data payload.

Input Payload Capability – R – 16 bits - [Mem_Reg: Base + 06h]
Field Name
Input Payload Capability

Bits
15:0

Default
001Dh

Description
Hardwired to 1Dh. Indicates the total input payload on the
link. This does not include bandwidth used for response.
This measurement is in 16-bit word quantities per 48kHz
frame. The default link clock speed of 24MHz provides 500
bits per frame minus 36 bits for response, leaving 464 bits
(29 words) for data payload.

Global Control – RW – 32 bits - [Mem_Reg: Base + 08h]
Field Name
Controller Reset

Flush Control
Reserved
Accepted Unsolicited
Response Enable
Reserved

Bits
0

Default
0b

1

0b

7:2

00h

8

0b

31:9

000000h

Description
Writing a 0 to this bit causes the controller to transition to
the Reset state. After the hardware has completed
sequencing into the Reset state, it will report a 0 in this bit.
Software must read a 0 from this bit to verify that the
controller is in reset.
Writing a “1” to this bit causes the controller to exit the
Reset state and deassert the link RESET# signals.
Software is responsible for setting/clearing this bit such that
the minimum link RESET# signal assertion pulse width
specification is met.
When the controller hardware is ready to begin operation, it
will report a “1” in this bit. Software must read a 1 from this
bit before accessing any controller registers.
Writing a 1 to this bit initiates a flush. The flush is
completed when Flush Status is set.
Reserved. Software must do a read-modify-write to
preserve the value of these bits.
If “1”, Unsolicited Response from the codecs are accepted
by the controller and placed into the Response Input Ring
Buffer. If “0”, Unsolicited Responses are accepted and
dropped.
Reserved. Software must do a read-modify-write to
preserve the value of these bits.

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

HD Audio Controllers Registers
Proprietary

Page 235

Wake Enable – RW – 16 bits - [Mem_Reg: Base + 0Ch]
Field Name
Wake Enable

Bits
3:0

Default
0h

Reserved

15:4

000h

Description
This field controls which SDIN signals may generate a
wake event in response to a codec State Change event.
Bit[0] corresponds to Codec 0 – SDIN[0]
Bit[1] corresponds to Codec 1 – SDIN[1]
Bit[2] corresponds to Codec 2 – SDIN[2]
Bit[3] corresponds to Codec 3 – SDIN[3]
These bits are only cleared by a power-on reset.
Reserved. Software must do a read-modify-write to
preserve the value of these bits.

State Change Status – RW – 16 bits - [Mem_Reg: Base + 0Eh]
Field Name
State Change Status
Flags

Bits
3:0

Default
0h

Reserved (R/W)

15:4

000h

Description
This field indicates which SDIN signal(s) received a State
Change event.
Bit[0] corresponds to Codec 0 – SDIN[0]
Bit[1] corresponds to Codec 1 – SDIN[1]
Bit[2] corresponds to Codec 2 – SDIN[2]
Bit[3] corresponds to Codec 3 – SDIN[3]
These bits are cleared by writing 1’s to them.
These bits are only cleared by a power-on reset.
Reserved. Software must do a read-modify-write to
preserve the value of these bits.

Global Status – RW – 16 bits - [Mem_Reg: Base + 10h]
Field Name
Reserved
Flush Status

Bits
0
1

Default
0b
0b

Reserved

15:2

0000h

Description
Reserved. Software must use 0 for write to this bit.
This bit is set to a “1” by hardware to indicate that the flush
cycle initiated by setting the Flush Control has completed.
Software must write a “1” to clear this bit before the next
time Flush Control is set.
Reserved. Software must use 0’s for write to these bits.

Output Stream Payload Capability – R – 16 bits - [Mem_Reg: Base + 18h]
Field Name
Output Stream Payload
Capability

Bits
15:0

Default
003Ch

Description
This field indicates the maximum number of words per
frame for any single output stream. This measurement is in
16-bit word quantities per 48 kHz frame. The value must
not be greater than the Output Payload Capability register
value. Software must ensure that a format which would
cause more words per frame than indicated is not
programmed into the Output Stream Descriptor register.
00h: No Limit ( Stream size is limited only by Output
Payload Capability register)
01h: 1 word payload
:
:
FFh: 255 word payload

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

HD Audio Controllers Registers
Proprietary

Page 236

Input Stream Payload Capability – R – 16 bits - [Mem_Reg: Base + 1Ah]
Field Name
Input Stream Payload
Capability

Bits
15:0

Default
0000h

Description
This field indicates the maximum number of words per
frame for any single input stream. This measurement is in
16-bit word quantities per 48 kHz frame. The value must
not be greater than the Input Payload Capability register
value. Software must ensure that a format which would
cause more words per frame than indicated is not
programmed into the Input Stream Descriptor register.
00h: No Limit ( Stream size is limited only by Input Payload
Capability register)
01h: 1 word payload
:
:
FFh: 255 word payload

Interrupt Control – RW – 32 bits - [Mem_Reg: Base + 20h]
Field Name
Stream Interrupt Enable

Bits
7:0

Default
00h

Reserved
Controller Interrupt Enable

29:8
30

000000h
0b

31

0b

Global Interrupt Enable

Description
When set to “1”, the individual streams are enabled to
generate an interrupt when the corresponding stream
status bits are set.
A stream interrupt is caused as a result of a buffer with IOC
in the BDL entry being completed or as result of FIFO
error. Control over the generation of each of these sources
is in the associated Stream Descriptor.
Bit[0]: Input Stream 0
Bit[1]: Input Stream 1
Bit[2]: Input Stream 2
Bit[3]: Input Stream 3
Bit[4]: Output Stream 0
Bit[5]: Output Stream 1
Bit[6]: Output Stream 2
Bit[7]: Output Stream 3
Reserved
Enables the general interrupt for controller functions. When
set to “1’, the controller generates an interrupt when the
corresponding status bit gets set due to a Response
Interrupt, a Response Buffer Overrun, and Wake events.
Enables device interrupt generation. When set to “1”, the
HD Audio device is enabled to generate an interrupt. This
control is in addition to any bits in the bus specific address
space such as the Interrupt Enable bit in the PCI
Configuration Space.

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

HD Audio Controllers Registers
Proprietary

Page 237

Interrupt Status – RW – 32 bits - [Mem_Reg: Base + 24h]
Field Name
Stream Interrupt Status

Bits
7:0

Default
00h

Reserved
Controller Interrupt Status

29:8
30

000000h
0b

31

0b

Global Interrupt Status

Description
A “1” indicates that an interrupt condition occurred on the
corresponding stream. These bits are cleared by writing 1’s
to them.
Note that these bits are set regardless of the state of the
corresponding Interrupt Enable bits.
Reserved
A “1” indicates that an interrupt condition occurred. This bit
is cleared by writing a “1” to it.
Note that this bit is set regardless of the state of the
corresponding Interrupt Enable bit.
This bit is an “OR” of all the interrupt status bits in this
register.

Wall Clock Counter – R – 32 bits - [Mem_Reg: Base + 30h]
Field Name
Wall Clock Counter

Bits
31:0

Default
00000000
h

Description
32 bit counter that Is incremented at the link bitclock rate
and rolls over from FFFF_FFFFh to 0000_0000h. This
counter will roll over to 0 with period of approximately 179
seconds with the nominal 24 MHz bitclock rate.

Stream Synchronization – RW – 32 bits – [Mem_Reg: Base + 38h]
Field Name
Stream Synchronization

Bits
7:0

Default
00h

Reserved

31:8

000000h

Description
When these bits are set, they block data from being sent
on or received from the link. Each bit controls the
associated Stream Descriptor.
To synchronously start a set of DMA engines, the bits in
this register are set to a “1”. The RUN bits for the
associated Stream Descriptors can be set to a “1” to start
the DMA engines. When all streams are ready, the
associated Stream Synchronization bits can all be set to 0
at the same time, and transmission or reception from the
link will begin together at the start of the next full link frame.
To synchronously stop streams, these bits are set, and the
RUN bits in the Stream Descriptors are cleared by
software.
Reserved. Software must do a read-modify-write to
preserve the value of these bits.

CORB Lower Base Address – RW – 32 bits – [Mem_Reg: Base + 40h]
Field Name
CORB Lower Base
Address Unimplemented
Bits
CORB Lower Base
Address

Bits
6:0

Default
00h

Description
Hardwired to 0. This forces 128-byte buffer alignment for
cache line fetch optimizations.

31:7

0000000h

Upper 25 bits of the 32 bits Lower Base address of the
Command Output Ring Buffer, allowing the CORB Base
Address to be assigned on any 1 KB boundary. This
register must not be written when the DMA engine is
running or the DMA transfer may be corrupted.

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

HD Audio Controllers Registers
Proprietary

Page 238

CORB Upper Base Address – RW – 32 bits – [Mem_Reg: Base + 44h]
Field Name
CORB Upper Base
Address

Bits
31:0

Default
00000000
h

Description
Upper 32 bits address of the CORB. This register must not
be written when the DMA engine is running or the DMA
transfer may be corrupted.

CORB Write Pointer – RW – 16 bits – [Mem_Reg: Base + 48h]
Field Name
CORB Write Pointer

Bits
7:0

Default
00h

Reserved

15:8

00h

Description
Software writes the last valid CORB entry offset into this
field in dword granularity. The DMA engine fetches
commands from the CORB until the Read Pointer matches
the Write Pointer. This supports up to 256 CORB entries.
This field may not be written while the DMA engine is
running.
Reserved. Software must do a read-modify-write to
preserve the value of these bits.

CORB Read Pointer – RW – 16 bits – [Mem_Reg: Base + 4Ah]
Field Name
CORB Read Pointer

Bits
7:0

Default
00h

Reserved

14:8

00h

15

0b

CORB Read Pointer
Reset

Description
Software reads this field to determine how many
commands it can write to the CORB without over-running.
The value read indicates the CORB Read Pointer offset in
dword granularity. The offset entry read from this field has
been successfully fetched by the DMA controller and may
be over-written by software. This field may be read while
the DMA engine is running.
Reserved. Software must do a read-modify-write to
preserve the value of these bits.
Software writes a 1 to this bit to reset the CORB Read
Pointer to 0 and clear any residual prefetched commands
in the CORB hardware buffer within the controller. The
hardware will physically update this bit to 1 when the
CORB pointer reset is complete. Software must read a 1 to
verify that the reset completed correctly. Software must
clear this bit back to 0, by writing a 0, and then read back
the 0 to verify that the clear completed correctly. The
CORB DMA engine must be stopped prior to resetting the
Read Pointer or else DMA transfer may be corrupted.

CORB Control – RW – 8 bits – [Mem_Reg: Base + 4Ch]
Field Name
CORB Memory Error
Interrupt Enable
Enable CORB DMA
Engine

Bits
0

Default
0b

1

0b

Reserved

7:2

00h

Description
If this bit is set, the controller will generate an interrupt if
the Memory Error Interrupt bit is set.
0: DMA Stop
1: DMA Run
After software writes a “0” to this bit, the hardware may not
stop immediately. The hardware will physically update the
bit to “0” when the DMA engine is truly stopped. Software
must read a “0” from this bit to verify that the DMA engine
is truly stopped.
Reserved. Software must do a read-modify-write to
preserve the value of these bits.

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

HD Audio Controllers Registers
Proprietary

Page 239

CORB Status – RW – 8 bits – [Mem_Reg: Base + 4Dh]
Field Name
CORB Memory error
Indication

Bits
0

Default
0b

Reserved

7:2

00h

Description
If this status bit is set, the controller has detected an error
in the pathway between the controller and memory. Writing
a “1” to this bit will clear the bit, but a CRST must be
performed before operation continues/
Reserved. Software must use 0’s for write to these bits.

CORB Size – RW – 8 bits – [Mem_Reg: Base + 4Eh]
Field Name
CORB Size

Bits
1:0

Default
10b

Reserved

3:2

0h

CORB Size Capability

7:4

0100b

Description
These bits have no functional impact to the hardware.
This HD Audio controller only supports 256 entries.
Reserved. Software must do a read-modify-write to
preserve the value of these bits.
Hardwired to 0100b indicating this controller only supports
a CORB size of 256 entries.

RIRB Lower Base Address – RW – 32 bits – [Mem_Reg: Base + 50h]
Field Name
RIRB Lower Base
Address Unimplemented
Bits
RIRB Lower Base
Address

Bits
6:0

Default
00h

31:7

0000000h

Description
Hardwired to 0. This forces 128-byte buffer alignment for
cache line fetch optimizations.
Upper 25 bits of the 32 bits Lower Base Address of the
Response Input Ring Buffer, allowing the RIRB Base
Address to be assigned on any 2 KB boundary. This
register must not be written when the DMA engine is
running or the DMA transfer may be corrupted.

RIRB Upper Address – RW – 32 bits – [Mem_Reg: Base + 54h]
Field Name
RIRB Upper Base
Address

Bits
31:0

Default
00000000
h

Description
Upper 32 bits address of the RIRB. This register must not
be written when the DMA engine is running or the DMA
transfer may be corrupted.

RIRB Write Pointer – RW – 16 bits – [Mem_Reg: Base + 58h]
Field Name
RIRB Write Pointer

Bits
7:0

Default
00h

Reserved

14:8

00h

15

0b

RIRB Write Pointer Reset

Description
This field indicates the last valid RIRB entry written by the
DMA controller. Software reads this field to determine how
many responses it can read from the RIRB. The value read
indicates the RIRB Write Pointer offset in two dwords since
each RIRB entry is two dwords. This field may be read
while the DMA engine is running.
Reserved. Software must do a read-modify-write to
preserve the value of these bits.
Software writes a “1” to this bit to reset the RIRB Write
Pointer to 0’s. The DMA engine must be stopped prior to
resetting the Write Pointer or else DMA transfer may be
corrupted. This bit will always be read as 0.

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

HD Audio Controllers Registers
Proprietary

Page 240

RIRB Response Interrupt Count – RW – 16 bits – [Mem_Reg: Base + 5Ah]
Field Name
N Response Interrupt
Count

Bits
7:0

Default
00h

Reserved

15:8

00h

Description
01h = 1 Response sent to RIRB
:
FFh = 255 Responses sent to RIRB
00h = 256 Responses sent to RIRB
The DMA engine should be stopped when changing this
field or else an interrupt may be lost.
Note that each Response occupies two dwords in the
RIRB.
If more than one codec responds in one frame, then the
count is increased by the number of responses received in
the frame.
Reserved. Software must do a read-modify-write to
preserve the value of these bits.

RIRB Control – RW – 8 bits – [Mem_Reg: Base + 5Ch]
Field Name
Response Interrupt
Control

Bits
0

Default
0b

RIRB DMA Enable

1

0b

Response Overrun
Interrupt Control
Reserved

2

0b

7:3

00h

Description
0 = Disable Interrupt
1 = Generate an interrupt after N number of Responses are
sent to the RIRB buffer or when an empty Response slot is
encountered on all SDIN_x inputs after a frame which
return a response (whichever occurs first). The N counter is
reset when the interrupt is generated.
0 = DMA Stop
1 = DMA Run
If this bit is set, the hardware will generate an interrupt
when the Response Overrun Interrupt Status is set.
Reserved. Software must do a read-modify-write to
preserve the value of these bits.

RIRB Status – RW – 8 bits – [Mem_Reg: Base + 5Dh]
Field Name
Response Interrupt

Bits
0

Default
0b

Reserved
Response Overrun
Interrupt Status

1
2

0b
0b

7:3

0h

Reserved

Description
Hardware sets this bit to “1” when an interrupt has been
generated after N number of responses are sent to the
RIRB buffer, or when empty Response slot is encountered
on all SDIN_x inputs (whichever occurs first). Software
clears this bit by writing a “1” to this bit.
Reserved. Software must use 0’s for write to these bits.
Hardware sets this bit to a “1’ when an overrun occurs in
the RIRB. An interrupt may be generated if the Response
Overrun Interrupt Control bit is set.
Software clears this bit by writing a “1” to it.
Reserved. Software must use 0’s for write to these bits.

RIRB Size – RW – 8 bits – [Mem_Reg: Base + 5Eh]
Field Name
RIRB Size

Bits
1:0

Default
10b

Reserved

3:2

0h

RIRB Size Capability

7:4

4h

Description
These bits have no functional impact to the hardware.
This HD Audio controller only supports 256 entries.
Reserved. Software must do a read-modify-write to
preserve the value of these bits.
Hardwired to 4h indicating this controller only supports a
RIRB size of 256 entries.

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

HD Audio Controllers Registers
Proprietary

Page 241

Immediate Command Output Interface – RW – 32 bits – [Mem_Reg: Base + 60h]
Field Name
Immediate Command
Write

Bits
31:0

Default
00000000
h

Description
The value written into this register is used as the verb to be
sent out over the link when the ICB (Immediate Command
Busy) bit is set to “1”. Software must ensure that the ICB bit
is cleared before writing a value into this register or
undefined behavior will result. Reads from this register will
always return 0’s.

Immediate Command Input Interface – RW – 32 bits – [Mem_Reg: Base + 64h]
Field Name
Immediate Response
Read

Bits
31:0

Default
00000000
h

Description
This register contains the value from the last response to
come in over the link.
If multiple codecs respond in the same frame, which one of
the responses that will be saved is indeterminate.

Immediate Command Input Interface – RW – 16 bits – [Mem_Reg: Base + 68h]
Field Name
Immediate Command
Status

Bits
0

Default
0b

Description
This bit is a “0” when the controller can accept an
immediate command. Software must wait for this bit to be
0 before writing a value in the ICW register.
This bit will be clear (indicating “ready”) when the following
conditions are met: (1) the link is running, (2) the CORB is
not active (CORBRP = CORBWP or CORBEN is not set),
and (3) there is not an immediate command already in the
queue waiting to be sent.
Writing this bit to “1” will cause the contents of the ICW
register to be sent as a verb in the next frame. Once a
response is received the IRV bit will be set and this bit will
be cleared indicating ready to transmit another verb.
This bit is set to a “1” by hardware when a new response is
latched into the IRR (Immediate Response Read) register.
Software must clear this bit before issuing a new command
by writing a one to it so that the software may determine
when a new response has arrived.

Immediate Result Valid

1

0b

Reserved

2

0b

Reserved. Software must use 0’s for write to these bits.

Immediate Response
Result Unsolicited

3

0b

Indicates whether the response latched in the Immediate
Response Input Register is a solicited or unsolicited
response.

Immediate Response
Result Address

7:4

00h

The address of the codec which sent the response
currently latched into the Immediate Response Input.

Reserved

15:8

0000h

Reserved. Software must use 0’s for write to these bits.

DMA Position Lower Base Address – RW – 32 bits – [Mem_Reg: Base + 70h]
Field Name
DMA Position Buffer
Enable

Bits
0

Default
0b

DMA Position Lower Base
Address Unimplemented
Bits

6:1

00h

Description
When this bit is set to a “1’, the controller will write the DMA
positions of each of the DMA engines to the buffer in main
memory periodically. Software can use this value to know
what data in memory is valid data.
Hardwired to 0. This forces 128-byte buffer alignment for
cache line fetch optimizations.

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

HD Audio Controllers Registers
Proprietary

Page 242

DMA Position Lower Base Address – RW – 32 bits – [Mem_Reg: Base + 70h]
Field Name
DMA Position Lower Base
Address

Bits
31:7

Default
0000000h

Description
Contains the upper 25 bits of the lower 32 bits of the DMA
Position Buffer Base Address.
This same address is used by the Flush Control, and must
be programmed with a valid value before the Flush Control
is initiated.

DMA Position Upper Base Address – RW – 32 bits – [Mem_Reg: Base + 74h]
Field Name
DMA Position Upper Base
Address

Bits
31:0

Default
00000000
h

Description
Upper 32 bits of the DMA Position Buffer Base Address.
This same address is used by the Flush Control, and must
be programmed with a valid value before the Flush Control
is initiated.

Stream Descriptor Control – RW – 24 bits
Input Stream 0 - [Mem_Reg: Base + 80h]
Input Stream 1 - [Mem_Reg: Base + A0h]
Input Stream 2 - [Mem_Reg: Base + C0h]
Input Stream 3 - [Mem_Reg: Base + E0h]
Output Stream 0 - [Mem_Reg: Base + 100h]
Output Stream 1 - [Mem_Reg: Base + 120h]
Output Stream 2 - [Mem_Reg: Base + 140h]
Output Stream 3 - [Mem_Reg: Base + 160h]
Field Name
Stream Reset

Bits
0

Default
0b

Stream Run

1

0b

Interrupt On Completion
Enable
FIFO Error Interrupt
Enable
Descriptor Error Interrupt
Enable
Reserved

2

0b

3

0b

4

0b

15:5

000h

Description
Writing a “1” causes the corresponding stream to be reset.
The Stream Descriptor registers (except this bit), FIFO’s
and cadence generator for the corresponding stream are
reset. After the stream hardware has completed
sequencing into the reset state, it will report a “1” in this bit.
Software must read a “1’ from this bit to verify that the
stream is in reset.
Writing a “0” causes the corresponding stream to exit reset.
When the stream hardware is ready to begin operation, it
will report a “0” in this bit. Software must read a “0” from
this bit before accessing any of the stream registers. The
Run bit must be cleared before asserting SRST (Stream
Reset).
When set to “1”, the DMA engine associated with this input
stream will be enabled to transfer data in the FIFO to main
memory. When cleared to “0”, the DMA engine associated
with this input stream will be disabled. If the corresponding
SSYNC bit is “0”, input stream data will be taken from the
link and moved to the FIFO and an over-run may occur.
Controls whether an interrupt is generated when the Buffer
Completion Interrupt Status is set
Controls whether an interrupt is generated when the FIFO
Error is set.
Controls whether an interrupt is generated when the
Descriptor Error Status is set.
Reserved. Software must do a read-modify-write to
preserve the value of these bits.

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

HD Audio Controllers Registers
Proprietary

Page 243

Stream Descriptor Control – RW – 24 bits
Input Stream 0 - [Mem_Reg: Base + 80h]
Input Stream 1 - [Mem_Reg: Base + A0h]
Input Stream 2 - [Mem_Reg: Base + C0h]
Input Stream 3 - [Mem_Reg: Base + E0h]
Output Stream 0 - [Mem_Reg: Base + 100h]
Output Stream 1 - [Mem_Reg: Base + 120h]
Output Stream 2 - [Mem_Reg: Base + 140h]
Output Stream 3 - [Mem_Reg: Base + 160h]
Field Name
Stripe Control

Bits
17:16

Default
0h

Traffic Priority

18

0b

Bidirectional Direction
Control
Stream Number

19

0b

23:20

0h

Description
The hardware only supports one SDO, this field has no
functional impact.
If set to “1”, it will cause the controller to generate nonsnooped traffic.
The hardware does not support bi-direction, this field has
no impact.
The value reflects the Tag associated with the data being
transferred on the link.
When data controlled by this descriptor is sent out over the
link, it will have this stream number encoded on the SYNC
signal.
When an input stream is detected on any of the SDIN_x
signals that match this value, the data are loaded into the
FIFO associated with this descriptor.
0000b = Reserved
0001b = Stream 1
:
1111b = Stream 15

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

HD Audio Controllers Registers
Proprietary

Page 244

Stream Descriptor Status – RW – 8 bits
Input Stream 0 - [Mem_Reg: Base + 83h]
Input Stream 1 - [Mem_Reg: Base + A3h]
Input Stream 2 - [Mem_Reg: Base + C3h]
Input Stream 3 - [Mem_Reg: Base + E3h]
Output Stream 0 - [Mem_Reg: Base + 103h]
Output Stream 1 - [Mem_Reg: Base + 123h]
Output Stream 2 - [Mem_Reg: Base + 143h]
Output Stream 3 - [Mem_Reg: Base + 163h]
Field Name
Reserved
Buffer Completion
Interrupt Status

Bits
1:0
2

Default
0h
0b

FIFO Error

3

0b

Descriptor Error
FIFO Ready

4
5

0b
0b

7:6

0h

Reserved

Description
Reserved. Software must use 0’s for write to these bits.
For an Output Stream engine, this bit is set to “1” by the
hardware after the last byte of data has been fetched from
memory and put into DMA FIFO and the current descriptor
has the IOC bit set.
For an Input Stream engine, this bit is set to “1” by the
hardware after the last byte of data has been removed from
the DMA FIFO and the current descriptor has the IOC bit
set.
This bit is cleared by writing a “1” to this bit.
Set when a FIFO error occurs regardless of the FIFO Error
Interrupt Enable bit.
This bit is cleared by writing a “1” to this bit.
During the fetch of a descriptor, an error has occurred.
For an Output Stream, the controller hardware will set this
bit to a “1” while the output DMA FIFO contains enough
data to maintain the stream on the link.
Reserved. Software must use 0’s for write to these bits.

Stream Descriptor Link Position in Buffer – R – 32 bits
Input Stream 0 - [Mem_Reg: Base + 84h]
Input Stream 1 - [Mem_Reg: Base + A4h]
Input Stream 2 - [Mem_Reg: Base + C4h]
Input Stream 3 - [Mem_Reg: Base + E4h]
Output Stream 0 - [Mem_Reg: Base + 104h]
Output Stream 1 - [Mem_Reg: Base + 124h]
Output Stream 2 - [Mem_Reg: Base + 144h]
Output Stream 3 - [Mem_Reg: Base + 164h]
Field Name
Link Position in Buffer

Bits
31:0

Default
00000000
h

Description
This field indicates the number of bytes that have been
received off the link.

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

HD Audio Controllers Registers
Proprietary

Page 245

Stream Descriptor Cyclic Buffer Length – RW – 32 bits
Input Stream 0 - [Mem_Reg: Base + 88h]
Input Stream 1 - [Mem_Reg: Base + A8h]
Input Stream 2 - [Mem_Reg: Base + C8h]
Input Stream 3 - [Mem_Reg: Base + E8h]
Output Stream 0 - [Mem_Reg: Base + 108h]
Output Stream 1 - [Mem_Reg: Base + 128h]
Output Stream 2 - [Mem_Reg: Base + 148h]
Output Stream 3 - [Mem_Reg: Base + 168h]
Field Name
Cyclic Buffer Length

Bits
31:0

Default
00000000
h

Description
Indicates the number of bytes in the complete cyclic buffer.
Link Position in Buffer will be reset when it reaches this
value.
Software may only write to this register after Global Reset,
Controller Reset, or Stream Reset has occurred. Once the
Run bit has been set to enable the engine, software must
not write to this register until after the next reset is
asserted, or undefined events will occur.

Stream Descriptor Last Valid Index – RW – 16 bits
Input Stream 0 - [Mem_Reg: Base + 8Ch]
Input Stream 1 - [Mem_Reg: Base + ACh]
Input Stream 2 - [Mem_Reg: Base + CCh]
Input Stream 3 - [Mem_Reg: Base + ECh]
Output Stream 0 - [Mem_Reg: Base + 10Ch]
Output Stream 1 - [Mem_Reg: Base + 12Ch]
Output Stream 2 - [Mem_Reg: Base + 14Ch]
Output Stream 3 - [Mem_Reg: Base + 16Ch]
Field Name
Last Valid Index

Bits
7:0

Default
00h

Reserved

15:8

00h

Description
The value written to this register indicates the index for the
last valid Buffer Descriptor in BDL. After the controller has
processed this descriptor, it will wrap back to the first
descriptor in the list and continue processing.
LVI (Last Valid Index) must be “1”; i.e., there must be at
least two valid entries in the BDL before DMA operations
can begin.
This value should not be modified except when the Run bit
is “0”.
Reserved. Software must do a read-modify-write to
preserve the value of these bits.

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

HD Audio Controllers Registers
Proprietary

Page 246

Stream Descriptor FIFO Size – R – 16 bits
Input Stream 0 - [Mem_Reg: Base + 90h]
Input Stream 1 - [Mem_Reg: Base + B0h]
Input Stream 2 - [Mem_Reg: Base + D0h]
Input Stream 3 - [Mem_Reg: Base + F0h]
Output Stream 0 - [Mem_Reg: Base + 110h]
Output Stream 1 - [Mem_Reg: Base + 130h]
Output Stream 2 - [Mem_Reg: Base + 150h]
Output Stream 3 - [Mem_Reg: Base + 170h]
Field Name
FIFO Size

Bits
15:0

Default
0000h

Description
For Output Stream, the FIFO Size varies between 32
dwords to 256 dwords depending on the Stream Format.
For Input Stream, the FIFO Size is fixed at 64 dwords.

Stream Descriptor Format – RW – 16 bits
Input Stream 0 - [Mem_Reg: Base + 92h]
Input Stream 1 - [Mem_Reg: Base + B2h]
Input Stream 2 - [Mem_Reg: Base + D2h]
Input Stream 3 - [Mem_Reg: Base + F2h]
Output Stream 0 - [Mem_Reg: Base + 112h]
Output Stream 1 - [Mem_Reg: Base + 132h]
Output Stream 2 - [Mem_Reg: Base + 152h]
Output Stream 3 - [Mem_Reg: Base + 172h]
Field Name
Number of Channels

Bits
3:0

Default
0h

Bits per Sample

6:4

0h

7

0b

Sample Base Rate Divisor

10:8

0h

Sample Base Rate
Multiple

13:11

0h

Sample Base Rate

14

0b

Reserved

15

0b

Reserved

Description
Number of channels in each frame of the stream.
0000b = 1
0001b = 2
:
1111b = 16
000b = 8 bits
001b = 16 bits
010b = 20 bits
011b = 24 bits
100b = 32 bits
101b – 111b = Reserved
Reserved. Software must do a read-modify-write to
preserve the value of these bits.
000b = Divide by 1 (48 kHz, 44.1 kHz)
001b = Divide by 2 (24 kHz, 22.05 kHz)
010b = Divide by 3 (16 kHz, 32 kHz)
011b = Divide by 4 (11.025 kHz)
10b0 = Divide by 5 (9.6 kHz)
101b = Divide by 6 (8 kHz)
110b = Divide by 7
111b = Divide by 8 (6 kHz)
000b = 1 (48 kHz, 44.1 kHz)
001b = 2 (96 kHz, 88.2 kHz, 32 kHz)
010b = 3 (144 kHz)
011b = 4 (192 kHz, 176.4 kHz)
101b – 111b = Reserved
0 = 48 kHz
1 = 44.1 kHz
Reserved

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

HD Audio Controllers Registers
Proprietary

Page 247

Stream Descriptor BDL Pointer Lower Base Address – RW – 32 bits
Input Stream 0 - [Mem_Reg: Base + 98h]
Input Stream 1 - [Mem_Reg: Base + B8h]
Input Stream 2 - [Mem_Reg: Base + D8h]
Input Stream 3 - [Mem_Reg: Base + F8h]
Output Stream 0 - [Mem_Reg: Base + 138h]
Output Stream 2 - [Mem_Reg: Base + 158h]
Output Stream 3 - [Mem_Reg: Base + 178h]
Field Name
Reserved
Buffer Descriptor List
Lower Base Address

Bits
6:0
31:7

Default
00h
0000000h

Description
Hardwired to 0’s to force 128 byte alignment of the BDL.
Upper 25 bits of the lower 32 bit address of the Buffer
Descriptor List. This value should not be modified except
when the Run bit is “0”.

Stream Descriptor BDL Pointer Upper Base Address – RW – 32 bits
Input Stream 0 - [Mem_Reg: Base + 9Ch]
Input Stream 1 - [Mem_Reg: Base + BCh]
Input Stream 2 - [Mem_Reg: Base + DCh]
Input Stream 3 - [Mem_Reg: Base + FCh]
Output Stream 0 - [Mem_Reg: Base + 11Ch]
Output Stream 1 - [Mem_Reg: Base + 13Ch]
Output Stream 2 - [Mem_Reg: Base + 15Ch]
Output Stream 3 - [Mem_Reg: Base + 17Ch]
Field Name
Buffer Descriptor List
Upper Base Address

Bits
31:0

Default
00000000
h

Description
Upper 32 bit address of the Buffer Descriptor List. This
value should not be modified except when the Run bit is
“0”.

Wall Clock Counter Alias – R – 32 bits – [Mem_Reg: Base + 2030h]
Field Name
Wall Clock Counter Alias

Bits
31:0

Default
00000000
h

Description
An alias of the Wall Clock Counter register at offset 30h. It
behaves exactly the same as if the Wall Clock Counter
register were being read directly.

Stream Descriptor Link Position in Buffer Alias – R – 32 bits
Input Stream 0 - [Mem_Reg: Base + 2084h]
Input Stream 1 - [Mem_Reg: Base + 20A4h]
Input Stream 2 - [Mem_Reg: Base + 20C4h]
Input Stream 3 - [Mem_Reg: Base + 20E4h]
Output Stream 0 - [Mem_Reg: Base + 2104h]
Output Stream 1 - [Mem_Reg: Base + 2124h]
Output Stream 2 - [Mem_Reg: Base + 2144h]
Output Stream 3 - [Mem_Reg: Base + 2164h]
Field Name
Link Position in Buffer
Alias

Bits
31:0

Default
00000000
h

Description
An alias of the Link Position in Buffer register of each
Stream Descriptor.

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

HD Audio Controllers Registers
Proprietary

Page 248

3 Register Descriptions: PCI Bridges
3.1

LPC ISA Bridge (Device 20, Function 3)

Note: Some LPC 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 LPC functions and the associated registers.

LPC
LPC Controller Enable
LPC Drive strength control
PCI_Reg:
64h

3.1.1

C0h

--

Programming Interface

•

Write LPC_enable bit in function 0, register 64, bit 20.

•

Enable LPC address decode ranges.

•

Program DMA controller for any bus master or DMA cycles.

•

Perform LPC cycles from PCI or DMA requests from LPC agent.

3.1.2

PCI Configuration Registers

The LPC host controller supports a set of configuration register required by the PCI specification.
Registers not listed here will have this default behavior: read from the register returns 0’s; write to the
register is ignored.

Register Name
VID
DID
CMD
STATUS
Revision ID/Class Code
Cache Line Size
Latency Timer
Header Type
BIST
Base Address Reg 0
Subsystem ID & Subsystem Vendor ID
Capabilities Pointer
PCI Control
IO Port Decode Enable Register 1
IO Port Decode Enable Register 2
IO Port Decode Enable Register 3
IO Port Decode Enable Register 4
IO/Mem Port Decode Enable Register 5
LPC Sync Timeout Count
IO/Mem Port Decode Enable Register 6
Memory Range Register
Rom Protect 0

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

Offset Address
00h
02h
04h
06h
08h
0Ch
0Dh
0Eh
0Fh
10h
2Ch
34h
40h
44h
45h
46h
47h
48h
49h
4Ah
4Ch
50h

LPC ISA Bridge (Device 20, Function 3)
Proprietary

Page 249

Register Name
Rom Protect 1
Rom Protect 2
Rom Protect 3
PCI Memory Start Address for LPC Target Cycles
PCI Memory End Address for LPC Target Cycles
PCI IO base Address for Wide Generic Port
LPC ROM Address Range 1 (Start Address)
LPC ROM Address Range 1 (End Address)
LPC ROM Address Range 2 (Start Address)
LPC ROM Address Range 2 (End Address)
Firmware Hub Select
Alternative Wide Io Range Enable
Reserved
TPM register
MSI Capability register

Offset Address
54h
58h
5Ch
60h
62h
64h
68h
6Ah
6Ch
6Eh
70h
74h
78h
7Ch
80h

PCI function 3 configuration registers are described below.

VID- R - 16 bits - [PCI_Reg: 00h]
Field Name
Bits
Default
Description
Vendor ID
15:0
1002h
Vendor ID
Vendor ID Register: This register holds a unique 16-bit value assigned to a vendor, and combined with the device
ID it identifies any PCI device.

DID- R - 16 bits - [PCI_Reg: 02h]
Field Name
Bits
Default
Description
Devide ID
15:0
438Dh
Device ID
Device ID Register: This register holds a unique 16-bit value assigned to a device and together with the vendor ID,
it identifies any PCI device.

CMD- RW - 16 bits - [PCI_Reg: 04h]
Field Name
IO Space

Bits
0

Default
1b

Memory Space

1

1b

Bus Master

2

1b

Special Cycles

3

1b

Memory Write and
Invalidate Enable
VGA Palette Snoop

4

0b

5

0b

Parity Error Response

6

0b

Stepping Control

7

0b

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

Description
Hardcoded to 1 to enable IO access, since legacy IOs
reside behind the LPC bridge.
Hardcoded to 1 to enable Memory Access, since BIOS
ROM is located behind the LPC bridge.
Hardcoded to 1 to enable bus master, since LPC bridge
handles legacy DMA cycles.
Hardcoded to 1 to enable Special Cycle recognition, since
special cycle must be recognized by the LPC bridge.
Hardcoded to 0 to indicate that Memory Write and
Invalidate command is not implemented.
Hardcoded to 0 to indicate that VGA Palette Snoop is
disabled - The LPC bridge does not need to snoop VGA
palette cycles.
PERR# (Response) Detection Enable bit.
1 - LPC bridge asserts PERR# when it is the agent
receiving data AND it detects a parity error.
0 – LPC bridge does not assert PERR#.
Hardcoded to 0 to indicate that LPC bridge does not use
perform address/data stepping - the LPC bridge does not
need to insert a wait state between the address and data
on the AD lines.

LPC ISA Bridge (Device 20, Function 3)
Proprietary

Page 250

CMD- RW - 16 bits - [PCI_Reg: 04h]
Field Name
SERR# Enable

Bits
8

Default
0b

9

0b

Fast Back-tp-Back Enable

Description
SERR# enable - If set to 1, the LPC bridge asserts SERR#
when it detects as address parity error. SERR# is not
asserted if this bit is 0.
Hardcoded to 0 to indicate that Fast Back-to-back is
disabled. The LPC bridge only acts as a master to a single
device, so this functionality is not needed.

Reserved
15:10
00h
Command Register: The PCI specification defines this register to control a PCI device’s ability to generate and
respond to PCI cycles.

STATUS- RW - 16 bits - [PCI_Reg: 06h]
Field Name
Reserved
Capabilities List

Bits
3:0
4

Default
0h
0b

Reserved
Master Data Parity
Error

7:5
8

0h
0h

Description
This bit is read only. When reg0x78[1] is 1, this bit reads 1; when
reg0x78[1] is 0, this bit reads 0. This is to satisfy K8
requirement. For P4 system, 0x78[1] should be set to 0 to mask
off this bit.

Data Parity reported – Set to 1 if the LPC bridge detects PERR#
asserted while acting as PCI master (whether PERR# was driven
by the LPC bridge or not.)
Device Select Timing
10:9
1h
DEVSEL# timing – Read only bits indicating 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
11
0b
Signaled Target Abort – This bit is set to 1 when the LPC bridge
signals Target Abort.
Received Target Abort
12
0b
Received Target Abort – This bit is set to 1 when the LPC bridge
-generated PCI cycle is aborted by a PCI target. Cleared by
writing a 1 to it.
Received Master Abort
13
0b
Received Master Abort Status. Set to 1 when the LPC bridge
acts as a PCI master and aborts a PCI bus cycle. Cleared by
writing a 1 to this bit.
Signaled System Error
14
0b
SERR# status. This bit is set to 1, when the LPC bridge detects
a system error.
Detected Parity Error
15
0b
Detected Parity Error. This bit is set to 1 when the LPC bridge
detects a parity error.
Status Register: The PCI specification defines this register to record status information for PCI related events.
Writing 0 to a bit has no effect; writing 1 to a bit will clear it to 0.

Revision ID/Class Code - R - 8 bits - [PCI_Reg: 08h]
Field Name
Revision ID

Bits
7:0

Default
00h

Description
These bits are hardwired to 00h to indicate the revision level of
the chip design
Class Code
31:8
060100h Class Code.
Revision ID/Class Code Register: This read only register contains the device’s revision information and generic
function. Since SB600 is an ISA bridge, its assigned class code is 060100h.

Cache Line Size - R - 8 bits - [PCI_Reg: 0Ch]
Field Name
Bits
Default
Description
Cache Line Size
7:0
00h
Cache Line Size.
Cache Line Size Register: This register specifies the system cache line size. This register is not implemented.

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

LPC ISA Bridge (Device 20, Function 3)
Proprietary

Page 251

Latency Timer - R - 8 bits - [PCI_Reg: 0Dh]
Field Name
Bits
Default
Description
Latency Timer
7:0
00h
Latency Timer.
Latency Timer Register: This register specifies the value of the Latency Timer in units of PCICLKs.

Header Type - R - 8 bits - [PCI_Reg: 0Eh]
Field Name
Bits
Default
Description
Header Type
7:0
80h
Header Type.
Header Type Register: This register identifies the type of the predefined header in the configuration space. Since
THE SB600 is a multifunction device, the most significant bit is set.

BIST- R - 8 bits - [PCI_Reg: 0Fh]
Field Name

Bits
Default
Description
BIST
7:0
00h
BIST.
Built-in Self Test Register: This register is used for control and status for Built-in Self Test. LPC has no BIST modes.

Base Address Reg 0- RW* - 32 bits - [PCI_Reg: 10h]
Field Name
Bits
Default
Description
Base Address 0
31:0
FEC0_0000h Base address register 0.
This register is write-only. Reading it always returns 0000_0000h. It has an internal value used as base address for
APIC memory space. Writing to the register will change its internal value, but only bit[31:5] is overwritten, and
bit[4:0] is hardwired to 00000b. The default internal value is FEC0_0000h.

Subsystem ID & Subsystem Vendor ID – RW - 32 bits - [PCI_Reg: 2Ch]
Field Name
Bits
Default
Description
Subsystem Vendor ID
15:0
0000h
Subsystem Vendor ID.
Subsystem ID
31:16
0000h
Subsystem ID.
This 4-byte register is a write-once & read-only afterward register. The BIOS writes this register once (all 4 bytes at
once) and software reads its value (when needed).

Capabilities Pointer - R - 32 bits - [PCI_Reg: 34h]
Field Name
Capabilities Pointer

Bits
7:0

Default
00h

Reserved

31:8

000000h

Field Name
Reserved
DMA Enable

Bits
1:0
2

Default
0h
0b

Reserved

7:3

00h

Description
When reg0x78[1] (msi on) is 0, this field reads 0; when
reg0x78[1] is 1, this field reads 80h, pointing to the starting
address of MSI capability register

PCI Control - RW - 8 bits - [PCI_Reg: 40h]
Description
Setting it to 1 enables lpc DMA cycle. Note: 32-bit DMA is not
supported. Transfer size: Channels 0-3: 8 bits, channels 5-7: 16
bits.

IO Port Decode Enable Register 1- RW - 8 bits - [PCI_Reg: 44h]
Field Name
Parallel Port Enable 0
Parallel Port Enable 1
Parallel Port Enable 2
Parallel Port Enable 3
Parallel Port Enable 4

Bits
0
1
2
3
4

Default
0b
0b
0b
0b
0b

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

Description
Port enable for parallel port, 378-37fh
Port enable for parallel port, 778-77fh
Port enable for parallel port, 278-27fh
Port enable for parallel port, 678-67fh
Port enable for parallel port, 3bc-3bfh

LPC ISA Bridge (Device 20, Function 3)
Proprietary

Page 252

IO Port Decode Enable Register 1- RW - 8 bits - [PCI_Reg: 44h]
Field Name
Bits
Default
Description
Parallel Port Enable 5
5
0b
Port enable for parallel port, 7bc-7bfh
Serial Port Enable 0
6
0b
Port enable for serial port, 3f8-3ffh
Serial Port Enable 1
7
0b
Port enable for serial port, 2f8-2ffh
This register controls the decoding of parallel & serial ports. Writing ‘1’ to a bit enables the corresponding IO range.

IO Port Decode Enable Register 2- RW - 8 bits - [PCI_Reg: 45h]
Field Name
Serial Port Enable 2
Serial Port Enable 3
Serial Port Enable 4
Serial Port Enable 5
Serial Port Enable 6
Serial Port Enable 7
Audio Port Enable 0

Bits
0
1
2
3
4
5
6

Default
0b
0b
0b
0b
0b
0b
0b

Description
Port enable for serial port, 220-227h
Port enable for serial port, 228-22fh
Port enable for serial port, 238-23fh
Port enable for serial port, 2e8-2efh
Port enable for serial port, 338-33fh
Port enable for serial port, 3e8-3efh
Port enable for audio port, 230-233h (Range 220-22fh needs to
be enabled using bits 0 and 1)
Audio Port Enable 1
7
0b
Port enable for audio port, 240-253h
This register controls the decoding of serial & audio ports. Writing ‘1’ to a bit enables the corresponding IO range.

IO Port Decode Enable Register 3- RW - 8 bits - [PCI_Reg: 46h]
Field Name
Bits
Default
Description
Audio Port Enable 2
0
0b
Port enable for audio port, 260-273h
Audio Port Enable 3
1
0b
Port enable for audio port, 280-293h
MIDI Port Enable 0
2
0b
Port enable for MIDI port, 300-301h
MIDI Port Enable 1
3
0b
Port enable for MIDI port, 310-311h
MIDI Port Enable 2
4
0b
Port enable for MIDI port, 320-321h
MIDI Port Enable 3
5
0b
Port enable for MIDI port, 330-331h
MSS Port Enable 0
6
0b
Port enable for MSS port, 530-537h
MSS Port Enable 1
7
0b
Port enable for MSS port, 604-60bh
This register controls the decoding of audio, MIDI, & MSS ports. Writing ‘1’ to a bit enables the corresponding IO
range.

IO Port Decode Enable Register 4- RW - 8 bits - [PCI_Reg: 47h]
Field Name
Bits
Default
Description
MSS Port Enable 2
0
0b
Port enable for MSS port, e80-e87h
MSS Port Enable 3
1
0b
Port enable for MSS port, f40-f47h
FDC Port Enable 0
2
0b
Port enable for FDC port, 3f0-3f7h
FDC Port Enable 1
3
0b
Port enable for FDC port, 370-377h
Game Port Enable
4
0b
Port enable for Game port, 200-20fh
KBC Port Enable
5
0b
Port enable for KBC port, 60 & 64h
ACPI Micro-Controller
6
0b
Port enable for ACPI Micro-Controller port, 62 & 66h
Port Enable
Ad-Lib Port Enable
7
0b
Port enable for Ad-Lib port, 388-389h
This register controls the decoding of MSS, FDC, game, KBC, ACPI micro-controller, & Ad-lib ports. Writing ‘1’ to a
bit enables the corresponding IO range.

IO/Mem Port Decode Enable Register 5- RW - 8 bits - [PCI_Reg: 48h]
Field Name
Super IO Configuration
Port Enable
Alternate Super IO
Configuration Port
Enable
Wide Generic IO Port
Enable

Bits
0

Default
0b

1

0b

Port enable for Alternate super IO config port, 4e-4fh

2

0b

Port enable for wide generic port, see register 64-65h

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

Description
Port enable for Super IO config port, 2e-2fh

LPC ISA Bridge (Device 20, Function 3)
Proprietary

Page 253

IO/Mem Port Decode Enable Register 5- RW - 8 bits - [PCI_Reg: 48h]
Field Name
Rom Range 1 Port
Enable
Rom Range 2 Port
Enable
Memory Range Port
Enable
RTC IO Range Port
Enable
Sync Timeout Counter
Enable

Bits
3

Default
0b

4

0b

5

0b

Description
Port enable for LPC ROM address range 1 (memory), see
register 68-6bh
Port enable for LPC ROM address range 2 (memory), see
register 6c-6fh
Port enable for LPC memory target range, see register 60-63h

6

0b

Port enable for RTC I/O range 70h~73h

7

1b

LPC sync timeout counter enabled when set to ‘1’ (default),
otherwise the counter is disabled. This counter is used to avoid
a deadlock condition if an LPC device drives sync forever.
Timeout count is programmed in register 49h. Write ‘0’ to this bit
if an LPC device is extremely slow & takes more than 255 LPC
clocks to complete a cycle.
This register controls the decoding of Super IO configuration, alternate super-IO configuration, wide generic ports,
ROM1 & ROM2 ports, and memory port. Writing ‘1’ to a bit enables the corresponding IO/ROM/Memory range. Bit
7 controls enable/disable of LPC sync timeout counter.

LPC Sync Timeout Count - RW - 8 bits - [PCI_Reg: 49h]
Field Name
Bits
Default
Description
Sync Timeout Count
7:0
FFh
Sync Timeout Count.
This register contains the value of LPC sync timeout count. This is the number of LPC clocks the state machine will
wait when LPC data = sync before aborting the cycle (when timeout counter is enabled; see register 48, bit 7).

IO/Mem Port Decode Enable Register 6- RW - 8 bits - [PCI_Reg: 4Ah]
Field Name
IO port enable 0
IO port enable 1
IO port enable 2
IO port enable 3
Mem port enable
IO port enable 4
IO port enable 5
IO port enable 6

Bits
0
1
2
3
4
5
6
7

Default
0b
0b
0b
0b
0b
0b
0b
0b

Description
Port enable for IO port 400h-43Fh
Port enable for IO port 480h-4BFh
Port enable for IO port 500h-53Fh
Port enable for IO port 580h-5BFh
Port enable for 4K byte memory range defined in reg0x4C
Port enable for IO port 80h
Port enable for IO port 4700h-470Bh
Port enable for IO port FD60h-FD6Fh

IO/Mem Port Decode Enable Register 7- RW - 8 bits - [PCI_Reg: 4Bh]
Field Name
Wide_io1_enable
Wide_io2_enable
Reserved

Bits
0
1
7:2

Default
0b
0b
00h

Description
Wide IO port 1 (defined in register 66/67h) enable
Wide IO port 2 (defined in register 90/91h) enable

Memory Range Register - RW - 32 bits - [PCI_Reg: 4Ch]
Field Name
Reserved
Base Address

Bits
11:0
31:12

Default
000h
00000h

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

Description
This register defines a 4K byte memory range from {Base
Address, 000h} to {Base Address, fffh}. The range is enabled by
reg0x4A[4].

LPC ISA Bridge (Device 20, Function 3)
Proprietary

Page 254

Rom Protect 0 - RW - 32 bits - [PCI_Reg: 50h]
Field Name
Write Protect

Bits
0

Default
0b

Description
When this bit is set, the memory range defined by this register is
write-protected. Writing to the range has no effect.
Read Protect
1
0b
When this bit is set, the memory range defined by this register is
read-protected. Reading any location in the range returns
FFFF_FFFFh.
Rom Offset
10:2
000h
Rom range offset
Rom Base
31:11
000000h Rom Base and Rom Offset together define the ROM range to be
protected. The range is:
From {Rom Base, 000_0000_0000b} to {Rom Base,
000_0000_0000b} + {0_0000_0000_0000b, Rom Offset,
11_1111_1111b}
This register is write/read, but it can only be written once after hardware reset. Subsequent writes to it have no
effect.

Rom Protect 1 - RW - 32 bits - [PCI_Reg: 54h]
Field Name
Bits
Default
This register has exactly the same definition as that of Rom Protect 0.

Description

Rom Protect 2 - RW - 32 bits - [PCI_Reg: 58h]
Field Name
Bits
Default
This register has exactly the same definition as that of Rom Protect 0.

Description

Rom Protect 3 - RW - 32 bits - [PCI_Reg: 5Ch]
Field Name
Bits
Default
This register has exactly the same definition as that of Rom Protect 0.

Description

PCI Memory Start Address for LPC Target Cycles - RW - 16 bits - [PCI_Reg: 60h]
Field Name
Bits
Default
Description
Memory Start Address
15:0
0000h
16-bit starting address of the LPC target (memory) range.
This register contains upper 16-bits of the starting address of the LPC memory target range. The lower 16-bits of
the starting address are considered 0’s. This range can be enabled/disabled using register 48h, bit 5.

PCI Memory End Address for LPC Target Cycles - RW - 16 bits - [PCI_Reg: 62h]
Field Name
Bits
Default
Description
Memory End Address
15:0
0000h
16-bit END address of the LPC target (memory) range.
This register contains upper 16-bits of the ending address of the LPC memory target range. The lower 16-bits of the
end address are considered 1’s. This range can be enabled/disabled using register 48h, bit 5.

PCI IO base Address for Wide Generic Port - RW - 16 bits - [PCI_Reg: 64h]
Field Name
IO Base Address 0

Bits
15:0

Default
0000h

Description
16-bit PCI IO base address for wide generic port range. 512
byte wide range. This function is enabled by PCI register 48h,
bit 2
IO Base Address 1
31:16
0000h
16-bit PCI IO base address for wide generic port range. 512
byte wide range. This function is enabled by PCI register 4Bh,
bit 0
This register contains two 16-bits of IO base address for LPC IO (wide generic port) target range. The limit address
is found by adding 512 to the base address.

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

LPC ISA Bridge (Device 20, Function 3)
Proprietary

Page 255

LPC ROM Address Range 1 (Start Address) - RW - 16 bits - [PCI_Reg: 68h]
Field Name
Rom Start Address 1

Bits
15:0

Default
Description
0eh (if iLpc_Rom strap is
16-bit starting address of the LPC ROM
enabled),
(memory) address range 1.
00h (if the strap is disabled)
This register contains upper 16-bits of the starting address of the LPC ROM address range 1. The lower 16-bits of
the starting address are considered 0’s. This range can be enabled by setting register 48h, bit 3 or when LPC ROM
is chosen by strap pin.

LPC ROM Address Range 1 (End Address) - RW - 16 bits - [PCI_Reg: 6Ah]
Field Name
Rom End Address 1

Bits
15:0

Default
Description
0fh (if iLpc_Rom strap is
16-bit END address of the LPC ROM
enabled),
(memory) address range 1.
00h (if the strap is disabled)
This register contains upper 16-bits of the ending address of the LPC ROM address range 1. The lower 16-bits of
the end address are considered 1’s. This range can be enabled by setting register 48h, bit 3 or when LPC ROM is
chosen by strap pin.

LPC ROM Address Range 2 (Start Address)- RW - 16 bits - [PCI_Reg: 6Ch]
Field Name
Rom Start Address 2

Bits
15:0

Default
Description
FFFEh (if iLpc_Rom strap is
16-bit starting address of the LPC ROM
enabled),
(memory) address range 2.
00h (if the strap is disabled)
This register contains upper 16-bits of the starting address of the LPC ROM address range 2. The lower 16-bits of
the starting address are considered 0’s. This range can be enabled by setting register 48h, bit 4 or when LPC ROM
is chosen by strap pin.

LPC ROM Address Range 2 (End Address) - RW - 16 bits - [PCI_Reg: 6Eh]
Field Name
Rom End Address 2

Bits
15:0

Default
Description
FFFFh (if iLpc_Rom strap is
16-bit END address of the LPC ROM
enabled),
(memory) address range 2.
00h (if the strap is disabled)
This register contains upper 16-bits of the ending address of the LPC ROM address range 2. The lower 16-bits of
the end address are considered 1’s. This range can be enabled by setting register 48h, bit 4 or when LPC ROM is
chosen by strap pin.

Firmware Hub Select – RW* - 32 bits - [PCI_Reg: 70h]
Field Name
FWH_C0_IDSEL

Bits
3:0

Default
7h

FWH_C8_IDSEL

7:4

6h

FWH_D0_IDSEL

11:8

5h

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

Description
IDSEL for two 512 KB FWH memory ranges. The IDSEL
programmed in this field addresses the following memory
ranges:
FFC0 0000h-FFC7 FFFFh
FF80 0000h-FF87 FFFFh
IDSEL for two 512 KB FWH memory ranges. The IDSEL
programmed in this field addresses the following memory
ranges:
FFC8 0000h-FFCF FFFFh
FF88 0000h-FF8F FFFFh
IDSEL for two 512 KB FWH memory ranges. The IDSEL
programmed in this field addresses the following memory
ranges:
FFD0 0000h-FFD7 FFFFh
FF90 0000h-FF97 FFFFh

LPC ISA Bridge (Device 20, Function 3)
Proprietary

Page 256

Firmware Hub Select – RW* - 32 bits - [PCI_Reg: 70h]
Field Name
FWH_D8_IDSEL

Bits
15:12

Default
4h

Description
IDSEL for two 512 KB FWH memory ranges. The IDSEL
programmed in this field addresses the following memory
ranges:
FFD8 0000h-FFDF FFFFh
FF98 0000h-FF9F FFFFh
FWH_E0_IDSEL
19:16
3h
IDSEL for two 512 KB FWH memory ranges. The IDSEL
programmed in this field addresses the following memory
ranges:
FFE0 0000h-FFE7 FFFFh
FFA0 0000h-FFA7 FFFFh
FWH_E8_IDSEL
23:20
2h
IDSEL for two 512 KB FWH memory ranges. The IDSEL
programmed in this field addresses the following memory
ranges:
FFE8 0000h-FFEF FFFFh
FFA8 0000h-FFAF FFFFh
FWH_F0_IDSEL
27:24
1h
IDSEL for two 512 KB FWH memory ranges. The IDSEL
programmed in this field addresses the following memory
ranges:
FFF0 0000h-FFF7 FFFFh
FFB0 0000h-FFB7 FFFFh
FWH_F8_IDSEL
31:28
0h
Read only.
IDSEL for two 512 KB FWH memory ranges and one 128KB
memory range. This field is fixed at 0000. The IDSEL in this
field addresses the following memory ranges:
FFF8 0000h-FFFF FFFFh
FFB8 0000h-FFBF FFFFh
000E 0000h-000F FFFFh
This register is used to generate the 4-bit IDSEL phase when LPC does read/write to firmware hub memory on LPC
bus. If PCI address falls in certain range, the 4-bit value in the register for that range is used as IDSEL. Every
firmware hub memory on LPC bus has 4 strap pins. If value on those pins matches IDSEL from LPC host, the
memory is selected.
*bit [31:28] read only
Default Value: 01234567h

Alternative Wide IO Range Enable- RW - 32 bits - [PCI_Reg: 74h]
Field Name
Alternative Wide Io
Range Enable

Reserved
Alternative Wide Io 1
Range Enable
Alternative Wide Io 2
Range Enable
Reserved

Bits
0

Default
0b

1
2

0h
0h

3

0h

7:4

00h

Description
Wide IO range is usually 512 bytes. With this bit set, the
range changes to 16 bytes only. To use this feature, address
in reg0x64~65 must be aligned to 16 bytes, i.e., bit[3:0] must
be 0. If the address is not aligned to 16bytes, the IO range is
from address [15:0] to {address [15:4], 0xF}.
Similar to bit 0, but it applies to the IO address defined in
reg0x66~67.
Similar to bit 0, but it applies to the IO address defined in
reg0x90~91.

Miscellaneous Control Bits- RW - 8 bits - [PCI_Reg: 78h]
Field Name
DMA_Enhance

Bits
0

Default
1b

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

Description
1—Turn on the enhancement feature for the DMA function.
This is for better bus efficiency
0—Enhancement off.

LPC ISA Bridge (Device 20, Function 3)
Proprietary

Page 257

Miscellaneous Control Bits- RW - 8 bits - [PCI_Reg: 78h]
Field Name
Msi On

Bits
1

Default
0b

Reserved

31:2

0000_0000h

Description
When this bit is set to 1, it turns on LPC MSI capability. The
following will be true:
* Reg0x04[20] (capabilities list) reads 1.
* Reg0x34[7:0] (capabilities pointer) reads 80h
When this bit is set to 0, it turns off lpc MSI capability. The
following will be true:
* Reg0x04[20] reads 0.
* Reg0x34[7:0] reads 0.

TPM (trusted plant form module) register- RW - 32 bits - [PCI_Reg: 7Ch]
Field Name
Tpm12_en

Tpm_amd

Bits
0

Default
0b

1

0b

Tpm_legacy

2

0b

Tmkbc_enable
Tmkbc_set

3
4

0b
0b

6:5

0h

Tmkbc_sel

Description
When set to 1, it enables decoding of tpm (trusted platform
module) cycles defined in TPM1.2 spec (Refer to the
addresses defined in bit[1] below). Note that tpm12_en and
tpm_legacy are independent bits; they respectively turn on
decoding of different tpm addresses.
This bit is replaced with strap pin K8system (to support AMD
K8 CPU), and no longer in use. It is read only and returns 0.
When the strap is 0, it ONLY supports these normal tpm
cycles. Here are the cycle definition. (Left hand side is
system/software memory address, which is translated to LPC
IO address on the right hand side.)
0xFED4_0xxx --> 0x0xxx
0xFED4_1xxx --> 0x1xxx
0xFED4_2xxx --> 0x2xxx
0xFED4_3xxx --> 0x3xxx
0xFED4_4xxx --> 0x4xxx
When the strap is 1, it ONLY supports these AMD tpm
cycles.
0xFED4_0xxx --> 0x0xxx
0xFED4_1xxx --> 0x1xxx
0xFED4_2xxx --> 0x2xxx
0xFED4_3xxx --> 0x3xxx
0xFD_F920_0000~0xFD_F923_FFFF --> 0x4028
0xFD_F928_0000~0xFD_F928_0003 --> 0x4020
0xFD_F928_0004~0xFD_F928_0007 -->
0x4024~0x4027
When set to 1, it enables decoding of legacy tpm addresses,
i.e., IO addresses 7E/7F and EE/EF will be decoded.
Enable bit for the TMKBC function
Write once bit. Once set, all tmkbc address/remap registers
cannot be changed until the next reset.
There are actually four sets of TMKBC mapping registers.
These two bits select which one of four sets of tmkbc
registers at 84, 88, and 8Ch to be accessed.

Reserved
31:7
0000000h
Note: Any tpm cycle above is decoded only when the cycle is started by ALinkBridge. Access from bus master
devices is not allowed.

MSI Capability Register- R - 32 bits - [PCI_Reg: 80h]
Field Name
CAP ID
CAP Next Pointer
CAP Enable

Bits
7:0
15:8
16

Default
08h
00h
1b

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

Description
CAP ID.
CAP Next Pointer.
CAP Enable.

LPC ISA Bridge (Device 20, Function 3)
Proprietary

Page 258

MSI Capability Register- R - 32 bits - [PCI_Reg: 80h]
Field Name
CAP Fixed
Reserved
CAP Type

Bits
17
26:18
31:27

Default
1b
000h
15h

Description
CAP Fixed.
CAP Type.

TMKBC_BaseAddrLow Register- RW - 32 bits - [PCI_Reg: 84h]
Field Name
Reserved
Addr64

Bits
1:0
2

Default
00b
0b

Description

Defines whether the address is 32 or 64 bits. When this bit =
1, the address is 64 bits; 0 means 32 bits.
MaskBits10thru8
3
0b
Defines whether address bits [10:8] are masked.
1 = Masked
0 = No mask (“masked” means bits 10:8 are don’t care)
MaskBits11thru8
4
0b
Defines whether address bits [11:8] are masked.
1 = Masked
0 = No mask
MaskBits12thru8
5
0b
Defines whether address bits [12:8] are masked.
1 = Masked
0 = No mask
MaskBits13thru8
6
0b
Defines whether address bits [13:8] are masked.
1 = Masked
0 = No mask
TMKBC_BaseAddrLow
31:7
0000000h
This register defines the lower 32 bit memory address used
for the TMKBC function.
There are actually four sets of such mapping (each set consists of register 84h, 88h, and 8Ch). The selection is
controlled by PCI register 7Ch, bits [6:5]. 00 = set 0, 01 = set 1, 10 = set 2, 11 = set 3. Register 7C[6:5] SHOULD
BE PROGRAMMED FIRST BEFORE 84h, 88h, AND 8Ch ARE ACCESSED.

TMKBC_BaseAddrHigh Register- RW - 32 bits - [PCI_Reg: 88h]
Field Name
TMKBC_BaseAddrHig
h

Bits
31:0

Default
00000000h

Description
This register defines the upper 32 bit memory address used
for the TMKBC function. This register has no meaning if bit 2
of 84h is set to 0.
There are actually four sets of such mapping. The selection
is controlled by PCI register 7Ch, bits [6:5].
00 = Set 0
01 = Set 1
10 = Set 2
11 = Set 3
There are actually four sets of such mapping (each set consists of register 84h, 88h, and 8Ch). The selection is
controlled by PCI register 7Ch, bits [6:5]. 00 = Set 0, 01 = Set 1, 10 = Set 2, 11 = Set 3. Register 7C[6:5] SHOULD
BE PROGRAMMED FIRST BEFORE 84h, 88h, AND 8Ch ARE ACCESSED.

TMKBC_Remap Register- RW - 16 bits - [PCI_Reg: 8Ch]
Field Name
Reserved

Bits
7:0

Default
00h

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

Description

LPC ISA Bridge (Device 20, Function 3)
Proprietary

Page 259

TMKBC_Remap Register- RW - 16 bits - [PCI_Reg: 8Ch]
Field Name
TMKBC_Remap

Bits
15:8

Field Name
IO Base Address 2

Bits
15:0

Default
00h

Description
This register defines the remap address [15:8] on the LPC
bus. There are actually four sets of such mapping. The
selection is controlled by PCI register 7Ch, bits [6:5].
00 = Set 0
01 = Set 1
10 = Set 2
11 = Set 3
There are actually four sets of such mapping (each set consists of register 84h, 88h, and 8Ch). The selection is
controlled by PCI register 7Ch, bits [6:5]. 00 = Set 0, 01 = Set 1, 10 = Set 2, 11 = Set 3. Register 7C[6:5] SHOULD
BE PROGRAMMED FIRST BEFORE 84h, 88h, AND 8Ch ARE ACCESSED.

Wide IO 2 Register- RW - 16 bits - [PCI_Reg: 90h]
Default
0000h

Description
16-bit PCI IO base address for wide generic port range. 512
byte wide range. This function is enabled by PCI register
4Bh, bit 1

SPI Base_Addr Register- RW - 16 bits - [PCI_Reg: A0h]
Field Name
Reserved
SPI_BaseAddr

3.1.3

Bits
4:0
31:5

Default
0h
0000000h

Description
This register defines the base address for the SPI ROM
controller

SPI ROM Controller Registers

SPI ROM interface is a new feature added to SB600. SB600 can use SPI ROM as the BIOS ROM as well as
sharing the same physical ROM with a MAC device. In addition, SB600 can act as a SPI-LPC bridge to the
MAC device. In other words, the LAN data can be stored in the LPC/FWH ROM but the MAC can access it
through the SPI interface.
Software can communicate with the SPI ROM through the default memory or alternate program method.
Memory access to the BIOS ROM address space is automatically handled by the hardware. The SPI ROM
controller will translate the memory address onto the SPI bus and access the SPI ROM data. Any other
commands besides memory_read or memory_write to the SPI ROM will need to go through the alternate
program method. In this method, software will need to program the OpCode, SpiAddress, TxByteCount,
RxByteCount, put the data into the transmit FIFO, and then execute the command. The hardware will then
communicate with the SPI ROM using these parameters. This method is needed for the case of erasing the
SPI ROM since SPI ROM has to be erased first before any new data can be written with a separate memory
write command. This is also useful for querying the SPI status and vendor_ID register.

Register Name
SPI_Cntrl0
RestrictedCmd1
RestrictedCmd2
SPI_Cntrl1
SPI_CmdValue0
SPI_CmdValue1
SPI_CmdValue2

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

Offset Address
00h
04h
08h
0Ch
10h
14h
18h

LPC ISA Bridge (Device 20, Function 3)
Proprietary

Page 260

Register Name
SPI_FakeID

Offset Address
1Ch

SPI_Cntrl0 Register- RW - 32 bits - [Mem_Reg 00h]
Field Name
SPI_OpCode

Bits
7:0

Default
00h

TxByteCount
RxByteCount
ExecuteOpCode

11:8
15:12
16

0h
0h
0b

Reserved
SpiArbEnable

18:17
19

00b
1b

FifoPtrClr

20

0b

FifoPtrInc

21

0b

SpiAccessMacRomEn

22

1b

SpiHostAccessRomEn

23

1b

26:24

100b

27

0b

31:28

0h

ArbWaitCount

SpiBridgeDisable
Reserved

Description
When software uses the alternate program method to
communicate with the SPI ROM, this register contains the
OPCODE
Number of bytes to be sent to SPI ROM
Number of bytes to be received from the SPI ROM
Write 1 to execute the transaction in the alternate program
registers. Write 0 has no effect. When the transaction is
complete, this bit will return 0. If the command is an illegal
command, the bit cannot be set and thereby cannot execute
If a MAC is sharing the ROM with the SB, both chips will need
to go through an arbitration process before either one can
access the ROM. This bit enables the arbitration. If MAC is not
sharing the SPI ROM, BIOS should set this bit to 0 to speed up
the SPI ROM access
(write only) A write of 1 to this bit will clear the internal FIFO
pointer
(write only ) A write of 1 to this bit will cause the internal FIFO
pointer to be incremented by 1
This is a clear-once protection bit; once set, software cannot
access MAC’s portion of the ROM space (lower 512KB).
This is a clear-once protection bit; once set, MAC cannot
access BIOS ROM space (upper 512KB)
Under ROM sharing mode (with the MAC) this defines the
amount of wait time this controller will assert HOLD# before it
should access the SPI ROM. This time is to allow the MAC to
sample HOLD#.
Setting this bit will disable the SPI bridge mode (SB600 will act
as a SPI-LPC bridge to the MAC)

SPI_RestrictedCmd1 Register- RW - 32 bits - [Mem_Reg 04h]
Field Name
RestrictedCmd0

RestrictedCmd1
RestrictedCmd2
RestrictedCmd3

Bits
7:0

Default
00h

15:8
23:16
31:24

00h
00h
00h

Description
This defines a restricted command issued by the MAC which
will be checked by the SB600. If the opcode issued by the
MAC matches with this register and the address space is in the
BIOS space, this controller will simply ignore the command for
the case of bridge mode. For peer mode, the SPI controller will
jam the entire interface as an attempt to stop that transaction.
Note either SpiAccessMacRomEn and/or
SpiHostAccessRomEn bit is cleared, these registers become
read only and cannot be changed any more.
Same as RestrictedCmd0
Same as RestrictedCmd0
Same as RestrictedCmd0

SPI_RestrictedCmd2 Register- RW - 32 bits - [Mem_Reg 08h]
Field Name
RestrictedCmd4
RestrictedCmdWoAddr
0

Bits
7:0
15:8

Default
00h
00h

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

Description
Same as RestrictedCmd0
Same as RestrictedCmd0 except this command does not have
address

LPC ISA Bridge (Device 20, Function 3)
Proprietary

Page 261

SPI_RestrictedCmd2 Register- RW - 32 bits - [Mem_Reg 08h]
Field Name
Bits
Default
Description
RestrictedCmdWoAddr
23:16
00h
Same as RestrictedCmd0 except this command does not have
1
address
RestrictedCmdWoAddr
31:24
00h
Same as RestrictedCmd0 except this command does not have
2
address
Note: For these registers either the SpiAccessMacRomEn and/or the SpiHostAccessRomEn bit is cleared;
RestrictedCmdWoAddr1 and RestrictedCmdWoAddr2, become read only and cannot be changed.

SPI_Cntrl1 Register- RW - 32 bits - [Mem_Reg 0Ch]
Field Name
SPIParameters

Bits
7:0

Default
00h

FifoPtr
TrackMacLockEn

10:8
11

000b
0b

NormSpeed

13:12

11b

FastSpeed[1:0]

15:14

01b

WaitClkInterval
SetLockCmd
SetUnlockCmd
ByteProgramCmd

21:16
22
23
31:24

22h
0b
0b
00h

Description
This is the TX/RX FIFO port which can take up to 8 bytes. To
send data to SPI ROM, software writes data into this port. To
retrieve data that are received from the SPI ROM, software
reads from this port.
This three bits show the internal pointer location
When set, the controller will lock the SPI for the MAC when it
has detected a command (from the MAC) matching the value
defined in offset 10h or 11h. Conversely, it will unlock the bus
when it has detected a command (from the MAC) matching the
value defined in offset 12h or 13h
This defines the clock speed for the non-fast read command
00 – Reserved
01 – 33Mhz
10 – 22 Mhz
11 – 16.5Mhz
This defines the clock speed for the fast speed read.
00 – Reserved
01 – 33Mhz
10 – 22 Mhz
11 – 16.5Mhz
Timing parameters used for SPI sharing protocol
Lock the SPI bus on the next transaction
Unlock the SPI bus on the next transaction
This is used to compare against the opcode sent out by the
MAC. This is a predefined value to decode for the BYTE
PROGRAM command.

SPI_CmdValue0 Register- RW - 32 bits - [Mem_Reg 10h]
Field Name
MacLockCmd0

Bits
7:0

Default
06h

Description
This is used to compare against the opcode sent out by the
MAC. If SPI_Cntrl1[11] is set, the controller will lock the SPI
bus for the MAC. In other words, the MAC has the exclusive
access to the ROM; access by the CPU will be delayed until
this is unlocked. This is to allow the MAC to do certain
sequence of operations without interruption.
MacLockCmd1
15:8
20h
Same as MacLockCmd0
MacUnlockCmd0
23:16
04h
This is used to compare against the opcode sent out by the
MAC. If SPI_Cntrl1[11] is set, the controller will unlock the SPI
bus for the MAC. In other words, access by the CPU will be
allowed again.
MacUnlockCmd1
31:24
04h
Same as MacUnlockCmd0
Note Either the SpiAccessMacRomEn and/or the SpiHostAccessRomEn bit is cleared. All of these registers
become read only and cannot be changed.

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

LPC ISA Bridge (Device 20, Function 3)
Proprietary

Page 262

SPI_CmdValue1 Register- RW - 32 bits - [Mem_Reg 14h]
Field Name
WREN

Bits
7:0

Default
06h

Description
This is used to compare against the opcode sent out by the
MAC. This is a predefined value to decode for the WREN (write
enable) command from the MAC. In the bridge mode, SB600
will need to decode commands from the MAC
WRDI
15:8
04h
This is used to compare against the opcode sent out by the
MAC. This is a predefined value to decode for the WRDI (write
disable) command from the MAC.
RDID
23:16
9Fh
This is used to compare against the opcode sent out by the
MAC. This is a predefined value to decode for the RDID (read
ID) command from the MAC
RDSR
31:24
05h
This is used to compare against the opcode sent out by the
MAC. This is a predefined value to decode for the RDSR (read
status register) command from the MAC
Note: Either the SpiAccessMacRomEn and/or the SpiHostAccessRomEn bit is cleared. All of these registers
become read only and cannot be changed.

SPI_CmdValue2 Register- RW - 32 bits - [Mem_Reg 18h]
Field Name

Read

Bits
7:0

Field Name
SPI_FakeID

Bits
7:0

Default
03h

Description
This is used to compare against the opcode sent out by the
MAC. This is a predefined value to decode for the Read (Read
byte) command from the MAC. In the bridge mode, SB600 will
need to decode commands from the MAC
FRead
15:8
0Bh
This is used to compare against the opcode sent out by the
MAC. This is a predefined value to decode for the FRead (fast
read) command from the MAC.
PAGEWR
23:16
0Ah
This is used to compare against the opcode sent out by the
MAC. This is a predefined value to decode for the PAGEWR
(page write) command from the MAC
BYTEWR
31:24
02h
This is used to compare against the opcode sent out by the
MAC. This is a predefined value to decode for the BYTEWR
(byte write) command from the MAC.
Note: Either the SpiAccessMacRomEn and/or the SpiHostAccessRomEn bit is cleared. All of these registers
become read only and cannot be changed.

SPI_FakeID Register- RW - 8 bits - [Offset 1Ch]
Default
FFh

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

Description
This is used as the faked ID value to be returned to the MAC as
a response to the RDID command. This is only used under the
bridge mode.

LPC ISA Bridge (Device 20, Function 3)
Proprietary

Page 263

3.1.4

Features of the LPC Block

Bus Speed: LPC bus—33MHz
Supported peripherals and address:
•

I/O address devices:
• Parallel Ports: 378~37fh, 778~77fh, 278~27fh, 678~67fh, 3bc~3bfh, 7bc~7bfh
• Serial Ports: 3f8~3ffh, 2f8~2ffh, 220~227h, 228~22fh, 238~23fh, 2e8~2efh, 338~33fh, 3e8~3efh
• Audio: 220~233h, 240~253h, 260~273h, 280~293h
• MIDI: 300~301h, 310~311h, 320~321h, 330~331h
• MSS: 530~537h, 604~60bh, e80~e87h, f40~f47h
• FDC: 3f0~3f7h (excluding 3f6h), 370~377h (excluding 376h)
• Game Ports: 200~20fh
• Wide Generic: Can be mapped anywhere in lower 64KB I/O address. 512 bytes wide.
• RTC: 70~73h
• Key Board Controller: 60h, 64h
• ACPI Micro-Controller: 62h, 66h
• Ad-Lib: 388h~389h
• Super I/O Configuration: 2e~2fh
• Alternative Super I/O Configuration: 4e~4fh

•

Memory address devices:
• ROM: supported address is in the range of 0000_0000h~ffff_ffffh
• Firmware Hub Rom: supported address is in one of these two ranges: 000e_0000h~000f_ffffh, or
ffb0_0000~ffff_ffffh

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

LPC ISA Bridge (Device 20, Function 3)
Proprietary

Page 264

3.2

Host PCI Bridge Registers (Device 20, Function 4)

Note: Some PCI 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 PCI functions and the associated registers.

PCI
PCI Stop Clock enable
PCI Bridge Soft Reset Enable
PCI Bus drive strength registers
PCI_Reg:
6Ch

C0h

64h

PCI Bridge (PCIB) has one set of configuration registers in PCI configuration space identified by PCI function
4 on the South Bridge.
Table 3-1 PCI-to-PCI Bridge Configuration Registers Summary

Register Name
Vendor ID
Device ID
PCI Command
PCI Device Status
Revision ID/Class Code
Cache Line Size
Latency Timer
Header Type
Reserved
Primary Bus Number
Secondary Bus Number
Subordinate Bus Number
Secondary Latency Timer
IO Base
IO Limit
Secondary Status
Memory Base
Memory Limit
Prefetchable Memory Base
Prefetchable Memory Limit
IO Base Upper 16 Bits
IO Limit Upper 16 Bits
Capability pointer
Reserved
Interrupt Line
Interrupt Pin
Bridge Control
Chip Control
Diagnostic Control
CLK Control
Arbiter Control and Priority Bits
SMLT Performance
PMLT Performance
PCDMA

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

Offset Address
00h
02h
04h
06h
08h
0Ch
0Dh
0Eh
0Fh
18h
19h
1Ah
1Bh
1Ch
1Dh
1Eh
20h
22h
24h
26h
30h
32h
34h
36h
3Ch
3Dh
3Eh
40h
41h
42h
43h
44h
46h
48h

Host PCI Bridge Registers (Device 20, Function 4)
Proprietary

Page 265

Register Name
Additional Priority
PCICLK Enable Bits
Misc Control
AutoClockRun Control
Dual Address Cycle Enable and PCIB_SCLK_Stop Override
MSI Mapping Capability
Signature Register for Microsoft Rework for Subtractive Decode
Prefetch Timeout Limit
SPCI IDSEL MaskB
Prefetch Size Control
Misc Control

Offset Address
49h
4Ah
4Bh
4Ch
50h
54h
58h
5Ch
5Eh
60h
64h

Vender ID - R - 16 bits - [PCI_Reg: 00h]
Field Name
VID
Vendor ID register

Bits
15:0

Default
1002h

Description
Vendor ID

Device ID - R - 16 bits - [PCI_Reg: 02h]
Field Name
DID
Device ID register

Bits
15:0

Default
4384h

Description
Device ID

Command - RW - 16 bits - [PCI_Reg: 04h]
Field Name
IO Enable

Bits
0

Default
0b

Memory Enable

1

0b

Master Enable

2

0b

Special Enable
Mem Invalidate

3
4

0b
0b

VGA Snoop Enable

5

0b

Parity Error Enable

6

0b

Addr Stepping Enable

7

0b

System Error Enable

8

0b

Fast Back-to-Back
Enable
Reserved
PCI Command register

9

0b

15:10

00h

Description
IO response enable,
0: Disabled,
1: Enabled,
PCIB responses IO space accesses on primary bus.
Memory response enable, ‘0’ disabled, ‘1’ enabled, PCIB
responses memory space accesses on primary bus.
Master enable, ‘0’ disabled, ‘1’ enabled, the ability of PCIB
to act as a PCI bus master on primary bus.
Hardwired to 0 to indicate that PCIB ignores special cycles.
Hardwired to 0 to indicate that PCIB doesn’t issue memory
write and invalidate command by itself.
VGA snoop enable, when ‘0’ VGA palette write transactions
on the primary interface are ignored unless it falls into
PCIB’s IO address range. When ‘1’ VGA palette write
transactions are positively decoded and forwarded
downstream.
Parity Error Response, ‘0’ disables PCIB to assert
P_SERR# and P_PERR# or report Detected Parity Error to
the status register, ‘1’ enables PCIB.
Controls whether or not to do address/data stepping, PCIB
doesn’t. Read Only
SERR# enable, ‘0’ disables PCIB to assert P_SERR# and
report Signaled System Error bit, ‘1’ enables PCIB.
Hardwired to 0 to indicate that PCIB is not capable of
issuing fast back-to-back transactions on the primary bus.
Reserved

Status- RW - 16 bits - [PCI_Reg: 06h]
Field Name
Reserved

Bits
3:0

Default
0h

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

Description
Reserved

Host PCI Bridge Registers (Device 20, Function 4)
Proprietary

Page 266

Status- RW - 16 bits - [PCI_Reg: 06h]
Field Name
Capabilities List

Bits
4

Default
0b

66MHz Capable

5

1b

Reserved
Fast Back-to-Back
Capable
Master Parity Error

6
7

0b
1b

8

0b

9:10

01b

11
12
13
14
15

0b
0b
0b
0b
0b

DevSel Timing
Target Abort
Received Target Abort
Received Master Abort
Master Abort
Parity Error

Description
Read only. This bit is 1 when Offset 40h [3] = 1. At other
time this bit is 0.
0 – Bridge does not support the Capabilities List
1 – Bridge supports the Capabilities List (Offset 34h is the
pointer to the data structure).
Hardwired to 1 to indicate PCIB support of 66MHz primary
interface.
Reserved
Hardwired to 1 to indicate PCIB is capable of accepting fast
back-to-back transactions on the primary bus.
Master Data Parity Error, assertion of P_PERR# (when
PCIB acts as a master) is received, write clears it.
Hardwired to 01b to indicate PCIB will assert DEVSEL# with
medium timing.
Signaled Target Abort, write clears it.
Received Target Abort, write clears it.
Received Master Abort, write clears it.
Signaled System Error bit, write clears it.
Detected Parity Error, PCIB detected a parity error and will
assert P_PERR#, write clears it.

PCI device status register.

Revision ID/Class Code- R - 32 bits - [PCI_Reg: 08h]
Field Name
Revision ID

Bits
7:0

Default
00h

Class Code

31:8

060401h/
060400h

Description
These bits are hardwired to 00h to indicate the revision level
of the chip design (for the SB600).
A class code of 06h indicates a bridge device, a subclass
code of 04h indicates PCI bridge and a programming
interface of ‘01h’ indicates subtractive decoding on primary
bus is supported. Based on Reg0x4B[7], this register is
programmed as positive decode bridge or subtractive
decode bridge.

Revision ID/Class Code register.

Cache Line Size- RW - 8 bits - [PCI_Reg: 0Ch]
Field Name
Cache Line Size
Cache line size register

Bits
7:0

Default
00h

Description
Read Only

Primary Master Latency Timer- RW - 8 bits - [PCI_Reg: 0Dh]
Field Name
Prim Latency Timer

Bits
7:0

Default
00h

Description
Primary master latency timer. Sets the minimum time that
the Primary bus master can retain the ownership of the bus.

Primary Master Latency timer register

Header Type- R - 8 bits - [PCI_Reg: 0Eh]
Field Name
Header Type
Header type register

Bits
7:0

Default
81h

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

Description
Indicates the bridge is a multi-function device.

Host PCI Bridge Registers (Device 20, Function 4)
Proprietary

Page 267

Primary Bus Number- RW - 8 bits - [PCI_Reg: 18h]
Field Name
Primary Bus Number

Bits
7:0

Default
00h

Description
Bus number of the PCI bus to which the primary interface is
connected.

Primary Bus Number register

Secondary Bus Number - RW - 8 bits - [PCI_Reg: 19h]
Field Name
Secondary Bus Number

Bits
7:0

Default
00h

Description
Bus number of the PCI bus to which the secondary interface
is connected.

Secondary Bus Number register

SUBBN- RW - 8 bits - [PCI_Reg: 1Ah]
Field Name
Bits
SubordinateBusNum
7:0
Subordinate Bus Number register

Default
00h

Description
Bus number of the highest numbered PCI bus behind PCIB.

Secondary Latency Timber- RW - 8 bits - [PCI_Reg: 1Bh]
Field Name
Secondary Latency
Timer

Bits
7:0

Default
00h

Description
Secondary Master latency control timer. Sets the minimum
time that the Secondary bus master can retain the
ownership of the bus.

Secondary Master Latency Timer register

IO Base- RW - 8 bits - [PCI_Reg: 1Ch]
Field Name
IO16

Bits
1:0

Default
00b

Reserved
IOBase

3:2
7:4

00b
0h

Description
Indicates a 16-bit IO address space. Read Only
Can be changed to 32-bit when bit[29] of regx48 is set
Reserved
Defines the bits [15:12] of the base address of 16-bit or 32bit IO space.

IO base register

IO Limit- RW - 16 bits - [PCI_Reg: 1Dh]
Field Name
IO16
Reserved
IO Limit
IO Limit register

Bits
1:0

Default
00b

3:2
7:4

00b
0h

Description
Indicates a 16-bit IO address space. Read Only
Can be changed to 32-bit when bit[29] of regx48 is set
Reserved
Defines bits [15:12] of the limit of 16-bit or 32-bit IO space.

Secondary Status- RW - 16 bits - [PCI_Reg: 1Eh]
Field Name
Reserved
Sec 66MHz Capable

Bits
4:0
5

Default
00h
0b

Reserved
Secondary Fast Backto-Back Capable
Secondary Master Data
Parity Error

6
7

0b
1b

8

0b

Secondary DevSel
Timing
Secondary Target Abort

10:9

01b

11

0b

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

Description
Reserved
Indicates PCIB doesn’t support 66MHz secondary interface.
Read Only.
Reserved
Indicates PCIB is capable of accepting fast back-to-back
transactions on the secondary bus. Read Only.
Master Data Parity Error on the secondary bus, assertion of
S_PERR# (when PCIB acts as a master) is received, write
clears it.
DEVSEL# timing, indicates PCIB will assert DEVSEL# with
medium timing on the secondary bus. Read Only.
Signaled Target Abort on the secondary bus, write clears it.

Host PCI Bridge Registers (Device 20, Function 4)
Proprietary

Page 268

Secondary Status- RW - 16 bits - [PCI_Reg: 1Eh]
Field Name
Received Secondary
Target Abort
Received Secondary
Master Abort
Received Serr
Data Parity Error

Bits
12

Default
0b

Description
Received Target Abort on the secondary bus, write clears it.

13

0b

Received Master Abort on the secondary bus, write clears it.

14

0b

15

0b

Received System Error on the secondary bus, PCIB asserts
P_SERR# to propagate the error back to the primary bus,
write clears it.
Detected Parity Error on the secondary bus, PCIB detected
a parity error and will assert S_PERR#, write clears it.

Secondary status register

Memory Base- RW - 16 bits - [PCI_Reg: 20h]
Field Name
Reserved

Bits
3:0

Default
0h

Non Pref Mem Base

15:4

000h

Description
Indicates a non-prefetchable 32-bit memory space. Read
Only
Defines the highest 12 bits ([31:20]) of the base address of
this 32-bit memory space.

Memory base register

Memory Limit- RW - 16 bits - [PCI_Reg: 22h]
Field Name
Reserved

Bits
3:0

Default
0h

Non Pref Mem Limit

15:4

000h

Description
Indicates a non-prefetchable 32-bit memory space. Read
Only.
Defines the highest 12 bits ([31:20]) of the upper limit of this
32-bit memory space.

Memory limit register

Prefetchable Memory Base- RW - 16 bits - [PCI_Reg: 24h]
Field Name
Reserved
Pref Mem Base

Bits
3:0
15:4

Default
0h
000h

Description
Indicates a 32-bit only +memory space. Read Only
Defines the highest 12 bits ([31:20]) of the base address of
this 32-bit memory space.

Prefetchable memory base register

Prefetchable Memory Limit- RW - 16 bits - [PCI_Reg: 26h]
Field Name
Reserved
Perf Mem Limit

Bits
3:0
15:4

Default
0h
000h

Description
Indicates a 32-bit only memory space. Read Only.
Defines the highest 12 bits ([31:20]) of the upper limit of this
32-bit memory space.

Prefetchable memory limit register

IO Base Upper 16 Bits- RW - 16 bits - [PCI_Reg: 30h]
Field Name
IOBase Upper

Bits
15:0

Default
0000h

Description
Top 16 bits of the base address of 32-bit IO transactions.
If the IO address decode mode bit (Regx48 bit[29] ) is clear
then these bits will be zero

IO base upper 16 bits

IO Limit Upper 16 bits- RW - 16 bits - [PCI_Reg: 32h]
Field Name
IOLimit Upper

Bits
15:0

Default
0000h

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

Description
Top 16 bits of the upper limit of 32-bit IO transactions.
If the IO address decode mode bit (Regx48 bit[29] ) is clear
then these bits will be zero

Host PCI Bridge Registers (Device 20, Function 4)
Proprietary

Page 269

IO Limit Upper 16 bits- RW - 16 bits - [PCI_Reg: 32h]
Field Name
IO limit upper 16 bits

Bits

Default

Description

Capabilities Pointer- R - 8 bits - [PCI_Reg: 34h]
Field Name
Capabilities Pointer

Bits
7:0

Default
00h

Description
Enhanced Capability Pointer. Read Only.
Value = 54h when Offset 40h [3] MSI Guide Bit set to ‘1’

Capability Pointer register

Interrupt Line- R - 8 bits - [PCI_Reg: 3Ch]
Field Name
Interrupt Line

Bits
7:0

Default
00h

Description
Interrupt pin routing information, used as communication
window between BIOS and the device driver.

Interrupt Line register

Interrupt Pin- R - 8 bits - [PCI_Reg: 3Dh]
Field Name
Interrupt Pin

Bits
7:0

Default
00h

Description
Interrupt pin usage information. ‘0’ indicates PCIB not
supporting interrupt routing.

Interrupt Pin register

Bridge Control- RW - 16 bits - [PCI_Reg: 3Eh]
Field Name
Parity Error Enable

Bits
0

Default
0b

Serr# Enable

1

0b

ISA_Enable

2

0b

VGA_Enable
VGA 16-bit
decode

3
4

0b
0b

Master Abort Report

5

0b

Secondary Reset

6

0b

Secondary Fast Backto-Back Enable

7

0b

Primary Discard Timer

8

0b

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

Description
Parity Error Response, ‘0’ disables PCIB to assert
P_SERR# and S_PERR# or report Detected Parity Error to
the secondary status register, ‘1’ enables PCIB.
SERR# forward enable, when ‘0’ PCIB doesn’t drive
P_SERR# when it detects S_SERR#.
ISA enable, when ‘0’ no ISA address mode, when ‘1’ ISA
address mode is supported.
VGA enable, ‘0’ disabled, ‘1’ enabled.
This bit only has meaning if either bit 3 (VGA Enable) of this
register, or bit 5 (VGA Palette Snoop Enable) of the
Command Register, is also set to 1, thereby enabling VGA
I/O decoding and forwarding by the bridge.
The status after reset is 0.
This read/write bit enables system configuration software to
select between 10- and 16-bit I/O address decoding for all
VGA I/O register accesses that are forwarded from primary
to secondary.
0 - Execute 10-bit address decodes on VGA I/O accesses.
1 - Execute 16-bit address decodes on VGA I/O
accesses
Master abort mode, ‘0’ does not report master aborts (return
FFFF,FFFFh on reads and discard data on write), ‘1’ reports
master aborts by signaling target abort or by asserting
SERR# if enabled.
Secondary bus reset, ‘0’ disabled, ‘1’ trigger reset.. This bit
can be masked using ACPI PCI config register x6c bit 5
Secondary bus fast back-to-back enable. PCIB is not
capable of issuing fast back-to-back transactions on the
secondary bus. Read Only
Primary Discard Timer configuration, ‘0’ configures the timer
to 15-bit, ‘1’ configures the timer to 10-bit.

Host PCI Bridge Registers (Device 20, Function 4)
Proprietary

Page 270

Bridge Control- RW - 16 bits - [PCI_Reg: 3Eh]
Field Name
Secondary Discard
Timer
Discard Timer Status

Bits
9

Default
0b

10

0b

Discard Timer Serr#
Enable
Reserved
Bridge control register

11

0b

Description
Secondary Discard Timer configuration, ‘0’ configures the
timer to 15-bit, ‘1’ configures the timer to 10-bit.
Discard Timer Status, ‘0’ no discard timer error, ‘1’ discard
timer error.
Discard Timer SERR# enable, ‘0’ disabled, ‘1’ enabled.

15:12

0h

Reserved

CPCTRL- RW - 8 bits - [PCI_Reg: 40h]
Field Name
Reserved
Mem Write Size Ctrl

Bits
0
1

Default
0b
0b

Lock Enable
MSIC ap Enable

2
3

1b
0b

Prefetch Disable for
Upstream Mem Read

4

0b

Description
Reserved
Controls the Memory write size. When set the memory write
size will be cacheline aligned else it will be 32 byte aligned.
Downstream locked transaction enable.
MSI Capability Enable Guide bit. ‘1’ enabled, ‘0’ disabled.
Setting this bit to ‘1’ will change the status of Offset 04h [20]
from ‘0’ to ‘1’
In A11~A13:
0: Prefetch is enabled for upstream normal memory read
(other than read line or read multiple). However, if
reg0x64[7]=0, then this prefetch is still disabled.
1: Prefetch is disabled for upstream normal memory read
(other than read line or read multiple).
In A21 and later versions: Reserved.

Sub Decode Enable
Bridge Lock State

5

0b

7:6

00b

Also refer to reg0x64[7] and reg0x64[21].
This bit is used only when reg0x4B[7] = 1.
1: Subtractive decoding is enabled.
0: Subtractive decoding is disabled.
Bridge secondary master lock states. Read Only
‘00’ – FREE
‘01’ – BUSY
‘10’ – REQ
‘11’ – LOCKED

Chip control register

DCTRL- RW - 8 bits - [PCI_Reg: 41h]
Field Name
Reserved
Timer Test Mode

Bits
0
2:1

Default
0b
00b

Force Parity Error

3

0b

Force Data Parity Error
Force Addr Parity Error
Force Sec Parity Error
Force Prim Parity Error
Diagnostic control register

4
5
6
7

0b
0b
0b
0b

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

Description
Reserved
Timer Test Mode,
‘00’ – normal operation, all bits are exercised.
‘01’ – Byte 1 is exercised.
‘10’ – Byte 2 is exercised.
‘11’ – Byte 0 is exercised.
Force receiving/generating parity error, ‘0’ receiving, ‘1’
generating.
Force data parity error, ‘0’ disabled, ‘1’ enabled.
Force address parity error, ‘0’ disabled, ‘1’ enabled.
Force secondary Parity Error Mode, ‘0’ disabled, ‘1’ enabled.
Force primary Parity Error Mode, ‘0’ disabled, ‘1’ enabled.

Host PCI Bridge Registers (Device 20, Function 4)
Proprietary

Page 271

CLKCTRL- RW - 8 bits - [PCI_Reg: 42h]
Field Name
PCICLKStopEnable

Bits
0

Default
0b

PCICLKStopStatus

1

0b

PCICLK0Enable
PCICLK1Enable
PCICLK2Enable
PCICLK3Enable
P2SControl
S2PControl
Clock control register

2
3
4
5
6
7

1b
1b
1b
1b
0b
0b

Description
33MHz PCICLKs request bit; when ‘1,’ 33 MHz PCI Clocks
are requested to stop.
Read only.
33MHz PCICLKs stop status: ‘1’ stopped, ‘0’ running.
33MHz PCICLK0 enable.
33MHz PCICLK1 enable.
33MHz PCICLK2 enable.
33MHz PCICLK3 enable.
P_CLK domain to S_CLK domain synch-up disable.
S_CLK domain to P_CLK domain synch-up disable.

ARCTRL- RW - 8 bits - [PCI_Reg: 43h]
Field Name
Reserved
ArbiterEnable

Bits
6:0
7

Default
ffh
1b

Description
Reserved
Arbiter enable. ‘0’ disabled to give PCIB the exclusive
ownership of the secondary bus.

Arbiter control register

SMLT_PERF- RW - 16 bits - [PCI_Reg: 44h]
Field Name
SMLT_Perf

Bits
15:0

Default
0000h

Description
Count the total number of a burst being broken into multiple
transactions due to MLT timeout.

Secondary MLT performance register

PMLT_PERF- RW - 16 bits - [PCI_Reg: 46h]
Field Name
PMLT_Perf

Bits
15:0

Default
0000h

Description
Count the total number of a burst being broken into multiple
transactions due to MLT timeout.

Primary MLT performance register

PCDMA- RW - 8 bits - [PCI_Reg: 48h]
Field Name
PCDMA Device Enable
A

Bits
0

Default
0b

Description
Device enable for request 3. Needs to be enabled when
there is a PCDMA device corresponding to request 3

PCDMA Device Enable
B
Fast Back to Back Retry
Enable
Lock Operation Enable

1

0b

2

0b

Device enable for request 4. Heeds to be enabled when
there is a PCDMA device corresponding to request 4
Retry Fast Back to Back transactions on Write buffer full.

3

1b

7:4

00h

Reserved

When reg0x40[2]=1, this bit should be set to 1 for the proper
operation of the PCI LOCK# function.
Reserved

PCDMA device Enable bits

Additional Priority- Bits RW - 8 bits - [PCI_Reg: 49h]
Field Name
Reserved
PCDMA Priority
Reserved
Priority Bits

Bits

Default

0
1

0b
0b

If enabled includes PCDMA request into high priority list

7:2

00h

Reserved

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

Description

Host PCI Bridge Registers (Device 20, Function 4)
Proprietary

Page 272

PCICLK Enable Bits- RW - 8 bits - [PCI_Reg: 4Ah]
Field Name
PCICLK4Enable
PCICLK5Enable
PCICLK6Enable
PCICLK7Enable
Reserved
PCICLK Enable bits

Bits
0
1
2
3
7:4

Default
1b
1b
1b
1b
3h

Field Name
GNT Bus Idle check
enable
Memory Read Burst
Size

Bits
0

Default
0b

4:1

0h

Description
33MHz PCICLK4 enable.
33MHz PCICLK 5 enable.
33MHz PCICLK 6 enable.
33MHz PCICLK 7 enable.
Reserved

Misc Control RW - 8 bits - [PCI_Reg: 4Bh]

IOMode

5

0b

MemReadCmdMatch

6

0b

SubDecodeEnable

7

0b

Description
When enabled, the PCI arbiter checks for the Bus Idle
before asserting GNT#.
Specifies up to how many double words burst to support
during an upstream or downstream memory read.
[4:1] =
1xxx: Burst up to 16 double words
01xx: Burst up to 8 double words
001x: Burst up to 4 double words
0001: Burst up to 2 double words
Others: Burst up to 8 double words
Note 1: It has no effect on a downstream normal memory
read (other than read line and read multiple), which has no
burst in this design.
Note 2: It has no effective on an upstream memory read if
the read is prefetchable as specified by reg0x64[7],
reg0x64[21], and reg0x40[4], because a prefetchable read
can have unlimited burst.
Control bit to change the IO addressing mode to 32/16 bit.
0 – 16 bits;
1 – 32 bit.
Control bit to enable the match of memory read/memory
read line commands when there is a read command in the
delay queue.
Control bit for the subtractive decode status (09h).
0 – No subtractive decode;
1 – Whether the subtractive decode is enabled depends on
reg0x40[5].

Misc control Register

AutoClockRun control RW - 32 bits - [PCI_Reg: 4Ch]
Field Name
Autoclkrun Enable
Autoclkrun count

Bits
0
31:1

Default
0b
0000_000
0h

Description
Enables the auto clkrun functionality
Number of cycles after which the secondary clock stops
when clkrun is enabled

Auto ClockRun control register

Dual Address Cycle Enable and PCIB_CLK_Stop Override - RW - 16 bits - [PCI_Reg: 50h]
Field Name
PCIB_Dual_EN_up

Bits
0

Default
0b

PCIB_Dual_EN_dn

1

0b

5:2

0h

Reserved

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

Description
Enables decoding of Dual Address Cycle on secondary side
for upstream memory transactions
Enables decoding of Dual Address Cycle on secondary side
for downstream memory transactions

Host PCI Bridge Registers (Device 20, Function 4)
Proprietary

Page 273

Dual Address Cycle Enable and PCIB_CLK_Stop Override - RW - 16 bits - [PCI_Reg: 50h]
Field Name
ClkrunOvrridePCICLK

Bits
6

Default
0b

Description
When set, overrides the CLKRUN# and 33MHz PCICLK
continues to run.
ClkrunOvrridePCICLK1
7
0b
When set, overrides the CLKRUN# and 33MHz PCICLK1
continues to run.
ClkrunOvrridePCICLK2
8
0b
When set, overrides the CLKRUN# and 33MHz PCICLK2
continues to run.
ClkrunOvrridePCICLK3
9
0b
When set, overrides the CLKRUN# and 33MHz PCICLK3
continues to run.
ClkrunOvrridePCICLK4
10
0b
When set, overrides the CLKRUN# and 33MHz PCICLK4
continues to run.
ClkrunOvrrideLPCCLK
11
0b
When set, overrides the CLKRUN# and LPCCLK continues
to run.
ClkrunOvrrideLPCCLK1
12
0b
When set, overrides the CLKRUN# and LPCCLK1 continues
to run
ClkrunOvrridePCICLK7
13
0b
When set, overrides the CLKRUN# and 33MHz PCICLK7
continues to run.
ClkrunOvrridePCICLK8
14
0b
When set, overrides the CLKRUN# and 33MHz PCICLK8
continues to run.
ClkrunOvrridePCICLK9
15
0b
When set, overrides the CLKRUN# and 33MHz PCICLK9
continues to run.
Dual Address Cycle Enable and PCIB_CLK_Stop Override

MSI Mapping Capability – R - 32 bits - [PCI_Reg: 54h]
Field Name
MSI Cap ID
MSI Cap Pointer
MSI Cap Enable
MSI Fixed
MSI Reserved
MSI CapType
MSI Mapping Capability

Bits
7:0
15:8
16
17
26:18
31:27

Default
08h
00h
1b
1b
000h
15h

Description
MSI Capability ID
MSI Capabilities Pointer
MSI Capabilities Enable
MSI Fixed
Reserved
MSI Capability Type

Signature Register for Microsoft Rework for Subtractive Decode

- R - 32 bits - [PCI_Reg: 58h]
Field Name
Signature Register for
Microsoft Rework
for Subtractive Decode

Bits
31:0

Default
00000000
h

Description
When Microsoft Rework for Subtractive Decode is done,
this register will contain the signature value

Signature Register for Microsoft Rework for Subtractive Decode

Prefetch Timeout Limit - 16 bits - [PCI_Reg: 5Ch]
Field Name
Prefetch Timeout Limit

Bits
15:0

Field Name
PCI IDSEL MaskB

Bits
15:0

Default
0085h

Description
When deep prefetch is enabled (reg0x64[7]=1), this timer
determines when to flush the staled data in the buffer. Each
count is 30ns

SPCI IDSEL MaskB - 16 bits - [PCI_Reg: 5Eh]
Default
FFFFh

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

Description
Each bit represents the masking the specific device on the
PCI bus. The purpose of this register is to hide the device
from OS
0—The corresponding IDSEL bit is masked
1—The corresponding IDSEL bit is not masked.

Host PCI Bridge Registers (Device 20, Function 4)
Proprietary

Page 274

Prefetch Size Control - 32 bits - [PCI_Reg: 60h]
Field Name
Read Size
Read Size Adjustment
Read Line Size
Read Line Adjustment
Read Multiple Size
Read Multiple
Adjustment
Prefetch Size Lower
Limit
Reserved
Prefetch Size Upper
Limit
Reserved
Prefetch Size Mlt
Enable

Bits
2:0

Default
2h

3

1b

6:4

4h

7

1b

10:8

6h

11

1b

14:12

0h

Description
If prefetch function is enabled, this defines the number of
initial prefetch cachelines for a PCI READ command
When set, PCIBridge will adjust the prefetch size for READ
automatically. If this bit is 0, then the prefetch size is always
defined by bits [2:0]
If prefetch function is enabled, this defines the number of
initial prefetch cachelines for a PCI READLINE command
When set, PCIBridge will adjust the prefetch size for
READ_LINE automatically. If this bit is 0, then the prefetch
size is always defined by bits [6:4]
If prefetch function is enabled, this defines the number of
initial prefetch cachelines for a PCI READ_MULTIPLE
command
When set, PCIBridge will adjust the prefetch size for
READ_MULTIPLE automatically. If this bit is 0, then the
prefetch size is always defined by bits [10:8]
The lower limit of the adjusted prefetch size.

15
18:16

0b
7h

The upper limit of the adjusted prefetch size.

19
20

0b
1b

This also controls how PCIBridge adjusts the auto-prefetch
size. When set, PCIBridge will only adjust the prefetch size
if it knows it does not have enough or has too much data in
the prefetch buffer. Recommendation is to always set this
bit.

Reserved
31:21
0h
The fields in this register are effective only when prefetch is enabled (reg0x64[7]=1).

Misc Control Register - 32 bits - [PCI_Reg: 64h]
Field Name
Downstream Config
Cycle Flush Enable
Downstream Write
Cycle Flush Enable
Downstream Read
Cycle Flush Enable
Prefetch Buffer Timeout
Enable
AB Masking Prefetch
Request Enable
AB Masking Nonprefetch Request
Enable
Downstream Cycle
Flush Control

Bits
0

Default
0h

1

1h

2

0h

3

1h

4

1h

5

1h

6

0h

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

Description
When this bit is 1, any downstream config cycle will flush all
the upstream read prefetch buffers.
When this bit is 1, any downstream non-config write cycle
will flush all the upstream read prefetch buffers.
When this bit is 1, any downstream non-config read cycle
will flush all the upstream read prefetch buffers.
When this bit is 1, upstream read prefetch buffer timeout
mechanism is enabled. If data stay in a buffer longer than
the time specified in Prefetch Timeout Limit (Reg5Ch), the
buffer will be flushed.
The purpose of this is to improve the internal bus efficiency
and the recommendation is to have it set to 1
The purpose of this is to improve the internal bus efficiency
and the recommendation is to have it set to 1
0—If a downstream cycle is qualified to flush upstream
prefetch read buffer (depending on bit[2:0] in this register),
the flush happens when the cycle is sent out onto PCI bus
with at least one data phase..
1—If a downstream cycle is qualified to flush upstream
prefetch read buffer (depending on bit[2:0] in this register),
the flush happens as soon as the cycle arrives at PCI bus.

Host PCI Bridge Registers (Device 20, Function 4)
Proprietary

Page 275

Misc Control Register - 32 bits - [PCI_Reg: 64h]
Field Name
Prefetch Enable For
Upstream Read Line
and Read Multiple

Bits
7

Default
1h

PCI5 Enable

8

0h

Arbiter 2 Enable

9

0h

Hold Current Grant

10

0h

Single Cycle Prefetch
Control

11

1h

Fast Grant Deassert En

12

0b

20:13
21

0h
0h

Reserved
Prefetch Disable for
Upstream Mem Read

Description
0: Prefetch is disabled for upstream memory read line and
memory read multiple.
1: Prefetch is enabled for upstream memory read line and
memory read multiple.
Also refer to reg0x40[4] and reg0x64[21].
Setting this bit will enable PCIGNT5#/PCIREQ5# and
PCICLK7.
Note: These three pins are all using this single configuration
bit to enable them into PCI functionality. Care should
therefore be taken to ensure that they are used as intended.
Since PCICLK7 is not programmed as PCICLK by default,
the BIOS needs exercise a certain sequence in order to
make the clock valid. For more information consult the AMD
SB600 Register Programming Requirements guide.
Enables the use of the new PCI bus arbiter to replace the
old arbiter.
When set, PCIGNT# will not be deasserted until the
requesting agent deasserts its PCIREQ#. This only applies
to the new PCI bus arbiter
If a prefetch read cycle comes from SPCI bus, prefetching
may not be necessary if the cycle is single data phase. PCIB
can optionally treat the single cycle as non-prefetch and only
asks for one dword from AB.
1—Turn on the ability to treat single data phase cycle as
non-prefetch cycle.
0—Turn off the ability to treat single data phase cycle as
non-prefetch cycle.
This control bit applies only to the old (default) PCI arbiter.
Normally PCIGNT# is deasserted two clocks after PCIREQ#
deasserts. With this bit set, PCIGNT# will deassert 1 clock
after PCIREQ# deasserts. Recommendation is to have this
bit set.
In A11~A13: Reserved.
In A21 and later versions:
0: Prefetch is enabled for upstream normal memory read
(other than read line or read multiple). However, if
reg0x64[7]=0, then this prefetch is still disabled.
1: Prefetch is disabled for upstream normal memory read
(other than read line or read multiple).
Also refer to reg0x40[4] and reg0x64[7].

Reserved

31:22

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

0h

Host PCI Bridge Registers (Device 20, Function 4)
Proprietary

Page 276

4 Register Descriptions: General Purpose Functions/Interrupt
Controllers/Support Function Pins
4.1

GPIO/GPOC

Note: Some GPIO 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 GPIO functions and the associated registers.

4.1.1

GPIO

The GPIO pins, with the exception of GPIO0/2/10, cannot generate any events. The three lines of
GPIO0/2/10 can act either as GPIO lines or generate events. Refer to section 4.2.2 on how to program them
as event lines. The power-on default of the GPIO pins is GPI, but the BIOS can configure that to GPO.
Hardware strap can also enable the GPIO pins as dedicated functional pins if they are multi-functional pins.
Table 4-1: GPIO Pins
Pin Name
(Note 1)

Multi-function
Selection

Output Enable
(On SMBus
Controller)
Bus 00h/ Dev14h/
Fun00

Input if GPI
(On SMBus
Controller)
Bus 00h/
Dev14h/ Fun00

Output if GPO
(On SMBus
Controller)
Bus 00h/
Dev14h/ Fun00

Power
Domain

GPIO0/
SSMUXSEL/
SATA_IS3#

PM IO Reg60h[Bit 7]
0: SSMUXSEL
1: GPIO if not used by
SATA

Reg80h[Bit 4]
0: Output
1: Input (Tri-state)

Reg81h[Bit 0]

Reg80h[Bit 0]

S0

GPIO1/
ROM_CS#

If the chip is strapped
to use the ROM option
on the PCI bus, this
GPIO becomes
ROM_CS#

Reg80h[Bit 5]
0: Output
1: Input (Tri-state)

Reg81h[Bit 1]

Reg80h[Bit 1]

S0

GPIO2/
SPKR

PM IO Reg60h[Bit 5]
0: GPIO
1: SPKR

Reg80h[Bit 6]
0: Output
1: Input (Tri-state)

Reg81h[Bit 2]

Reg80h[Bit 2]

S0

GPIO3/
FAN0

PM IO Reg60h[Bit 6]
0: GPIO
1: FAN0

Reg80h[Bit 7]
0: Output
1: Input (Tri-state)

Reg81h[Bit 3]

Reg80h[Bit 3]

S0

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

GPIO/GPOC
Proprietary

Page 277

Pin Name
(Note 1)

Multi-function
Selection

Output Enable
(On SMBus
Controller)
Bus 00h/ Dev14h/
Fun00

Input if GPI
(On SMBus
Controller)
Bus 00h/
Dev14h/ Fun00

Output if GPO
(On SMBus
Controller)
Bus 00h/
Dev14h/ Fun00

Power
Domain

GPIO4/
SMARTVOLT/
SATA_IS2#

SMBus Reg5Eh[Bit 7]
0: GPIO if not used by
SATA
1: SMARTVOLT

RegA9h[Bit 0]
0: Output
1: Input (Tri-state)
*Note 2

RegAAh[Bit 0]
*Note 3

RegA8h[Bit 0]

S0

GPIO5/
SHUTDOWN#/
SMARTVOLT2

SMBus Reg9Ah[Bit7]
1 – SMARTVOLT2
0 – use
PMIO_59h[Bit5] to set
function
PM IO Reg59h[Bit 5]
0: GPIO
1: SHUTDOWN#

SMBus Reg9Ah[7]=0
RegA9h[Bit 1]
0: Output
1: Input (Tri-state)
*Note 2

RegAAh[Bit 1]
*Note 3

RegA8h[Bit 1]

S0

GPIO6/
GHI#/
SATA_IS1#

PM IO Reg60h[Bit 7]
0: GHI#
1: GPIO if not used by
SATA

RegA9h[Bit 2]
0: Output
1: Input (Tri-state)
*Note 2

RegAAh[Bit 2]
*Note 3

RegA8h[Bit 2]

S0

GPIO7/
WD_PWRGD

Strap on PCI AD [23]
0: GPIO
1: WD_PWRGD

RegA9h[Bit 3]
0: Output
1: Input (Tri-state)
*Note 2

RegAAh[Bit 3]
*Note 3

RegA8h[Bit 3]

S0

GPIO8/
DDC1_SDA

Input/Output pin only

Reg A9h[Bit 4]
0: Output
1: Input (Tri-state)
*Note 2

Reg AAh[Bit 4]
*Note 3

Reg A8h[Bit 4]

S0

GPIO9/
DDC1_SCL

Input/Output pin only

Reg A9h[Bit 5]
0: Output
1: Input (Tri-state)
*Note 2

Reg AAh[Bit 5]
*Note 3

Reg A8h[Bit 5]

S0

GPIO10/
SATA_IS0#

GPIO if not used by
SATA

Reg ABh[Bit 1]
0: Output
1: Input (Tri-state)

Reg ABh[Bit 2]

Reg ABh[Bit 0]

S0

GPIO11/
SPI_DO

SMBus RegABh[Bit 6]
0: SPI_DO
1: GPIO

Reg A9h[Bit 6]
0: Output
1: Input (Tri-state)
*Note 2

Reg AAh[Bit 6]
*Note 3

Reg A8h[Bit 6]

S0

GPIO12/
SPI_DI

SMBus RegABh[Bit 7]
0: SPI_DI
1: GPIO

Reg A9h[Bit 7]
0: Output
1: Input (Tri-state)
*Note 2

Reg AAh[Bit 7]
*Note 3

Reg A8h[Bit 7]

S0

GPIO13/
LAN_RST#

SMBus Reg83h[Bit 4]
0: LAN_RST#
1: GPIO

Reg 82h[Bit 4]
0: Output
1: Input (Tri-state)

Reg 83h[Bit 0]

Reg 82h[Bit 0]

S0

GPIO14/
ROM_RST#

SMBus Reg83h[Bit 5]
0: ROM_RST#
1: GPIO

Reg 82h[Bit 5]
0: Output
1: Input (Tri-state)

Reg 83h[Bit 1]

Reg 82h[Bit 1]

S0

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

GPIO/GPOC
Proprietary

Page 278

Pin Name
(Note 1)

Multi-function
Selection

Output Enable
(On SMBus
Controller)
Bus 00h/ Dev14h/
Fun00

Input if GPI
(On SMBus
Controller)
Bus 00h/
Dev14h/ Fun00

Output if GPO
(On SMBus
Controller)
Bus 00h/
Dev14h/ Fun00

Power
Domain

GPIO[30:15]/
IDE_D[15:0]

SMBus Reg62h[Bit 7]
0: IDE_D
1: GPIO

RegA2h[Bit15:0]
0: Output
1: Input (Tri-state)
*Note 5

RegA4h[Bit15:0]

RegA0h[Bit15:
0]

S0

GPIO31/
SPI_HOLD#

SMBus Reg83h[Bit 6]
0: SPI_HOLD#
1: GPIO

Reg 82h[Bit 6]
0: Output
1: Input (Tri-state)

Reg 83h[Bit 2]

Reg 82h[Bit 2]

S0

GPIO32/
SPI_CS#

SMBus Reg83h[Bit 7]
0: SPI_CS#
1: GPIO

Reg 82h[Bit 7]
0: Output
1: Input (Tri-state)

Reg 83h[Bit 3]

Reg 82h[Bit 3]

S0

GPIO33/
INTE#

SMBus RegBDh[Bit 4]
0: INTE#
1: GPIO
*Note 4

RegBCh[Bit 4]
0: Output
1: Input (Tri-State)

RegBDh[Bit 0]
*Note 4

RegBCh[Bit 0]

S0

GPIO34/
INTF#

SMBus RegBDh[Bit 5]
0: INTF#
1: GPIO
*Note 4

RegBCh[Bit 5]
0: Output
1: Input (Tri-State)

RegBDh[Bit 1]
*Note 4

RegBCh[Bit 1]

S0

GPIO35/
INTG#

SMBus RegBDh[Bit 6]
0: INTG#
1: GPIO
*Note 4

RegBCh[Bit 6]
0: Output
1: Input (Tri-State)

RegBDh[Bit 2]
*Note 4

RegBCh[Bit 2]

S0

GPIO36/
INTH#

SMBus RegBDh[Bit 7]
0: INTH#
1: GPIO
*Note 4

RegBCh[Bit 7]
0: Output
1: Input (Tri-State)

RegBDh[Bit 3]
*Note 4

RegBCh[Bit 3]

S0

GPIO37/
DPSLP_OD#

SMBus RegA7h[Bit 4]
0: DPSLP_OD#
1: GPIO

Reg A6h[Bit 4]
0: Output enable
1: Input (Tri-state)

RegA7h[Bit 0]

RegA6h[Bit 0]

S0

GPIO38/
AC_BITCLK

PM IO Reg59h[Bit 1:0]
00/01/10: AC97 port
11: GPIO

Extend Reg 05h[Bit 1]
0: Output enable
1: Input (Tri-state)

Extend Reg
03h[Bit 1]

Extend Reg
07h[Bit 1]

S0

GPIO39/
AC_SDOUT

PM IO Reg59h[Bit 1:0]
00/01/10: AC97 port
11: GPIO

Extend Reg 05h[Bit 3]
0: Output enable
1: Input (Tri-state)

Extend Reg
03h[Bit 3]

Extend Reg
07h[Bit 3]

S0

GPIO40/
AC_SYNC

PM IO Reg59h[Bit 1:0]
00/01/10: AC97 port
11: GPIO

Extend Reg 05h[Bit 2]
0: Output enable
1: Input (Tri-state)

Extend Reg
03h[Bit 2]

Extend Reg
07h[Bit 2]

S0

GPIO41/
SPDIF_OUT/
PCICLK7

PCIB Reg64h[Bit 8]
0: GPIO or AC97 port
1: PCICLK7
PM IO Reg59h[Bit 0]
0: AC97 port
1: GPIO

Extend Reg 05h[Bit 4]
0: Output enable
1: Input (Tri-state)

Extend Reg
03h[Bit 4]

Extend Reg
07h[Bit 4]

S0

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

GPIO/GPOC
Proprietary

Page 279

Pin Name
(Note 1)

Multi-function
Selection

Output Enable
(On SMBus
Controller)
Bus 00h/ Dev14h/
Fun00

Input if GPI
(On SMBus
Controller)
Bus 00h/
Dev14h/ Fun00

Output if GPO
(On SMBus
Controller)
Bus 00h/
Dev14h/ Fun00

GPIO42/
ACZ_SDIN0

SMBus Extend Reg
00h[Bit1:0]
00/11: GPIO port
01: AC97 port
10: HD Audio port

Extend Reg 04h[Bit 0]
0: Output enable
1: Input (Tri-state)

Extend Reg
02h[Bit 0]

Extend Reg
06h[Bit 0]

S0

GPIO43/
ACZ_SDIN1

SMBus Extend Reg
00h[Bit3:2]
00/11: GPIO port
01: AC97 port
10: HD Audio port

Extend Reg 04h[Bit 1]
0: Output enable
1: Input (Tri-state)

Extend Reg
02h[Bit 1]

Extend Reg
06h[Bit 1]

S0

GPIO44/
ACZ_SDIN2

SMBus Extend Reg
00h[Bit5:4]
00/11: GPIO port
01: AC97 port
10: HD Audio port

Extend Reg 04h[Bit 2]
0: Output enable
1: Input (Tri-state)

Extend Reg
02h[Bit 2]

Extend Reg
06h[Bit 2]

S0

GPIO45/
AC_RST#

PM IO Reg59h[Bit 1:0]
00/01/10: AC97 port
11: GPIO

Extend Reg 05h[Bit 0]
0: Output enable
1: Input (Tri-state)

Extend Reg
03h[Bit 0]

Extend Reg
07h[Bit 0]

S0

GPIO46/
AZ_SDIN3

SMBus Extend Reg
00h[Bit7:6]
00/11: GPIO port
01: N/A
10: HD Audio port

Extend Reg 04h[Bit 3]
0: Output enable
1: Input (Tri-state)

Extend Reg
02h[Bit 3]

Extend Reg
06h[Bit 3]

S0

GPIO47/
SPI_CLK

SMBus RegA7h[Bit 6]
0: SPI_CLK
1: GPIO

Reg A6h[Bit 6]
0: Output
1: Input (Tri-state)

Reg A7h[Bit 2]

Reg A6h[Bit 2]

S0

GPIO48/
FANOUT1

PM IO Reg60h[Bit 2]
0: GPIO
1: FANOUT1

Reg A6h[Bit 7]
0: Output
1: Input (Tri-state)

Reg A7h[Bit 3]

Reg A6h[Bit 3]

S0

GPIO49/
FANOUT2

PM IO Reg60h[Bit 3]
0: GPIO
1: FANOUT2

Reg 50h[Bit 4]
0: Output
1: Input (Tri-state)

Reg 51h[Bit 0]

Reg 50h[Bit 0]

S0

GPIO50/
FANIN0

PM2 IO Reg31h[Bit 0]
0: GPIO
1: FANIN0

Reg 50h[Bit 5]
0: Output
1: Input (Tri-state)

Reg 51h[Bit 1]

Reg 50h[Bit 1]

S0

GPIO51/
FANIN1

PM2 IO Reg36h[Bit 0]
0: GPIO
1: FANIN1

Reg 50h[Bit 6]
0: Output
1: Input (Tri-state)

Reg 51h[Bit 2]

Reg 50h[Bit 2]

S0

GPIO52/
FANIN2

PM2 IO Reg3Bh[Bit 0]
0: GPIO
1: FANIN2

Reg 50h[Bit 7]
0: Output
1: Input (Tri-state)

Reg 51h[Bit 3]

Reg 50h[Bit 3]

S0

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

Power
Domain

GPIO/GPOC
Proprietary

Page 280

Pin Name
(Note 1)

Multi-function
Selection

Output Enable
(On SMBus
Controller)
Bus 00h/ Dev14h/
Fun00

Input if GPI
(On SMBus
Controller)
Bus 00h/
Dev14h/ Fun00

Output if GPO
(On SMBus
Controller)
Bus 00h/
Dev14h/ Fun00

GPIO[60:53]/
VIN[7:0]

PM2 IO Reg57h[Bit
7:6] [Bit5:4] Bit[3:2] Bit
1:0] Reg56h[Bit 7:6]
[Bit5:4] Bit[3:2] Bit 1:0]
00: GPIO
01/10/11: VIN

Reg 54h[Bit 7:4]
Reg 52h[Bit 7:4]
0: Output
1: Input (Tri-state)

Reg 55h[Bit 3:0]
Reg 53h[Bit 3:0]

Reg 54h[Bit
3:0]
Reg 52h[Bit
3:0]

S0

GPIO[63:61]/
TEMPIN[2:0]

PM2 IO Reg42h[Bit
5:4] [Bit 3:2] [Bit 1:0]
00: GPIO
01/10/11: TEMPIN

Reg 56h[Bit 6:4]
0: Output
1: Input (Tri-state)

Reg 57h[Bit 2:0]

Reg 56h[Bit
2:0]

S0

GPIO64/
TEMPIN3/
TALERT#

PM2 IO Reg42h[Bit
7:6]
00: GPIO or TALERT#
01/10/11: TEMPIN3

Reg 56h[Bit 7]
0: Output
1: Input (Tri-state)

Reg 57h[Bit 3]

Reg 56h[Bit 3]

S0

GPIO65/
BMREQ#/
REQ5#

PCIB Reg64h[Bit 8]
0: GPIO or BMREQ#
1: REQ5#
SMBus Reg64h[Bit 5]
0: GPIO
1: BMREQ#

Reg 7Eh[Bit 4]
0: Output
1: Input (Tri-state)

Reg 7Fh[Bit 0]

Reg 7Eh[Bit 0]

S0

GPIO66/
LLB#

PM IO Reg68h[Bit 5]
0: GPIO
1: LLB#

Reg 7Eh[Bit 5]
0: Output
1: Input (Tri-state)

Reg 7Fh[Bit 1]

Reg 7Eh[Bit 1]

S5

GPIO67/
SATA_ACT#

SMBus RegACh[Bit 3]
0: SATA_ACT#
1: GPIO

Reg ACh[Bit 1]
0: Output
1: Input (Tri-State)

Reg ACh[Bit 2]

Reg ACh[Bit 0]

S0

GPIO68/
LDRQ1#/
GNT5#

PCIB Reg64h[Bit 8]
0: GPIO if not used by
LPC
1: GNT5#

Reg 7Eh[Bit 6]
0: Output
1: Input (Tri-State)

Reg 7Fh[Bit 2]

Reg 7Eh[Bit 2]

S0

GPIO69/
RTC_IRQ#

GPIO if internal RTC

Reg 7Eh[Bit 7]
0: Output
1: Input (Tri-State)

Reg 7Fh[Bit 3]

Reg 7Eh[Bit 3]

S5

GPIO70/
REQ3#

SMBus Reg5Bh[Bit 4]
0: REQ3#
1: GPIO

Reg 5Ah[Bit 4]
0: Output
1: Input (Tri-state)

Reg 5Bh[Bit 0]

Reg 5Ah[Bit 0]

S0

GPIO71/
REQ4#

SMBus Reg5Bh[Bit 5]
0: REQ4#
1: GPIO

Reg 5Ah[Bit 5]
0: Output
1: Input (Tri-state)

Reg 5Bh[Bit 1]

Reg 5Ah[Bit 1]

S0

GPIO72/
GNT#3

SMBus Reg5Bh[Bit 6]
0: GNT3#
1: GPIO

Reg 5Ah[Bit 6]
0: Output
1: Input (Tri-state)

Reg 5Bh[Bit 2]

Reg 5Ah[Bit 2]

S0

GPIO73/
GNT4#

SMBus Reg5Bh[Bit 7]
0: GNT4#
1: GPIO

Reg 5Ah[Bit 7]
0: Output
1: Input (Tri-state)

Reg 5Bh[Bit 3]

Reg 5Ah[Bit 3]

S0

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

Power
Domain

GPIO/GPOC
Proprietary

Page 281

Pin Name
(Note 1)

Multi-function
Selection

Output Enable
(On SMBus
Controller)
Bus 00h/ Dev14h/
Fun00

Input if GPI
(On SMBus
Controller)
Bus 00h/
Dev14h/ Fun00

Output if GPO
(On SMBus
Controller)
Bus 00h/
Dev14h/ Fun00

Power
Domain

Notes:
1–In this table, the “GPIO” portion of the pin name has been put at the front of the names for the sake of clarity, making the pin names
different from how they appear in the AMD SB600 Databook.
2–Register A9h[7:0] is addressed as A8[15:8] in some AMD documents.
3–Register AAh[7:0] is addressed as A8[23:16] in some AMD documents.
4–Register BDh[7:0] is addressed as BCh[15:8] in some AMD documents.
5–Register 0A2h[15:0] is addressed as 0A0h[31:16] in some AMD documents.

4.1.2

GPOC

The two pairs of GPOC[3:2] and GPOC[1:0] pins are multi-purpose pins. They can be used as SMBus data
and clock pins or general purpose input/output pins. When used as output pins, they are open collectors and
need pull-up resistors for output high. Input/output programming is accomplished through the register pair
C50h/C51h in index/data mode.
GPOC[3:2] pins are in the S5 power plane. GPOC[1:0] pins are in the S0 power plane.
The index register 12h is used to access GPOC pins and is defined as follows:
Table 4-2: GPOC Pins
IO C50h/C51h
index 12h
Bit
0

Field Name

Default

Description

GPOC0 Status

--

GPOC0 Input read status

1

GPOC1 Status

--

GPOC1 Input read status

2

GPOC0_OE

1

0 = GPOC0 is asserted low
1 = GPOC0 is tri-state

3

GPOC1_OE

1

0 = GPOC1 is asserted low
1 = GPOC1 is tri-state

4

GPOC2 Status

--

GPOC2 Input read status

5

GPOC3 Status

--

GPOC3 Input read status

6

GPOC2_OE

1

0: GPOC2 is asserted low
1: GPOC2 is tri-state

7

GPOC3_OE

1

0: GPOC3 is asserted low
1: GPOC3 is tri-state

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

GPIO/GPOC
Proprietary

Page 282

4.2

GEVENT/GPE/GPM/ExtEvent

4.2.1

GEVENT as GPIO

GEVENT[1:0] are inputs only. Their status can be read from PM I/O Reg 92h Bit[1:0].
GEVENT[7:2] can be programmed either as GPIO lines or as GPE lines (see section 4.2.2).
ƒ

PM I/O Reg 91h Bit[7:2] defines GEVENT[7:2] pins as output or input
0: Enable output
1: Tris-tate (input)
For GEVENT pins defined as output, PM I/O Reg 90h Bit[7:2] sets the output value
ƒ
0: Output low
ƒ
1: Output high
For GEVENT pins defined as input, PM I/O Reg 92h Bit[7:2] are used to read the input status.
ƒ
ƒ

ƒ

ƒ

GEVEN8 can be programmed either as GPIO line or as GPE line (see section 4.2.2).
ƒ

PM I/O Reg 84h Bit[3] defines GEVENT8 pins as output or input
0: Enable output
1: Tris-tate (input)
For GEVENT8 pin defined as output, PM I/O Reg 84h Bit[2] sets the output value
ƒ
0: Output low
ƒ
1: Output high
For GEVENT8 pin defined as input, PM I/O Reg 84h Bit[4] is used to read the input status.
ƒ
ƒ

ƒ

ƒ

4.2.2

General Purpose Event (GPE)

The General Purpose Event (GPE) pins can generate wake events, SCI, SMI#, SMI# followed by SCI, or
IRQ13.
When not used as GPE pins, these pins may also be used as GPIO pins as described in sections 4.1.1,
4.2.1, 4.2.3, 4.2.4.
The GPE pins include:
ƒ
ƒ
ƒ
ƒ

GEVENT[8:0]
GPM[9:0]
EXTEVENT[1:0]
GPIO0, GPIO2, GPIO64

Table 4-3: GPE Pins
Pin Name
(*Note 1)

Multi-Function
Selection

Configure Bit
Trigger Configure Enable
00 – SCI or SMI# 0–Falling edge ACPI Event
01 – SMI#
1–Rising edge
10 – SMI#
followed by SCI
11 - IRQ13

GEVENT0/
GA20IN

SMBus
Reg64h[Bit11]
0: GEVENT0
1: GA20IN

PM IO
Reg30h[Bit1:0]

PM IO
Reg36h[Bit 0]

ACPI
PM IO
GPE04h[Bit 0] Reg39h[Bit 0]
or ACPI
GPE00h[Bit0]

S0

GEVENT1/
KBRST#

SMBus
Reg64h[Bit9]
0: KBRST#
1: GEVENT1

PM IO
Reg30h[Bit3:2]

PM IO
Reg36h[Bit 1]

ACPI
PM IO
GPE04h[Bit 1] Reg39h[Bit 1]
or ACPI
GPE00h[Bit 1]

S0

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

Status
(Write 1 to ACPI
GPE00h Bit to
Clear)

Power
Domain

GEVENT/GPE/GPM/ExtEvent
Proprietary

Page 283

Pin Name
(*Note 1)

Multi-Function
Selection

Configure Bit
Trigger Configure Enable
00 – SCI or SMI# 0–Falling edge ACPI Event
01 – SMI#
1–Rising edge
10 – SMI#
followed by SCI
11 - IRQ13

GEVENT2/
THRMTRIP#
/SMBALERT
#

PM IO
Reg68h[Bit 3]
0: GEVENT2
1: THRMTRIP#

PM IO
Reg30h[Bit5:4]

PM IO
Reg36h[Bit 2]

ACPI
PM IO
GPE04h[Bit 2] Reg39h[Bit 2]
or ACPI
GPE00h[Bit 2]

S5

GEVENT3/
LPC_PME#

*Note 5

PM IO
Reg30h[Bit7:6]

PM IO
Reg36h[Bit3]

ACPI
PM IO
GPE04h[Bit3] Reg39h[Bit3]
or ACPI
GPE00h[Bit3]

S5

GEVENT4/
PCI_PME#

*Note 5

PM IO
Reg31h[Bit1:0]

PM IO
Reg36h[Bit4]

ACPI
PM IO
GPE04h[Bit4] Reg39h[Bit4]
or ACPI
GPE00h[Bit4]

S5

GEVENT5/
S3_STATE

SMBus
Reg64h[Bit 8]
=1 to enable
GPE
*Note 4

PM IO
Reg31h[Bit3:2]

PM IO
Reg36h[Bit 5]

ACPI
PM IO
GPE04h[Bit 5] Reg39h[Bit 5]
or ACPI
GPE00h[Bit 5]

S5

GEVENT6/
USB_OC6#

*Note 5

PM IO
Reg31h[Bit5:4]

PM IO
Reg36h[Bit 6]

ACPI
PM IO
GPE04h[Bit 6] Reg39h[Bit 6]
or ACPI
GPE00h[Bit 6]

S5

GEVENT7/
USB_OC7#

*Note 5

PM IO
Reg31h[Bit7:6]

PM IO
Reg36h[Bit 7]

ACPI
PM IO
GPE04h[Bit 7] Reg39h[Bit 7]
or ACPI
GPE00h[Bit 7]

S5

GEVENT8/
WAKE#

PM IO
PM IO
Reg34h[Bit1:0]
Reg84h[Bit 0]
0: GEVENT8
1: WAKE#
PM IO
Reg84h[Bit 1]=1
and SMBus Reg
64h[Bit 19]=1 to
enable GPE

PM IO
Reg38h[Bit 0]

ACPI
PM IO
GPE04h[Bit24] Reg3Bh[Bit 0]
or ACPI
GPE00h[Bit24]

S5

GPM0/
USB_OC0#

SMBus
Reg64h[Bit 23]
=1 to enable
GPE

PM IO
Reg32h[Bit7:6]

PM IO
Reg37h[Bit 3]

ACPI
PM IO
GPE04h[Bit19] Reg3Ah[Bit 3]
or ACPI
GPE00h[Bit19]

S5

GPM1/
USB_OC1#

SMBus
Reg64h[Bit 23]
=1 to enable
GPE

PM IO
Reg33h[Bit1:0]

PM IO
Reg37h[Bit 4]

ACPI
PM IO
GPE04h[Bit20] Reg3Ah[Bit 4]
or ACPI
GPE00h[Bit20]

S5

GPM2/
USB_OC2#

SMBus
Reg64h[Bit 23]
=1 to enable
GPE

PM IO
Reg33h[Bit3:2]

PM IO
Reg37h[Bit 5]

ACPI
PM IO
GPE04h[Bit21] Reg3Ah[Bit 5]
or ACPI
GPE00h[Bit21]

S5

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

Status
(Write 1 to ACPI
GPE00h Bit to
Clear)

Power
Domain

GEVENT/GPE/GPM/ExtEvent
Proprietary

Page 284

Pin Name
(*Note 1)

Multi-Function
Selection

Configure Bit
Trigger Configure Enable
00 – SCI or SMI# 0–Falling edge ACPI Event
01 – SMI#
1–Rising edge
10 – SMI#
followed by SCI
11 - IRQ13

GPM3/
USB_OC3#

SMBus
Reg64h[Bit 23]
=1 to Enable
GPE

PM IO
Reg33h[Bit5:4]

PM IO
Reg37h[Bit 6]

ACPI
PM IO
GPE04h[Bit22] Reg3Ah[Bit 6]
or ACPI
GPE00 [Bit 22]

S5

GPM4/
USB_OC4#

SMBus
Reg64h[Bit 19]
=1 to enable
GPE

PM IO
Reg34h[Bit3:2]

PM IO
Reg38h[Bit 1]

ACPI
PM IO
GPE04h[Bit25] Reg3Bh[Bit 1]
or ACPI
GPE00h[Bit25]

S5

GPM5/
USB_OC5#

SMBus
Reg64h[Bit 19]
=1 to enable
GPE

PM IO
Reg34h[Bit5:4]

PM IO
Reg38h[Bit 2]

ACPI
PM IO
GPE04h[Bit26] Reg3Bh[Bit 2]
or ACPI
GPE00h[Bit26]

S5

GPM6/
BLINK

PM IO
PM IO
Reg7Ch[Bit 3:2] Reg35h[Bit1:0]
00: GPM6
01/10/11: BLINK
1/4Hz, 1/2Hz,
and always-on
SMBus
Reg64h[Bit 18]
=1 to enable
GPE

PM IO
Reg38h[Bit 4]

ACPI
PM IO
GPE04h[Bit28] Reg3Bh[Bit 4]
or ACPI
GPE00h[Bit28]

S5

GPM7/
SYS_
RESET#

PM IO
PM IO
Reg35h[Bit3:2]
Reg55h[Bit 2]
0: GPM7
1: SYS_RESET#
SMBus
Reg64h[Bit 17]
=1 to enable
GPE

PM IO
Reg38h[Bit 5]

ACPI
PM IO
GPE04h[Bit29] Reg3Bh[Bit 5]
or ACPI
GPE00h[Bit29]

S5

GPM8/
USB_OC8#/
AZ_DOCK_
RST#

PM IO
PM IO
Reg33h[Bit7:6]
Reg8Dh[Bit 2]
0: GPM8
1:
AZ_DOCK_RST
#
SMBus
Reg64h[Bit 23]
=1 to enable
GPE

PM IO
Reg37h[Bit 7]

ACPI
PM IO
GPE04h[Bit23] Reg3Ah[Bit 7]
or ACPI
GPE00 [Bit 23]

S5

GPM9/
USB_OC9#/
SLP_S2

PM IO
Reg8Dh[Bit 1]
0: GPM9
1: SLP_S2

PM IO
Reg3Dh[Bit3:2]

ACPI
Always falling edge ACPI
GPE04h[Bit14] GPE00 [Bit 14]

S5

EXTEVENT
0#/
RI#

SMBus
Reg64h[Bit 22]
=1 to enable
GPE

PM IO
Reg32h[Bit1:0]

PM IO
Reg37h[Bit 0]

S5

ACPI
PM IO
GPE04h[Bit16] Reg3Ah[Bit 0]
or ACPI
GPE00h[Bit16]

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

Status
(Write 1 to ACPI
GPE00h Bit to
Clear)

Power
Domain

GEVENT/GPE/GPM/ExtEvent
Proprietary

Page 285

Pin Name
(*Note 1)

Multi-Function
Selection

Configure Bit
Trigger Configure Enable
00 – SCI or SMI# 0–Falling edge ACPI Event
01 – SMI#
1–Rising edge
10 – SMI#
followed by SCI
11 - IRQ13

EXTEVENT
1#/
LPC_SMI#

SMBus
Reg64h[Bit 22]
=1 to enable
GPE

PM IO
Reg32h[Bit3:2]

PM IO
Reg37h[Bit 1]

ACPI
PM IO
GPE04h[Bit17] Reg3Ah[Bit 1]
or ACPI
GPE00h[Bit17]

S0

GPIO0

PM IO
PM IO
Reg60h[Bit 7]=1 Reg34h[Bit1:0]
for GPIO; in
addition, PM IO
Reg84h[Bit 1]=0
and SMBus
Reg64h[Bit
19]=1 to enable
GPE

PM IO
Reg38h[Bit 0]

ACPI
PM IO
GPE04h[Bit24] Reg3Bh[Bit 0]
or ACPI
GPE00h[Bit24]

S0

GPIO2

PM IO
PM IO
Reg60h[Bit 5]=0 Reg35h[Bit5:4]
for GPIO

PM IO
Reg38h[Bit 6]

ACPI
GPE04h[Bit
30]

S0

GPIO64/
TALERT#/
TEMPIN3

PM2 IO
Reg42h[Bit 7:6]
00: GPIO
01/10/11:
TEMPIN3

PM IO
Reg67h[Bit 5]

ACPI
ACPI
GPE04h[Bit 9] GPE00h[Bit 9]

PM IO
Reg3Ch[Bit3:2]
SMI# followed by
SCI not available

Status
(Write 1 to ACPI
GPE00h Bit to
Clear)

PM IO
Reg3Bh[Bit 6]
or ACPI
GPE00h[Bit 30]

Power
Domain

S0

Notes:
1– In this table, the “GEVENT,” ”GPM,” “EXTEVNT,” or “GPIO” portion of the pin name has been put at the front of the names for the
sake of clarity, making the pin names different from how they appear in the AMD SB600 Databook.
2–PM IO Register can be accessed through IO port CD6h/CD7h.
3–GPE Register is in the ACPI IO space. The base address of GPE IO space is defined in PM IO Reg28h/29h.
4–In K8 system, this pin is always used as S3_STATE output (indicating ACPI S3 state).
5–This pin is GEVENT pin only and not a multiplexed pin. The alternative function is mentioned only as a suggestion.

4.2.3

GPM as GPIO

GPM pins can be used as GPIO. The GPM I/O function is controlled by three registers: I/O C50h, C51h,
C52h, PM I/O 94h, 95h, 96h.
4.2.3.1

GPM Pins as Input

For GPM[7:0], follow this sequence 1. Set index register 0C50h to 13h (Miscellaneous Control).
2. Set CM Data register 0C51h Bits [7:6] to 01b to set Input/Out control.
3. Set GPM port 0C52h appropriate bits to 1 to tri-state the GPM port.
4. Set CM Data register 0C51h Bits [7:6] = 00b to set GPM port for read.
5. Read the input status through port 0C52h.
For GPM[9:8], simply read the input status from PM I/O 96h Bits [1:0].

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

GEVENT/GPE/GPM/ExtEvent
Proprietary

Page 286

4.2.3.2

GPM pins as Output

For GPM[7:0], follow this sequence 1. Set index register 0C50h to 13h (Misc. Control).
2. Set CM Data register 0C51h Bits [7:6] = 01b to set Input/Out control.
3. Set GPM port 0C52h appropriate bits to 0 to enable output on the GPM port.
4. Set CM Data register 0C51h Bits [7:6] = 10b for output data control.
5. Write the output data to port 0C52h.
For GPM[9:8], simply use PM I/O 95h Bits [1:0] as output enable (0: enable; 1: tri-state) and 94h Bits [1:0] as
output value (0: output low; 1: output high).

4.2.4

ExtEvent

4.2.4.1

ExtEvent as GPIO

Table 4-4: ExtEvent Pins as GPIO
Pin Name

Output Enable

Output Register

Input Status

EXTEVNT0#/
RI#

PM IO Reg91h[Bit 0]
0: Output enable
1: Input (Tri-state)
PM IO Reg91h[Bit 1]
0: Output enable
1: Input(Tri-state)

PM IO Reg90h[Bit 0]
0: Output low
1: Output high
PM IO Reg90h[Bit 1]
0: Output low
1: Output high

PM IO Reg0Dh[Bit 0]

EXTEVNT1#/
LPC_SMI#

4.2.4.2

PM IO Reg0Dh[Bit 1]

ExtEvent to Generate SMI#

EXTEVNT[1:0] can generate SCI or SMI#/SMI#/SMI# followed by SCI/IRQ13 as described in section 4.2.2.
These pins can also be programmed to generate SMI# by the following alternate method.
Table 4-5: ExtEvent Pins to Generate SMI#
Pin Name*

Enable SMI#

SMI# Status

Logical Value
Read only

Power Domain

EXTEVNT0#/
RI#

Trigger
1 – Rising edge
0 – Falling edge
PM IO
Reg0Dh[Bit 2]

PM IO
Reg04h[Bit 0]

PM IO
Reg07h[Bit 0]

PM IO
Reg0Dh[Bit 0]

S5

EXTEVNT1#/
LPC_SMI#

PM IO
Reg0Dh[Bit 3]

PM IO
Reg04h[Bit 1]

PM IO
Reg07h[Bit 1]

PM IO
Reg0Dh[Bit 1]

S0

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

GEVENT/GPE/GPM/ExtEvent
Proprietary

Page 287

4.3

THRMTRIP/TALERT

4.3.1

Thermal Trip – THRMTRIP

The thermal trip function is multiplexed on the GEVENT2 pin. The THRMTRIP status cannot be used to
generate SCI or SMI#.
Table 4-6: THRMTRIP Pin
Pin Name

Enable THRMTRIP

THRMTRIP#/
GEVENT2#/
SMBALERT#

PM IO Reg68h[Bit 3]=1
in addition PM IO
Reg55h[Bit 0]=1 to
enable shutdown

4.3.2

THRMTRIP
Polarity
Control
PM IO
Reg67h[Bit 6]
0=Active Low
1=Active High

THRMTRIP Status
PM IO
Reg54h[Bit 0]

Temperature Alert – TALERT

The temperature alert function is multiplexed on the GPIO64 pin. It can be programmed to generate SMI#,
SCI, or IRQ13 through GPE. It can also be programmed to generate SMI# without using GPE.
Table 4-7: TALERT# through GPE
Pin Name

TALERT# Enable

TALERT#/
GPIO64/
TEMPIN3

AcpiGpe0Blk04[Bit 9]=1

TAERLT#
Polarity
Control
PM IO
Reg67h[Bit 5]
0=Active Low
1=Active High

TALERT# Status

TALERT# Outcome

AcpiGpe0Blk00[Bit 9]

Controlled by
PM I/O Reg3Ch[Bit3:2]:
00= ACPI Event (SCI or SMI#,
depending on SCI_EN bit)
01= SMI#
10= N/A
11= IRQ13

TAERLT#
Polarity
Control
PM IO
Reg67h[Bit 5]
0=Active Low
1=Active High

TALERT# Status

TALERT# Outcome

IO C50h/C51h, index
02h [Bit 0]

SMI#

Table 4-8: TALERT# to generate SMI#
Pin Name

TALERT# SMI# Enable

TALERT#/
GPIO64/
TEMPIN3

IO C50h/C51h, index 03h
[Bit 1]=1

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

THRMTRIP/TALERT
Proprietary

Page 288

4.4

Real Time Clock (RTC)

Note: Some RTC 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 RTC functions and the associated registers.

RTC
RTC Ram Protection
External RTC Enable
RTC I/O Addr Enable
PCI_Reg:
6Ah

64h

78h

For software compatibility, the RTC registers and RAM are accessed through two banks addressing – Bank
0 and Bank 1, which are shown in the diagram below. Bank 0 is selected if DV0 = 0(DV0 is the 5th bit of
Register A) while Bank 1 is chosen if DV0 = 1. Even if two banks are defined, the first 64 bytes (00H – 3FH)
of each bank share the same physical space. The SB600 has alternate RAM ports at h72/h73 as the
address/data ports. These two ports do not use the bank0/bank1 scheme. Memory can be accessed
directly using the 8-bit address port. Use of the two IO ports h72/h73 to access the RTC RAM is
highly recommended.
Note: Some RTC RAM space can be protected from read/write if corresponding bits are set to 1 in
RTCProtect register (PCI_Reg 6Ah).

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

Real Time Clock (RTC)
Proprietary

Page 289

.
Figure 5 Register Bank Definition and Memory Address Mapping
The analog portion consists of two major parts: one is a 256-byte CMOS RAM and the other a 44-bit ripple
counter.

Register Name
Seconds
Seconds Alarm
Minutes
Minutes Alarm
Hours
Hours Alarm
Day of Week
Date of Month
Month
Year

Offset Address
00h
01h
02h
03h
04h
05h
06h
07h
08h
09h

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

Real Time Clock (RTC)
Proprietary

Page 290

Register Name
Register A
Register B
Register C
Register D
AltCentury (when DV0=0)
Century (when DV0=1)
Extended RAM Address Port
Extended RAM Data Port
RTC Time Clear
RTC RAM Enable

Offset Address
0Ah
0Bh
0Ch
0Dh
32h
48h
50h
53h
7Eh
7Fh

Registers that are implemented in the internal RTC are described below.

Seconds - RW – 8 bits - [RTC_Reg: 00h]
Field Name
Seconds

Bits
7:0

Default
00h

Description
Binary-Code-Decimal format. Range:00 – 59
This register can be set by software (SET bit of Register B = 1)
or can be automatically updated by hardware every second.
When set by software, hardware updating is disabled.

Seconds register

Seconds Alarm - RW – 8 bits - [RTC_Reg: 01h]
Field Name
Seconds Alarm

Bits
7:0

Default
00h

Description
Binary-Code-Decimal format.
If SET bit = 1, Seconds Alarm Register will never match with
Seconds Register, else
If bits [7:6] = [11], Seconds Alarm Register always matches
with Seconds Register.

Seconds Alarm register

Minutes - RW – 8 bits - [RTC_Reg: 02h]
Field Name
Minutes

Bits
7:0

Default
00h

Description
Binary-Code-Decimal format. Range:00 – 59
This register can be set by software (SET bit of Register B = 1)
or can be automatically updated by hardware every minute.
When set by software, hardware updating is disabled.

Minutes register

Minutes Alarm - RW – 8 bits - [RTC_Reg: 03h]
Field Name
Minutes Alarm

Bits
7:0

Default
00h

Description
Binary-Code-Decimal format.
If SET bit = 1, Minutes Alarm Register will never match with
Minutes Register, else
If bits [7:6] = [11], Minutes Alarm Register always matches
with Minutes Register.

Minutes Alarm register

Hours - RW – 8 bits - [RTC_Reg: 04h]
Field Name
Hours

Bits
7:0

Default
00h

Description
Binary-Code-Decimal format. Range:00 – 23
This register can be set by software (SET bit of Register B = 1)
or can be automatically updated by hardware every hour.
When set by software, hardware updating is disabled.

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

Real Time Clock (RTC)
Proprietary

Page 291

Hours - RW – 8 bits - [RTC_Reg: 04h]
Field Name
Hours register

Bits

Field Name
Hours Alarm

Bits
7:0

Default

Description

Hours Alarm- RW – 8 bits - [RTC_Reg: 05h]
Default
00h

Description
Binary-Code-Decimal format.
If SET bit = 1, Hours Alarm Register will never match with
Hours Register, else
If bits [7:6] = [11], Hours Alarm Register always matches with
Hours Register.

Hours Alarm register

Day of Week - RW – 8 bits - [RTC_Reg: 06h]
Field Name
Day of Week

Bits
7:0

Default
00h

Description
Binary-Code-Decimal format. Range: 01 – 07 (Sunday = 1).
No leap year correction capability. Leap year correction has to
be done by software.
This register can be set by a software (SET bit of Register B =
1) or can be automatically updated by hardware everyday.
When set by software, hardware updating is disabled.

Day of Week register

Date of Month - RW – 8 bits - [RTC_Reg: 07h]
Field Name
Date of Month

Bits
7:0

Default
00h

Description
Binary-Code-Decimal format. Range: 01 – 28 for February
and no leap year capability. Leap year correction has to be
done by software.
This register can be set by software (SET bit of Register B = 1)
or can be automatically updated by hardware everyday. When
set by software, hardware updating is disabled.

Date of Month register

Month - RW – 8 bits - [RTC_Reg: 08h]
Field Name
Month

Bits
7:0

Default
00h

Description
Binary-Code-Decimal format. Range: 01 – 12. No leap year
correction capability. Leap year correction has to be done by
software.
This register can be set by software (SET bit of Register B = 1)
or can be automatically updated by hardware every month.
When set by software, hardware updating is disabled.

Month register

Year - RW – 8 bits - [RTC_Reg: 09h]
Field Name
Year

Bits
7:0

Default
00h

Description
Binary-Code-Decimal format. Range: 00 – 99. No leap year
correction capability. Leap year correction has to be done by
software.
This register can be set by software (SET bit of Register B = 1)
or can be automatically updated by hardware every year.
When set by software, hardware updating is disabled.

Year register

Register A - RW – 8 bits - [RTC_Reg: 0Ah]
Field Name
Rate Selection(RS0)

Bits
0

Default
0b

Description
These four rate-selection bits select one of the 13 taps on the

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

Real Time Clock (RTC)
Proprietary

Page 292

Register A - RW – 8 bits - [RTC_Reg: 0Ah]
Field Name
Rate Selection(RS1)
Rate Selection(RS2)
Rate Selection(RS3)

Bits
1
2
3

Default
0b
0b
0b

Bank Selection(DV0)

4

0b

6:5
7

0b

Reserved
Update In Progress(UIP)

Description
15-stage frequency divider or disable the divider output (flat
output signal). The tap selected can be used to generate a
periodic interrupt. See the following table for frequency
selection.
DV0 = 0 selects Bank 0; DV0 = 1 selects Bank 1. The SB600,
it has an alternate way to access the RAM without the use of
bank select bit. Port 72/73 can be used as the index to access
the full 256 bytes of RAM directly.
If SET bit = 1, UIP is cleared.
If UIP = 1, the update transfer will soon occur.
If UIP = 0, the update transfer will not occur for at least 244us.
[Read-only]

Register A: Control register

RS3

Rate Selection Bits
RS2
RS1
RS0

0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1

0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1

0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1

Tap Frequency(Interrupt Rate)

0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1

Flat Signal(None)
256 Hz (3.90625 ms)
128 Hz (7.8125 ms)
8.192 kHz (122.070 us)
4.096 kHz (244.141 us)
2.048 kHz (488.281 us)
1.024 kHz (976.5625 us)
512 Hz (1.953125 ms)
256 Hz (3.90625 ms)
128 Hz (7.8125 ms)
64 Hz (15.625 ms)
32 Hz (31.25 ms)
16 Hz (62.5 ms)
8 Hz (125 ms)
4 Hz (250 ms)
2 Hz (500 ms)

Register B - RW – 8 bits - [RTC_Reg: 0Bh]
Field Name

Bits
0
1
3:2
4

Default
0b
0b
00
0b

Alarm Interrupt Enable (AIE)

5

0b

Periodic Interrupt Enable (PIE)

6

0b

Set new time (SET)

7

0b

Reserved
HourMode
Reserved
Update Ended Interrupt Enable(UIE)

Description
Hour mode; 0 = 12 hour mode; 1 = 24 hour mode
UIE enables the Update End Flag (UF) bit in
Register C to assert IRQ. If SET bit = 1, UIE is
cleared.
AIE enables the Alarm Flag (AF) bit in Register C to
assert IRQ.
PIE enables the Periodic Interrupt Flag (PF) bit in
Register C to assert IRQ.
If SET bit = 1, no internal updating for Time
Registers is allowed.
If SET bit = 0, the Time Registers are updated every
second.

Register B: Control register

Register C - R – 8 bits - [RTC_Reg: 0Ch]
Field Name
Reserved

Bits
3:0

Default
0h

Description

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

Real Time Clock (RTC)
Proprietary

Page 293

Register C - R – 8 bits - [RTC_Reg: 0Ch]
Field Name
Update Ended Interrupt Flag(UF)

Bits
4

Default
0b

Alarm Interrupt Flag (AF)

5

0b

Periodic Interrupt Flag (PF)

6

0b

Interrupt Request Flag (IRQF)

7

0b

Description
This bit is set to one after each update cycle.
Reading Register C clears UF.
This bit is set to one if second, minute and hour time
has matched the second, minute and hour alarm
time. Reading Register C clears AF bit.
This bit is set to one when an edge is detected on
the selected tap (through RS3 to RS0) of the
frequency divider. Reading Register C clears PF bit.
Logically, IRQF =
(PF*PIE)+(AF*AIE)+(UF*UIE)+(WF*WIE) where WF
and WIE are defined in Extended Control Register
4A and 4B. Reading Register C clears IRQF bit.
Any time the IRQF bit is set to one, the #IRQ pin is
driven low.

Register C: Control register

DateAlarm - RW – 8 bits - [RTC_Reg: 0Dh]
Field Name
DateAlarm
Scratchbit
VRT

Bits
5:0

Default
00h

6
7

0b
1b

Description
DateAlarm in BCD format and is considered when it is
set to non-zero value. If this value is set to 0, then date
is not compared for alarm generation.
Valid RAM and Time; refer to VRT_T1 and VRT_T2
registers (PMIO 3E/3F)

Date Alarm Register

AltCentury - RW – 8 bits - [RTC_Reg: 32h]
Field Name
AltCentury

Bits
7:0

Default
00h

Description
(This register is accessed only when DV0=0 and
PM_Reg 7Ch Bit4=1.) Binary-Code-Decimal format.
Leap year correction is done through hardware. This
register can be set by software (SET bit of Register B =
1) or can be automatically updated by hardware every
century. When set by software, hardware updating is
disabled.

AltCentury Register

Century - RW – 8 bits - [RTC_Reg: 48h]
Field Name
Century

Bits
7:0

Default
00h

Description
(This register is accessed only when DV0=1) BinaryCode-Decimal format. Leap year correction is done
through hardware. This register can be set by software
(SET bit of Register B = 1) or can be automatically
updated by hardware every century. When set by
software, hardware updating is disabled.

Century Register

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

Real Time Clock (RTC)
Proprietary

Page 294

Extended RAM Address Port - RW – 8 bits - [RTC_Reg: 50h]
Field Name
ExtendedRAMAddr

Bits
6:0

Default
00h

Description
Because only 7 address bits are used in port x70, only
lower 128 bytes are accessible through port x71. The
Extended RAM (upper 128 bytes) are physically located
at address 80H to FFH. In order to access these
address, an address offset should be programmed into
this register and access them through Extended
RAMDataPort. (An offset of x80H will automatically add
to this 7-bit address).

Reserved
7
Extended RAM Address Port register: The address port to access Extended RAM.

Extended RAM Data Port - RW – 8 bits - [RTC_Reg: 53h]
Field Name
Extended RAM Data Port

Bits
7:0

Default
xxxxxxxx

Description
There is no physical register corresponding to this data
port but the data port address is used for decoding to
generate appropriate internal control signals.

Extended RAM Data Port register.

RTC Time Clear - RW – 8 bits - [RTC_Reg: 7Eh]
Field Name
RtcTimeClear

Bits
0

Default
0b

Reserved
RTC Time Clear register.

7:1

0000000b

Description
Setting this bit will clear the RTC second and RTC time
will stop

RTC RAM Enable - RW – 8 bits - [RTC_Reg: 7Fh]
Field Name
RtcRamEnable
Reserved
RTC RAM Enable register.

Bits
0
7:1

Default
1b
0000000b

Description
Setting this bit will enable access to the RTC RAM

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

Real Time Clock (RTC)
Proprietary

Page 295

4.5

IOXAPIC Registers

Note: Some IOXAPIC 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 IOXAPIC functions and the associated registers.

4.5.1

Direct Access Registers

Note: The XAPIC_BASE_REGISTER has a power-on default value of FEC0_0000H.
IO Register Select Register RW [XAPIC_BASE_REGISTER + 00H]
Field Name
Bits
Default
Description
Indirect Address Offset
7:0
00h
Indirect Address Offset to IO Window Register
Reserved
31:8
Used to determine which register is manipulated during an IO Window Register read/write operation.

IO Window Register RW [XAPIC_BASE_REGISTER + 10H]
Field Name
Bits
Default
Description
Mapped by the value in the IO Register Select Register, to the designated indirect access register.
Technically a R/W register; however, the read/write capability is determined by the indirect access register
referenced by the IO Register Select Register.

IRQ Pin Assertion Register RW [XAPIC_BASE_REGISTER + 20H]
Field Name
Bits
Default
Description
Input IRQ
7:0
00h
IRQ number for the requested interrupt

31:8
0000000h
Write to this register will trigger an interrupt associated with the redirection table entry referenced by the IRQ
number. Currently the redirection table has 24 entries. Write with IRQ number greater than 17H has no effect.

EOI Register W [XAPIC_BASE_REGISTER + 40H]
Field Name

Bits
Default
Description
Vector
7:0
00h
Interrupt vector

31:8
0000000h
Write to this register will clear the remote IRR bit in the redirection table entry found matching the interrupt vector.
This provides an alternate mechanism other than PCI special cycle for EOI to reach IOXAPIC.

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

IOXAPIC Registers
Proprietary

Page 296

4.5.2

Indirect Access Registers

Software needs to first select the register to access using the IO Register Select Register, and then read or
write using the IO Window Register.
IOAPIC ID Register [Indirect Address Offset = 00H] RW
Field Name
Bits

23:0
ID
27:24

31:28
Not used in XAPIC PCI bus delivery mode.

Default
000000h
0h
0h

Description
IOAPIC device ID for APIC serial bus delivery mode

IOXAPIC Version Register [Indirect Address Offset = 01H] R
Field Name
Version

PRQ
Max Redirection Entries


Bits
7:0
14:8
15
23:16
31:24

Default
21h
00h
1b
17h
00h

Description
PCI 2.2 compliant
IRQ pin assertion supported
24 entries [23:0]

IOAPIC Arbitration Register [Indirect Address Offset = 02H] R
Field Name
Bits

23:0
Arbitration ID
27:24

31:28
Not used in XAPIC PCI bus delivery mode.

Default
000000h
0h
0h

Description
Arbitration ID for APIC serial bus delivery mode

Redirection Table Entry [0–23] [Indirect Address Offset = 11/10H–3F/3EH] RW
Field Name

Bits
7:0
10:8

Default
00h
0h

Destination Mode

11

0b

Delivery Status

12

0b

Interrupt Pin Polarity

13

0b

Remote IRR

14

0b

Trigger Mode

15

0b

Mask

16

1b

31:17
55:32

0000h
000000h

Vector
Delivery Mode

Reserved
Reserved

Description
Interrupt vector associated with this interrupt input
000 – Fixed
001 – Lowest Priority
010 – SMI/PMI
011 – 
100 – NMI
101 – INIT
110 – 
111 – ExtINT
0 – Physical
1 – Logical
Read Only
0 – Idle
1 – Send Pending
0 – High
1 – Low
Read Only.
Used for level triggered interrupts only.
Set when interrupt message delivered.
Cleared by EOI special cycle transaction or write to
EOI register
0 – Edge
1 – Level
Mask the interrupt injection at the input of this device
Write 0 to unmask

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

IOXAPIC Registers
Proprietary

Page 297

Redirection Table Entry [0–23] [Indirect Address Offset = 11/10H–3F/3EH] RW
Field Name
Destination ID

Bits
63:56

Default
0

Description
Bits [19:12] of the address field of the interrupt
message

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

IOXAPIC Registers
Proprietary

Page 298

Appendix A: AC97 Audio FAQs
Q: What is the descriptor table (DT) data structure in memory?
A: Data Pointer (first dword); Size, Status (2nd dword); Next descriptor pointer (3rd dword). The Data pointer
points to the beginning of a data block. In the 2nd dword, Size uses [31:16], and Status uses bit[0]. The other
bits are 0. Size tells the data block size pointed by the Data Pointer. The Status bit can be set to 1 by
hardware when the current data block is completed. Software can check this bit to know the progress of the
hardware and plan ahead. Another way to accomplish this is to set the status bit in the register so the
software will check that register. The Next descriptor pointer points to the next descriptor table.
Q: Where is the status bit updated each time a data block is completed?
A: For audio input:
When reg0x04[1]=1 and reg0x08[3]=0: the status bit is updated in reg0x00[1]. When reg0x04[1]=1 and
reg0x08[3]=1: the status bit is updated in memory.
For audio output:
When reg0x04[1]=1 and reg0x08[3]=0: the status bit is updated in reg0x00[3]. When reg0x04[1]=1 and
reg0x08[3]=1: the status bit is updated in memory.
Q: I set the appropriate bits so that the interrupt register (0x00) has the “out DMA status” bit set at the end of
a data block and an interrupt happens. Is this necessary in order to cause an interrupt to happen?
A: Yes.
Q: Is it possible to have both an interrupt occur and the status bit in memory set at the same time?
A: No. The Status bit can be set either in memory or in register, but not both.
Q: What is a Linked List?
A: When a series of DTs are linked, it becomes a Linked List whose last DT has an invalid value of 0 as its
Next Descriptor to signal the end of the chain.
Q: How can I determine whether a Linked List is complete?
A: This is determined by examining bit 0 of the current DT control block status word in memory to see if the
DMA controller is finished with it, and then you examine the “Output DMA DT Next” register (0x40) to see if
this was the last one in the chain or not. When both conditions are satisfied, you can tell the Linked List is
complete.
Q: I am trying to determine if the DMA controller is idle or not. It seems that the “Output DMA DT Size and
State” register (0x48) has 3 bits in it called “out DMA state”. Can I look at it alone to determine whether the
current chain is complete?
A: No. There is no way to look at the DMA state alone to determine whether the current chain is completed.
The state machine returns 0 every time a data block is complete and checks whether the next DT or next
Linked List is valid. If invalid, the state machine stops there; else it starts to consume the next DT block. To
determine whether the chain is complete you need to make sure of the following: (a) the current Data block is
complete by checking status bit or DMA state=0, and (b) next DT is invalid. Unfortunately there is no quicker
way. The state machine runs as follows: 0 (idle) -> 1 (descriptor table load) -> 2 (Data request) -> 3 (data
load) -> 4 (status bit update) -> 0 (idle).
Q: What’s the relation between Register (0x48) “Output DMA DT Size and State” and register (0x8C) “Output
DMA Fifo Info”?
A: Originally there was only reg0x48, no reg0x8C. Later the decision was made to increase the size of FIFO
to 90 deep. As a result, reg0x48 became insufficient. Its fields “out FIFO Used” and “out FIFO Free” were not
wide enough to express the number 90. So the decision was made to move the two fields to the new register
0x8C.

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

Appendix A: AC97 Audio FAQs
Proprietary

Page 299

Appendix B: Revision History
Date
September, 2008

Rev.
3.03

Comment
First release of the public version.

©2008 Advanced Micro Devices, Inc.
AMD SB600 Register Reference Manual

Appendix B: Revision History
Proprietary

Page 300



Source Exif Data:
File Type                       : PDF
File Type Extension             : pdf
MIME Type                       : application/pdf
PDF Version                     : 1.4
Linearized                      : Yes
Encryption                      : Standard V2.3 (128-bit)
User Access                     : Print, Copy, Annotate, Fill forms, Print high-res
Page Count                      : 300
XMP Toolkit                     : XMP toolkit 2.9.1-13, framework 1.6
About                           : uuid:5a34960d-bda0-4098-ae01-6ef8ea069795
Producer                        : Acrobat Distiller 6.0.1 (Windows)
Company                         : ATI Technologies Inc.
Creator Tool                    : Acrobat PDFMaker 6.0 for Word
Modify Date                     : 2008:09:17 16:36:34-04:00
Create Date                     : 2008:09:17 16:35:27-04:00
Metadata Date                   : 2008:09:17 16:36:34-04:00
Document ID                     : uuid:08ab1444-3b82-439b-8109-340d4b687d4e
Format                          : application/pdf
Title                           : 1
Creator                         : dso
Author                          : dso
EXIF Metadata provided by EXIF.tools

Navigation menu