AMD AMD-761

Preliminary Information
AMD-761™ System
Controller
Software/BIOS Design Guide
Publication # 24081 Rev: D
Issue Date: February 2002
Preliminary Information
© 2001, 2002 Advanced Micro Devices, Inc. All rights reserved.
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
is 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.
Trademarks
AMD, the AMD logo, AMD Athlon, and combinations thereof, AMD-751, AMD-760, AMD-761, AMD-762, and
AMD-766 are trademarks of Advanced Micro Devices, Inc.
Other product names used in this publication are for identification purposes only and may be trademarks of
their respective companies.
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
24081D—February 2002
Contents
1
Overview
1
1.1
General BIOS Initialization Requirements . . . . . . . . . . . . . . . 2
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.2
2
AMD-761™ Configuration Spaces . . . . . . . . . . . . . . . . . .
Special Configuration Sequencing Requirements . . . .
Power-On Reset Initialization . . . . . . . . . . . . . . . . . . . . .
Programming Reserved Bits . . . . . . . . . . . . . . . . . . . . . .
Power Management Considerations . . . . . . . . . . . . . . . .
2
2
4
7
7
Recommended AMD Athlon™ Processor
SYS_CONFIG Settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
AMD-761™ System Controller Programmer’s Interface
9
2.1
Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.2
Address Map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.2.1 Special Cycles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.2.2 IACK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.2.3 PCI Configuration Accesses . . . . . . . . . . . . . . . . . . . . . 15
2.3
Address Decoding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.3.1 Socket2000 Address Decoding . . . . . . . . . . . . . . . . . . . 16
2.3.2 PCI/AGP Master Address Decoding . . . . . . . . . . . . . . . 17
2.4
Configuration Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.4.1
2.4.2
2.4.3
2.4.4
I/O Register Map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
Configuration Register Access . . . . . . . . . . . . . . . . . . . 26
Device 0: PCI Configuration Registers . . . . . . . . . . . . . 27
Device 0, Function 1: DDR PDL
Configuration Registers . . . . . . . . . . . . . . . . . . . . . . . . . 97
2.4.5 Device 1: PCI-to-PCI Bridge
Configuration Registers . . . . . . . . . . . . . . . . . . . . . . . . 117
2.5
Memory-Mapped Registers . . . . . . . . . . . . . . . . . . . . . . . . . . 138
2.5.1 AMD-761 System Controller GART Cache
Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138
2.5.2 Memory-Mapped Register Map . . . . . . . . . . . . . . . . . . 140
Table of Contents
3
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
3
24081D—February 2002
DDR SDRAM Interface
149
3.1
Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149
3.2
DDR DIMMS and DDR SDRAMs . . . . . . . . . . . . . . . . . . . . . 150
3.2.1 DDR Speed Grades . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150
3.2.2 DDR DIMM Data from Serial Presence
Detect (SPD) Device . . . . . . . . . . . . . . . . . . . . . . . . . . . 151
3.3
Memory Space Configuration . . . . . . . . . . . . . . . . . . . . . . . . 152
3.4
DDR Memory DIMM Timings . . . . . . . . . . . . . . . . . . . . . . . . 157
3.4.1 Memory Timings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157
3.5
Additional Memory Controller Settings
. . . . . . . . . . . . . . . 161
3.6
DRAM Mode/Status Settings . . . . . . . . . . . . . . . . . . . . . . . . 165
3.7
ECC and Memory Scrubbing . . . . . . . . . . . . . . . . . . . . . . . . . 169
3.7.1 ECC and Memory Scrubbing Configuration . . . . . . . 172
3.8
Programmable Delay Lines (PDL) . . . . . . . . . . . . . . . . . . . . 174
3.8.1 Manual PDL Window Detection . . . . . . . . . . . . . . . . . 180
3.9
4
DDR I/O Drive Strength
Power Management
. . . . . . . . . . . . . . . . . . . . . . . . . . . . 182
185
4.1
C1 Halt State Requirements . . . . . . . . . . . . . . . . . . . . . . . . . 186
4.2
C2 Stop Grant State Requirements . . . . . . . . . . . . . . . . . . . 187
4.3
S1 Power-On Suspend State Requirements . . . . . . . . . . . . . 189
4.4
S3 Suspend to RAM State Requirements . . . . . . . . . . . . . . 190
4.4.1 STR Bit Control for S3 Support . . . . . . . . . . . . . . . . . . 191
4
4.5
Clock Throttling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193
4.6
DDR DRAM Clock Enables . . . . . . . . . . . . . . . . . . . . . . . . . . 194
Table of Contents
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
24081D—February 2002
5
PCI Bus Interface
5.1
195
Delayed Transactions and Ordering Rules Usage
. . . . . . . 195
5.1.1 Delayed Transactions and Target Latency . . . . . . . . 196
5.1.2 Transaction Ordering Rules . . . . . . . . . . . . . . . . . . . . 199
5.1.3 Special Arbitration Considerations
for the Southbridge . . . . . . . . . . . . . . . . . . . . . . . . . . . 201
5.2
PCI Performance Optimization Options . . . . . . . . . . . . . . . . 202
5.2.1 Read Prefetching . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202
5.2.2 PCI Chaining . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203
5.2.3 PCI Bus Parking . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203
6
AGP Interface
205
6.1
AGP Dynamic Compensation Requirements . . . . . . . . . . . . 205
6.1.1 The AGP 4X Dynamic Compensation Register . . . . . 206
6.1.2 Selection of 1.5- or 3.3-V AGP Signalling . . . . . . . . . . 207
7
6.2
Feature Override Bits for AGP Cards
. . . . . . . . . . . . . . . . . 208
6.3
BIOS Initialization Requirements . . . . . . . . . . . . . . . . . . . . 209
6.4
AGP Miniport Driver Requirements . . . . . . . . . . . . . . . . . . 210
Recommended BIOS Settings
7.1
PCI Bus 0, Device 0, Function 0 Registers
211
. . . . . . . . . . . . . 212
7.1.1 Example Settings for Memory Timing . . . . . . . . . . . . 218
7.1.2 Examples: AGP Compensation Register Settings
(0xB4-0xBB) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232
7.1.3 PCI Bus 0, Device 0, Function 1 Registers . . . . . . . . . 236
7.2
Table of Contents
PCI Bus 0, Device 1, Function 0 Registers
. . . . . . . . . . . . . 246
5
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
6
24081D—February 2002
Table of Contents
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
24081D—February 2002
List of Figures
List of Figures
Figure 1.
AMD Athlon Processor Family Address Mapping . . . . . . . . . . 9
Figure 2.
AMD Athlon Processor Family x86 Processor
Address Mapping. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
Figure 3.
AMD-761 System Controller Logical Bus Hierarchy . . . . . . . 19
Figure 4.
Two-Level GART Indexing . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
Figure 5.
Suspend to RAM (STR_Control) Bits Usage. . . . . . . . . . . . . 193
Figure 6.
Example of System with Flag and Data Stored
across PCI Bus Domain . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201
7
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
8
24081D—February 2002
List of Figures
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
24081D—February 2002
List of Tables
List of Tables
Table 1.
AMD-761 System Controller Configuration Register
Bits Unknown at RESET# . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
Table 2.
Recommended Settings for AMD Athlon Processor
SYSCFG Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
Table 3.
AMD-761 System Controller Socket2000 Memory Map . . . . . 10
Table 4.
AMD Athlon Processor Special Cycle Encodings . . . . . . . . . . . 12
Table 5.
I/O Register Map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
Table 6.
Device 0, Function 0 Configuration Register Map . . . . . . . . . . 27
Table 7.
AMD-761 System Controller SERR# Assertion Control
and Status Bits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
Table 8.
Wait State Settings for DRAM Timing Register . . . . . . . . . . . . 55
Table 9.
I/O Pad Drive Strength and Input Type . . . . . . . . . . . . . . . . . . . 90
Table 10.
DDR Memory Base Address Register Locations . . . . . . . . . . . . 95
Table 11.
AMD-761 DRAM Addressing Modes . . . . . . . . . . . . . . . . . . . . . 96
Table 12.
Device 0, Function 1 Configuration Register Map . . . . . . . . . . 97
Table 13.
PDL Calibration Modes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
Table 14.
DDR PDL Configuration Register Locations. . . . . . . . . . . . . . 101
Table 15.
Device 1 Configuration Register Map . . . . . . . . . . . . . . . . . . . 117
Table 16.
AMD-761 System Controller Memory-Mapped Registers . . . 140
Table 17.
Typical CL Parameter Settings for PC1600 and PC2100 . . . . 151
Table 18.
DIMM Bank Address Bit Definition. . . . . . . . . . . . . . . . . . . . . 152
Table 19.
Memory Size Addresses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153
Table 20.
Total Memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154
Table 21.
AMD-761 System Controller DDR SDRAM
Addressing Modes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
Table 22.
Memory Sizing Example, 128 Mbytes Total . . . . . . . . . . . . . . 156
Table 23.
Memory Sizing Example, 320 Mbytes Total . . . . . . . . . . . . . . 157
Table 24.
CAS Latency Settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158
Table 25.
DDR Device Timing Values. . . . . . . . . . . . . . . . . . . . . . . . . . . . 160
Table 26.
Dev 0:F0:0x54 Bit Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
Table 27.
System Related Timings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165
Table 28.
Refresh Rate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168
9
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
10
24081D—February 2002
Table 29.
AMD-761 System Controller ECC Behavior
(with ECC Enabled) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171
Table 30.
Default DQS Delay versus System Clock Frequency . . . . . . . 176
Table 31.
AMD-761 System Controller Power Management
Features for ACPI Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186
Table 32.
AMD-761 Processor System Controller PCI
Read Transaction Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196
Table 33.
Allowable AGP Rate versus Signalling Level . . . . . . . . . . . . . 207
Table 34.
AGP I/O Settings for 1.5- and 3.3-V Signalling . . . . . . . . . . . . 210
List of Tables
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
24081D—February 2002
Revision History
Date
Rev
Description
Text added in the following locations explaining that the registers must be saved and restored
when entering and exiting the S3 state:
2/2002
D
„
„
„
„
Section 1.1.5 on page 7, 2nd paragraph added
Section 4 on page 185, first Note expanded
Section 4.4 on page 190, paragraph two added
Section 7 on page 211, paragraph added directly after last bullet in bulleted list
The following additional changes were incorporated:
„
Table 34 on page 210, values for PSlewXfer and NSlewXfer changed from 01 and 00,
respectively, to 11 and 11
„
Updated “Revision History”
8/2001
C
Public release. Added bidirectional WSC# feature configuration register description.
4/2001
B
Modified descriptions for WSC# and WSC# feature additions. NDA version only.
3/2001
A
Initial public release.
Revision History
11
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
12
24081D—February 2002
Revision History
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
24081D—February 2002
1
Overview
The AMD Athlon™ processor powers the next generation in computing
platforms, delivering the ultimate performance for cutting-edge
applications and an unprecedented computing experience.
Th e A M D -7 61 ™ s y st e m c o n t rol le r p rov ide s st a n d a rd
Northbridge functionality for desktop personal computers
u s i n g t h e A M D A t h l o n ™ f a m i ly o f p ro c e s s o r s . Th i s
functionality includes the processor interface as well as PCI,
AGP, and main memory interface implementing state of the art
Double Data Rate (DDR) synchronous DRAM technology.
This document provides information typically required for
development of the system BIOS and device drivers to properly
program the AMD-761 system controller configuration
registers. The document is organized as follows:
„
„
„
„
„
„
„
Chapter 1
Section 1 provides an overview of the general BIOS
requirements for initializing the AMD-761 system controller
configuration registers.
Section 2 on page 9 contains a description of all AMD-761
system controller configuration registers.
Section 3 on page 149 contains additional information on
setup of the DDR SDRAM interface configuration registers.
Section 4 on page 185 contains additional information on
configuration of the power management features of the
AMD-761 system controller.
Section 5 on page 195 contains additional information on
setup of the PCI bus interface configuration registers.
Section 6 on page 205 contains additional information on
setup of the AGP interface configuration registers.
Section 7 on page 211 contains a list of recommended
settings for many of the AMD-761 system controller
configuration registers.
Overview
1
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
1.1
24081D—February 2002
General BIOS Initialization Requirements
The following sections provide general requirements for BIOS
w h e n p ro g ra m m i n g t h e A M D -7 6 1 s y s t e m c o n t ro l l e r
configuration registers. Note that the register descriptions also
include some specific programming notes.
1.1.1
AMD-761™ Configuration Spaces
The AMD-761 system controller contains both I/O and memorymapped configuration spaces as listed below.
1.1.2
„
I/O Mapped Space
• PCI configuration space address and data (CF8h, CFCh)
• Host bridge registers mapped in PCI configuration
space, device 0, function 0
• DDR interface PDL and I/O controls mapped in PCI
configuration space to device 0, function 1
• PCI to PCI bridge/AGP registers mapped in PCI
configuration space to device 1, function 0
„
GART Memory-Mapped Registers
• Mapped in memory space as defined by the
programming of Base Address 1: GART Memory Mapped
Register Base
Special Configuration Sequencing Requirements
This section outlines a few cases in the AMD-761 system
controller configuration registers that require special handling
for proper BIOS programming.
Configuration Cycles
Enable
The AMD-761 system controller supports configuration
address space as defined by the PCI Local Bus Specification,
Revision 2.2, which defines a unique 256-byte space that is
accessed through two 32-bit index registers mapped in I/O
space.
As defined in the PCI specification, configuration cycles are
generated on the PCI bus only when bit 31 of the Configuration
Address register is set.
2
Overview
Chapter 1
Preliminary Information
24081D—February 2002
AMD-761™ System Controller Software/BIOS Design Guide
Function 1 Space
The configuration registers that control the memory interface’s
Programmable Delay Lines (PDLs) and I/O drive strengths are
mapped to device 0: function 1 in the host bridge. This
configuration space is disabled by default and requires a write
to the PCI Control register’s Func1_En (Dev 0:F0:0x4C, bit 0).
The intent of this separate configuration space is that it is
configured at initial power-on, subsequently disabled, and
essentially protected from further writes.
„
„
Memory-Mapped
BARs
Note that the AMD-761 system controller does not report as
a multifunction device (bit 7 is not set in the Header_Type
field in the PCI Latency Timer and Header Type register in
Dev 0:F0:0x0C).
Reads to the PCI header that normally occupies offsets 00h–
3Fh return all 1s—that is, the normal PCI header registers
are not implemented.
Five DWORD registers are accessed by the AMD-761 system
controller AGP miniport driver as memory-mapped space. This
space is defined by the Base Address 1: GART MemoryMapped Register Base (Dev 0:F0:0x14), which provides address
bits [31:12] of the memory-mapped space. Note that this space
is defined as a 4-Kbyte region, hence the lower address bits
[11:4] are 0s.
This register must be properly programmed by BIOS to allow
the driver to access the memory-mapped space.
Memory Holes
Legacy memory holes are decoded in the normal region of main
memory from 640 Kbyte to 1 Mbyte. The AMD-761 system
controller does not allow PCI masters to access DRAM in this
region unless the EV6_Mode bit is set in the PCI Arbitration
Control Register. See “Bit Definitions PCI Arbitration Control
(Dev0:F0:0x84)” on page 71.
AGP Override Bits
for 4X Rate
and Fast Writes
The AGP Status register (Dev 0:F0:0xA4) reports the AMD-761
system controller’s capability to support AGP fast writes and
the AGP-4X rate. The operating system normally reads these
bits along with the same bits in the AGP card’s status register,
and uses this information to configure the AGP Command
register (Dev 0:F0:0xA8) in the AMD-761 system controller and
the AGP card.
Chapter 1
Overview
3
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
24081D—February 2002
The AMD-761 system controller provides BIOS the ability to
override the reporting of fast write and 4X rate support. This
override function is accomplished through a write to a separate
register, which is required because the AGP Status register is
specified as read-only in the AGP specification.
R e f e r t o S e c t i o n 6 . 2 o n p a g e 2 0 8 fo r d e t a i l s o f t h i s
implementation.
Interrupt Pin Control
R/W Attributes
The Int_Pin field in the AGP/PCI Interrupt and Bridge Control
register (Dev 1:F0:0x3C) is read-only by default and initializes
to all 0s. If the BIOS is required to initialize this field to
another value, it must first change this field to R/W by setting
the Int_Pin_Cntl bit in the Miscellaneous Device 1 Control
register (Dev 1:F0:0x40).
The AMD-761 system controller does not use the Int_Pin field
internally, the register is provided for software compatibility only.
Silicon Revisions
1.1.3
The reader is advised to read the AMD-761™ System Controller
Revision Guide, order# 23613, for the most current information
for the version of silicon being used. The silicon revision is
available by reading the PCI revision ID and Class Code
register in Dev 0:F0:0x08.
Power-On Reset Initialization
All of the AMD-761 system controller’s configuration registers
must be initialized by BIOS after initial power-on, paying especially
close attention to the registers that are not initialized to a known
value.
T h e A M D -7 6 1 s y s t e m c o n t r o l l e r i s re s e t w h e n t h e
Southbridge’s PCIRST# pin is asserted, which occurs when
transitioning from the Mechanical Off, S5, S4, or S3 sleep
states.
To accommodate support of the Advanced Configuration and
Powe r I n t e r f a ce ( AC P I ) S 3 ( s u s p e n d t o R A M ) p owe r
management state, the registers listed in Table 1 on page 5 are
not initialized to a known state after reset (RESET# asserted),
and they must be initialized by BIOS after initial power-on for
proper operation. These registers retain the value programmed
by BIOS after subsequent assertions of the RESET# pin when
transitioning to and from the S3 sleep state.
4
Overview
Chapter 1
Preliminary Information
24081D—February 2002
Table 1.
AMD-761™ System Controller Configuration Register Bits Unknown at RESET#
Register Name
Offset
ECC Mode/Status
Dev 0:F0:0x48
DRAM Timing
Chapter 1
AMD-761™ System Controller Software/BIOS Design Guide
Dev 0:F0:0x54
DRAM Mode/Status
Dev 0:F0:0x58
Status/Control
Dev 0:F0:0x70
Memory Base Address 0–7
Dev 0:F0:0xC0
through
Dev 0:F0:0xDC
Overview
Bit Name
SERR_Enable
ECC_Diag
ECC_Mode
SBPWaitState
Addr_Timing_A
Addr_Timing_A
RD_Wait_State
Reg_DIMM_En
tWTR
Bit(s)
[15:14]
[12]
[11:10]
[31]
[30]
[29]
[28]
[27]
[26]
tWR
[25:24]
tRRD
Idle_Cyc_Limit
PH_Limit
tRC
[23]
[18:16]
[15:14]
[11:9]
tRP
[8:7]
tRAS
[6:4]
tCL
[3:2]
tRCD
[1:0]
[20]
[19]
[18]
[17:16]
[7]
[6]
[5]
[4]
[3]
[2]
[1]
[0]
[18]
[31:23]
[15:7]
[2:1]
[0]
Burst_Ref_En
Ref_Dis
Reserved
Cyc_Per_Ref
CS7_X4Mode
CS6_X4Mode
CS5_X4Mode
CS4_X4Mode
CS3_X4Mode
CS2_X4Mode
CS1_X4Mode
CS0_X4Mode
Self_Ref_En
CS_Base
CS_Mask
Addr_Mode
CS_En
5
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
Table 1.
6
24081D—February 2002
AMD-761™ System Controller Configuration Register Bits Unknown at RESET# (Continued)
Register Name
Offset
DDR PDL Calibration Control
Dev 0:F1:0x40
DDR PDL Configuration 0–17
Dev 0:F1:0x44
through
Dev 0:F1:0x88
DDR DQS/MDAT Pad Configuration
Dev 0:F1:0x8C
DDR CLK/CS Pad Configuration
Dev 0:F1:0x90
DDR CMDB/CMDA Pad
Configuration
Dev 0:F1:0x94
Overview
Bit Name
SW_Recal
Use_Act_Dly
Auto_Cal_En
Act_Dly_Inh
Auto_Cal_Period
Clk_Dly
SW_Cal_Dly
Cal_Dly
Act_Dly
PSlewMDAT
NSlewMDAT
PDrvMDAT
NDrvMDAT
PSlewDQS
NSlewDQS
PDrvDQS
NDrvDQS
PSlewCLK
NSlewCLK
PDrvCLK
NDrvCLK
PSlewCS
NSlewCS
PDrvCS
NDrvCS
PSlewCMDB
NSlewCMDB
PDrvCMDB
NDrvCMDB
PSlewCMDA
NSlewCMDA
PDrvCMDA
NDrvCMDA
Bit(s)
[7]
[6]
[5]
[4]
[1:0]
[31:24]
[23:16]
[15:8]
[7:0]
[29:27]
[26:24]
[19:18]
[17:16]
[13:11]
[10:8]
[3:2]
[1:0]
[29:27]
[26:24]
[19:18]
[17:16]
[13:11]
[10:8]
[3:2]
[1:0]
[29:27]
[26:24]
[19:18]
[17:16]
[13:11]
[10:8]
[3:2]
[1:0]
Chapter 1
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
24081D—February 2002
Table 1.
AMD-761™ System Controller Configuration Register Bits Unknown at RESET# (Continued)
Register Name
Offset
DDR MAB/MAA Pad Configuration
Dev 0:F1:0x98
Bit Name
PSlewMAB
NSlewMAB
PDrvMAB
NDrvMAB
PSlewMAA
NSlewMAA
PDrvMAA
NDrvMAA
Bit(s)
[29:27]
[26:24]
[19:18]
[17:16]
[13:11]
[10:8]
[3:2]
[1:0]
Refer to Section 7 on page 211 for suggested values for these
configuration registers.
1.1.4
Programming Reserved Bits
The AMD-761 system controller has many bits that are
specified as reserved and which may be used in future silicon
revisions. BIOS must always write a 0 to these bits and not
depend on the value read back.
1.1.5
Power Management Considerations
There are several requirements for BIOS initialization of the
AMD-761 system controller’s configuration register when
supporting power management. Refer to Section 4 on page 185
for further details of these requirements.
For any system enabling the S3 state, a number of core logic
PCI configuration registers and processor MSRs must be saved
or restored prior to suspending or restoring S3. Also, certain
hidden bits must be unmasked. These requirements apply to all
platforms regardless of segment and whether or not AMD
PowerNow!™ is used.
Chapter 1
Overview
7
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
1.2
24081D—February 2002
Recommended AMD Athlon™ Processor
SYS_CONFIG Settings
Table 2 provides recommendations for settings in the
AMD Athlon processor System Configuration register in
systems that utilize the AMD-761 system controller.
Table 2.
Recommended Settings for AMD Athlon™ Processor SYSCFG
Register
Bit Field
Name
BIOS
Setting
[22]
EvictEn
0
An Evict command, when set, is sent as
part of an INVD instruction. The Evict
command has no function in the
AMD-761™ system controller.
[17]
SysUcLockEn
0
A LockToggle command, when set, is sent as
part of a LOCK instruction prefix and certain
other instructions. LockToggle has no
function in the AMD-761 system controller.
[16]
ChxToDirtyDis
0
The AMD Athlon™ processor and the
AMD-761 system controller support
Change-To-Dirty commands.
[13]
SysFillValIsD1
0
[11]
ClVicBlkEn
0
SetDirtyEnE
0
SetDirtyEnO
0
SetDirtyEnS
0
[10:8]
8
Comments
Overview
ClVicBlkEn, when set, causes all evicted
clean blocks to cause the CleanVictimBlk
system interface command. This setting
has no function with the AMD-761 system
controller.
There are three set-to-dirty enables: SetDirtyEnE, SetDirtyEnO, and SetDirtyEnS. If
a given enable is set and a cache block
must make a transition from E-to-M, O-toM, or S-to-M, then the AMD Athlon processor performs the action indicated by the
setting of the ChxToDirtyDis field. However, if a given enable is cleared, the processor takes no externally visible action
when the desired transition is performed.
Change to dirty commands are not needed
by the AMD-761 system controller.
Chapter 1
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
24081D—February 2002
2
AMD-761™ System Controller
Programmer’s Interface
2.1
Overview
The AMD-760™ chipset supports both x86 and Alpha™
processors that conform to the Socket2000 bus specification.
Both processors share a compatible view of system memory and
peripherals. Legacy x86 (IBM PC-AT) memory mappings are
implemented by x86 processors (AMD Athlon™ processor) as
shown in Figure 1.
AMD Athlon
Processor Family
AMD Athlon™
Processor Family
x86 µProcessor
Alpha µProcessor
Conventional
Memory
View
PC Memory
View
Mapping Logic
Same view of the system
Socket2000
Northbridge
AMD-761™ System Controller
Socket2000
Northbridge
AMD-761 System Controller
PCI
PCI
Southbridge
AMD-766™ Peripheral Bus
Controller
Figure 1.
Chapter 2
Southbridge
AMD-766 Peripheral Bus Controller
AMD Athlon™ Processor Family Address Mapping
AMD-761™ System Controller Programmer’s Interface
9
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
2.2
24081D—February 2002
Address Map
Table 3 shows the address map implemented by the AMD-761™
system controller.
Table 3.
AMD-761™ System Controller Socket2000 Memory Map
Address Space Start
SysAddOut MSB =0
&
1 FF000 0000
SysAddOut MSB =0
&
1 FE00 0000
SysAddOut MSB =0
&
1 FC00 0000
Address Space End
SysAddOut MSB
=0 &
3 FFFF FFFF
SysAddOut MSB
=0 &
1 FEFF FFFF
SysAddOut MSB
=0 &
1 FDFF FFFF
Name/Command
Description
Reserved
(Masked)
May be used by the Northbridge for other
purposes (used for EV6 Northbridges).
PCI Configuration
Space
(Masked)
This space is used to create PCI configuration cycles
using WrBytes, WrLWs, RdBytes, and RdLWs
commands only. See Section 2.2.3 on page 15.
PCI I/O Space
(Masked)
This space is used to create PCI I/O cycles using only
WrBytesWrLWs, RdBytes and RdLWs commands.
SysAddOut MSB =0 SysAddOut MSB
&
=0 &
1 F800 0000
1 FBFF FFFF
PCI IACK/Special
Cycle Generation
(Masked)
WrLWs commands to this space are used to create
PCI special cycles. The lower 16 bits of the data is
passed on to the PCI bus as both the address and
data with the special cycle PCI command. See
Section 2.2.1 on page 12 for all special cycles
generated by the AMD Athlon™ processor.
RdBytes commands to this space are used to
create PCI IACK. The lower 16 bits of these
addresses are passed on unmodified to the PCI
with the IACK PCI command. See Section 2.2.2 on
page 15.
SysAddOut MSB =0 SysAddOut MSB
&
=0 &
1 0000 0000
1 F7FF FFFF
Reserved
(Masked)
May be used by the Northbridge for other
purposes (used for EV6 Northbridges).
SysAddOut MSB =0 SysAddOut MSB
&
=0 &
0 0000 0000
0 FFFF FFFF
PCI Memory Space
(Masked)
The lower 32 bits of these addresses are
forwarded unmodified to the PCI. Accessed only
with Wr/RdBytes, Wr/RdLWs, Wr/RdQWs. The
AMD-761™ system controller generates low-order
address bit as required from the AMD Athlon
processor system bus MASK field.
SysAddOut MSB =1
&
0 0000 0000
SysAddOut MSB =1
&
0 0000 0000
SysAddOut MSB =1
&
0 FF000 0000
Normal Memory
(Masked Writes)
DRAM, accessed only with masked write
commands WrBytes, WrLWs, WrQWs.
Reserved
(Masked Reads)
The AMD-761 system controller does not support
masked reads to this address space.
Reserved
(Blocks)
May be used by the Northbridge for other
purposes (used for EV6 Northbridges).
Normal Memory
(Blocks)
DRAM, accessed with read and write block
commands. Note that the AMD-761 system
controller only uses 32 address bits internally and
the address space wraps. Address 1 0000 0000 is
treated the same as 0 0000 0000.
SysAddOut MSB
=1 &
3 FFFF FFFF
SysAddOut MSB
=1 &
3 FFFF FFFF
SysAddOut MSB
=1 &
3 FFFF FFFF
SysAddOut MSB =0 SysAddOut MSB
&
=0&
0 0000 0000
3 FFFF FFFF
10
AMD-761™ System Controller Programmer’s Interface
Chapter 2
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
24081D—February 2002
For reference, the x86 view of memory from the perspective of
the AMD Athlon processor and the mapping to the Socket2000
memory map is shown in Figure 2.
Note: Not to scale.
I/O Space
CF8, CFC
x86 In and Out Address Space
APIC Registers
Reserved
PCI Memory
PCI Config
PCI I/O
Reserved
PCI IACK/Special
AGP Virtual
(BAR0)
PCI Memory
Reserved
TOM
GART
Extended
Memory
DRAM
BIOS
VGA
640–1-Mbyte addresses are sent to PCI
or DRAM as a function of AMD AthlonTM
processor MSRs.
DOS Memory
x86 Memory Address Space
Figure 2.
Chapter 2
Socket2000 Address Space
AMD Athlon™ Processor Family x86 Processor Address Mapping
AMD-761™ System Controller Programmer’s Interface
11
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
2.2.1
24081D—February 2002
Special Cycles
Special cycles generated by the AMD Athlon processor are
forwarded down to the PCI bus with specific values in the
address and data fields of the PCI special cycle command.
Table 4 defines these values. The AMD Athlon processor
g e n e ra t e s A M D A t h lo n p ro c e ss o r s y s t e m b u s W r LW s
commands to a single address (1 F8000 0000) with the data
field specifying the desired special cycle. The AMD-761 system
controller maps the AMD Athlon processor system bus data
value onto the PCI for both address and data phases of the
Special Cycle Transaction.
.
Table 4.
AMD Athlon™ Processor Special Cycle Encodings
Special Cycle
SHUTDOWN
HALT
PCI Address and
Data Field
Contents
Processor Description
0000 0000
The AMD Athlon™ processor generates in response to a shutdown condition. AMD Athlon processor system
bus WrLWs command: SysAddOut:
MSB=0 & [33:0] = 1 F8000 0000
SysDatOut: [31:0] = 0000 0000
0000 0001
The AMD Athlon processor generates
in response to executing a HALT
instruction: WrLWs command:
SysAddOut: MSB=0 & [33:0] = 1
F8000 0000
SysDatOut: [31:0] = 0000 0001
Northbridge and Southbridge
Description
The AMD-761™ system controller
forwards onto the PCI bus the PCI
special cycle command: AD[31:0] =
0000 0000 (address and data).
AMD-766™ peripheral bus controllers
asserts INIT to processor.
The AMD-761 system controller waits
for all queues to memory to be empty
(assumes the PCI grant enable register
is clear, “Dev0:F0:0x84” on page 70).
AMD-761 system controller optionally
(via “Dev0:F0:0x60” on page 61)
initiates an AMD Athlon system bus
disconnect to this specific CPU. The
AMD-761 system controller forwards
onto the PCI bus (after the optional
AMD Athlon system bus disconnect).
PCI special cycle command: AD[31:0] =
0000 0001 (address and data)
AMD-766 peripheral bus controllers
ignores.
WB
INVALIDATE
12
0001 0002
The AMD Athlon processor generates
in response to executing a WBINV
instruction WrLWs command:
SysAddOut: MSB=0 & [33:0] = 1
F8000 0000
SysDatOut: [31:0] = 0001 0002
The AMD-761 system controller
forwards onto the PCI bus, PCI special
cycle command: AD[31:0] = 0001 0002
(address and data).
AMD-766 peripheral bus controllers
ignores.
AMD-761™ System Controller Programmer’s Interface
Chapter 2
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
24081D—February 2002
Table 4.
AMD Athlon™ Processor Special Cycle Encodings (Continued)
Special Cycle
INVALIDATE
FLUSHACK
CONNECT
SMM ACK
(ENTER)
PCI Address and
Data Field
Contents
Processor Description
0002 0002
The AMD Athlon™ processor generates in response to executing an INVD
instruction WrLWs command:
SysAddOut: MSB=0 & [33:0] = 1
F8000 0000
SysDatOut: [31:0] = 0002 0002
0003 0002
The AMD Athlon processor generates
in response to assertion of the FLUSH
pin after all caches have been flushed
to memory. WrLWs command:
SysAddOut: MSB=0 & [33:0] = 1
F8000 0000
SysDatOut: [31:0] = 0003 0002
Northbridge and Southbridge
Description
The AMD-761™ system controller
forwards onto the PCI bus the PCI
special cycle command: AD[31:0] =
0002 0002 (address and data).
AMD-766™ peripheral bus controllers
ignores.
The AMD-761 system controller
forwards onto the PCI bus, PCI special
cycle command: AD[31:0] = 0003 0002
(address and data).
AMD-766 peripheral bus controllers
ignores.
0004 0002
The AMD Athlon processor generates
CONNECT as the first cycle after
STOP/GRANT or HALT AMD Athlon
system bus special cycle regardless of
whether or not a disconnect is
achieved (or even attempted).
WrLWs command:
SysAddOut: MSB= 0 &
[33: 0] = 1 F8000 0000
SysDatOut: [31: 0] = 0004 0002
The AMD-761 system controller
forwards onto the PCI bus, PCI special
cycle command: AD[31: 0] = 0004
0002
(address and data)
AMD-766 peripheral bus controllers
ignores.
0005 0002
The AMD Athlon processor generates
an SMM ACK (ENTER) when entering
a system management interrupt.
WrLWs command:
SysAddOut: MSB= 0 &
[33: 0] = 1 F8000 0000
SysDatOut: [31: 0] = 0005 0002
The AMD-761 system controller
forward onto the PCI bus, special cycle
command: AD[31: 0] = 0005 0002.
The AMD Athlon processor generates
SMM ACK (EXIT) when exiting from a
system management interrupt.
SMM ACK (EXIT)
Chapter 2
0006 0002
WrLWs command:
SysAddOut: MSB= 0 &
[33: 0] = 1 F8000 0000
SysDatOut: [31: 0] = 0006 0002
The AMD-761 system controller
forwards to the PCI bus.
Command: AD[31: 0] = 0006 0002.
AMD-761™ System Controller Programmer’s Interface
13
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
Table 4.
AMD Athlon™ Processor Special Cycle Encodings (Continued)
Special Cycle
STOP/GRANT
14
24081D—February 2002
PCI Address and
Data Field
Contents
0012 0002
Processor Description
Northbridge and Southbridge
Description
AMD Athlon™ processor generates in
response to assertion of the STPCLK.
WrLWs command: SysAddOut:
MSB=0 & [33:0] = 1 F8000 0000
SysDatOut: [31:0] = 0012 0002
The AMD-761™ system controller waits
for all queues to memory to be empty
(assumes the PCI grant enable register
is clear, “Dev0:F0:0x84” on page 70).
The AMD-761 system controller system
controller optionally (via
“Dev0:F0:0x60” on page 61) initiates
an AMD Athlon processor system bus
disconnect to this specific processor.
The AMD-761 system controller
forwards onto the PCI bus (after the
optional system bus disconnect) PCI
special cycle command: AD[31:0] =
0012 0002 (address and data).
The AMD-766™ peripheral bus
controllers receives and enters the
appropriate power state. The
AMD-766 peripheral bus controllers
may then assert DCSTOP# to the
Northbridge to signal that it should
deassert CKE to DDR SDRAMs and
stop its internal clocks.
AMD-761™ System Controller Programmer’s Interface
Chapter 2
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
24081D—February 2002
2.2.2
IACK
In x86 compatible Socket2000 systems, APIC is used as the
interrupt controller. To fetch the appropriate vector during
IACK cycles, x86 processors are required to assert their APIC
ID (CPU ID) on bits [15:12] of the address field when reading
the IACK generation space. IACK return data flushes all PCI
and AGP/PCI write buffers to memory.
2.2.3
PCI Configuration Accesses
In legacy x86 PC systems, PCI configuration cycles are
generated via an indirect method. A configuration address
register is defined at I/O address 0CF8 that allows software to
load a value that is asserted on the PCI address wires during
the next configuration read/write cycle. A configuration data
register is defined at I/O address 0CFC that allows software to
generate configuration read and write cycles on the PCI using
IN and OUT instructions. Data sent during OUT instructions to
the Configuration Data register is asserted on the PCI data
wires during the generated configuration write transaction.
Data received in response to a generated configuration read
transaction is returned to satisfy the IN from the Configuration
Data register.
In Socket2000 systems, PCI configuration cycles are generated
in one of two ways:
„
„
Chapter 2
In EV6 Compatible mode, the x86 processor must detect IN
and OUT instructions that reference 0CF8 and 0CFC and
generate the appropriate, explicit RdBytes/Rd/LWs and
WrBytes/WrLWs Socket2000 commands to a 16-Mbyte
region as follows:
• When an OUT instruction is detected to 0CF8, the write
data is saved into a register and the instruction retired.
• When an IN/OUT instruction is detected to 0CFC, an
appropriate AMD Athlon system bus Rd/Wr transaction is
launched with the SysAdd Field[23:0] taken from the
register that saved the most recent write to 0CF8 (above).
In traditional mode, which the AMD-761 system controller
implements, IN and OUT instructions that reference 0CF8
and 0CFC are passed normally on to the AMD Athlon
processor system bus where the Northbridge generates the
appropriate PCI configuration access.
AMD-761™ System Controller Programmer’s Interface
15
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
2.3
24081D—February 2002
Address Decoding
A consistent view of memory and PCI devices is enforced by
decoding logic in the AMD-761 system controller in the
AMD Athlon processor system bus and PCI interfaces.
2.3.1
Socket2000 Address Decoding
The AMD-761 system controller must consider both the
AMD Athlon processor system bus SysAddOut field and the
command field when deciding what to do with a given
command. This AMD Athlon processor system bus decoding is
summarized as follows:
16
„
SysAddOut MSB = 0 and command is a block command,
DRAM is accessed:
• If SysAddOut [31:0] falls between Dev0:BAR0 and
Dev0:BAR0+Len, address is to AGP virtual address space
and needs to passed through the GART before
presentation to DRAM.
„
SysAddOut MSB = 1 and command is a masked write
command (WrQWs, WrLWs, WrBytes), DRAM is accessed:
• If SysAddOut [31:0] falls between Dev0:BAR0 and
Dev0:BAR0+Len, address is to AGP virtual address space
and needs to passed through the GART before
presentation to DRAM.
„
SysAddOut MSB = 0 and SysAddOut [35:32] = 0 and
command is a masked command, PCI memory-mapped I/O is
accessed:
• Using Dev0:F0:0x14, BAR1, send to the AMD-761 system
controller memory-mapped GART control registers (see
Section 2.5 on page 138).
• Memory range address decoding, send to either PCI or
AGP/PCI using address bits [31:0] based on the
following:
• Dev1:0x20, 0x24 (see “AGP/PCI Memory Limit and
Base (Dev1:0x20)” on page 131 and “AGP/PCI
Prefetchable Memory Limit and Base (Dev1:0x24)”
on page 133).
• Dev 0:F0:0x84 AGP VGA BIOS bits, see “Bit
Definitions PCI Arbitration Control (Dev0:F0:0x84)”
on page 71).
AMD-761™ System Controller Programmer’s Interface
Chapter 2
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
24081D—February 2002
„
SysAddOut MSB = 0 and SysAddOut [35:24] = 1F8 and
command is RdBytes, an IACK special cycle is generated on
the primary PCI. SysAddOut[15:0] are asserted on PCI
AD[15:0] during this cycle. The data returned on the PCI is
returned to the processor.
„
SysAddOut MSB = 0 and SysAddOut [35:24] = 1F8 and
command is WrBytes, a PCI special cycle is generated on
the primary PCI. SysAddOut[15:0] are asserted on PCI
AD[15:0] during this cycle (address = data).
„ SysAddOut MSB = 0 and SysAddOut [35:24] = 1FC/1FD and
command is RdBytes or WrBytes, a PCI I/O command is
generated. SysAddOut[23:0] are asserted on PCI AD[23:0]
with the PCI I/O read or write command.
• Using Dev1:0x1C, I/O range address decoding, send to
either PCI or AGP/PCI.
Note: Low-order AMD Athlon processor system bus address bits, per
the AMD Athlon processor system bus specification,
SysAddOut only goes down to PA[3]. For mask operations, the
Mask[7:0] bits are encoded to logically create PA[2:0] in the
above.
2.3.2
PCI/AGP Master Address Decoding
The PCI controllers in the AMD-761 system controller must
consider the received PCI/AGP address in conjunction with the
BAR registers and the memory configuration registers to route
the transaction. The AMD-761 system controller does not allow
PCI masters to access I/O regions or main memory from
640 Kbyte to 1 Mbyte (unless the EV6_Mode bit is set as
described in “Bit Definitions PCI Arbitration Control
(Dev0:F0:0x84)” on page 71). This decoding is summarized as
follows:
1. AD[31:0] is less than the physical top of memory (from the
memory controller), DRAM is accessed.
2. AD[31:0] is above the physical top of memory and it falls
between Dev0:BAR0 and Dev0:BAR0+Len, address is to
AGP virtual address space and needs to be passed through
the GART before presentation to DRAM.
Chapter 2
AMD-761™ System Controller Programmer’s Interface
17
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
24081D—February 2002
3. Memory range address decoding, send to AGP/PCI using
address bits [31:0] based on the following (for writes only
from the primary PCI):
• Dev1:0x20, 0x24 (see “AGP/PCI Memory Limit and
Base (Dev1:0x20)” on page 131 and “AGP/PCI
Prefetchable Memory Limit and Base (Dev1:0x24)”
on page 133).
• Dev 0:F0:0x84 AGP VGA BIOS bits (see “Bit
Definitions PCI Arbitration Control (Dev0:F0:0x84)”
on page 71).
4. Else, the primary PCI is accessed (for writes only from the
AGP/PCI).
Note: GART Control register access. The AMD-761 system
controller does not allow access to the memory-mapped
GART control registers from either PCI or AGP/PCI masters.
2.4
Configuration Registers
All functional registers in the AMD-761 system controller are
implemented as PCI configuration registers. The AMD-761
system controller implements a standard PCI hierarchy that
allows BIOS software to enumerate devices on the primary PCI,
the AGP port, and future interfaces. See the logical bus
hierarchy in Figure 3 on page 19.
Note that the AMD-761 system controller only responds to
function 0 and 1, device 0 and function 0, device 1. All other
configuration accesses return Fs. Function 1, device 0 accesses
are ignored unless enabled by the appropriate bit in the PCI
Control register (see “Dev0:F0:0x4C” on page 47).
18
AMD-761™ System Controller Programmer’s Interface
Chapter 2
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
24081D—February 2002
Processor
Processor
2 Processor
System Only
Host to PCI
Bridge
Device 0:F0/F1
PCI Devices
Southbridge
PCI
PCI-to-PCI
Bridge
Device 1:F0
PCI-to-PCI
Bridge
Device 1:F1
Figure 3.
Chapter 2
AGP
AGP
Master
(Future Interface)
AMD-761™ System Controller Logical Bus Hierarchy
AMD-761™ System Controller Programmer’s Interface
19
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
2.4.1
24081D—February 2002
I/O Register Map
The AMD-761 system controller implements some I/O registers
(accessed by processor I/O instructions). These registers, as
presented in Table 5, are the Configuration Address and
Configuration Data registers as specified in PCI Local Bus
Specification, Revision 2.2.
Table 5.
I/O Register Map
Register
AMD Athlon™ Processor System Bus
Address
Reference
Configuration Address
SysAddOut MSB =0 &
1 FC000 0CF8
“I/O:0CF8” on page 21 and “I/O:0CF8” on
page 23
Configuration Data
SysAddOut MSB =0 &
1 FC000 0CFC
“I/O:0CFC” on page 25
20
AMD-761™ System Controller Programmer’s Interface
Chapter 2
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
24081D—February 2002
Configuration Address Register Type 0
31
Bit
30
29
28
0
R/W
R/W
23
0
0
0
25
24
0
0
0
18
17
16
0
0
0
0
11
10
9
8
0
R
22
21
20
19
PCI_Bus_Num
0
0
0
0
R/W
R/W
15
14
Bit
13
12
Dev_Num
0
0
Func_Num
0
0
R/W
0
0
0
0
3
2
1
0
R/W
7
6
5
Bit
Reset
26
Reserved
Bit
Reset
27
Config_En
Reset
Reset
I/O:0CF8
4
Reg_Num
0
R/W
0
0
Reserved
0
0
0
R/W
0
0
R
Register Description
When writes to the configuration address register have [23:16] == 0h00, a Type 0 configuration access is specified.
Chapter 2
AMD-761™ System Controller Programmer’s Interface
21
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
Bit Definitions
24081D—February 2002
Configuration Address Register Type 0 (I/O:0CF8)
Bit
Name
Function
31
Config_En
Configuration Enable
0 = PCI configuration cycles are not generated.
1 = Accesses to the Configuration Data and Address registers are converted to
configuration cycles on the PCI.
30–24
Reserved
Reserved
23—16
PCI_Bus_Num
PCI Bus Number
This bit field defines which PCI bus in the system is referenced with this address. The
AMD-761™ system controller logically implements two PCI buses. The main PCI bus
normally enumerates as bus 0 and the AGP bus enumerates as bus 1.
15—11
Dev_Num
Device Number
This bit field defines which device is accessed in the system. Devices are assigned numbers
in a system by tying the device IDSEL wire to a specific PCI AD wire. The AMD-761 system
controller decodes this field and asserts the appropriate AD wire during the address phase
to select the defined device. In the AMD-761 system controller there are two “hard-wired”
device numbers for the host to PCI bridge (0b00000) and P2P bridge (0b00001).
10—8
Func_Num
Function Number
This bit field defines which function is accessed in a given device. The AMD-761 system
controller responds to function 0 only (0b000) by default. Function 1 (DDR PDL registers)
can be enabled via writing to the PCI Control register (Dev 0:F0:0x4C) as described on
page 47.
7—2
Reg_Num
Register Number
This bit field defines which specific PCI register is accessed in the device and function
specified above. The register numbers for the AMD-761 system controller device 0 are
listed in Table 6, “Device 0, Function 0 Configuration Register Map,” on page 27. The
register numbers for the AMD-761 device 1 are listed in Table 15, “Device 1 Configuration
Register Map,” on page 117.
1—0
Reserved
Reserved
Programming Notes
22
AMD-761™ System Controller Programmer’s Interface
Chapter 2
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
24081D—February 2002
Configuration Address Register Type 1
31
Bit
30
29
28
0
R/W
R/W
23
0
0
0
25
24
0
0
0
18
17
16
0
0
0
0
11
10
9
8
0
R
22
21
20
19
PCI_Bus_Num
0
0
0
0
R/W
R/W
15
14
Bit
13
12
Dev_Num
0
0
Func_Num
0
0
R/W
0
0
0
0
3
2
1
0
R/W
7
6
5
Bit
Reset
26
Reserved
Bit
Reset
27
Config_En
Reset
Reset
I/O:0CF8
4
Reg_Num
0
R/W
0
0
Reserved
0
0
0
R/W
0
0
R
Register Description
When writes to the configuration address register have [23:16] ~= 0h00, a type 1 configuration access is specified.
Chapter 2
AMD-761™ System Controller Programmer’s Interface
23
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
Bit Definitions
24081D—February 2002
Configuration Address Register Type 1 (I/O:0CF8)
Bit
Name
Function
31
Config_En
Configuration Enable
0 = PCI configuration cycles are not generated.
1 = Accesses to the Configuration Data and Address registers are converted to
configuration cycles on the PCI.
30–24
Reserved
Reserved
23—16
PCI_Bus_Num
PCI Bus Number
This bit field defines which PCI bus in the system is referenced with this address. The
AMD-761™ system controller logically implements two PCI buses. The main PCI bus
normally enumerates as bus 0 and the AGP bus enumerates as bus 1.
15—11
Dev_Num
Device Number
This bit field defines which device is accessed in the system on the target PCI bus. This field
is passed on directly to the AD wires undecoded.
10—8
Func_Num
Function Number
This bit field defines which function is accessed in a given device. This field is passed on
directly to the AD wires undecoded.
7—2
Reg_Num
Register Number
This bit field defines which specific PCI register is accessed in the device and function
specified above.
1—0
Reserved
Reserved
Programming Notes
24
AMD-761™ System Controller Programmer’s Interface
Chapter 2
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
24081D—February 2002
Configuration Data
31
I/O:0CFC
30
29
28
Bit
27
26
25
24
x
x
x
x
19
18
17
16
x
x
x
x
11
10
9
8
x
x
x
x
3
2
1
0
x
x
x
x
Config_Data
Reset
x
x
x
x
R/W
R/W
23
22
21
20
Bit
Config_Data
Reset
x
x
x
x
R/W
R/W
15
14
13
12
Bit
Config_Data
Reset
x
x
x
x
R/W
R/W
7
6
5
4
Bit
Config_Data
Reset
x
x
R/W
x
x
R/W
Register Description
Bit Definitions
Bit
31—0
Configuration Data (I/O:0CFC)
Name
Function
Config_Data
Configuration Data
This bit field is used to access the PCI configuration register specified in the Configuration
Address register above.
Programming Notes
Chapter 2
AMD-761™ System Controller Programmer’s Interface
25
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
2.4.2
24081D—February 2002
Configuration Register Access
The AMD-761 system controller implements most registers as
PCI configuration registers. The x86 software executes IN and
OUT instructions to I/O addresses of 0CF8 and 0CFC to access
all configuration registers. These are translated by the
AMD Athlon™ processor into AMD Athlon processor system bus
RdBytes and WrBytes commands with the lower 24 bits of the
address field containing the logical contents of the ConfigAddr
register (I/O address 0CF8). The format of this register is shown
in “I/O:0CF8” on page 21 and “I/O:0CF8” on page 23.
Configuration accesses in the AMD-761 system controller
conform to the following rules:
„
„
„
„
„
The AMD-761 system controller is defined to be function 0
and 1, device 0; and function 0, device 1. The IDSEL pin of
all external PCI devices must be wired to 1 of AD[31:13] as
logically [12:11] are assigned to device 0, 1 (AMD-761
system controller).
Function 1, device 0 configuration space contains only the
DDR Programmable Delay Line (PDL) registers. This space
is enabled only when the appropriate bit is set in the PCI
Control register (see “Dev0:F0:0x4C” on page 47). Accesses
to the normal reserved PCI space of function 1 yields all 1s.
Accesses to function 1 are ignored when function 1 is not
enabled.
Device 0 accesses correspond to the host to PCI bridge
registers defined in Section 2.4.3 on page 27.
Device 1 accesses correspond to the PCI-to-PCI bridge
registers defined in Section 2.4.5 on page 117.
Access can be byte, word or DWord in length and must be
naturally aligned.
Northbridges are required to create type 0 and type 1 accesses
as follows:
„
„
26
If SysAdd[23:16] = 0 (Bus# = 2'h00), a type 0 config cycle is
generated and PCI AD[1:0] = 2'b00. Device#, SysAdd[15:11]
is decoded and asserted on PCI AD[31:11] for IDSEL.
If SysAdd[23:16] != 0 (Bus# != 2'h00), a type 1 config cycle is
generated and PCI AD[1:0] = 2'b01. Bus# and Device# fields
are passed onto the PCI directly with no decoding. PCI
AD[31:24] = 2'h00.
AMD-761™ System Controller Programmer’s Interface
Chapter 2
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
24081D—February 2002
2.4.3
Device 0: PCI Configuration Registers
In Table 6, the column entitled Offset consists of the register
number specified in the Configuration Address register bits
[7:2] concatenated with 0b00 to form a simple 1-byte offset.
Reserved configuration registers return 0 when read.
Table 6.
Device 0, Function 0 Configuration Register Map
Host to PCI Bridge (Device 0, Function 0)
Offset
Reference
Device ID
Vendor ID
0x00–0x03
“Dev0:F0:0x00”
on page 30
Status
Command
0x04–0x07
“Dev0:F0:0x04”
on page 32
Revision ID
0x08–0x0B
“Dev0:F0:0x08”
on page 35
Reserved
0x0C–0x0F
“Dev0:F0:0x0C”
on page 36
BAR0 - AGP Virtual Address Space
0x10–0x13
“Dev0:F0:0x10”
on page 37
BAR1 - GART Memory-Mapped Control Registers Pointer
0x14–0x17
“Dev0:F0:0x14”
on page 39
Reserved
0x18–0x1B
Reserved
0x1C–0x33
Class Code = 0x060000
Reserved
Header Type
Latency Timer
Capabilities
Pointer: A0
Reserved
0x34–0x37
“Dev0:F0:0x34”
on page 41
Reserved
0x38–0x43
Extended BIU Control
0x44–0x53
“Dev0:F0:0x44”
on page 42
ECC Mode/Status
0x48–0x4B
“Dev0:F0:0x48”
on page 44
PCI Control
0x4C–0x4F
“Dev0:F0:0x4C”
on page 47
AMD Athlon™ Processor System Bus Dynamic Compensation
0x50–0x53
“Dev0:F0:0x50”
on page 49
DRAM Timing
0x54–0x57
“Dev0:F0:0x54”
on page 51
DRAM Mode/Status
0x58–0x5B
“Dev0:F0:0x58”
on page 56
Reserved
0x5C–0x5F
BIU0 Status/Control
0x60–0x63
“Dev0:F0:0x60”
on page 61
BIU0 SIP
0x64–0x67
“Dev0:F0:0x64”
on page 64
Chapter 2
AMD-761™ System Controller Programmer’s Interface
27
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
Table 6.
24081D—February 2002
Device 0, Function 0 Configuration Register Map (Continued)
Host to PCI Bridge (Device 0, Function 0)
Offset
Reserved
0x68–0x6B
Reserved
0x6C–0x6F
Memory Status/Control
0x70–0x73
Reserved
0x74–0x77
Reserved
0x78–0x7B
Reserved
0x7C–0x7F
“Dev0:F0:0x70”
on page 66
0x80–0x83
“Dev0:F0:0x80”
on page 68
PCI Arbitration Control
0x84–0x87
“Dev0:F0:0x84”
on page 70
Configuration Status
0x88–0x8B
“Dev0:F0:0x88”
on page 74
Reserved
0x8C–0x8F
Reserved
0x90–0x93
Reserved
0x94–0x97
Reserved
0x98–0x9B
Reserved
Boot Proc
WHAMI
0x9C–0x9F
“Dev0:F0:0x9C”
on page 77
AGP Capability Identifier
0xA0–0xA3
“Dev0:F0:0xA0”
on page 79
AGP Status
0xA4–0xA7
“Dev0:F0:0xA4”
on page 80
AGP Command
0xA8–0xAB
“Dev0:F0:0xA8”
on page 82
AGP Virtual Address Space Size
0xAC–0xAF
“Dev0:F0:0xAC”
on page 84
GART/AGP Mode Control
0xB0–0xB3
“Dev0:F0:0xB0”
on page 86
AGP 4X Dynamic Compensation
0xB4–0xB7
“Dev0:F0:0xB4”
on page 88
AGP Compensation Bypass
0xB8–0xBF
“Dev0:F0:0xB8”
on page 91
Memory Base Address 0
0xC0–0xC3
“Dev0:F0:0xC0”
on page 95
Memory Base Address 1
0xC4–0xC7
“Dev0:F0:0xC4”
on page 95
PCI Top of Memory
28
Reference
Reserved
AMD-761™ System Controller Programmer’s Interface
Chapter 2
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
24081D—February 2002
Table 6.
Chapter 2
Device 0, Function 0 Configuration Register Map (Continued)
Host to PCI Bridge (Device 0, Function 0)
Offset
Reference
Memory Base Address 2
0xC8–0xCB
“Dev0:F0:0xC8”
on page 95
Memory Base Address 3
0xCC–0xCF
“Dev0:F0:0xCC”
on page 95
Memory Base Address 4
0xD0–0xD3
“Dev0:F0:0xD0”
on page 95
Memory Base Address 5
0xD4–0xD7
“Dev0:F0:0xD4”
on page 95
Memory Base Address 6
0xD8–0xDB
“Dev0:F0:0xD8”
on page 95
Memory Base Address 7
0xDC–0xDF
“Dev0:F0:0xDC”
on page 95
Reserved
0xE0–0xFF
AMD-761™ System Controller Programmer’s Interface
29
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
24081D—February 2002
PCI ID
Dev0:F0:0x00
31
30
29
28
Bit
Reset
0
1
1
1
22
21
20
Bit
24
0
0
0
0
19
18
17
16
1
1
1
0
11
10
9
8
0
0
0
0
3
2
1
0
0
0
1
0
Dev_ID
0
0
0
0
R/W
R
15
14
13
12
Bit
Vend_ID
0
0
0
1
R/W
R
7
6
5
4
Bit
Reset
25
R
23
Reset
26
Dev_ID
R/W
Reset
27
Vend_ID
0
R/W
0
1
0
R
Register Description
30
AMD-761™ System Controller Programmer’s Interface
Chapter 2
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
24081D—February 2002
Bit Definitions
PCI ID (Dev0:F0:0x00)
Bit
Name
Function
31—16
Dev_ID
Device Identifier
This 16-bit field is assigned by the device manufacturer and identifies the type of device.
The current Northbridge device ID assignments are:
AMD-761™ system controller — AMD Athlon™ processor, 1P DDR 133 MHz
0x700E host to PCI bridge
0x700F PCI-to-PCI bridge (4-X AGP)
AMD-762™ system controller — AMD Athlon processor, 2P DDR 133 MHz
0x700C host to PCI bridge
0x700D PCI-to-PCI bridge (4-X AGP)
AMD-751™ system controller — AMD Athlon processor, 1P SDRAM-100
0x7006 host to PCI bridge
0x7007 PCI-to-PCI bridge (1X/2X AGP)
15—0
Vend_ID
Vendor Identifier
This 16-bit field identifies the manufacturer of the device.
Programming Notes
Chapter 2
AMD-761™ System Controller Programmer’s Interface
31
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
24081D—February 2002
PCI Command and Status
Dev0:F0:0x04
31
30
29
28
27
PERR_Rcv
SERR_Sent
Mas_ABRT
Trgt_ABRT
Trgt_ABRT
_ Signaled
Reset
0
0
0
0
0
R/W
R
R/W1C
R/W1C
R/W1C
R
23
22
21
20
19
Fast_B2B
UDF
66M
Cap_Lst
0
0
0
1
Bit
Bit
Reset
R/W
14
13
Bit
12
Reset
DEVSEL_Timing
0
1
R
24
Data_PERR
0
R
18
17
16
Reserved
0
0
0
0
11
10
9
8
FBACK
SERR
0
0
Reserved
0
0
0
0
R/W
Bit
25
R
15
Reset
26
0
0
R
R/W
7
6
5
4
3
2
1
0
STEP
PERR
VGA
MWINV
SCYC
MSTR
MEM
I/O
0
0
0
0
0
1
0
0
R/W
R
R/W
R
Register Description
32
AMD-761™ System Controller Programmer’s Interface
Chapter 2
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
24081D—February 2002
Bit Definitions
PCI Command and Status (Dev0:F0:0x04)
Bit
Name
Function
31
PERR_Rcv
Detected Parity Error
This bit is always 0 because the AMD-761™ system controller does not support data
parity checking.
30
SERR_Sent
Signaled System Error
This bit is set whenever the AMD-761 system controller generates a system error and
asserts the SERR# line (ECC, GART error). This bit is cleared by writing a 1. Refer to Table 7
on page 34 for details about SERR# assertion and status.
29
Mas_ ABRT
Received Master Abort
This bit is set whenever a CPU to PCI transaction (except for a special cycle) is terminated
due to a master abort. This bit is cleared by writing a 1.
28
Trgt_ABRT
Received Target Abort
This bit is set whenever a CPU to PCI transaction (except for a special cycle) is terminated
due to a target abort. This bit is cleared by writing a 1.
27
Trgt_ABRT_
Signaled
Signaled Target Abort
This bit is always 0 because the AMD-761 system controller does not terminate
transactions with target aborts.
DEVSEL_Timing
DEVSEL# Timing
This bit field defines the timing of DEVSEL# on the AMD-761 system controller. The
AMD-761 system controller supports medium DEVSEL# timing.
24
Data_PERR
Data Parity Error
This bit is always 0 because the AMD-761 system controller does not report parity errors.
23
Fast B2B
Fast Back-to-Back Capable
This bit is always 0, indicating that the AMD-761 system controller as a target is not
capable of accepting fast back-to-back transactions when the transactions are not to the
same agent.
22
UDF
User-Definable Features
This bit is always 0, indicating that UDF is not supported on the AMD-761 system
controller.
21
66M
66-MHz Capable
This bit is always 0, indicating that the AMD-761 system controller is not 66-MHz capable.
20
Cap_Lst
Capabilities List
This bit is set to indicate that this device’s configuration space supports a capabilities list.
19–10
Reserved
Reserved
9
FBACK
Fast Back-to-Back to Different Devices Enable
This bit is always 0, because the AMD-761 system controller does not allow generation of
fast back-to-back transactions to different agents.
8
SERR
System Error Enable
0 = SERR# driver disabled
26—25
1 = SERR# driver enabled
Refer to Table 7 for details about SERR# assertion and status.
Chapter 2
AMD-761™ System Controller Programmer’s Interface
33
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
Bit Definitions (Continued)
24081D—February 2002
PCI Command and Status (Dev0:F0:0x04)
Bit
Name
Function
7
STEP
Address Stepping
This bit is always 0 because the AMD-761™ system controller does not perform
address stepping.
6
PERR
Parity Error Response
This bit is always 0 because the AMD-761 system controller does not report data parity errors.
5
VGA
VGA Palette Snoop Enable
This bit is always 0, indicating that the AMD-761 system controller does not snoop the VGA
palette address range.
4
MWINV
Memory Write and Invalidate Enable
This bit is always 0 because the AMD-761 system controller does not generate memory
write and invalidate commands.
3
SCYC
Special Cycle
This bit is always 0 because the AMD-761 system controller ignores PCI special cycles.
2
MSTR
Bus Master Enable
This bit is always set, indicating that the AMD-761 system controller is allowed to act as a bus
master on the PCI bus.
1
MEM
Memory Access Enable
0 = PCI memory accesses ignored
1 = PCI memory accesses responded to
0
I/O
I/O Access Enable
This bit is always 0 because the AMD-761 system controller does not respond to I/O cycles
on the PCI bus.
Programming Notes
Table 7 lists the controls required to enable the assertion of the AMD-761 SERR# pin and the various status bits that can
be read to determine when the SERR# and A_SERR# pins have been asserted.
Table 7.
AMD-761™ System Controller SERR# Assertion Control and Status Bits
SERR# Source
GART or ECC error
SERR# Pin
Assertion Control
Enabled by bit 8, Dev 0:F0:0x04, PCI
Status/Command register.
Enabled by bit 8, Dev 1:F0:0x04, PCI
A_SERR# assertion on AGP
Status/Command register, and bit 17,
interface forwarded to SERR# pin Dev 1:F0:0x3C, AGP/PCI Interrupt and
Bridge Control.
34
Signalled System
Error Status Bit
Read bit 30, Dev 0:F0:0x04, PCI
Status/Command register.
Read bit 30, Dev 1:F0:0x1C, AGP/PCI
Status, I/O and Base Limit, and bit 30,
Dev 1:F0:0x04, AGP/PCI
Command/Status.
AMD-761™ System Controller Programmer’s Interface
Chapter 2
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
24081D—February 2002
PCI Revision ID and Class Code
31
30
Dev0:F0:0x08
29
28
Bit
Reset
0
0
0
0
22
21
20
Bit
24
0
1
1
0
19
18
17
16
0
0
0
0
11
10
9
8
0
0
0
0
3
2
1
0
0
0
0
Sub-Class_Code
0
0
0
0
R/W
R
15
14
13
12
Bit
Prog_I/F
0
0
0
0
R/W
R
7
6
5
4
(See Programming Notes below.)
Bit
Reset
25
R
23
Reset
26
Class_Code
R/W
Reset
27
Rev_ID
0
R/W
0
0
1
0
R
Register Description
Bit Definitions
Bit
Name
31–24
Class_Code
23–16
15–8
SubClass_Code
Prog_I/F
7–0
Rev_ID
PCI Revision ID and Class Code (Dev0:F0:0x08)
Function
Class Code
Indicates a bridge device.
Sub-Class Code
Indicates a Host/PCI bridge.
Program Interface
Indicates a Host/PCI bridge.
Revision Identification
Identifies revision number of the device.
Programming Notes
Refer to the AMD-761™ System Controller Revision Guide, order# 23613, for details of the Rev_ID field for each silicon
revision.
Chapter 2
AMD-761™ System Controller Programmer’s Interface
35
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
24081D—February 2002
PCI Latency Timer and Header Type
31
30
29
Dev0:F0:0x0C
28
Bit
Reset
0
0
0
24
0
0
0
0
19
18
17
16
0
0
0
0
11
10
9
8
0
0
0
0
3
2
1
0
0
0
0
0
0
22
21
20
Bit
Header_Type
0
0
0
0
R/W
R
15
14
13
12
Bit
Lat_Timer
0
0
0
0
R/W
R/W
7
6
5
4
Bit
Reset
25
R
23
Reset
26
Reserved
R/W
Reset
27
Reserved
0
R/W
0
0
0
R
Register Description
Bit Definitions
Bit
Name
31–24
Reserved
23–16
Header_Type
15–8
Lat_Timer
7–0
Reserved
PCI Latency Timer and Header type (Dev0:F0:0x0C)
Function
Reserved
Header Type
Bit 23 is always 0, indicating that the AMD-761™ system controller is a single function device.
Bits [22:16] are 0, indicating that Type 00 configuration space header format is supported.
Latency Timer
This bit field defines the minimum amount of time in PCI clock cycles that the bus master
can retain ownership of the bus. This action is mandatory for masters that are capable of
performing a burst consisting of more than two data phases.
Reserved
Programming Notes
36
AMD-761™ System Controller Programmer’s Interface
Chapter 2
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
24081D—February 2002
Base Address 0: AGP Virtual Address Space
31
30
29
Bit
Reset
28
0
0
0
22
21
Bit
0
25
24
BaseAddr_Low
0
0
0
0
R
20
19
18
17
16
0
0
0
0
11
10
9
8
0
0
0
0
3
2
1
0
Base_Addr_Low
0
0
0
0
R/W
R
15
14
13
Bit
12
Base_Addr_Low
0
0
0
0
R/W
R
7
Bit
Reset
26
R/W
23
Reset
27
Base_Addr_High
R/W
Reset
Dev0:F0:0x10
6
5
4
Base_Addr_Low
0
R/W
0
0
Prefetchable
0
1
Type
0
Memory
0
0
R
Register Description
This register is used by system BIOS memory mapping software to allocate virtual address space for AGP.
Chapter 2
AMD-761™ System Controller Programmer’s Interface
37
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
Bit Definitions
Bit
31–25
24–4
3
2–1
0
24081D—February 2002
Base Address 0: AGP Virtual Address Space (Dev0:F0:0x10)
Name
Function
Base_Addr_High
Base Address High
This bit field forms the upper part of BAR0. This field is loaded by BIOS software. Note that
when the GART enable bit in the AGP Virtual Address Space Size register is 0 (see
“Dev0:F0:0xAC” on page 84), these bits always return 0s to indicate no address space
should be allocated to AGP. Note that a write to this register must occur before a read
returns 0s with the GART enable bit cleared.
This bit field corresponds to bits [3:1] of the AGP Virtual Address Space Size register. When
bits [3:1] of that register are set, the R/W attributes in bits [30:25] in this register are
automatically set. BIOS software writes all 1s to this BAR register and then reads back the
register to determine how much memory is required for AGP as follows:
31
30
29
28
27
26
25
Memory
RW
RW
RW
RW
RW
RW
RW
32 Mbytes
RW
RW
RW
RW
RW
RW
R
64 Mbytes
RW
RW
RW
RW
RW
R
R
128 Mbytes
RW
RW
RW
RW
R
R
R
256 Mbytes
RW
RW
RW
R
R
R
R
512 Mbytes
RW
RW
R
R
R
R
R
1 Gbyte
RW
R
R
R
R
R
R
2 Gbytes
Base_Addr_Low
Base Address Low
This bit field is hardwired to return 0s to indicate that the minimum allocated memory size
is 32 Mbytes.
Prefetchable
Prefetchable
This bit is hardwired to 1 to indicate that this range is prefetchable.
Type
Type
This bit field is hardwired to indicate that this base register is 32 bits wide and mapping
can be performed anywhere in the 32-bit address space.
Memory
Memory
This bit is hardwired to 0 to indicate that this base address register maps into memory space.
Programming Notes
38
AMD-761™ System Controller Programmer’s Interface
Chapter 2
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
24081D—February 2002
Base Address 1: GART Memory-Mapped Register Base
31
30
29
Bit
Reset
28
0
0
0
22
21
Bit
0
20
24
0
0
0
0
19
18
17
16
0
0
0
0
11
10
9
8
Base_Addr_High
0
0
0
0
R/W
R/W
15
Bit
14
13
12
Base_Addr_High
0
0
R/W
0
Base_Addr_Low
0
0
0
R/W
7
Bit
Reset
25
R/W
23
Reset
26
Base_Addr_High
R/W
Reset
27
Dev0:F0:0x14
6
R/W
0
0
1
0
R
5
4
3
Base_Addr_Low
0
0
0
2
Prefetchable
0
1
Type
0
Memory
0
0
R
Register Description
This register provides the base address for the GART memory-mapped configuration register space (see “MemoryMapped Register Map” on page 140 for details).
Chapter 2
AMD-761™ System Controller Programmer’s Interface
39
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
Bit Definitions
Bit
24081D—February 2002
Base Address 1: GART Memory-Mapped Register Base (Dev0:F0:0x14)
Name
Function
31–12
Base_Addr_High
Base Address High
This bit field forms the upper part of BAR1. This field is loaded by BIOS software.
11–4
Base_Addr_Low
Base Address Low
This bit field is hardwired to return 0s to indicate that 4 Kbytes are allocated to GART
memory-mapped control registers and that the registers always reside in a 4-Kbyte
boundary per PCI Local Bus Specification, Revision 2.2.
Prefetchable
Prefetchable
This bit is hardwired to 1 to indicate that this range is prefetchable
Type
Type
This bit field is hardwired to indicate that this base register is 32 bits wide and mapping
can be performed anywhere in the 32-bit address space.
Memory
Memory
This bit is hardwired to 0 to indicate that this base address register maps into memory space.
3
2–1
0
Programming Notes
40
AMD-761™ System Controller Programmer’s Interface
Chapter 2
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
24081D—February 2002
AGP/PCI Capabilities Pointer
31
30
Dev0:F0:0x34
29
28
Bit
27
26
25
24
0
0
0
0
19
18
17
16
0
0
0
0
11
10
9
8
0
0
0
0
3
2
1
0
0
0
0
0
Reserved
Reset
0
0
0
0
R/W
R
23
22
21
20
Bit
Reserved
Reset
0
0
0
0
R/W
R
15
14
13
12
Bit
Reserved
Reset
0
0
0
0
R/W
R
7
6
5
4
Bit
CAP_PTR
Reset
1
0
R/W
1
0
R
Register Description
Bit Definitions
Bit
AGP/PCI Capabilities Pointer (Dev0:0x34)
Name
Function
31–8
Reserved
Reserved
7–0
CAP_PTR
Capabilities Pointer
This field contains a byte offset into a device’s configuration space containing the first item
in the capabilities list. The first item in the capabilities list is the AGP function.
Note that when the AGP valid bit in the PCI-to-PCI bridge virtual address space register is
set to invalid, this capabilities pointer is set by the chipset to point to the next item in the
linked list. If no next item exists, then it is set to null.
Programming Notes
Chapter 2
AMD-761™ System Controller Programmer’s Interface
41
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
24081D—February 2002
Extended BIU Control
31
Dev0:F0:0x44
30
29
28
Bit
Reset
0
0
25
24
0
0
0
0
0
0
19
18
17
16
R
23
22
Bit
21
20
Reserved
0
0
Reserved
0
0
R/W
0
0
0
0
11
10
9
8
R
15
Bit
Reset
26
Reserved
R/W
Reset
27
14
13
Reserved
0
0
12
Reserved
P0_WrDataDly
0
SIP Stream
R/W
R
7
6
5
4
3
Reserved
Reserved
Reserved
Reserved
P0_2BitPF
Reset
0
0
0
0
0
R/W
R
R
R/W
Bit
R
2
1
0
0
0
0
R
Register Description
This register provides controls for the processor interface, in addition to the BIU Control register at Dev 0:F0:0x60 for
Processor 0.
42
AMD-761™ System Controller Programmer’s Interface
Chapter 2
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
24081D—February 2002
Bit Definitions
Bit
Extended BIU Control (Dev0:F0:0x44)
Name
Function
31–11
Reserved
Reserved
15–14
Reserved
Reserved
10–8
P0_WrDataDly
Write Data Delay
P0_WrDataDly is the time in SYSCLK periods from the launch of a SysDC WriteData
command until the launch of the first data object by the processor. This value is a
calculated part of the SIP stream. This value is not provided in the BIU SIP register and is
thus provided here.
7-4
Reserved
Reserved
3
P0_2BitPF
Two Bit Times Per Frame Enable
This bit enables the use of the two bit time commands on the AMD Athlon™ processor
system bus. This bit must be set when connected to an AMD Athlon processor and
disabled when connected to an Alpha processor. For proper operation, BIOS must not
clear this bit once it has been set.
0 = Two-bit time commands disabled
1 = Two-bit time commands enabled (AMD Athlon processor only)
2–0
Reserved
Reserved
These bits must be written with 0 (cleared) for normal operation.
Programming Notes
Chapter 2
AMD-761™ System Controller Programmer’s Interface
43
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
24081D—February 2002
ECC Mode/Status
Dev0:F0:0x48
31
30
29
28
Bit
Reset
0
0
0
0
22
21
20
Bit
24
0
0
0
0
19
18
17
16
0
0
0
0
11
10
9
8
Reserved
0
0
0
0
R/W
R
15
Bit
14
SERR_Enable
X
R/W
X
R/W
7
Bit
Reset
25
R
23
Reset
26
Reserved
R/W
Reset
27
6
13
12
Reserved
ECC_Diag
0
X
R
R/W
5
4
ECC_Mode
X
ECC_Status
X
R/W
3
R/W
0
0
0
R/W1C
2
ECC_CS_MED
0
0
1
0
0
0
ECC_CS_SED
0
0
0
R
R
Register Description
This register provides ECC mode control and status reporting for the DRAM system.
Note that some bits of this register are not initialized at reset time, and all bits must be initialized by BIOS for proper
operation. This action should be done prior to attempting DRAM access.
44
AMD-761™ System Controller Programmer’s Interface
Chapter 2
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
24081D—February 2002
Bit Definitions
Bit
ECC Mode/Status (Dev0:F0:0x48)
Name
Function
31–16
Reserved
Reserved
15-14
SERR_Enable
System Error Enable
These bits control the AMD-761™ system controller’s reporting of ECC errors to the
system via the SERR# pin on the PCI bus. Note that SERR# assertion is still subject to the
normal PCI SERR# enable (bit 8 in Dev 0:F0:0x04). Refer to Table 7 on page 34 for
details about SERR# assertion and status.
00 = SERR# assertion is disabled.
X1 = Multiple bit errors force SERR# assertion.
1X = Single bit errors force SERR# assertion.
13
Reserved
Reserved
12
ECC_Diag
Error Correcting Code Diagnostic Mode Enable
0 = ECC diagnostic mode disabled
1 = ECC diagnostic mode enabled
When the ECC diagnostic mode is enabled, the AMD-761 system controller always
writes 0x00 to the ECC byte to aid testing of the ECC logic. During partial writes, the
RMW sequence still occurs, but the ECC bits are always written to 0x00.
For reads, the ECC circuitry is unaffected by the ECC_Diag bit. The ECC code returned
from memory is checked, and errors are reported in the ECC_Status bits as usual.
Correction is not performed in this mode.
11–10
ECC_Mode
Error Correcting Code Mode
00 = ECC disabled, no error detection or correction is performed.
01 = EC_HiPerf mode enabled. Error checking and status reporting is enabled. Data
destined for the PCI/AGP and memory (RMR) is not corrected.
10 = ECC_HiPerf mode enabled. Error checking and status reporting is enabled. Data
destined for the PCI/AGP and memory (RMR) is corrected.
11 = ECC_Scrub mode enabled. Error checking and status reporting is enabled. Data
destined for the PCI/AGP and memory (RMR) is corrected. The memory
contents are corrected (scrubbed) after all reads with errors.
9–8
ECC_Status
Error Correcting Code Status
This bit field indicates the status of the ECC detect logic as follows:
00 = No error
X1 = MED: multi-bit error detect
1X = SED: single-bit error detect
The ECC status bits and corresponding failing chip-select indicators are set by the first
error detected of each type (SED or MED). The AMD-761 system controller does not log
any new errors of each type or assert SERR# until software clears the associated
ECC_Status bit by writing a 1.
Chapter 2
AMD-761™ System Controller Programmer’s Interface
45
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
Bit Definitions (Continued)
24081D—February 2002
ECC Mode/Status (Dev0:F0:0x48)
Bit
Name
Function
7–4
ECC_CS_MED
Multiple Bit Error Chip Select
These bits provide the binary encoded chip select for the first multiple-bit error detected
by the AMD-761™ system controller.
3–0
ECC_CS_SED
Single Bit Error Chip Select
These bits provide the binary encoded chip select for the first single-bit error detected
by the AMD-761 system controller.
Programming Notes
System software is responsible for decoding the binary encoded, failing chip-select information and identifying a
corresponding physical DIMM location.
Some bits in this register are not initialized at reset. BIOS must initialize all bits in this register prior to attempting
DRAM access.
46
AMD-761™ System Controller Programmer’s Interface
Chapter 2
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
24081D—February 2002
PCI Control
Dev0:F0:0x4C
31
30
29
28
Bit
Reset
0
0
0
24
0
0
0
0
19
18
17
16
0
0
0
0
11
10
9
8
Reserved
Reserved
Reserved
0
0
0
R
R
R
2
1
0
(See Note.)
PCI_DT_En
PCI_OR_En
Func1_En
0
22
21
20
Bit
Reserved
0
0
0
0
R/W
R
15
14
Bit
13
12
Reserved
0
0
R/W
0
0
0
R
7
Bit
Reset
25
R
23
Reset
26
Reserved
R/W
Reset
27
6
Reserved
0
R/W
0
R
5
4
3
Reserved
Reserved
0
0
0
0
0
0
R
R/W
R/W
R/W
R/W
WSC_DIR
Register Description
This register controls various functions in the primary PCI and AGP interfaces.
Note: The WSC_DIR configuration bit is implemented only in Revision B4 silicon and above. This bit is reserved and must
be cleared in all previous silicon revisions.
Chapter 2
AMD-761™ System Controller Programmer’s Interface
47
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
Bit Definitions
Bit
24081D—February 2002
PCI Control (Dev0:F0:0x4C)
Name
Function
31—4
Reserved
Reserved
3
WSC_DIR
Write Snoop Complete Direction Control
This bit controls the direction and function of the Write Snoop Complete (WSC#) pin.
Refer to the AMD-761™ System Controller Datasheet, order# 24088, for a full description
of the WSC# pin.
0 = Bidirectional mode for use with Southbridges that drive WSC# as an output and
sample WSC# as an input (such as the AMD-766™ peripheral bus controller). In this
mode, the WSC# pin of the AMD-761 system controller defaults as an input and is
driven by the Northbridge only after the pin is first asserted by the Southbridge.
1 = Unidirectional mode for use with Southbridges that only sample WSC# as an input.
In this mode, the WSC# pin is always driven by the AMD-761 system controller.
Note: This bit is implemented only in silicon revision B4 and above. It is reserved in all
previous silicon revisions and must be cleared.
2
PCI_DT_En
Delayed Transactions Enable (PCI)
0 = Delayed transactions disabled on the PCI interface
1 = Delayed transactions enabled on the PCI interface
1
PCI_OR_En
Ordering Rules Compliance Enable (PCI)
This bit controls how the AMD-761 system controller PCI bus interface orders transactions.
0 = PCI ordering rules compliance disabled
1 = PCI ordering rules compliance enabled
0
Func1_En
Function 1 Enable
This bit controls access to device 0, function 1 configuration space (DDR PDL registers).
Refer to “Device 0, Function 1: DDR PDL Configuration Registers” on page 97 for more
information on the function 1 registers.
0 = Device 0, function 1 disabled
1 = Device 0, function 1 enabled
Programming Notes
If the target latency bit is set (bit 23 of Dev 0:F0:0x84), then the delayed transactions enable (bit 2) must be set when the
front-side bus is clocked at 66 MHz.
When enabling PCI ordering rules compliance, it is recommended that delayed transactions be enabled simultaneously
for optimal performance.
Refer to See Chapter 5, “PCI Bus Interface” on page 195 for more information on the transaction options in the AMD-761
system controller. Refer to See Chapter 7, “Recommended BIOS Settings” on page 211 for the recommended bit settings
for these bits.
Note that the WSC_DIR pin is implemented only in silicon revisions B4 and above and must be treated as Reserved (write
a 0) in all other silicon revisions.
48
AMD-761™ System Controller Programmer’s Interface
Chapter 2
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
24081D—February 2002
AMD Athlon™ Processor System Bus Dynamic Compensation
31
30
29
28
Bit
Reset
0
0
0
22
Bit
0
21
20
25
24
0
0
0
0
19
18
17
16
PVal
0
0
NVal
0
0
R/W
0
0
0
0
11
10
9
8
R
15
14
Bit
13
12
BYP_P
0
0
BYP_N
0
0
R/W
0
0
0
0
3
2
1
0
0
0
R/W
7
Bit
Reset
26
R
23
Reset
27
Reserved
R/W
Reset
Dev0:F0:0x50
6
5
SlewCntl
0
R/W
1
R/W
4
BYP
1
0
Reserved
0
0
R/W
R
Register Description
Note that the default value of the BYP, BYP_P, and BYP_N fields of this register can be optionally controlled by SIP bits
when loading the SIP stream from external ROM.
Chapter 2
AMD-761™ System Controller Programmer’s Interface
49
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
Bit Definitions
Bit
24081D—February 2002
AMD Athlon™ System Bus Dynamic Compensation (Dev0:F0:0x50)
Name
Function
31–24
Reserved
Reserved
23–20
Pval
P Transistor Strength Value
This field reflects the P transistor strength value that was automatically written to the
AMD Athlon™ processor system bus I/O pads by the auto-compensation circuit. In bypass
mode (bit 4=1) this field returns the values in the BYP_P field (bits [15:12]). The P values
are active Low.
19–16
NVal
N Transistor Strength Value
This field reflects the N transistor strength value that was automatically written to the
AMD Athlon processor system bus I/O pads by the auto-compensation circuit. In bypass
mode (bit 4=1) this field returns the values in the BYP_N field (bits [11:8]). The N values
are active High.
15–12
BYP_P
Bypass Values P Driver
Bypass strength values for the P driver. The P values are active Low. A value of 0 on bit 3
for instance signifies that (2^3 + 1) or 9 legs of the P driver are active.
11–8
BYP_N
Bypass Values N Driver
Bypass strength values for the N driver. The N values are active High. A value of 1 on bit 3,
for instance signifies that (2^3 + 1) or 9 legs of the N driver are active.
7–5
SlewCntl
Slew Rate Control
Slew rate control for AMD Athlon processor system bus.
000 = Slew rate 0 (slowest)
001 = Slew rate 1
010 = Slew rate 2
011 = Slew rate 3 (default)
100 = Slew rate 4
101= Slew rate 5
110 = Slew rate 6
111 = Slew rate 7 (fastest)
4
3-0
BYP
Bypass
Setting the bypass bit allows an external drive strength setting to be provided in the BYP_P
and BYP_N fields. Clearing this bit causes the drive strength to be provided by the
compensation circuit.
Reserved
Reserved
Programming Notes
50
AMD-761™ System Controller Programmer’s Interface
Chapter 2
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
24081D—February 2002
DRAM Timing
Dev0:F0:0x54
31
Bit
Reset
30
29
28
X
X
X
X
22
X
R/W
R/W
tWTR
24
tWR
X
X
X
X
Bit
20
19
18
17
16
Reserved
0
0
Idle_Cyc_Limit
0
0
X
X
R
15
14
13
PH_Limit
X
R/W
X
R/W
11
10
6
5
0
X
X
8
tRP
X
X
X
1
0
R/W
4
3
tRAS
X
9
tRC
R
tRP
X
12
0
X
R/W
Reserved
R/W
7
Reset
21
tRRD
Reset
Bit
25
R/W
23
Reset
26
SBPWaitState AddrTiming_A AddrTiming_B RD_Wait_State Reg_DIMM_En
R/W
Bit
27
2
tCL
X
X
tRCD
X
X
X
R/W
Register Description
This register defines the DRAM timing parameters for all banks. BIOS software must set appropriate values in this register
before setting the SDRAM_Init bit (See “Bit Definitions DRAM Mode/Status (Dev0:F0:0x58)” on page 57) or attempting
any DRAM accesses.
Note that this register is not initialized at reset time, and all bits must be initialized by BIOS for proper operation. This
action should be done prior to attempting DRAM access.
Chapter 2
AMD-761™ System Controller Programmer’s Interface
51
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
Bit Definitions
24081D—February 2002
DRAM Timing (Dev0:F0:0x54)
Bit
Name
Function
31
SBP_Wait_State
Super Bypass Wait State
This bit forces a wait state on all super bypass reads. This bit should be set when the bus
speed is 133 MHz (refer to Table 8 on page 55).
0 = No additional wait state on super bypass reads
1 = Add wait state on super bypass reads
30
AddrTiming_A
Address Timing for Copy-A
This bit determines whether an extra delay is added to the address and command buses
(MAA[14:0], RASA#, CASA#; WEA#, CKEA, CS[5:4, 1:0]#). This bit should be programmed
depending on the loading presented to these pins.
0 = No extra delay
1 = XX ps delay
29
AddrTiming_B
Address Timing for Copy-B
This bit determines whether an extra delay is added to the address and command buses
(MAB[14:0], RASB#, CASB#; WEB#, CKEB, CS[7:6, 3:2]#). This bit should be programmed
depending on the loading presented to these pins.
0 = No extra delay
1 = XX ps delay
28
RD_Wait_State
Read Wait State
This bit determines whether a wait state must be added before returning the read data
from the memory to the requester. This bit should be programmed depending on the
overall round-trip timing.
Note that this bit must be set for 100-MHz and 133-MHz operation, but it must not be set
for 66-MHz operation (refer to Table 8).
0 = No wait states
1 = One wait state
27
Reg_DIMM_En
Registered DIMM Enable
This bit enables the use of registered DIMMs on the motherboard.
AMD-761™ system controller 0 = Unbuffered DIMMs
1 = Registered DIMMs
26
tWTR
Write Data In to Read Command Delay
This bit controls the number of clock cycles that must occur between the last valid write
operation and the next read command.
0 = tWTR duration is 1 clock cycle.
1 = tWTR duration is 2 clock cycles.
52
AMD-761™ System Controller Programmer’s Interface
Chapter 2
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
24081D—February 2002
Bit Definitions (Continued)
DRAM Timing (Dev0:F0:0x54)
Bit
Name
Function
25-24
tWR
Write Recovery Time
This bit field controls the number of clock cycles that must occur from the last valid
write operation to the earliest time a new precharge command can be asserted to the
same bank.
00 = tWR duration is 1 clock cycle.
01 = Reserved
10 = tWR duration is 2 clock cycles.
11 = tWR duration is 3 clock cycles.
23
tRRD
Activate Bank A to Activate Bank B Command Delay
This bit controls the number of clock cycles between successive activate commands to
different banks.
0 = tRRD duration is 2 clock cycles.
1 = tRRD duration is 3 clock cycles.
22-19
Reserved
Reserved
18–16
Idle_Cyc_Limit
Idle Cycle Limit
This bit field controls the number of idle cycles to wait before precharging an idle bank.
Idle cycles are defined as cycles in which no valid requests are asserted.
111 = Disable idle precharge
110 = 48 cycles
101 = 32 cycles
100 = 24 cycles
011 = 16 cycles
010 = 12 cycles
001 = 8 cycles (recommended “safe” configuration)
000 = 0 cycles
15–14
PH_Limit
Page Hit Limit
This bit field controls the number of consecutive page hit requests to allow before
choosing a non-PH request.
00 = 1 cycle
01 = 4 cycle
10 = 8 cycles (recommended “safe” configuration)
11 = 16 cycles
13–12
Reserved
Reserved
Chapter 2
AMD-761™ System Controller Programmer’s Interface
53
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
Bit Definitions (Continued)
Bit
54
24081D—February 2002
DRAM Timing (Dev0:F0:0x54)
Name
Function
11–9
tRC
tRC
This bit field indicates the tRC timing value (bank cycle time: minimum time from activate
to activate of same bank).
111 = 10 cycles
110 = 9 cycles
101 = 8 cycles (recommended “safe” configuration)
100 = 7 cycles
011 = 6 cycles
010 = 5 cycles
001 = 4 cycles
000 = 3 cycles
8–7
tRP
tRP
This bit field indicates the tRP timing value (precharge time: time from precharge to
activate on the same bank).
00 = 3 cycles (recommended “safe” configuration)
01 = 2 cycles
10 = 1 cycles
11 = 4 cycles
6–4
tRAS
tRAS
This bit field indicates the tRAS timing value (minimum bank active time: time from activate
to precharge of same bank).
111 = 9 cycles
110 = 8 cycles
101 = 7 cycles (recommended “safe” configuration)
100 = 6 cycles
011 = 5 cycles
010 = 4 cycles
001 = 3 cycles
000 = 2 cycles
3–2
tCL
CAS Latency of SDRAM
11 = Reserved
10 = 2.5 cycles
01 = 2 cycles (recommended “safe” configuration)
00 = 3 cycles
AMD-761™ System Controller Programmer’s Interface
Chapter 2
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
24081D—February 2002
Bit Definitions (Continued)
DRAM Timing (Dev0:F0:0x54)
Bit
Name
Function
1–0
tRCD
tRCD
This bit field (tRCD) is the timing value (RAS to CAS latency, delay from activate to RD/WR
command).
11 = 4 cycles
10 = 3 cycles (recommended “safe” configuration)
01 = 2 cycles
00 = 1 cycle
Programming Notes
This register is not initialized at reset. BIOS must initialize all bits in this register prior to setting the SDRAM_Init bit (See
“Bit Definitions DRAM Mode/Status (Dev0:F0:0x58)” on page 57) or attempting DRAM access for correct operation.
The required settings for the wait state bits for SBP_Wait_State and Rd_Wait_State are listed in Table 8.
Table 8.
Wait State Settings for DRAM Timing Register
DDR Interface
Frequency
SBP_Wait_State [Bit 31]
Rd_Wait_State [Bit 28]
66 MHz
0
0
100 MHz
0
1
133 MHz
1
1
Chapter 2
AMD-761™ System Controller Programmer’s Interface
55
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
24081D—February 2002
DRAM Mode/Status
Bit
Reset
Dev0:F0:0x58
31
30
29
28
27
26
25
24
Clk_Dis5
Clk_Dis4
Clk_Dis3
Clk_Dis2
Clk_Dis1
Clk_Dis0
SDRAM_Init
Reserved
0
0
0
0
0
0
0
0
R/W1S
R
17
16
R/W
R/W
23
Bit
22
Mode_Reg
_ Status
Reset
0
R/W
R/W1S
15
21
STR_Control
0
0
20
19
Burst_Ref_En
Ref_Dis
X
X
14
13
12
X
X
X
11
10
9
8
0
0
0
0
3
2
1
0
Reserved
0
0
0
0
R/W
R
7
Bit
Cyc_Per_Ref
R/W
Bit
Reset
18
6
5
4
CS7_X4Mode CS6_X4Mode CS5_X4Mode CS4_X4Mode CS3_X4Mode CS2_X4Mode CS1_X4Mode CS0_X4Mode
Reset
X
X
X
X
X
X
X
X
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
Register Description
This register provides general mode control and status reporting of the DRAM system.
Note that some bits of this register are not initialized at reset time, and all bits must be initialized by BIOS for proper
operation. This action should be done prior to attempting DRAM access.
56
AMD-761™ System Controller Programmer’s Interface
Chapter 2
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
24081D—February 2002
Bit Definitions
DRAM Mode/Status (Dev0:F0:0x58)
Bit
Name
Function
31
Clk_Dis5
Clock Disable
This bit controls the DDR CLKOUT5/CLKOUT5# differential clock pair:
0 = Clock pair enabled
1 = Clock pair disabled (three-stated)
Note:
This bit is meant to disable the clock pair when it is not connected to anything.
This bit should not be used for memory sizing or power management uses.
30
Clk_Dis4
Clock Disable
This bit controls the DDR CLKOUT4/CLKOUT4# differential clock pair.
0 = Clock pair enabled
1 = Clock pair disabled (three-stated)
Note: This bit is meant to disable the clock pair when it is not connected to anything.
This bit should not be used for memory sizing or power management uses.
29
Clk_Dis3
Clock Disable
This bit controls the DDR CLKOUT3/CLKOUT3# differential clock pair.
0 = Clock pair enabled
1 = Clock pair disabled (three-stated)
Note: This bit is meant to disable the clock pair when it is not connected to anything.
This bit should not be used for memory sizing or power management uses.
28
Clk_Dis2
Clock Disable
This bit controls the DDR CLKOUT2/CLKOUT2# differential clock pair.
0 = Clock pair enabled
1 = Clock pair disabled (three-stated)
Note: This bit is meant to disable the clock pair when it is not connected to anything.
This bit should not be used for memory sizing or power management uses.
27
Clk_Dis1
Clock Disable
This bit controls the DDR CLKOUT1/CLKOUT1# differential clock pair.
0 = Clock pair enabled
1 = Clock pair disabled (three-stated)
Note: This bit is meant to disable the clock pair when it is not connected to anything.
This bit should not be used for memory sizing or power management uses.
26
Clk_Dis0
Clock Disable
This bit controls the DDR CLKOUT0/CLKOUT0# differential clock pair.
0 = Clock pair enabled
1 = Clock pair disabled (three-stated)
Note: This bit is meant to disable the clock pair when it is not connected to anything.
This bit should not be used for memory sizing or power management uses.
Chapter 2
AMD-761™ System Controller Programmer’s Interface
57
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
Bit Definitions (Continued)
24081D—February 2002
DRAM Mode/Status (Dev0:F0:0x58)
Bit
Name
Function
25
SDRAM_Init
SDRAM Initialization
This bit is used by the BIOS to tell the SDRAM controller to start the SDRAM initialization
sequence. Once set, this bit cannot be reset. The BIOS should first program the SDRAM
timing registers and set the output buffer drive strength. After that, it should set this bit.
24
Reserved
Reserved
23
Mode_Reg_Status
Mode Register Status
0 = Off/done
1 = Set
When clear, the Mode register write is disabled and/or Mode register write done. When
set, the Mode register write is enabled. Configuration bits tCL must be set before this bit is
asserted. BIOS software sets this bit for write to the SDRAM Mode register. The memory
controller clears this bit when it has issued the Mode register write to the SDRAM.
22–21
STR_Control
Suspend to RAM Control
These bits are used to allow the BIOS to communicate the power-up sequence to the
AMD-761™ system controller memory controller and power management logic, as
follows:
00 = Default. These bits are cleared to this state any time the RESET# pin is asserted.
The AMD-761 memory controller always drives the CKE pins inactive (Low) while
these bits are Low.
01 = BIOS sets this pattern after the system resumes from S4 (suspend to disk), S5 (soft
off), or mechanical off states. This action causes the AMD-761 memory controller
to assert the CKE pins and follow the normal sequence for DDR DRAM
initialization after power-on.
1X = BIOS sets this pattern when the system is resuming from the S3 (suspend to RAM)
state. This action causes the AMD-761 memory controller to exit self-refresh while
preserving all memory data.
20
Burst_Ref_En
Burst Refresh Enable
0 = AMD-761 system controller does not burst refreshes.
1 = AMD-761 system controller queues up to four refreshes before issuing.
Refreshes are only queued during long sequences of operations to the same
memory device.
19
Ref_Dis
Refresh Disable
This bit is provided for system debug, and should be cleared for normal operation.
0 = Refresh enabled (normal operation)
1 = Refresh disabled (debug only)
18
58
Reserved
AMD-761™ System Controller Programmer’s Interface
Chapter 2
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
24081D—February 2002
Bit Definitions (Continued)
Bit
17—16
DRAM Mode/Status (Dev0:F0:0x58)
Name
Function
Cyc_Per_Ref
Cycles Per Refresh
Refresh counter defines period of refresh requests.
The following table shows the relationship between the values in this field and the
resultant refresh period for the different system clock frequencies:
Value
15–8
7
66 MHz
100 MHz
133 MHz
00
30.72 µs
20.48 µs
15.36 µs
01
23.04 µs
15.36 µs
11.52 µs
10
15.36 µs
10.24 µs
7.68 µs
11
7.68 µs
7.68 µs
3.84 µs
Reserved
Reserved
CS7_X4Mode
Chip-Select 7 X4Mode Enable
0 = This chip select consists of non-x4 devices (disabled).
1 = This chip select consists of x4 devices (enabled).
6
CS6_X4Mode
Chip-Select 6 X4Mode Enable
0 = This chip select consists of non-x4 devices (disabled).
1 = This chip select consists of x4 devices (enabled).
5
CS5_X4Mode
Chip-Select 5 X4Mode Enable
0 = This chip select consists of non-x4 devices (disabled).
1 = This chip select consists of x4 devices (enabled).
4
CS4_X4Mode
Chip-Select 4 X4Mode Enable
0 = This chip select consists of non-x4 devices (disabled).
1 = This chip select consists of x4 devices (enabled).
3
CS3_X4Mode
Chip-Select 3 X4Mode Enable
0 = This chip select consists of non-x4 devices (disabled).
1 = This chip select consists of x4 devices (enabled).
2
CS2_X4Mode
Chip-Select 2 X4Mode Enable
0 = This chip select consists of non-x4 devices (disabled).
1 = This chip select consists of x4 devices (enabled).
1
CS1_X4Mode
Chip-Select 1 X4Mode Enable
0 = This chip select consists of non-x4 devices (disabled).
1 = This chip select consists of x4 devices (enabled).
0
CS0_X4Mode
Chip-Select 0 X4Mode Enable
0 = This chip select consists of non-x4 devices (disabled).
1 = This chip select consists of x4 devices (enabled).
Chapter 2
AMD-761™ System Controller Programmer’s Interface
59
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
24081D—February 2002
Programming Notes
Note that some bits of this register are not initialized at reset time, and all bits must be initialized by BIOS for proper
operation. This action should be done prior to attempting DRAM access.
The Clk_Dis bits are cleared by RESET#, and therefore all DDR DRAM interface clock pairs are enabled when exiting the
Advanced Configuration and Power Interface (ACPI) S3 sleep state (suspend to RAM). BIOS should disable any clock pairs
that are connected to unpopulated DIMM slots upon exit of S3.
When a chip select is programmed to operate in x4 DIMM mode, the DM[8:0] pins become DQS pins for that chip select.
The pad configuration for the DM[8:0] pins is automatically controlled by the DQS_Drive field (Dev 0:F0:0x40) instead of
the MDAT_Drive field, when any chip select is configured for x4 DIMM mode.
60
AMD-761™ System Controller Programmer’s Interface
Chapter 2
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
24081D—February 2002
BIU0 Status/Control
Bit
Reset
Dev0:F0:0x60
31
30
29
28
Prb_En
Reserved
Reserved
Reserved
0
0
0
0
R/W
Bit
22
21
Xca_RD_Cnt
0
24
Xca_RD_Cnt
0
0
0
0
19
18
17
16
Stp_Grant
Halt_Discon
_Discon_En
_En
Xca_WR_Cnt
0
0
0
Prb_Limit
0
0
0
0
11
10
9
8
Bypass_En
SysDC_Out
_Dly
0
Pinstrapping
R/W
R
1
0
R/W
15
Bit
14
13
12
Prb_Limit
0
R/W
Ack_Limit
0
0
0
R/W
7
Bit
25
Xca_Prb_Cnt
20
R/W
Reset
26
R/W
23
Reset
27
SysDC_Out
_Dly
1
1
R
6
5
4
3
SysDC_In_Dly
2
WR2_RD
Reset
Pinstrapping
R/W
R
RD2_WR
Register Description
This register provides general status and control for the AMD Athlon™ processor system bus interface.
Chapter 2
AMD-761™ System Controller Programmer’s Interface
61
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
Bit Definitions
Bit
Name
31
Prb_En
30
29
28
27–25
Reserved
Reserved
Reserved
Xca_Prb_Cnt
24–22
Xca_RD_Cnt
21–19
Xca_WR_Cnt
18
Halt_Discon_En
17
Stp_Grant_
Discon_En
16–14
Prb_Limit
24081D—February 2002
BIU0 Status/Control (Dev0:F0:0x60)
Function
Probe Enable
0 = Probes are not sent to this processor.
1 = Probes are sent to this processor.
This bit must be programmed to zero for normal operation.
This bit must be programmed to zero for normal operation.
This bit must be programmed to zero for normal operation.
Xca Probe Count
This bit field represents the maximum number of consecutive AMD Athlon™ processor
system bus grants for probe data movement types that are allowed before letting another
type have the bus.BIOS must program this field to a non-zero value for proper operation.
The recommended value to be loaded in this field by BIOS software is 0x2.
Xca Read Count
This bit field represents the maximum number of consecutive AMD Athlon processor
system bus grants for read data movement types that are allowed before letting another
type have the bus.BIOS must program this field to a non-zero value for proper operation.
The recommended value to be loaded in this field by BIOS software is 0x6.
Xca Write Count
This bit field represents the maximum number of consecutive AMD Athlon processor
system bus grants for write data movement types that are allowed before letting another
type have the bus.BIOS must program this field to a non-zero value for proper operation.
The recommended value to be loaded in this field by BIOS software is 0x6.
Halt Disconnect Enable
0 = No AMD Athlon system bus disconnect is performed following HALT.
1 = AMD Athlon system bus disconnects after receiving a HALT special cycle.
Stop Grant Disconnect Enable
0 = No AMD Athlon processor system bus disconnect is performed following STOP/GRANT.
1 = AMD Athlon processor system bus disconnects after receiving a STOP/GRANT special cycle.
Probe Limit
BIOS software initializes this field with the maximum number of outstanding probes that
the given CPU can handle. The default is a single probe. Encoding is as follows:
0b000 = 1 probe
0b001 = 2 probes
................................
13–10
Ack_Limit
0b111 = 8 probes
Ack Limit
BIOS software reads this field to determine how many outstanding unacknowledged
AMD Athlon processor system bus commands can be sent to the AMD-761™ system
controller. The AMD-761 system controller allows a maximum of four unacknowledged
commands. Encoding is as follows:
0b0000 = 1 unacknowledged command
0b0001 = 2 unacknowledged commands
..........................................................
0b1111 = 16 unacknowledged commands
62
AMD-761™ System Controller Programmer’s Interface
Chapter 2
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
24081D—February 2002
Bit Definitions (Continued)
BIU0 Status/Control (Dev0:F0:0x60)
Bit
Name
Function
9
Bypass_En
Bypass Enable
When set, the AMD-761™ system controller internally bypasses certain memory pipe
stages for optimal performance. This bit may be set only if both of the following are true:
1. System is single processor or it is two processors and only CPU0 is present, and
2. CPU clock multiplier is 4 or greater. See “Config Status” on page 74 to determine the
clock multiplier (FID).
8–7
SysDC_Out_Dly SysDC Out Delay
This bit field specifies the number of SysClk cycles from a return of read data type SysDC
command and the start of the corresponding data.
0b00 = Reserved
0b01 = 1 clock
0b10 = 2 clocks
0b11 = 3 clocks
6–3
SysDC_In_Dly
This field is initialized by pinstrapping during reset.
SysDC In Delay
This bit field specifies the number of SysClk cycles from a write data type SysDC command
and the start of the corresponding data.
0b0000 = 1 clock
0b0001 = 2 clocks
.............................
0b1111 = 16 clocks
2
WR2_RD
1–0
RD2_WR
This field is initialized by pinstrapping during reset.
WR2 Read
This field defines the number of SysClk cycles that are inserted between write data and
read data cycles to allow the AMD Athlon™ processor system bus data wires to turn
around. This field is initialized by pinstrapping during reset.
RD2 Write
This field defines the number of SysClk cycles that are inserted between read data and
write data cycles to allow the AMD Athlon processor system bus data wires to turn
around. This field is initialized by pinstrapping during reset.
Programming Notes
Chapter 2
AMD-761™ System Controller Programmer’s Interface
63
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
24081D—February 2002
BIU0 SIP
Dev0:F0:0x64
31
Bit
30
Clk_Fwd_Offset
29
28
Data_Init_Cnt
27
Addr_Init_Cnt
0
Pinstrapping
R/W
R/W
R
Bit
22
21
Sys_Data_Odd_Clk_Dly
20
19
Sys_Data_Even_Dly
Reset
Pinstrapping
R/W
R
15
Bit
14
13
Sys_Addr_Dly
12
11
R/W
R
Reset
6
Sys_Rst_Clk_Offset
0
R/W
5
24
17
Sys_Data_Odd_Dly
10
16
Sys_Addr_Dly
9
8
Sys_Addr_Clk_Dly
Pinstrapping
Bit
18
SysDC_Dly
Reset
7
25
Sys_Data_Even_Clk_Dly
Reset
23
26
4
3
2
Sys_Data_Rec_Mux_PreLd
0
1
0
Sys_Addr_Rec_Mux_PreLd
Pinstrapping
R
Register Description
This register provides visibility to the serial initialization packet delivered to the AMD Athlon™ processor during the
AMD Athlon processor system bus connect protocol.
64
AMD-761™ System Controller Programmer’s Interface
Chapter 2
Preliminary Information
24081D—February 2002
Bit Definitions
Bit
Name
31
Clk_Fwd_Offset
30–29
Data_Init_Cnt
28–27
Addr_Init_Cnt
26–24
Sys_Data_Even
_Clk_Dly
23–21
Sys_Data_Odd
_Clk_Dly
20–19
Sys_Data_Even
_Dly
18–17
Sys_Data_Odd
_Dly
16–15
Sys_Addr_Dly
14–11
SysDC_Dly
10–8
Sys_Addr_Clk
_Dly
7–6
Sys_Rst_Clk
_Offset
5–3
Sys_Data_Rec
_Mux_PreLd
2–0
Sys_Addr_Rec
_Mux_PreLd
AMD-761™ System Controller Software/BIOS Design Guide
BIU0 SIP (Dev0:F0:0x64)
Function
Clock Forward Offset
0 = The AMD-761™ system controller delays driving of the data and clock for
AMD Athlon™ processor system bus SysData bits [31:16] and [63:48] by ~1000 ps.
1 = All AMD Athlon system bus ClkFWD groups drive the same nominally SysClk edge.
Data Initialization Count
This value specifies the number of SysClks from the launch of data by the processor until it
can be read from the AMD-761 system controller receive FIFO.
Address Initialization Count
This value specifies the number of SysClks from the launch of a command by the
processor until it can be read from the AMD-761 system controller receive FIFO.
System Data Even Clock Delay -- AMD Athlon processor SIP[33:31]
This value specifies the number of processor XICLK phases between the nominal start of
bit time and the launch of the even clocks.
System Data Odd Clock Delay -- AMD Athlon processor SIP[30:28]
This value specifies the number of processor XICLK phases between the nominal start of
bit time and the launch of the odd clocks.
System Data Even Delay -- AMD Athlon processor SIP[27:26]
This value specifies the number of processor XICLK phases between the nominal start of
bit time and the launch of the even data (SysData bits [31:16] and [63:48]).
System Data Odd Delay -- AMD Athlon processor SIP[25:24]
This value specifies the number of processor XICLK phases between the nominal start of
bit time and the launch of the odd data (SData bits [15:00] and [47:32]).
System Address Delay -- AMD Athlon processor SIP[23:22]
This value specifies the number of processor XICLK phases between the nominal start of
bit time and the launch of the address (SysAddOut).
SysDC Delay -- AMD Athlon processor SIP[19:16]
This value is an internal processor parameter that is used to cause SYSDC commands and
their associated data to arrive in the processor core at the correct relative times.
System Addr Clock Delay -- AMD Athlon processor SIP[13:11]
This value specifies the number of processor XICLK phases between the nominal start of
bit time and the launch of the SADDOUTCLK.
System Reset Clock Offset -- AMD Athlon processor SIP[10:9]
This value is an internal processor parameter that is used to properly time AMD Athlon
system bus data transfer.
System Data Rec Mux PreLd -- AMD Athlon processor SIP[8:6]
This value specifies the number of SysClk phases from the launch of data by the AMD-761
system controller until it can be read from the AMD Athlon receive FIFO.
System Address Rec Mux PreLd -- AMD Athlon processor SIP[5:3]
This value specifies the number of SysClk phases from the launch of address/command by
the AMD-761 system controller until it can be read from the AMD Athlon receive FIFO.
Programming Notes
Chapter 2
AMD-761™ System Controller Programmer’s Interface
65
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
24081D—February 2002
Memory Status/Control
31
30
Dev0:F0:0x70
29
28
Bit
Reset
0
0
22
Bit
24
0
0
0
0
0
0
21
20
19
18
17
16
0
0
Reserved
0
0
R/W
0
Self_Ref_En
0
0
X
R
15
14
13
R/W
12
Bit
11
Reserved
0
R/W
0
0
0
R/W
7
Bit
Reset
25
R
23
Reset
26
Reserved
R/W
Reset
27
6
R/W
0
9
8
PCI_Pipe_En
PCI_Blk_WR
_En
Reserved
0
0
0
R
5
Reserved
0
0
10
0
R/W
R
4
3
2
1
0
Reserved
Reserved
Reserved
Reserved
Reserved
0
0
0
0
0
R
R
R
Register Description
This register provides general status and control for the memory controller.
Note that the Self_Ref_En bit in this register is not initialized at reset time, but must be initialized by BIOS for proper
operation. This action should be done prior to attempting DRAM access.
66
AMD-761™ System Controller Programmer’s Interface
Chapter 2
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
24081D—February 2002
Bit Definitions
Bit
Name
31–19
Reserved
18
Self_Ref_En
Function
Reserved
Self-Refresh Enable
This bit enables self-refresh when entering certain power management states. This bit
should normally be set, but the option to disable this function is provided to
accommodate specific DIMMs that do not correctly support the self-refresh feature. Note
that if this bit is not set, then DCSTOP# assertion (ACPI sleep states) must be inhibited.
0 = Self-refresh disabled
1 = Self-refresh enabled
Reserved
17–14
13
12–11
10
Memory Status/Control (Dev0:F0:0x70)
Reserved
Reserved
PCI_Pipe_En
Reserved
PCI Pipe Enable
0 = All PCI transactions, from either the PCI or AGP interfaces, force the memory
controller to check for outstanding read probes with a matching block address and
stall until these probes are complete.
1 = Memory controller pipelines PCI transactions.
9
8–1
0
PCI_Blk_WR_En
Reserved
Reserved
Setting this bit generally increases PCI throughput. This bit must be clear when the
processor is allowed to issue CleanVictimBlock commands.
PCI Block Write Enable
0 = PCI full-block writes do RID/INV probes, forcing the memory controller to wait for
probe data movement.
1 = PCI full-block writes do NOP/INV probes.
This bit must be clear when the AMD Athlon™ processor is allowed to issue
CleanVictimBlock commands.
Reserved
Reserved
Programming Notes
Note that the Self_Ref_En bit in this register is not initialized at reset time but must be initialized by BIOS for proper
operation. This action should be done prior to attempting DRAM access.
DCSTOP# assertion (ACPI S1/S3) must not be enabled if the Self_Ref_En bit is cleared.
Chapter 2
AMD-761™ System Controller Programmer’s Interface
67
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
24081D—February 2002
Who Am I (WHAMI)
31
Dev0:F0:0x80
30
29
28
27
26
25
24
0
0
0
0
19
18
17
16
Reserved
Reserved
Reserved
BIU0_Present
0
0
0
0
From CPU
12
11
10
9
8
0
0
0
0
3
2
1
0
Bit
Reset
Reserved
0
0
0
0
R/W
R
23
22
Bit
Reset
21
20
Reserved
0
0
0
R/W
R
15
14
13
Bit
Reset
FirstBusID
0
0
0
0
R/W
R
7
6
5
4
Bit
WHAMI
Reset
CPUID
R/W
R
Register Description
68
AMD-761™ System Controller Programmer’s Interface
Chapter 2
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
24081D—February 2002
Bit Definitions
Bit
31-17
16
15–8
Who Am I (WHAMI) (Dev0:F0:0x80)
Name
Function
Reserved
Reserved
BIU0_Present
BIU0 Present
This bit, when set, indicates that a processor is installed on the specified AMD Athlon™
processor system bus port on the AMD-761™ system controller and it has requested a
connect sequence (ProcRdy assertion).
FirstBusID
First BusID
This field contains the AMD Athlon processor system bus ID of the first processor to read
this register:
00h if CPU0 was the first to read WHAMI after reset,
01h if CPU1 was the first to read WHAMI after reset.
7–0
WHAMI
Who Am I
This field returns the AMD Athlon processor system bus ID (below) of the processor that
accesses it:
00h for CPU0,
01h for CPU1.
Programming Notes
Chapter 2
AMD-761™ System Controller Programmer’s Interface
69
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
24081D—February 2002
PCI Arbitration Control
31
30
Dev0:F0:0x84
29
28
Bit
Reset
0
0
0
22
0
21
Tgt_Latency
Reset
0
R/W
R/W
15
Reset
MDA_Debug
0
20
Reset
24
0
0
0
0
19
18
17
16
Reserved
0
0
Reserved
0
0
R
14
13
12
11
AGP_Chain_En PCI_Chain_En
0
0
0
R
R/W
R/W
10
9
8
PCI_WR_Post AGP_WR_Post RD_Data_Err AGP_Erly_Prb PCI_Erly_Prb AGP_Arb_Pipe
SB_Lock_Dis
_Rtry
_Rtry
_Dis
_Dis
_Dis
_Dis
0
0
0
R/W
Bit
25
R/W
23
Bit
26
AGP_VGA_BIOS
R/W
Bit
27
0
0
0
0
3
2
1
0
R/W
7
6
5
4
PM_Reg_En
15M_Hole
14M_Hole
EV6_Mode
0
0
0
0
R/W
Tgt_Lat_Tim
AGP_Pref_En PCI_Pref_En
_Dis
0
0
0
Park_PCI
0
R/W
Register Description
This register provides general PCI arbiter mode control.
70
AMD-761™ System Controller Programmer’s Interface
Chapter 2
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
24081D—February 2002
Bit Definitions
Bit
31–24
23
PCI Arbitration Control (Dev0:F0:0x84)
Name
Function
AGP_VGA_BIOS
AGP VGA BIOS
These bits when set indicate that the corresponding (16-KByte) segment should be
mapped to the AGP PCI bus. Bit 24 corresponds to the addresses 0xC0000–0xC3FFF and
bit 31 maps addresses 0xDC000–0xDFFFF to the AGP PCI interface. Set one or more of
these bits if the AGP graphics card has a ROM BIOS.
Tgt_Latency
Target Latency
This bit is designed to ensure that the AMD-761™ system controller is compliant to the PCI
maximum target latency rule. Note that this compliance applies only to the PCI bus and
not the AGP bus.
0 = AMD-751™ system controller-compatible, the AMD-761 system controller does not
disconnect a master when it cannot service a read request within 32 PCI clock
periods (initial latency) or 8 clocks (subsequent data cycles).
1 = If the AMD-761 system controller cannot respond to a memory read within 32 clocks
for the initial access, or 8 clocks for each subsequent access, it forces a retry.
Note:
22–18
To prevent potential deadlocks, set this bit and clear bit 3 (Tgt_Lat_Tim_Dis) if
the system has PCI to AGP traffic.
Reserved
Reserved
17
AGP_Chain_En
Enable AGP Chaining
When set, CPU writes to the AGP bus are chained together.
16
PCI_Chain_En
Enable PCI Chaining
When set, CPU writes to PCI are chained together.
15
MDA_Debug
MDA Debug
This bit allows monochrome display adapters (MDA) to be used simultaneously with AGP
cards for debug of AGP device drivers. The behavior of the AMD-761 system controller
display adapters is a function of this bit and the VGA Enable in (D1:0x3C[19]) as follows:
MDA address ranges:
Memory: 0B0000h–0B7FFFh
I/O: 3B4h, 3B5h, 3B8h, 3B9h, 3BAh, 3BFh
VGA = 0, MDA = 0: all MDA and VGA references go to PCI
VGA = 0, MDA = 1: operation undefined
VGA = 1, MDA = 0: all VGA references go to AGP, MDA only (I/O 3BFh) goes to PCI
VGA = 1, MDA = 1: all VGA references go to AGP, all MDA (including memory) go to PCI
14
PCI_WR_Post
_Rtry
PCI Write Post Retry
When set, this bit enables retries on PCI if there are pending posted writes.
13
AGP_WR_Post
_Rtry
AGP Write Post Retry
When set, this bit enables retries on the AGP bus if there are pending posted writes.
Chapter 2
AMD-761™ System Controller Programmer’s Interface
71
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
Bit Definitions (Continued)
72
24081D—February 2002
PCI Arbitration Control (Dev0:F0:0x84)
Bit
Name
Function
12
RD_Data_Err_
Dis
Read Data Error Disable
Whenever a cycle from a processor to the PCI or AGP buses results in a master abort
(except special cycles), the AMD-761™ system controller returns a read data error
indicator to the processor. When set, this bit causes data value of all 1s to be returned.
When clear, an AMD Athlon™ processor system bus read data error response is returned.
The CPU response to read data error is determined by the settings of the Machine Check
Architecture registers in the processor.
11
AGP_Erly_Prb_
Dis
AGP Early Probe Disable
As soon as the AMD-761 system controller detects a PCI write cycle to memory from an
external AGP master, it sends a “probe only” request to the processor that is used to flush
data from the processor cache. After one or more data phases, a write request is sent to
the memory, which also results in a probe. When set, this bit disables the early probe from
an AGP master running a PCI write cycle to memory.
10
PCI_Erly_Prb_
Dis
PCI Early Probe Disable
This bit is similar AGP_Erly_Prb_Dis and can disable early probe requests for write cycles
from an external master on the standard PCI bus.
9
AGP_Arb_Pipe_
Dis
AGP Arbiter Pipe Disable
When set, this bit disables the AGP arbiter from pipelining grants onto the bus.
8
SB_Lock_Dis
Southbridge Lock Disable
When the Southbridge makes a request for the PCI bus, the AMD-761 system controller
makes sure that all the previous posted requests from the processors and PCI are
completed by the memory before granting the bus to the Southbridge. When set, this bit
disables this flushing of previous requests.
7
PM_Reg_En
Power Management Register Enable
This bit, when set, enables reading from and writing to the power management register
(at BAR2).
6
15M_Hole
15M Memory Hole
When set, this bit creates a hole in memory from 15 Mbytes to 16 Mbytes. This register is
used by the PCI decode logic to know when to accept a cycle from an external PCI master.
When set, the PCI decode logic does not assert a match for addresses falling in this range.
5
14M_Hole
14M Memory Hole
When set, this bit creates a hole in memory from 14 Mbytes to 15 Mbytes. This register is
used by the PCI decode logic to know when to accept a cycle from an external PCI master.
When set, the PCI decode logic does not assert a match for addresses falling in this range.
4
EV6_Mode
EV6 Mode
When set, this bit indicates that the PCI interfaces have to decode memory hits in the EV6
mode. There are no memory holes and DMA can be done to any address that lies within
the SDRAM map.
AMD-761™ System Controller Programmer’s Interface
Chapter 2
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
24081D—February 2002
Bit Definitions (Continued)
Bit
PCI Arbitration Control (Dev0:F0:0x84)
Name
Function
3
Tgt_Lat_Tim_
Dis
Target Latency Timer Disable
When the AMD-761™ system controller acts as a PCI target, it has a latency timer that
retries the (write) cycle if it cannot respond within 8 bus clocks (16 clocks for the first
transfer). When set, this bit disables the AMD-761 system controller’s target latency timer
on both the standard PCI and AGP PCI interfaces.
Note: To prevent potential deadlocks caused by PCI to AGP traffic on the system, this
bit should be cleared and bit 23 (Tgt_Latency) must be set. Note also that
setting this bit disables the Tgt_Latency function controlled by bit 23.
2
AGP_Pref_En
AGP Prefetch Enable
When set, this bit enables the AMD-761 system controller to prefetch data from the
SDRAM when a PCI master on the standard AGP bus reads from the main memory.
1
PCI_Pref_En
PCI Prefetch Enable
When set, this bit enables the AMD-761 system controller to prefetch data from the
SDRAM when a PCI master on the PCI bus reads from the main memory.
0
Park_PCI
Park PCI
When set, this bit enables parking on an external PCI master. When clear, the PCI arbiter
only parks on processor accesses to PCI.
Programming Notes
To avoid potential deadlocks for systems that use traffic from the PCI bus to the PCI bus of the AGP, clear the write target
latency timer disable bit (bit 3, Tgt_Lat_Tim_Dis), and set the read target latency timer bit (bit 23, Tgt_Latency). Refer to
the programming notes for the PCI Control register (Dev 0:F0:0x4C) for details on the recommended setting of the
Tgt_Latency bit.
Chapter 2
AMD-761™ System Controller Programmer’s Interface
73
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
24081D—February 2002
Config Status
Dev0:F0:0x88
31
30
Bit
Reset
29
28
27
26
25
24
AGP_Clk_Mux
Sys_Clk_Mux
Type_Det
S2K_Thresh
x (from PCI AD[14:12])
x (from PCI AD[7:5])
x (from PCI
AD[20])
x (from PCI
AD[4])
17
16
R/W
R
23
22
21
20
Bit
K7_PP_En
IG_PP_En
Clk_Speed
Reserved
S2K0_Bus_Len
Reset
x (from PCI
C/BE[3]#)
x (from PCI
C/BE[2]#)
x (from PCI AD[31:30])
x (from PCI AD[27:26])
x (from PCI AD[11:10])
R/W
14
Bit
Tristate_En
NAND_En
Bypass_PLLs Dis_Divider
Reset
x (from PCI
AD[25])
x (from PCI
AD[23])
x (from PCI
AD[9])
13
12
11
10
9
8
Reserved
x (from PCI
AD[29])
R/W
Reset
18
R
15
Bit
19
x (from PCI AD[19:16])
R
7
6
5
4
SIP_ROM_En
GP_Strap
In_Clk_En
Out_Clk_En
CPU0_Divider
x(from PCI
C/BE[0]#)
x (from PCI
AD[15])
x (from PCI
AD[24])
x (from PCI
AD[8])
x (from PCI AD[3:0])
R/W
3
2
1
0
R
Register Description
This register allows BIOS software to determine what system initialization states have been programmed by resistor
pinstrappings on the motherboard.
74
AMD-761™ System Controller Programmer’s Interface
Chapter 2
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
24081D—February 2002
Bit Definitions
Bit
Config Status (Dev0:F0:0x88)
Name
Function
31–29
AGP_Clk_Mux
AGP Clock Mux
For internal test only.
28–26
Sys_Clk_Mux
System Clock Mux
For internal test only.
Type_Det
Type Detect
0 = This installed card in the AGP slot uses 1.5-V signalling.
25
1 = This installed card in the AGP slot uses 3.3-V signalling.
24
S2K_Thresh
AMD Athlon™ Processor System Bus Threshold
AMD Athlon™ processor system bus threshold range select for AMD Athlon™ system bus
I/O cells. When Low, these AMD Athlon processor system bus inputs sense input
thresholds between 1.35 V and 1.9 V. When High, the inputs sense thresholds between 2.0
V and 2.2 V.
23
K7_PP_En
AMD Athlon Processor Push-Pull Driver Enable
When set, this bit indicates that the AMD Athlon processor push-pull drivers are enabled.
22
IG_PP_En
AMD-761™ System Controller Push-Pull Driver Enable
When set, this bit indicates that the AMD-761 system controller push-pull drivers are
enabled.
21–20
Clk_Speed
Clock Speed
This bit field defines the speed of the system clock received by the AMD-761 system
controller:
00 = 100 MHz
01 = 66 MHz
10 = Reserved
11 = 133 MHz
19–18
Reserved
Reserved
17–16
S2K0_Bus_Len
AMD Athlon Processor System Bus Length
This bit field indicates the relative length of the AMD Athlon processor system bus trace
routing on the motherboard.
00 = Short
01..............
10...............
1 = Long
15
Tristate_En
Tristate Enable
For internal test only.
14
NAND_En
NAND Enable
For internal test only.
Chapter 2
AMD-761™ System Controller Programmer’s Interface
75
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
24081D—February 2002
Bit Definitions (Continued)
Config Status (Dev0:F0:0x88)
Bit
Name
Function
13
Bypass_PLLs
Bypass PLLs
This bit is set for test and debug of the AMD-761™ system controller with the internal
PLLs disabled.
0 = AMD-761 system controller PLLs enabled
1 = AMD-761 system controller PLLs bypassed; clocks driven from SYSCLK and AGPCLK
pins directly to internal clock trees
12
Dis_Divider
Disable Divider
For internal test only.
Reserved
Reserved
7
SIP_ROM_En
SIP ROM Enabled
This bit indicates that the external SIP ROM is enabled and is read to create the SIP stream
to the AMD Athlon processor, instead of the internally generated SIP table.
6
GP_Strap
General-Purpose Strap
This bit may be used as a general-purpose strap for communicating motherboard- specific
information to BIOS. The AMD-761 system controller does not use this strap internally.
5
In_Clk_En
INCLK Enable
This bit indicates that the AMD-761 system controller delays the INCLK to the AMD Athlon
processor. When reset, the motherboard is expected to provide delay in the etch to center
the INCLK with the data.
4
Out_Clk_En
OUTCLK Enable
This bit indicates that the AMD Athlon processor delays the OUTCLK to the AMD-761
system controller. When reset, the motherboard is expected to provide delay in the etch to
center the OUTCLK with the data.
CPU0_Divider
CPU Divider
This bit field contains the CPU clock multiplier field supplied by the processor. Together
with the Clk_Speed field and the S2K0_Bus_Len field, these fields allow the AMD-761
system controller to properly program the AMD Athlon™ processor system bus
initialization logic using the SIP protocol.
The clock multiplier field is also known as the Frequency Identification (FID) bits and the
values are shown below.
11–8
3–0
FID Value Multiplier FID Value Multiplier FID Value Multiplier FID Value Multiplier
0000
11.0
0100
5.0
1000
7.0
1100
9.0
0001
11.5
0101
5.5
1001
7.5
1101
9.5
0010
12.0
0110
6.0
1010
8.0
1110
10.0
0011
12.5
0111
6.5
1011
8.5
1111
10.5
Programming Notes
76
AMD-761™ System Controller Programmer’s Interface
Chapter 2
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
24081D—February 2002
PCI Top of Memory
31
Dev0:F0:0x9C
30
29
Bit
Reset
28
1
0
0
0
22
21
20
Bit
24
0
0
0
0
19
18
17
16
0
0
0
0
11
10
9
8
0
0
0
0
3
2
1
0
0
0
0
0
Reserved
0
0
0
0
R/W
R
15
14
13
12
Bit
Reserved
0
0
0
0
R/W
R
7
6
5
4
Bit
Reset
25
R/W
23
Reset
26
PCI_Mem_Top
R/W
Reset
27
Reserved
0
R/W
0
0
0
R
Register Description
This register is used to define the top of main system memory. It is used to compare the memory addresses of an external
PCI master to determine if it is in the range of the AMD-761™ system controller DRAM. If the address compares, then the
AMD-761 system controller responds to the bus master access with DEVSEL# assertion.
Chapter 2
AMD-761™ System Controller Programmer’s Interface
77
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
Bit Definitions
Bit
31–24
24081D—February 2002
PCI Top of Memory (Dev0:F0:0x9C)
Name
Function
PCI_Mem_Top
PCI Memory Top
This 8-bit field is compared to the incoming PCI bus master address to determine if a
memory cycle falls within the AMD-761™ system controller DRAM region, as follows:
31 30 29 28 27 26 25 24 PCIMemTop Field
31 30 29 28 27 26 25 24 PCI Address
BIOS should write to this field following completion of the memory sizing algorithm, after
it has determined the total size of the installed memory.
23–0
Reserved
Reserved
Programming Notes
78
AMD-761™ System Controller Programmer’s Interface
Chapter 2
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
24081D—February 2002
AGP Capability Identifier
31
30
Dev0:F0:0xA0
29
28
Bit
27
26
25
24
0
0
0
0
19
18
17
16
Reserved
Reset
0
0
0
0
R/W
R
23
22
Bit
21
20
Major_Rev
Reset
0
0
Minor_Rev
1
0
R/W
0
0
0
0
11
10
9
8
0
0
0
0
3
2
1
0
0
0
1
0
R
15
14
13
12
Bit
Next_Pointer
Reset
0
0
0
0
R/W
R
7
6
5
4
Bit
Cap_ID
Reset
0
0
R/W
0
0
R
Register Description
Bit Definitions
Bit
AGP Capability Identifier (Dev0:F0:0xA0)
Name
Function
31–24
Reserved
Reserved
23–20
Major_Rev
Major Revision
Major revision of the AGP interface specification conformed to by this device.
19–16
Minor_Rev
Minor Revision
Minor revision of the AGP interface specification conformed to by this device.
15–8
Next_Pointer
Next Pointer
Pointer to the next item in the capabilities list. Must be null for the final item on the list.
7–0
Cap_ID
CapID
This value indicates that this list item pertains to AGP registers.
Programming Notes
Chapter 2
AMD-761™ System Controller Programmer’s Interface
79
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
24081D—February 2002
AGP Status
Dev0:F0:0xA4
31
30
29
28
Bit
Reset
0
0
0
0
22
21
20
Bit
24
1
1
1
1
19
18
17
16
0
0
0
0
11
10
9
8
SBA
Reserved
Reserved
0
0
0
0
R/W
R
15
14
13
Bit
12
Reserved
0
0
0
0
R/W
0
0
1
0
2
1
0
R
7
Bit
Reset
25
R
23
Reset
26
Max_ReqQ_Depth
R/W
Reset
27
6
Reserved
0
R/W
0
5
4
3
R4G
FW
Reserved
0
0
0
Rates
1
1
1
R
Register Description
80
AMD-761™ System Controller Programmer’s Interface
Chapter 2
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
24081D—February 2002
Bit Definitions
Bit
AGP Status (Dev0:F0:0xA4)
Name
Function
31–24
Max_ReqQ_
Depth
Maximum Command Requests
This field contains the maximum number of AGP command requests that this node
can manage.
23–10
Reserved
Reserved
SBA
Sideband Addressing
This field is always 1, indicating that the AMD-761™ system controller supports sideband
addressing.
Reserved
Reserved
5
R4G
Address Limit
This bit is always 0, indicating that the AMD-761 system controller does not support
addresses greater than 4 Gbytes.
4
FW
Fast Write Transfer
This bit indicates supports of fast write transfers.
0 = Fast writes not supported
1 = Fast writes supported
3
Reserved
Reserved
Rates
Rate Transfers
This field indicates that the AMD-761 system controller supports 1x (bit[0]), 2x (bit[1]), and
4X (bit[2]) transfers.
9
8–6
2–0
Programming Notes
Fast writes are disabled by default and are indicated in the status bit that reports this capability. Setting the FW_Enable bit
in the AGP 4X Dynamic Compensation register (Dev 0:F0:0xB4, bit 7) sets the FW bit in this register to indicate support of
this feature. Fast writes are enabled when both the FW_Enable bit (in the AGP 4X Dynamic Compensation register) and
the Fast_Writes bit in the AGP Command register are set.
AGP 4X transfers are supported and the 4X status bit is set by default in this register. This bit can be overridden by setting
the 4X_Override bit in the AGP 4X Dynamic Compensation register (Dev 0:F0:0xB4, bit 6).
Chapter 2
AMD-761™ System Controller Programmer’s Interface
81
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
24081D—February 2002
AGP Command
Dev0:F0:0xA8
31
30
29
28
Bit
Reset
0
0
0
0
22
21
20
Bit
24
0
0
0
0
19
18
17
16
0
0
0
0
11
10
9
8
SBA_En
AGP_En
0
0
Reserved
0
0
0
0
R/W
R
15
14
13
Bit
12
Reserved
0
0
0
R/W
0
0
0
R
7
Bit
Reset
25
R
23
Reset
26
Reserved
R/W
Reset
27
6
Reserved
0
R/W
0
R
R/W
5
4
3
R4G_En
Fast_Writes
Reserved
0
0
0
R/W
R
2
1
0
Data_Transfer_Mode
0
0
0
R/W
Register Description
82
AMD-761™ System Controller Programmer’s Interface
Chapter 2
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
24081D—February 2002
Bit Definitions
Bit
AGP Command (Dev0:F0:0xA8)
Name
Function
31–10
Reserved
Reserved
9
SBA_En
Sideband Addressing Enable
When this bit is set, sideband addressing is enabled.
8
AGP_En
AGP Operations Enable
When this bit is set, the AMD-761™ system controller accepts AGP operations. When this
bit is clear, the AMD-761 system controller ignores AGP operations.
7–6
Reserved
Reserved
5
R4G_En
4GB Address Indicator
This bit indicates that the AMD-761 system controller does not support addresses greater
than 4 Gbytes. The AMD-761 system controller supports only 32-bit addresses.
4
Fast_Writes
Fast Writes
0 = Fast writes disabled
1 = Fast writes enabled when the FW_Enable bit is also set in the AGP 4X Dynamic
Compensation register (Dev 0:F0:0xB4, bit 7)
3
Reserved
Reserved
Data_Transfer
_Mode
Data Transfer Mode
Only one bit must be set in this field to indicate the desired AGP data transfer rate.
001 = 1X AGP rate
010 = 2X AGP rate
100 = 4X AGP rate
2–0
Programming Notes
Chapter 2
AMD-761™ System Controller Programmer’s Interface
83
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
24081D—February 2002
AGP Virtual Address Space Size
31
30
Dev0:F0:0xAC
29
28
Bit
Reset
0
0
0
22
21
Bit
24
0
0
0
0
0
20
19
18
17
16
Reserved
0
0
0
R/W
Vga_IA_En
0
0
0
0
R
15
14
13
0
R/W
12
Bit
11
10
9
8
0
0
0
0
3
2
1
0
Reserved
0
0
0
0
R/W
R
7
6
Bit
Reset
25
R
23
Reset
26
Reserved
R/W
Reset
27
5
4
Reserved
0
R/W
0
VA_Size
0
0
0
GART_En
0
R
0
0
R/W
Register Description
84
AMD-761™ System Controller Programmer’s Interface
Chapter 2
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
24081D—February 2002
Bit Definitions
Bit
AGP Virtual Address Space Size (Dev0:F0:0xAC)
Name
Function
Reserved
Reserved
Vga_IA_En
ISA Address Aliasing Enable
When set, this bit forces the AMD-761™ system controller to alias ISA addresses, which
means that address bits [15:10] are not used in decoding. When clear, no ISA aliasing is
performed and address bits [15:10] are used for decoding.
15–4
Reserved
Reserved
3–1
VA_Size
Virtual Address Size
This field defines the virtual address space size to be allocated to GART by the system
BIOS. Prior to the execution of the system BIOS memory mapping software, system BIOS
gets the amount of GART virtual address space required by the graphics controller. It sets
these bits to the required value. Changing these bits automatically changes bits [30:25] in
the host-PCI bridge (device 0) AGP Virtual Address Space register, offset 0x10 (see
“Dev0:F0:0x10” on page 37).
The size of GART virtual address space is always greater than or equal to the amount of
physical system memory allocated to AGP in non-contiguous 4-Kbyte blocks. The amount
of physical memory allocated to AGP is determined by operating system software.
[3]
[2] [1]
VA_Size
31–17
16
0
GART_En
0
0
0
32 Mbytes
0
0
1
64 Mbytes
0
1
0
128 Mbytes
0
1
1
256 Mbytes
1
0
0
512 Mbytes
1
0
1
1 Gbytes
1
1
0
2 Gbytes
GART Enable
When clear, GART is not valid in this system. System BIOS does not allocate virtual address
space for GART because the host-PCI bridge (device 0) AGP virtual address space, offset
0x10 (see “Dev0:F0:0x10” on page 37) is set to 0. The PCI-PCI bridge (device 1) capabilities
pointer is set to point to the next item in the linked list or null if there is no other item. This
bit is set by BIOS PCI enumeration routines.
When set, GART is valid in this system. System BIOS allocates virtual address space for
GART based upon the value in bits [3:1] above.
Programming Notes
Chapter 2
AMD-761™ System Controller Programmer’s Interface
85
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
24081D—February 2002
GART/AGP Mode Control
31
30
Dev0:F0:0xB0
29
28
Bit
Reset
0
Bit
0
0
0
22
21
20
24
0
0
0
0
19
18
17
16
PDC_En
Lv1_Index
0
0
NonGART
_Snoop
Reserved
0
R/W
0
0
0
0
R
15
14
0
R/W
13
12
Bit
11
10
9
8
0
0
0
0
3
2
1
0
0
0
0
0
Reserved
0
0
0
0
R/W
R
7
6
5
4
Bit
Reset
25
R
23
Reset
26
Reserved
R/W
Reset
27
Reserved
0
R/W
0
0
0
R
Register Description
This register provides bits to control specific features of the AMD-761™ system controller AGP implementation.
86
AMD-761™ System Controller Programmer’s Interface
Chapter 2
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
24081D—February 2002
Bit Definitions
Bit
31–21
Name
Function
Reserved
Reserved
20
19
GART/AGP Mode Control (Dev0:F0:0xB0)
Reserved
NonGART_Snoop
18
NonGART Snoop
When set, this bit forces AGP accesses that are not in the GART range to cause
AMD Athlon™ processor system bus probes to the processor(s). When clear, AGP
addresses that fall outside of the GART range do not cause probes.
Reserved
17
PDC_En
Gart Page Directory Cache Enable
This bit is used only in the two-level GART mode. It has no effect in the one-level GART
mode. The GART directory is enabled only when both this bit and the AGP Features
Control register (offset 02h of the memory-mapped Features and Capabilities register—see
“Bar1 + 0x00” on page 141) bit 2, "GART Cache Enable", are 1s.
16
Lv1_Index
Level 1 Index (GART Index Scheme Control)
When set to 1, this bit enables the one-level GART mode. When cleared to 0, two-level
GART mode is enabled.
15–0
Reserved
Reserved
Programming Notes
Chapter 2
AMD-761™ System Controller Programmer’s Interface
87
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
24081D—February 2002
AGP 4X Dynamic Compensation
31
30
29
Bit
Reset
Dev0:F0:0xB4
28
X
X
Reserved
DisStrb
Reset
0
0
R/W
R
R/W
15
14
Bit
X
21
20
X
X
X
X
19
18
17
16
0
0
1
10
9
8
Quantum_Cnt
0
0
0
R/W
13
12
11
Reserved
0
0
Reserved
0
0
R/W
0
0
0
0
3
2
1
0
R
7
Reset
24
R
22
Bit
25
NVal
X
23
Reset
26
PVal
R/W
Bit
27
6
FW_Enable 4X_Override
0
R/W
0
R/W
5
4
Comp3.3
0
Reserved
0
PCI
0
0
R
Always_
Do_
Compensate Compensate
0
0
R/W
Register Description
88
AMD-761™ System Controller Programmer’s Interface
Chapter 2
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
24081D—February 2002
Bit Definitions
Bit
AGP 4X Dynamic Compensation (Dev0:F0:0xB4)
Name
Function
31–28
PVal
P Transistor Strength Value
This field reflects the P transistor strength value that was written to the non-strobed AGP
I/O pads according to Table 9 on page 90.
27–24
NVal
N Transistor Strength Value
This field reflects the N transistor strength value that was written to the non-strobed AGP
I/O pads according to Table 9 on page 90.
23
Reserved
Reserved
22
DisStrb
Disable Strobe
This bit allows the complimentary strobes ADSTB[1:0]# to be disabled when the AGP
interface is operating in 2X mode. Setting this bit causes these pins to be driven High.
21–16
Quantum_Cnt
Quantum Count
This field is used to determine the number of 100-ms intervals that elapse before a
dynamic compensation event is performed when the AlwaysCompensate bit is set. The
value allows for dynamic compensation time quantums to range from 100 ms to 6.4 s.
15–8
Reserved
Reserved
7
FW_Enable
Fast Writes Override
0 = Fast writes disabled
1 = Fast writes enabled (see below)
AGP fast writes are enabled by a combination of this bit and the Fast_Writes enable bit in
the AGP Command register (Dev 0:F0:0xA8, bit 4). The Fast_Writes status bit in the AGP
Status register (Dev 0:F0:0xA4, bit 4) is 0 by default, indicating that the AMD-761™ system
controller does not support this feature. Setting this bit forces the status bit to a 1 to
indicate support of fast writes. The fast writes feature is enabled only when this bit and the
Fast_Writes bit in the AGP Command register (Dev 0:F0:0xA8, bit 4) are set.
6
4X_Override
AGP 4X Override
This bit can be set to override the value in the read-only AGP Status register (Dev
0:FD0:0xA4). By default the rates field of the AGP Status register report 4X capability, but
setting this bit forces the 4X-capable bit to be 0, indicating a maximum of 2X support.
5
Comp3.3
Compensate for 3.3-V Signalling
This bit overrides the TYPEDET# value to force an AGP auto-compensation in a 3.3-V
signalling environment. This bit may be set in conjunction with the Do_Compensate bit to
enable BIOS to determine which drive strength values the auto-compensation circuit
selected for this motherboard.
Note: This bit must be set only while the AGP interface is disabled. Setting this bit
while the AGP interface is enabled results in unpredictable behavior.
4-3
Reserved
Reserved
PCI
PCI
As shown in Table 9 on page 90, this bit, along with BYP and AGP2X bits, controls the
drive strength of the output buffer and whether the input buffers are single-ended
or differential.
2
Chapter 2
AMD-761™ System Controller Programmer’s Interface
89
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
Bit Definitions (Continued)
Bit
24081D—February 2002
AGP 4X Dynamic Compensation (Dev0:F0:0xB4)
Name
Function
1
Always_
Compensate
Always Compensate
When set, dynamic compensation is performed by AGP on an ongoing basis at
regular intervals.
0
Do_Compensate
Do Compensate
This bit is used to initiate a dynamic compensation command on AGP. This bit is cleared by
the AMD-761™ system controller when the compensation cycle is complete. See the
programming note below on recommendation for exiting bypass mode.
Programming Notes
When transitioning from bypass enabled to disabled via the AGP Compensation Bypass register (Dev 0:F0:0xB8), the
Do_Compensate bit should be set. AGP should not be subsequently enabled until the Do_Compensate bit is read back as
a 0, indicating that the compensation cycle is complete.
Refer to the AGP Compensation Bypass register (Dev 0:F0:0xB8) for details of bypass mode.
Table 9.
90
I/O Pad Drive Strength and Input Type
BYPASS
TYPEDET#
PCI
AGP Mode
Output Drive Strength
0
0
X
N/A
Compensated Strength
0
1
0
N/A
AGP-1X Strength
0
1
1
N/A
PCI Strength
1
X
X
N/A
Bypass, User Configurable
BYPASS
TYPEDET#
PCI
AGP Mode
X
0
X
4X
X
0
X
1X/2X
Single-Ended
X
1
X
1X/2X
Single-Ended
X
1
X
1X/2X
Single-Ended
Input Type
Differential
AMD-761™ System Controller Programmer’s Interface
Chapter 2
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
24081D—February 2002
AGP Compensation Bypass
31
Bit
Reset
30
Dev0:F0:0xB8
29
28
0
0
0
22
BYPXfer
Reset
1
R/W
R/W
15
Bit
24
BYP_NDrvXfer
0
21
20
0
0
0
0
19
18
17
16
Reserved
0
0
PSlewXfer
0
0
0
14
13
0
0
0
0
9
8
R/W
12
11
10
BYP_PDrvStrb
0
NSlewXfer
R
BYP_NDrvStrb
0
R/W
0
0
0
0
3
2
1
0
R/W
7
Bit
25
R/W
23
Reset
26
BYP_PDrvXfer
R/W
Bit
27
6
BYPStrb
Reset
1
R/W
R/W
5
4
Reserved
0
0
PSlewStrb
0
0
NSlewStrb
0
R
0
0
R/W
Register Description
This register allows BIOS to bypass the AGP auto-compensation to directly control the AGP pad configuration.
Chapter 2
AMD-761™ System Controller Programmer’s Interface
91
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
Bit Definitions
Bit
24081D—February 2002
AGP Compensation Bypass (Dev0:F0:0xB8)
Name
Function
31–28
BYP_PDrvXfer
P Drive Strength Control
This field is used to directly program the P transistor drive strength on all AGP pins except
the data strobes. A value of 0000 is the weakest, 1111 is the strongest. This value is written
to the I/O pads only when BYPXfer (bit 23) is set.
27–24
BYP_NDrvXfer
N Drive Strength Control
This field is used to directly program the N transistor drive strength on all AGP signals
except the data strobes. A value of 0000 is the weakest, 1111 is the strongest. This value is
written to the I/O pads only when BYPXfer (bit 23) is set.
23
BYPXfer
Bypass Enable
This bit must be set to bypass the auto-compensation circuit for direct control of all AGP
pads except the strobe pins. When this bit is set, the values programmed in the drive
strength fields are written directly to the pads.
22–20
Reserved
Reserved
19–18
PSlewXfer
Slew Rate Control
This field is used to directly program the rise time in all AGP signals except the data
strobes. This field is not affected by the BYPXfer bit.
00 = Slew rate 0 (slowest)
01 = Slew rate 1
10 = Slew rate 2
11 = Slew rate 3 (fastest)
17–16
NSlewXfer
Slew Rate Control
This field is used to directly program the fall time in all AGP signals except the data strobes.
This field is not affected by the BYPXfer bit.
00 = Slew rate 0 (slowest)
01 = Slew rate 1
10 = Slew rate 2
11 = Slew rate 3 (fastest)
15–12
BYP_PDrvStrb
P Drive Strength Control
This field is used to directly program the P transistor drive strength on the AGP data
strobes (AD_STB[1:0], AD_STB[1:0]#). A value of 0000 is the weakest, 1111 is the
strongest. This value is written to the I/O pads only when BYPStrb (bit 7) is set.
11–8
BYP_NDrvStrb
N Drive Strength Control
This field is used to directly program the N transistor drive strength on all AGP data
strobes (AD_STB[1:0], AD_STB[1:0]#). A value of 0000 is the weakest, 1111 is the
strongest. This value is written to the I/O pads only when BYPStrb (bit 7) is set.
7
BYPStrb
Bypass Enable
This bit must be set to bypass the auto-compensation circuit for direct control of all AGP
strobe pins (AD_STB[1:0], AD_STB[1:0]#). When this bit is set, the values programmed in
the drive strength fields are written directly to the pads.
6–4
Reserved
Reserved
92
AMD-761™ System Controller Programmer’s Interface
Chapter 2
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
24081D—February 2002
Bit Definitions (Continued)
AGP Compensation Bypass (Dev0:F0:0xB8)
Bit
Name
Function
3–2
PSlewStrb
Slew Rate Control
This field is used to directly program the rise time in all AGP data strobes (AD_STB[1:0],
AD_STB[1:0]#). This field is not affected by the BYPStrb bit.
00 = Slew rate 0 (slowest)
01 = Slew rate 1
10 = Slew rate 2
11 = Slew rate 3 (fastest)
1–0
NSlewStrb
Slew Rate Control
This field is used to directly program the fall time in all AGP data strobes (AD_STB[1:0],
AD_STB[1:0]#). This field is not affected by the BYPStrb bit.
00 = Slew rate 0 (slowest)
01 = Slew rate 1
10 = Slew rate 2
11 = Slew rate 3 (fastest)
Programming Notes
There are three basic modes of bypass operation, as shown in the table below. Note that compensation applies to 1.5-V
signalling operation only.
Auto
Compensate
Non-strobe
All signals
Bypass
Bypass Modes
Strobes
Non-strobed signals auto-compensated while strobe signals programmed
manually in bypass mode.
All signals
All signals programmed manually in bypass mode.
All signals auto-compensated.
It is possible to configure the AGP I/O pads such that the non-strobed signals are auto-compensated while the strobes are
in bypass mode, but not vice-versa, as shown in the table above.
Once the non-strobed signals are programmed in bypass mode, these programmed bypassed values are also written to
the strobed signal I/O pads, until the strobed pads bypass values are also written.
Chapter 2
AMD-761™ System Controller Programmer’s Interface
93
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
Memory Base
Address Registers
(Dev0:F0:0xC0 to
0xDF)
24081D—February 2002
The AMD-761 system controller DDR memory controller can
access up to eight banks of DRAM (four DIMMs, one bank per
side). These banks are controlled by eight chip selects. These
registers define how an incoming address is parsed to select
only one out of the eight chip selects. BIOS software is
responsible for correctly loading these registers based on data
returned from the serial presence detect ROM mechanism
through the SMBus implemented in the Southbridge. BIOS
software must adhere to the following rules when configuring
these registers:
„
„
The largest banks are configured first as the lowest
addressed memory, increasing addresses with decreasing
size of banks available.
Logically, a given chip-select N, is asserted when:
„
(Addr[31:23] & ~CSMaskN) == (CSBaseN & ~CSMaskN)
The smallest bank supported is 32 Mbytes.
See Table 10 on page 95.
94
AMD-761™ System Controller Programmer’s Interface
Chapter 2
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
24081D—February 2002
Table 10.
DDR Memory Base Address Register Locations
Memory Base Address Register 0
Dev0:F0:0xC0
Dev0:F0:0xC4
Dev0:F0:0xC8
Dev0:F0:0xCC
Dev0:F0:0xD0
Dev0:F0:0xD4
Dev0:F0:0xD8
Dev0:F0:0xDC
Memory Base Address Register 1
Memory Base Address Register 2
Memory Base Address Register 3
Memory Base Address Register 4
Memory Base Address Register 5
Memory Base Address Register 6
Memory Base Address Register 7
31
30
29
28
Bit
Reset
X
X
X
X
22
21
20
CS_Base
Reset
X
R/W
R/W
15
24
X
X
X
X
19
18
17
16
0
0
0
11
10
9
8
X
X
X
X
3
2
1
0
Reserved
0
0
0
0
R
14
13
12
Bit
CS_Mask
X
X
X
X
R/W
R/W
7
Bit
25
R/W
23
Reset
26
CS_Base
R/W
Bit
27
6
5
CS_Mask
Reset
X
R/W
R/W
4
Reserved
0
0
Addr_Mode
0
0
X
R
CS_En
X
X
R/W
Register Description
Note that these registers are not initialized at reset time, but must be initialized by BIOS for proper operation. This action
should be done prior to attempting DRAM access.
Chapter 2
AMD-761™ System Controller Programmer’s Interface
95
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
Bit Definitions
Bit
24081D—February 2002
Memory Base Address Registers 0–7 (Dev0:F0:0xC0–0xDF)
Name
Function
31–23
CS_Base
Chip-Select Base
This bit field defines which 8-Mbyte boundary the given bank services. Incoming
addresses are compared against field, subject to the mask field in bits [15:7].
22–16
Reserved
Reserved
15–7
CS_Mask
Chip-Select Mask
This bit field defines what bits in the address are ignored when incoming addresses are
compared to the CSBase in bits[31:23] above. If a given bit is set, the corresponding bit in
the compare is ignored.
6–3
Reserved
Reserved
2–1
Addr_Mode
Addressing Mode
This bit field determines the addressing mode for this CS, based on the type of DIMM
installed, according to Table 11. This addressing applies to the physical addressing on the
MAA and MAB address buses. Note that modes 00 and 11 are reserved.
CS_En
Chip-Select Enable
When set, this bank is eligible for selection by incoming addresses. When clear, this bank’s
chip select is not asserted and the values in [31:23] and [15:7] are ignored.
0
Programming Notes
Note that these registers are not initialized at reset time, but must be initialized by BIOS for proper operation. This action
should be done prior to attempting DRAM access. Table 11 shows DRAM addressing modes.
Table 11.
AMD-761™ DRAM Addressing Modes
Mode
Pins
14
13
Mode 1
Addr_Mode = 01
64 Mbyte x4/8/16
128 Mbyte x4/8/16
Row
12
Col
Mode 2
Addr_Mode = 10
256 Mbyte x4/8/16
512 Mbyte x4/8/16
96
12
11
10
9
8
7
6
5
4
3
2
1
0
11
24
23
22
21
20
19
18
17
16
15
14
13
12
11
27
PC
26
25
10
9
8
7
6
5
4
3
BK
BK
Row
12
11
25
24
23
22
21
20
19
18
17
16
15
14
13
Col
12
11
29
28
PC
27
26
10
9
8
7
6
5
4
3
BK
BK
AMD-761™ System Controller Programmer’s Interface
Chapter 2
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
24081D—February 2002
2.4.4
Device 0, Function 1: DDR PDL Configuration Registers
The registers defined in this section are required to implement
Double Data Rate (DDR) DRAM in the AMD-761 system
controller Northbridge. The function 1 registers control the 18
DDR programmable delay lines (PDL). In Table 12, the column
entitled Offset consists of the register number specified in the
Configuration Address register bits [7:2] concatenated with
0b00 to form a simple 1-byte offset.
Table 12.
Chapter 2
Device 0, Function 1 Configuration Register Map
DDR PDL Registers (Device 0, Function 1)
Reserved
Offset
0x00 to 0x3F
Reference
DDR PDL Calibration Control
0x40 to 0x43
“Dev0:F1:0x40” on
page 98
DDR PDL Configuration 0
DDR PDL Configuration 1
DDR PDL Configuration 2
DDR PDL Configuration 3
DDR PDL Configuration 4
DDR PDL Configuration 5
DDR PDL Configuration 6
DDR PDL Configuration 7
DDR PDL Configuration 8
DDR PDL Configuration 9
DDR PDL Configuration 10
DDR PDL Configuration 11
DDR PDL Configuration 12
DDR PDL Configuration 13
DDR PDL Configuration 14
DDR PDL Configuration 15
DDR PDL Configuration 16
DDR PDL Configuration 17
0x44 to 0x47
0x48 to 0x4B
0x4C to 0x4F
0x50 to 0x53
0x54 to 0x57
0x58 to 0x5B
0x5C to 0x5F
0x60 to 0x63
0x64 to 0x67
0x68 to 0x6B
0x6C to 0x6F
0x70 to 0x73
0x74 to 0x77
0x78 to 0x7B
0x7C to 0x7F
0x80 to 0x83
0x84 to 0x87
0x88 to 0x8B
“Dev0:F1:0x44” on
page 101
DDR MDAT/DQS Pad Configuration
0x8C to 0x8F
DDR CLK/CS Pad Configuration
0x90 to 0x93
DDR CMDB/CMDA Pad Configuration
0x94 to 0x97
DDR MAB/MAA Pad Configuration
0x98 to 0x9B
Reserved
0x9C to 0xFF
AMD-761™ System Controller Programmer’s Interface
“Dev0:F1:0x8C” on
page 104
“Dev0:F1:0x90” on
page 108
“Dev0:F1:0x94” on
page 111
“Dev0:F1:0x98” on
page 114
97
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
24081D—February 2002
DDR PDL Calibration Control
31
30
Dev0:F1:0x40
29
28
Bit
Reset
0
0
0
0
22
21
20
Bit
24
0
0
0
0
19
18
17
16
0
0
0
0
11
10
9
8
0
0
0
0
3
2
1
0
Reserved
0
0
0
0
R/W
R
15
14
13
12
Bit
Reserved
0
0
0
0
R/W
R
7
Bit
25
R
23
Reset
26
Reserved
R/W
Reset
27
SW_Recal
6
5
4
Use_Act_Dly Auto_Cal_En Act_Dly_Inh
Reset
X
X
X
X
R/W
R/W
W
R/W
R/W
Reserved
0
Auto_Cal_Period
0
R
X
X
R/W
Register Description
This register allows BIOS control of the calibration circuit for the AMD-761™ system controller’s 18 programmable delay
lines.
Note that this register is not initialized at reset time but must be initialized by BIOS for proper operation. This action
should be done prior to attempting DRAM access.
98
AMD-761™ System Controller Programmer’s Interface
Chapter 2
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
24081D—February 2002
Bit Definitions
Bit
DDR PDL Calibration Control (Dev0:F1:0x40)
Name
Function
31–8
Reserved
Reserved
7
SW_Recal
Software Recalibration
Software should write a 1 to this bit to cause recalibration of the PDLs. The hardware
recomputes the Cal_Delay values for all PDLs, based on the values of their SW_Cal_Dly
fields.
Status of the recalibration that was initiated by writing a 1 to this bit is also indicated in this
bit. After setting this bit, software should poll this bit until it becomes a 0 again.
0 = Calibration complete (default)
1 = Calibration not complete
If Auto_Cal_En is set, writes to this bit are ignored.
Also refer to Table 13, “PDL Calibration Modes,” on page 100.
Note: This bit should not be set if the system clock frequency is 66 MHz.
6
Use_Act_Dly
Use Actual Delay
Software should set this bit to indicate to the hardware that it has written to the Act_Dly
fields and wants to update the PDLs (all 18) with the newly written Act_Delay values.
Software only needs to change the Act_Delay values that are not currently at their desired
values (the other Act_Dly values are simply re-applied). This method should be used only
when SW_Recal and Auto_Cal_En bits are not set.
If Auto_Cal_En is set, writes to this bit are ignored.
Also refer to Table 13, “PDL Calibration Modes,” on page 100.
This bit always returns a 0 when read.
5
Auto_Cal_En
Auto Calibration Mode
0 = Auto-calibration mode off (default)
1 = Auto-calibration mode on
When this bit is set, all of the Cal_Dly values are recomputed periodically (according to the
setting of the Auto_Cal_Period field) for all PDLs, based on the values of their SW_Cal_Dly
fields. If the Act_Dly_Inh bit is not set, the Cal_Dly values are also applied to the Act_Dly.
Also refer to Table 13, “PDL Calibration Modes,” on page 100.
Note: Once Auto_Cal_En is set to 1, clearing it makes the bit a 0, but the Auto-Calibration
logic may perform one more update, depending on when the Auto_Cal_En bit is
cleared. Therefore, BIOS should at least wait for the amount of time specified by
the Auto_Cal_Period field after clearing the Auto_Cal_En bit before attempting to
change any of the PDL parameters.
Note:
Chapter 2
This bit should not be set if the system clock frequency is 66 MHz.
AMD-761™ System Controller Programmer’s Interface
99
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
Bit Definitions (Continued)
Bit
4
24081D—February 2002
DDR PDL Calibration Control (Dev0:F1:0x40)
Name
Function
Act_Dly_Inh
Actual Delay Update Inhibit
This bit configures the hardware to either update the actual PDLs (Act_Dly values) with
new Cal_Delay values or not. The setting of this bit affects both auto-calibration and
SWCalibration but not the Use_Act_Dly method. After an exit from power-on reset or selfrefresh, the setting of this bit determines whether the Act_Dly value is updated or not.
0 = Update all the PDLs with new Cal_Dly values in hardware after recomputation is
done (default).
1 = Do not update the Actual PDL delay values after recomputation of Cal_Dly is done.
Note:
The internal logic tests this bit just prior to updating the Act_Dly, so the other
bits in this register should be taken into consideration when writing to this bit.
3–2
Reserved
Reserved
1–0
Auto_Cal_Period
Auto-Calibration Period
This bit field defines how often auto-calibration is performed.
00 = 10000 system clocks
01 = 1000000 system clocks
10 = 10000000 system clocks
11 = Reserved
BIOS should configure this field before setting the Auto_Cal_En bit, and while Auto_Cal_En
is set, do not write to this field.
Programming Notes
Note that this register is not initialized at reset time, but must be initialized by BIOS for proper operation. This action
should be done prior to attempting DRAM access.
See Table 13 for PDL calibration modes.
Table 13.
PDL Calibration Modes
Auto_Cal_En
Use_Act_Delay
SW_ReCal
0
0
0
No action.
0
0
1
SW_Cal_Dly values are applied.
0
1
0
Act_Dly values are applied.
0
1
1
Illegal combination (do not use).
1
X
X
SW_Cal_Dly values are applied according to the
Auto_Cal_Period setting. Do not set the Act_Dly or
SW_Recal bits.
100
Resultant Operation
AMD-761™ System Controller Programmer’s Interface
Chapter 2
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
24081D—February 2002
Table 14.
DDR PDL Configuration Register Locations
DDR PDL Configuration Register 0
DDR PDL Configuration Register 1
DDR PDL Configuration Register 2
DDR PDL Configuration Register 3
DDR PDL Configuration Register 4
DDR PDL Configuration Register 5
DDR PDL Configuration Register 6
DDR PDL Configuration Register 7
DDR PDL Configuration Register 8
DDR PDL Configuration Register 9
DDR PDL Configuration Register 10
DDR PDL Configuration Register 11
DDR PDL Configuration Register 12
DDR PDL Configuration Register 13
DDR PDL Configuration Register 14
DDR PDL Configuration Register 15
DDR PDL Configuration Register 16
DDR PDL Configuration Register 17
Chapter 2
AMD-761™ System Controller Programmer’s Interface
Dev0:F1:0x44
Dev0:F1:0x48
Dev0:F1:0x4C
Dev0:F1:0x50
Dev0:F1:0x54
Dev0:F1:0x58
Dev0:F1:0x5C
Dev0:F1:0x60
Dev0:F1:0x64
Dev0:F1:0x68
Dev0:F1:0x6C
Dev0:F1:0x70
Dev0:F1:0x74
Dev0:F1:0x78
Dev0:F1:0x7C
Dev0:F1:0x80
Dev0:F1:0x84
Dev0:F1:0x88
101
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
24081D—February 2002
DDR PDL Configuration Registers
31
30
29
28
X
X
X
X
Bit
Reset
R/W
23
22
21
20
X
X
X
X
24
X
X
X
X
19
18
17
16
X
X
X
X
11
10
9
8
X
X
X
X
3
2
1
0
X
X
X
X
SW_Cal_Dly
R/W
15
14
13
12
X
X
X
X
Cal_Dly
R
7
6
5
4
X
X
X
X
Bit
Reset
R/W
25
R
Bit
Reset
R/W
26
Clk_Dly
Bit
Reset
R/W
27
Act_Dly
R/W
Register Description
These registers allow configuration of programmable delay lines 0–17. There are a total of 18 PDLs (one per DDR DQS pin in
x4 mode). Note that these registers are not initialized at reset time, but must be initialized by BIOS for proper operation. This
action should be done prior to attempting DRAM access, and a software initiated calibration should be forced.
102
AMD-761™ System Controller Programmer’s Interface
Chapter 2
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
24081D—February 2002
Bit Definitions
Bit
Name
31–24
Clk_Dly
23–16
SW_Cal_Dly
15–8
Cal_Dly
7–0
Act_Dly
DDR PDL Configuration Registers 0–17 (Dev0:F1:0x44–0x8B)
Function
Clock Delay
This field provides the number of buffers that amount to one half-period of the system clock.
Note: Upon exit from self-refresh, this bit field is updated with the number of buffers
required to equal one half-period of the system clock. The value of this field
depends on the operating PVT point. This field is also updated when a
recalibration is done either due to Auto_Cal_En or SW_Recal.
Software Calibration Delay
This bit field represents the amount of delay that is required for the corresponding DQS.
The typical value is 0x69 for 100-MHz DDR operation, or 0x6B for 133 MHz. This field is
used to calculate the Cal_Dly value during exit from self-refresh, auto-calibration, and
software-initiated recalibration. This field must be configured before setting the SW_Recal
bit or the Auto_Cal_En bit, and while these bits are set, this field must not be written.
BIOS writes a desired value into this field if the default DQS delays are not the desired
DQS delays for any reason. The value written in this field should be 256 times the required
delay as a percentage of the half-period of the system clock, and then rounded off to the
nearest integer.
For example, if the desired DQS delay is 43.5 percent of the system clock’s half-period, the
value written into this field should be 0.434 x 256 = 111 (0x6F).
Note: This bit field should not be used if the system clock frequency is 66 MHz.
Calibration Delay
This bit field provides the last Cal_Dly value in number of buffers.
Note: Upon exit from self-refresh, this bit field is updated with the number of buffers
required to equal the time specified by the SW_Cal_Dly field. The value of this
field depends on the operating PVT point. This field is also updated when a
recalibration is done either due to Auto_Cal_En or SW_Recal.
Actual Delay
This bit field provides the current Act_Dly value (in number of buffers) that is in effect for
the corresponding PDL. Software can read the current value of Act_Dly from this field.
Software can write the desired number of buffer delays into this field. Software typically
writes to this field only if auto-calibration is disabled. After writing to this field, software
should also set the Use_Act_Dly bit in the PDL Calibration Control register.
Upon writes to this field, the new value takes effect at the first available “safe” time after
the Use_Act_Dly bit is set.
Note: Upon exit from self-refresh, this bit field is updated with the number of buffers
required to equal the time specified by the SW_Cal_Dly field. The value of this
field depends on the operating PVT point. This field is also updated when a
recalibration is done either due to Auto_Cal_En or SW_Recal (unless the
Act_Dly_Inh bit in the PDL Calibration register is set).
Note:
Values written directly by software to this field are not PVT-independent, so
this field is primarily for lab and debug use.
Programming Notes
Note that these registers are not initialized at reset time, but must be initialized by BIOS for proper operation. This action
should be done prior to attempting DRAM access, and a software-initiated calibration should be forced.
Chapter 2
AMD-761™ System Controller Programmer’s Interface
103
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
24081D—February 2002
DDR DQS/MDAT Pad Configuration
31
Bit
Reset
30
Reserved
0
X
22
X
21
0
R/W
X
Bit
X
X
20
19
18
17
16
PDrvMDAT
0
14
0
X
NDrvMDAT
X
13
R/W
12
11
X
X
X
6
5
4
3
Reserved
R/W
9
8
X
X
X
2
1
0
R/W
Bit
0
X
NSlewDQS
R
7
10
PSlewDQS
0
X
R/W
Reserved
0
24
X
R
15
25
NSlewMDAT
Reserved
0
26
R/W
Bit
Reset
27
R
23
Reset
28
PSlewMDAT
0
R/W
Reset
29
Dev0:F1:0x8C
0
PDrvDQS
0
0
X
NDrvDQS
X
R
X
X
R/W
Register Description
This register allows BIOS control of the DDR DQS and memory data pad drive strength and slew rate.
104
AMD-761™ System Controller Programmer’s Interface
Chapter 2
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
24081D—February 2002
Bit Definitions
Bit
DDR DQS/MDAT Pad Configuration (Dev0:F1:0x8C)
Name
Function
31–30
Reserved
Reserved
29–27
PSlewMDAT
MDAT Rising Edge Slew Rate
These bits control the rising edge slew rate of the MDAT[63:0] and DM[8:0] pins.
000 = Slew rate 0 (slowest)
001 = Slew rate 1
010 = Slew rate 2
011 = Slew rate 3
100 = Slew rate 4
101 = Slew rate 5
110 = Slew rate 6
111 = Slew rate 7 (fastest)
Note that the DM[8:0] pins are controlled by the PSlewDQS field when any chip select is
configured for x4 DIMMs in the DRAM Mode/Status register (Dev 0:F0:0x58).
26–24
NSlewMDAT
MDAT Falling Edge Slew Rate
These bits control the falling edge slew rate of the MDAT[63:0] and DM[8:0] pins.
000 = Slew rate 0 (slowest)
001 = Slew rate 1
010 = Slew rate 2
011 = Slew rate 3
100 = Slew rate 4
101 = Slew rate 5
110 = Slew rate 6
111 = Slew rate 7 (fastest)
Note that the DM[8:0] pins are controlled by the NSlewDQS field when any chip select is
configured for x4 DIMMs in the DRAM Mode/Status register (Dev 0:F0:0x58).
23–20
Reserved
Reserved
19–18
PDrvMDAT
MDAT P Transistor Drive Strength
These bits control the P transistor drive strength of the MDAT[63:0] and DM[8:0] pins.
00 = Drive strength 0 (weakest)
01 = Drive strength 1
10 = Drive strength 2
11 = Drive strength 3 (strongest)
Note that the DM[8:0] pins are controlled by the PDrvDQS field when any chip select is
configured for x4 DIMMs in the DRAM Mode/Status register (Dev 0:F0:0x58).
Chapter 2
AMD-761™ System Controller Programmer’s Interface
105
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
Bit Definitions (Continued)
Bit
24081D—February 2002
DDR DQS/MDAT Pad Configuration (Dev0:F1:0x8C)
Name
Function
17–16
NDrvMDAT
MDAT N Transistor Drive Strength
These bits control the N transistor drive strength of the MDAT[63:0] and DM[8:0] pins.
00 = Drive strength 0 (weakest)
01 = Drive strength 1
10 = Drive strength 2
11 = Drive strength 3 (strongest)
Note that the DM[8:0] pins are controlled by the NDrvDQS field when any chip select is
configured for x4 DIMMs in the DRAM Mode/Status register (Dev 0:F0:0x58).
15–14
Reserved
Reserved
13–11
PSlewDQS
DQS Rising Edge Slew Rate
These bits control the rising edge slew rate of the DQS[8:0] pins (and DM[8:0] pins) when
any chip select is configured for x4 DIMMs in the DRAM Mode/Status register at
Dev 0:F0:0x58).
000 = Slew rate 0 (slowest)
001 = Slew rate 1
010 = Slew rate 2
011 = Slew rate 3
100 = Slew rate 4
101 = Slew rate 5
110 = Slew rate 6
111 = Slew rate 7 (fastest)
10–8
NSlewDQS
DQS Falling Edge Slew Rate
These bits control the falling edge slew rate of the DQS[8:0] pins (and DM[8:0] pins) when
any chip select is configured for x4 DIMMs in the DRAM Mode/Status register at
Dev 0:F0:0x58).
000 = Slew rate 0 (slowest)
001 = Slew rate 1
010 = Slew rate 2
011 = Slew rate 3
100 = Slew rate 4
101 = Slew rate 5
110 = Slew rate 6
111 = Slew rate 7 (fastest)
7–4
Reserved
Reserved
106
AMD-761™ System Controller Programmer’s Interface
Chapter 2
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
24081D—February 2002
Bit Definitions (Continued)
DDR DQS/MDAT Pad Configuration (Dev0:F1:0x8C)
Bit
Name
Function
3–2
PDrvDQS
DQS P Transistor Drive Strength
These bits control the P transistor drive strength of the DQS[8:0] pins (and DM[8:0] pins)
when any chip select is configured for x4 DIMMs in the DRAM Mode/Status register at
Dev 0:F0:0x58).
00 = Drive strength 0 (weakest)
01 = Drive strength 1
10 = Drive strength 2
11 = Drive strength 3 (strongest)
1–0
NDrvDQS
DQS N Transistor Drive Strength
These bits control the N transistor drive strength of the DQS[8:0] pins (and DM[8:0] pins)
when any chip select is configured for x4 DIMMs in the DRAM Mode/Status register at
Dev 0:F0:0x58).
00 = Drive strength 0 (weakest)
01 = Drive strength 1
10 = Drive strength 2
11 = Drive strength 3 (strongest)
Programming Notes
Chapter 2
AMD-761™ System Controller Programmer’s Interface
107
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
24081D—February 2002
DDR CLK/CS Pad Configuration
31
Bit
Reset
30
0
27
X
X
X
21
20
19
Reserved
0
R/W
Bit
X
X
18
17
16
PDrvCLK
0
14
0
X
NDrvCLK
X
13
R/W
12
11
X
X
X
6
5
4
3
Reserved
R/W
9
8
X
X
X
2
1
0
R/W
Bit
0
X
NSlewCS
R
7
10
PSlewCS
0
X
R/W
Reserved
0
24
X
R
15
25
R/W
22
0
26
NSlewCLK
R
Bit
Reset
28
PSlewCLK
0
23
Reset
29
Reserved
R/W
Reset
Dev0:F1:0x90
0
PDrvCS
0
0
X
NDrvCS
X
R
X
X
R/W
Register Description
This register allows BIOS control of the DDR clocks and chip-selects pad drive strength and slew rate.
108
AMD-761™ System Controller Programmer’s Interface
Chapter 2
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
24081D—February 2002
Bit Definitions
Bit
DDR CLK/CS Pad Configuration (Dev0:F1:0x90)
Name
Function
31–30
Reserved
Reserved
29–27
PSlewCLK
Clocks Rising Edge Slew Rate
These bits control the rising edge slew rate of the CLKOUT[5:0] and CLKOUT[5:0]# pins.
000 = Slew rate 0 (slowest)
001 = Slew rate 1
010 = Slew rate 2
011 = Slew rate 3
100 = Slew rate 4
101 = Slew rate 5
110 = Slew rate 6
111 = Slew rate 7 (fastest)
26–24
NSlewCLK
Clocks Falling Edge Slew Rate
These bits control the falling edge slew rate of the CLKOUT[5:0] and CLKOUT[5:0]# pins.
000 = Slew rate 0 (slowest)
001 = Slew rate 1
010 = Slew rate 2
011 = Slew rate 3
100 = Slew rate 4
101 = Slew rate 5
110 = Slew rate 6
111 = Slew rate 7 (fastest)
23–20
Reserved
Reserved
19–18
PDrvCLK
Clocks P Transistor Drive Strength
These bits control the P transistor drive strength of the CLKOUT[5:0] and
CLKOUT[5:0]# pins.
00 = Drive strength 0 (weakest)
01 = Drive strength 1
10 = Drive strength 2
11 = Drive strength 3 (strongest)
17–16
NDrvCLK
Clocks N Transistor Drive Strength
These bits control the N transistor drive strength of the CLKOUT[5:0] and
CLKOUT[5:0]# pins.
00 = Drive strength 0 (weakest)
01 = Drive strength 1
10 = Drive strength 2
11 = Drive strength 3 (strongest)
15–14
Reserved
Reserved
Chapter 2
AMD-761™ System Controller Programmer’s Interface
109
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
Bit Definitions (Continued)
Bit
24081D—February 2002
DDR CLK/CS Pad Configuration (Dev0:F1:0x90)
Name
Function
13–11
PSlewCS
CS Rising Edge Slew Rate
These bits control the rising edge slew rate of the CS[7:0]# pins.
000 = Slew rate 0 (slowest)
001 = Slew rate 1
010 = Slew rate 2
011 = Slew rate 3
100 = Slew rate 4
101 = Slew rate 5
110 = Slew rate 6
111 = Slew rate 7 (fastest)
10–8
NSlewCS
CS Falling Edge Slew Rate
These bits control the falling edge slew rate of the CS[7:0]# pins.
000 = Slew rate 0 (slowest)
001 = Slew rate 1
010 = Slew rate 2
011 = Slew rate 3
100 = Slew rate 4
101 = Slew rate 5
110 = Slew rate 6
111 = Slew rate 7 (fastest)
7–4
Reserved
Reserved
3–2
PDrvCS
CS P Transistor Drive Strength
These bits control the P transistor drive strength of the CS[7:0]# pins.
00 = Drive strength 0 (weakest)
01 = Drive strength 1
10 = Drive strength 2
11 = Drive strength 3 (strongest)
1–0
NDrvCS
CS N Transistor Drive Strength
These bits control the N transistor drive strength of the CS[7:0]# pins.
00 = Drive strength 0 (weakest)
01 = Drive strength 1
10 = Drive strength 2
11 = Drive strength 3 (strongest)
Programming Notes
110
AMD-761™ System Controller Programmer’s Interface
Chapter 2
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
24081D—February 2002
DDR CMDB/CMDA Pad Configuration
31
Bit
Reset
30
Reserved
0
X
22
X
21
0
R/W
X
Bit
X
X
20
19
18
17
16
PDrvCMDB
0
14
0
X
NDrvCMDB
X
13
R/W
12
11
X
X
X
6
5
4
3
Reserved
R/W
9
8
X
X
X
2
1
0
R/W
Bit
0
X
NSlewCMDA
R
7
10
PSlewCMDA
0
X
R/W
Reserved
0
24
X
R
15
25
NSlewCMDB
Reserved
0
26
R/W
Bit
Reset
27
R
23
Reset
28
PSlewCMDB
0
R/W
Reset
29
Dev0:F1:0x94
0
PDrvCMDA
0
0
X
NDrvCMDA
X
R
X
X
R/W
Register Description
This register allows BIOS control of the DDR RASA#, RASB#, CASA#, CASB#, WEA#, WEB#, CKEA#, and CKEB# pad
drive strength and slew rate.
Chapter 2
AMD-761™ System Controller Programmer’s Interface
111
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
Bit Definitions
Bit
24081D—February 2002
DDR CMDB/CMDA Pad Configuration (Dev0:F1:0x94)
Name
Function
31–30
Reserved
Reserved
29–27
PSlewCMDB
Command B Rising Edge Slew Rate
These bits control the rising edge slew rate of the RASB#, CASB#, WEB#, and CKEB# pins.
000 = Slew rate 0 (slowest)
001 = Slew rate 1
010 = Slew rate 2
011 = Slew rate 3
100 = Slew rate 4
101 = Slew rate 5
110 = Slew rate 6
111 = Slew rate 7 (fastest)
26–24
NSlewCMDB
Command B Falling Edge Slew Rate
These bits control the falling edge slew rate of the RASB#, CASB#, WEB#, and
CKEB# pins.
000 = Slew rate 0 (slowest)
001 = Slew rate 1
010 = Slew rate 2
011 = Slew rate 3
100 = Slew rate 4
101 = Slew rate 5
110 = Slew rate 6
111 = Slew rate 7 (fastest)
23–20
Reserved
Reserved
19–18
PDrvCMDB
Command B P Transistor Drive Strength
These bits control the P transistor drive strength of the RASB#, CASB#, WEB#, and CKEB#
pins.
00 = Drive strength 0 (weakest)
01 = Drive strength 1
10 = Drive strength 2
11 = Drive strength 3 (strongest)
17–16
NDrvCMDB
Command B N Transistor Drive Strength
These bits control the N transistor drive strength of the RASB#, CASB#, WEB#, and
CKEB# pins.
00 = Drive strength 0 (weakest)
01 = Drive strength 1
10 = Drive strength 2
11 = Drive strength 3 (strongest)
15–14
Reserved
Reserved
112
AMD-761™ System Controller Programmer’s Interface
Chapter 2
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
24081D—February 2002
Bit Definitions (Continued)
Bit
DDR CMDB/CMDA Pad Configuration (Dev0:F1:0x94)
Name
Function
13–11
PSlewCMDA
Command A Rising Edge Slew Rate
These bits control the rising edge slew rate of the RASA#, CASA#, WEA#, and CKEA# pins.
000 = Slew rate 0 (slowest)
001 = Slew rate 1
010 = Slew rate 2
011 = Slew rate 3
100 = Slew rate 4
101 = Slew rate 5
110 = Slew rate 6
111 = Slew rate 7 (fastest)
10–8
NSlewCMDA
Command A Falling Edge Slew Rate
These bits control the falling edge slew rate of the RASA#, CASA#, WEA#, and
CKEA# pins.
000 = Slew rate 0 (slowest)
001 = Slew rate 1
010 = Slew rate 2
011 = Slew rate 3
100 = Slew rate 4
101 = Slew rate 5
110 = Slew rate 6
111 = Slew rate 7 (fastest)
7–4
Reserved
Reserved
3–2
PDrvCMDA
Command A P Transistor Drive Strength
These bits control the P transistor drive strength of the RASA#, CASA#, WEA#, and
CKEA# pins.
00 = Drive strength 0 (weakest)
01 = Drive strength 1
10 = Drive strength 2
11 = Drive strength 3 (strongest)
1–0
NDrvCMDA
Command A N Transistor Drive Strength
These bits control the N transistor drive strength of the RASA#, CASA#, WEA#, and
CKEA# pins.
00 = Drive strength 0 (weakest)
01 = Drive strength 1
10 = Drive strength 2
11 = Drive strength 3 (strongest)
Programming Notes
Chapter 2
AMD-761™ System Controller Programmer’s Interface
113
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
24081D—February 2002
DDR MAB/MAA Pad Configuration
31
Bit
Reset
30
Reserved
0
X
22
X
21
0
R/W
X
Bit
X
X
20
19
18
17
16
PDrvMAB
0
14
0
X
NDrvMAB
X
13
R/W
12
11
X
X
X
6
5
4
3
Reserved
R/W
9
8
X
X
X
2
1
0
R/W
Bit
0
X
NSlewMAA
R
7
10
PSlewMAA
0
X
R/W
Reserved
0
24
X
R
15
25
NSlewMAB
Reserved
0
26
R/W
Bit
Reset
27
R
23
Reset
28
PSlewMAB
0
R/W
Reset
29
Dev0:F1:0x98
0
PDrvMAA
0
0
X
NDrvMAA
X
R
X
X
R/W
Register Description
This register allows BIOS control of the DDR MAA and MAB address bus pad drive strength and slew rate.
114
AMD-761™ System Controller Programmer’s Interface
Chapter 2
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
24081D—February 2002
Bit Definitions
Bit
DDR MAB/MAA Pad Configuration (Dev0:F1:0x98)
Name
Function
31–30
Reserved
Reserved
29–27
PSlewMAB
MAB Rising Edge Slew Rate
These bits control the rising edge slew rate of the MAB[14:0] pins.
000 = Slew rate 0 (slowest)
001 = Slew rate 1
010 = Slew rate 2
011 = Slew rate 3
100 = Slew rate 4
101 = Slew rate 5
110 = Slew rate 6
111 = Slew rate 7 (fastest)
26–24
NSlewMAB
MAB Falling Edge Slew Rate
These bits control the falling edge slew rate of the MAB[14:0] pins.
000 = Slew rate 0 (slowest)
001 = Slew rate 1
010 = Slew rate 2
011 = Slew rate 3
100 = Slew rate 4
101 = Slew rate 5
110 = Slew rate 6
111 = Slew rate 7 (fastest)
23–20
Reserved
Reserved
19–18
PDrvMAB
MAB P Transistor Drive Strength
These bits control the P transistor drive strength of the MAB[14:0] pins.
00 = Drive strength 0 (weakest)
01 = Drive strength 1
10 = Drive strength 2
11 = Drive strength 3 (strongest)
17–16
NDrvMAB
MAB N Transistor Drive Strength
These bits control the N transistor drive strength of the MAB[14:0] pins.
00 = Drive strength 0 (weakest)
01 = Drive strength 1
10 = Drive strength 2
11 = Drive strength 3 (strongest)
15–14
Reserved
Reserved
Chapter 2
AMD-761™ System Controller Programmer’s Interface
115
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
Bit Definitions (Continued)
Bit
24081D—February 2002
DDR MAB/MAA Pad Configuration (Dev0:F1:0x98)
Name
Function
13–11
PSlewMAA
MAA Rising Edge Slew Rate
These bits control the rising edge slew rate of the MAA[14:0] pins.
000 = Slew rate 0 (slowest)
001 = Slew rate 1
010 = Slew rate 2
011 = Slew rate 3
100 = Slew rate 4
101 = Slew rate 5
110 = Slew rate 6
111 = Slew rate 7 (fastest)
10–8
NSlewMAA
MAA Falling Edge Slew Rate
These bits control the falling edge slew rate of the MAA[14:0] pins.
000 = Slew rate 0 (slowest)
001 = Slew rate 1
010 = Slew rate 2
011 = Slew rate 3
100 = Slew rate 4
101 = Slew rate 5
110 = Slew rate 6
111 = Slew rate 7 (fastest)
7–4
Reserved
Reserved
3–2
PDrvMAA
MAA P Transistor Drive Strength
These bits control the P transistor drive strength of the MAA[14:0] pins.
00 = Drive strength 0 (weakest)
01 = Drive strength 1
10 = Drive strength 2
11 = Drive strength 3 (strongest)
1–0
NDrvMAA
MAA N Transistor Drive Strength
These bits control the N transistor drive strength of the MAA[14:0] pins.
00 = Drive strength 0 (weakest)
01 = Drive strength 1
10 = Drive strength 2
11 = Drive strength 3 (strongest)
Programming Notes
116
AMD-761™ System Controller Programmer’s Interface
Chapter 2
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
24081D—February 2002
2.4.5
Device 1: PCI-to-PCI Bridge Configuration Registers
The registers defined in this section are required to implement
the PCI-to-PCI bridge function (device 1) in the AMD-761
system controller Northbridge. In Table 15, the column entitled
Offset consists of the register number specified in the
Configuration Address register bits [7:2] concatenated with
0b00 to form a simple 1-byte offset.
Table 15.
Device 1 Configuration Register Map
PCI-to-PCI Bridge (Device 1)
Offset
Reference
Device ID
Vendor ID
0x00
“Dev1:0x00” on
page 118
Status
Command
0x04
“Dev1:0x04” on
page 120
Revision ID
0x08
“Dev1:0x08” on
page 123
Reserved
0x0C
“Dev1:0x0C” on
page 124
Class Code0x0600
Reserved
Header Type
Primary Latency
Timer
Reserved
SecLatency
Time
Subordinate Bus
Num
Secondary Status
0x10 to 0x17
Secondary Bus
Num
Primary Bus
Num
0x18
“Dev1:0x18” on
page 125
I/O Limit
I/O Base
0x1C
“Dev1:0x1C” on
page 127
Memory Limit
Memory Base
0x20
“Dev1:0x20” on
page 130
Prefetchable Memory Limit
Prefetchable Memory Base
0x24
“Dev1:0x24” on
page 132
Reserved
I/O Limit Upper 16 Bits
0x28 to 0x2F
I/O Base Upper 16 Bits
Reserved
“Dev1:0x30” on
page 134
Reserved
0x34 to 0x3B
Interrupt
Line
0x3C
“Dev1:0x3C” on
page 135
Miscellaneous Device 1 Control
0x40
“Dev1:0x40” on
page 137
Reserved
0x44 to 0xFF
Bridge Control
Chapter 2
0x30
Interrupt
Pin
AMD-761™ System Controller Programmer’s Interface
117
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
24081D—February 2002
AGP/PCI ID
Dev1:0x00
31
30
29
28
Bit
Reset
0
1
1
1
22
21
20
Bit
24
0
0
0
0
19
18
17
16
1
1
1
1
11
10
9
8
0
0
0
0
3
2
1
0
0
0
1
0
Dev_ID
0
0
0
0
R/W
R
15
14
13
12
Bit
Vend_ID
0
0
0
1
R/W
R
7
6
5
4
Bit
Reset
25
R
23
Reset
26
Dev_ID
R/W
Reset
27
Vend_ID
0
R/W
0
1
0
R
Register Description
118
AMD-761™ System Controller Programmer’s Interface
Chapter 2
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
24081D—February 2002
Bit Definitions
AGP/PCI ID (Dev1:0x00)
Bit
Name
Function
31–16
Dev_ID
Device Identifier
This 16-bit register is assigned by the device manufacturer and identifies the type of
device. The current Northbridge device ID assignments are:
AMD-761™ system controller — AMD Athlon™ processor, 1P DDR 133 MHz
0x700E host to PCI bridge
0x700F PCI-to-PCI bridge (4X AGP)
AMD-762™ system controller — AMD Athlon processor, 2P DDR 133 MHz
0x700C host to PCI bridge
0x700D PCI-to-PCI bridge (4X AGP)
AMD-751™ system controller — AMD Athlon processor, 1P SDRAM-100
0x7006 host to PCI bridge
0x7007 PCI-to-PCI bridge (1X/2X AGP)
15–0
Vend_ID
Vendor Identifier
This 16-bit register identifies the manufacturer of the device.
Programming Notes
Chapter 2
AMD-761™ System Controller Programmer’s Interface
119
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
24081D—February 2002
AGP/PCI Command and Status
Dev1:0x04
31
30
29
28
27
PERR_Rcv
SERR_Rcv
Mas_ABRT
Trgt_ABRT
Trgt_ABRTS
_Signaled
Reset
0
0
0
0
0
R/W
R
R/W1C
23
22
21
20
Fast_B2B
UDF
66M
Cap_Lst
0
0
1
0
Bit
Bit
Reset
14
13
Bit
Data_PERR
0
1
0
19
18
17
16
Reserved
0
0
0
0
12
11
10
9
8
FBACK
SERR
0
0
Reserved
0
0
0
R/W
Reset
DEVSEL_Timing
24
R
15
Bit
25
R
R/W
Reset
26
0
0
0
R
R/W
7
6
5
4
3
2
1
0
STEP
PERR
VGA
MWINV
SCYC
MSTR
MEM
I/O
0
0
0
0
0
0
0
0
R/W
R
R/W
Register Description
The AGP/PCI Command and Status register provides coarse control over the PCI-PCI bridge function within the
AMD-761™ system controller. This register controls the ability to generate and respond to PCI cycles on both the AGP bus
and the PCI bus.
120
AMD-761™ System Controller Programmer’s Interface
Chapter 2
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
24081D—February 2002
Bit Definitions
AGP/PCI Command and Status (Dev1:0x04)
Bit
Name
Function
31
PERR_Rcv
Detected Parity Error
This bit is always Low because the AMD-761™ system controller does not support
parity checking.
30
SERR_Rcv
Signaled System Error
This bit is set whenever the AMD-761 system controller received AGP SERR# and
subsequently asserted PCI SERR#. This bit is cleared by writing a 1. Refer to Table 7 on
page 34 for details about SERR# assertion and status.
29
Mas_ABRT
Received Master Abort
This bit is always 0.
28
Trgt_ABRT
Receive Target Abort
This bit is always 0.
27
Trgt_ABRTS
_Signaled
Signaled Target Abort
This bit is always 0.
DEVSEL_Timing
DEVSEL# Timing
This field is always 0b01, indicating that the AMD-761 system controller supports medium
DEVSEL# timing.
24
Data_PERR
Data PERR#
This bit is always 0 because the AMD-761 system controller does not report data
parity errors.
23
Fast_B2B
Fast Back-to-Back Capable
This bit is always 0, indicating that the AMD-761 system controller as a target is not
capable of accepting fast back-to-back transactions when the transactions are not to the
same agent.
22
UDF
User-Definable Features
This bit is always 0, indicating that UDF is not supported on the AMD-761 system
controller.
21
66M
66-MHz Capable
This bit is always 1, indicating that the AMD-761 system controller supports 66 MHz on
device 1.
20
Cap_Lst
Capabilities List
This bit is always 0, indicating that the configuration space of this device does not support
a capabilities list.
19–10
Reserved
Reserved
FBACK
Fast Back-to-Back to Different Devices Enable
This bit is always 0, because the AMD-761 system controller does not allow generation of
fast back-to-back transactions to different agents.
26–25
9
Chapter 2
AMD-761™ System Controller Programmer’s Interface
121
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
Bit Definitions (Continued)
24081D—February 2002
AGP/PCI Command and Status (Dev1:0x04)
Bit
Name
Function
8
SERR
System Error Enable
When set, this bit enables the SERR# output. When clear, this bit disables the SERR#
output. The AGP A_SERR# is an input to the AMD-761™ system controller. The AMD-761
system controller receives AGP A_SERR#, ORs it with the normal PCI SERR#, and asserts it
to the AMD-766™ peripheral bus controller for possible error interrupt generation. Refer
to Table 7 on page 34 for details about SERR# assertion and status.
7
STEP
Address Stepping
This bit is always 0 because the AMD-761 system controller does not perform
address stepping.
6
PERR
Parity Error Response
This bit is always 0 because the AMD-761 system controller does not report data
parity errors.
5
VGA
VGA Palette Snoop Enable
This bit is always 0, indicating that the AMD-761 system controller does not snoop the VGA
palette address range.
4
MWINV
Memory Write and Invalidate Enable
This bit is always 0 because the AMD-761 system controller does not generate memory
write and invalidate commands.
3
SCYC
Special Cycle
This bit is always 0 because the AMD-761 system controller ignores PCI special cycles.
2
MSTR
Bus Master Enable
When this bit is set, the AMD-761 system controller accepts DMA accesses from the
AGP interface.
1
MEM
Memory Access Enable
When set, the AMD-761 system controller forwards AMD Athlon™ processor system bus
accesses that reference AGP memory space onto the AGP bus (see “Dev1:0x20” on
page 130).
0
I/O
I/O Access Enable
When set, the AMD-761 system controller forwards CPU accesses that reference AGP I/O
space onto the AGP bus (see “Dev1:0x1C” on page 127).
Programming Notes
122
AMD-761™ System Controller Programmer’s Interface
Chapter 2
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
24081D—February 2002
AGP/PCI Revision ID and Class Code
31
30
29
Dev1:0x08
28
Bit
Reset
0
0
0
22
21
Bit
0
20
24
0
1
1
0
19
18
17
16
0
1
0
0
11
10
9
8
0
0
0
0
3
2
1
0
0
0
0
0
Sub-Class_Code
0
0
0
0
R/W
R
15
14
13
12
Bit
Prog_I/F
0
0
0
0
R/W
R
7
6
5
4
Bit
Reset
25
R
23
Reset
26
Class_Code
R/W
Reset
27
Rev_ID
0
R/W
0
0
0
R
Register Description
Bit Definitions
Bit
Name
31–24
Class_Code
23–16
Sub-Class_Code
15–8
Prog_I/F
7–0
Rev_ID
AGP/PCI Revision ID and Class Code (Dev1:0x08)
Function
Class Code
This field is always 06h, indicating that it is a bridge device.
Sub-Class Code
This field is always 04h for sub-class code and 00h for Prog. I/F, indicating it is a
PCI/PCI bridge.
Program Interface
This field is always 00h, indicating that it is a PCI-to-PCI bridge.
Revision ID
This field contains an 8-bit value identifying the revision number of the device.
Programming Notes
Chapter 2
AMD-761™ System Controller Programmer’s Interface
123
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
24081D—February 2002
AGP/PCI Header Type
31
Dev1:0x0C
30
29
28
Bit
27
26
25
24
0
0
0
0
19
18
17
16
0
0
0
1
11
10
9
8
0
0
0
0
3
2
1
0
0
0
0
0
Reserved
Reset
0
0
0
0
R/W
R
23
22
21
20
Bit
Header_Type
Reset
0
0
0
0
R/W
R
15
14
13
Bit
12
Pri_Lat_Timer
Reset
0
0
0
0
R/W
R/W
7
6
5
4
Bit
Reserved
Reset
0
0
R/W
0
0
R
Register Description
Bit Definitions
Bit
AGP/PCI Header Type (Dev1:0x0C)
Name
Function
31–24
Reserved
Reserved
23–16
Header_Type
Header Type
Bit 23 is always 0, indicating that the AMD-761™ system controller is a single function device.
Bits 22:16 are 0x01, indicating that type 01 configuration space header format is supported
(PCI-to-PCI bridge).
15–8
Pri_Lat_Timer
Primary Latency Timer
This latency timer is not used in the AMD-761 system controller because the primary bus
of the PCI-to-PCI bridge is internal. This register is read/write to maintain compliance with
the PCI specifications.
7–0
Reserved
Reserved
Programming Notes
124
AMD-761™ System Controller Programmer’s Interface
Chapter 2
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
24081D—February 2002
AGP/PCI Sub Bus Number/Secondary Latency Timer
31
30
29
Bit
Reset
28
0
0
0
22
21
Bit
0
20
24
0
0
0
0
19
18
17
16
0
0
0
0
11
10
9
8
0
0
0
0
3
2
1
0
0
0
0
Sub-Bus_Num
0
0
0
0
R/W
R/W
15
14
13
Bit
12
Secon_Bus_Num
0
0
0
0
R/W
R/W
7
6
5
Bit
Reset
25
R/W
23
Reset
26
Secon_Lat_Timer
R/W
Reset
27
Dev1:0x18
4
Pri_Bus_Num
0
R/W
0
0
0
0
R/W
Register Description
Chapter 2
AMD-761™ System Controller Programmer’s Interface
125
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
Bit Definitions
Bit
24081D—February 2002
AGP/PCI Sub Bus Number/Secondary Latency Timer (Dev1:0x18)
Name
Function
31–24
Secon_Lat_Timer
Secondary Latency Timer
Adheres to the definition of the latency timer in the PCI Local Bus Specification, Revision
2.2, but only applies to the secondary interface of a PCI-to-PCI bridge.
23–16
Sub-Bus_Num
Sub-Bus Number
This bit field records the number of the highest numbered PCI bus that is behind (or
subordinate to) a bridge. The bridge uses this number in conjunction with the Secondary
Bus Number register to determine when to respond to type 1 configuration transactions
on the primary interface and to pass them on to the secondary interface.
15–8
Secon_Bus_Num
Secondary Bus Number
This bit field records the number of the PCI bus that the secondary interface of the bridge
is connected to. The bridge uses this number to determine when to respond to type 1
configuration transactions on the primary interface and to convert them to type 0
transactions on the secondary interface.
7–0
Pri_Bus_Num
Primary Bus Number
This bit field records the number of the PCI bus that the primary interface of the bridge is
connected to. The bridge uses this number to decode type 1 configuration transactions on
the secondary interface that should be converted to special cycle transactions on the
primary interface.
Programming Notes
The AGP bus is logically a sub-bus of the PCI bus. The PCI bus normally enumerates as bus 0 and the AGP bus
enumerates as bus 1.
126
AMD-761™ System Controller Programmer’s Interface
Chapter 2
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
24081D—February 2002
AGP/PCI Status, I/O Base and Limit
Dev1:0x1C
31
30
29
28
27
PERR_Rcv
SERR_Rcv
Mas_ABRT
Trgt_ABRT
Trgt_ABRTS
_Signaled
Reset
0
0
0
0
0
R/W
R
Bit
Bit
Reset
DEVSEL_Timing
0
24
Data_PERR
1
0
17
16
R
23
22
21
20
Fast_B2B
UDF
66M
Cap_Lst
0
0
1
0
19
18
Reserved
0
0
0
0
11
10
9
8
0
1
1
0
0
1
R
15
Bit
14
13
12
IO_Lim[15:12]
0
0
R/W
0
IO_Lim_R
0
0
0
R/W
7
Bit
Reset
25
R/W1C
R/W
Reset
26
6
R
5
4
3
2
IO_Base[15:12]
0
R/W
0
0
IO_Base_R
0
0
0
R/W
R
Register Description
The Secondary Status register reflects the conditions of the secondary PCI-to-PCI bridge interface (the AGP bus). The I/O
Base register defines the bottom (inclusive) of an address range that is used by the bridge to determine when to forward
I/O transactions from one interface to the other. The I/O Limit register defines the top (inclusive) of an address range that
is used by the bridge to determine when to forward I/O transactions from one interface to the other.
Chapter 2
AMD-761™ System Controller Programmer’s Interface
127
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
Bit Definitions
Bit
Name
31
PERR_Rcv
30
SERR_Rcv
29
Mas_ABRT
28
Trgt_ABRT
27
Trgt_ABRTS
_Signaled
26–25
DEVSEL_Timing
24
Data_PERR
23
Fast_B2B
22
UDF
21
66M
20
Cap_Lst
19–16
15–12
Reserved
IO_Lim[15:12]
11–8
IO_Lim_R
128
24081D—February 2002
AGP/PCI Status, I/O Base and Limit (Dev1:0x1C)
Function
Detected Parity Error
This bit is always Low because the AMD-761™ system controller does not support
parity checking.
Signaled System Error
This bit is set whenever the AMD-761 system controller received AGP SERR#. This bit is
cleared by writing a 1. Refer to Table 7 on page 34 for details about SERR# assertion
and status.
Received Master Abort
This bit is set by the AMD-761 system controller whenever a bus master transaction
(except for a special cycle) is terminated due to a master abort. This bit is cleared by
writing a 1.
Receive Target Abort
This bit is set by the AMD-761 system controller whenever a bus master transaction (except
for a special cycle) is terminated due to a target abort. This bit is cleared by writing a 1.
Signaled Target Abort
This bit is always 0 because the AMD-761 system controller does not terminate
transactions with target aborts.
DEVSEL# Timing
This field is always 0x1, indicating that the AMD-761 system controller supports medium
DEVSEL# timing.
Data PERR#
This bit is always 0 because the AMD-761 system controller does not report data
parity errors.
Fast Back-to-Back Capable
This bit is always 0, indicating that the AMD-761 system controller as a target is not
capable of accepting fast back-to-back transactions when the transactions are not to the
same agent.
User-Definable Features
This bit is always 0, indicating that UDF is not supported on the AMD-761 system
controller.
66-MHz Capable
This bit is always 1, indicating that the AMD-761 system controller supports 66 MHz on
device 1.
Capabilities List
This bit is always 0, indicating that the configuration space of this device does not support
a capabilities list.
Reserved
I/O Limit (Write)
This bit field indicates the upper writable 4 bits that define the top address of an address
range that is used by the bridge to determine when to forward I/O transactions from one
interface to the other.
I/O Limit (Read)
The lower read-only 4 bits define the top address of an address range that is used by the
bridge to determine when to forward I/O transactions from one interface to the other. 0x1
indicates that 32-bit I/O address decoding is available.
AMD-761™ System Controller Programmer’s Interface
Chapter 2
Preliminary Information
24081D—February 2002
AMD-761™ System Controller Software/BIOS Design Guide
Bit Definitions (Continued)
AGP/PCI Status, I/O Base and Limit (Dev1:0x1C)
Bit
Name
Function
7–4
IO_Base[15:12]
I/O Base (Write)
The upper writable 4 bits define the bottom address of an address range that is used by
the bridge to determine when to forward I/O transactions from one interface to the other.
3–0
IO_Base_R
I/O Base (Read)
The lower read-only 4 bits define the bottom address of an address range that is used by
the bridge to determine when to forward I/O transactions from one interface to the other.
0x1 indicates that 32-bit I/O address decoding is available.
Programming Notes
Chapter 2
AMD-761™ System Controller Programmer’s Interface
129
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
24081D—February 2002
AGP/PCI Memory Limit and Base
31
30
29
Dev1:0x20
28
Bit
Reset
0
0
0
22
Bit
24
0
0
0
0
19
18
17
16
0
0
10
9
8
0
0
0
0
3
2
1
0
0
0
0
21
20
MLim[31:20]
0
Reserved
0
R/W
0
0
0
0
R/W
15
14
R
13
Bit
12
11
MBase[31:20]
0
0
0
0
R/W
R/W
7
Bit
Reset
25
R/W
23
Reset
26
MLim[31:20]
R/W
Reset
27
6
5
4
MBase[31:20]
0
R/W
0
Reserved
0
0
0
0
R/W
R
Register Description
130
AMD-761™ System Controller Programmer’s Interface
Chapter 2
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
24081D—February 2002
Bit Definitions
Bit
AGP/PCI Memory Limit and Base (Dev1:0x20)
Name
Function
31–20
MLim[31:20]
Memory Limit Address
Memory limit address defines the top address of the non-prefetchable address range used
by the AGP target (graphics controller) where control registers and FIFO-like
communication interfaces are mapped. The lower 20 bits of address are assumed to be
0xFFFFF. The memory address range adheres to 1-Mbyte alignment and granularity.
19–16
Reserved
Reserved
15–4
MBase[31:20]
Memory Base Address
Memory Base Address defines the base address of the non-prefetchable address range
used by the AGP target (graphics controller) where control registers and FIFO-like
communication interfaces are mapped. Bits [15:4] correspond to address bits [31:20]. The
lower 20 bits of the address are assumed to be 0. The memory address range adheres to
1-Mbyte alignment and granularity.
3–0
Reserved
Reserved
Programming Notes
Chapter 2
AMD-761™ System Controller Programmer’s Interface
131
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
24081D—February 2002
AGP/PCI Prefetchable Memory Limit and Base
31
30
29
Bit
Reset
28
0
Bit
0
0
22
25
24
0
0
0
0
0
21
20
19
18
17
16
0
0
10
9
8
0
0
0
0
3
2
1
0
0
0
Prefet_Mem_Lim
0
0
R/W
0
Reserved
0
0
0
R/W
15
14
R
13
Bit
12
11
Prefet_Mem_Base
0
0
0
0
R/W
R/W
7
Bit
Reset
26
R/W
23
Reset
27
Prefet_Mem_Lim
R/W
Reset
Dev1:0x24
6
5
4
Prefet_Mem_Base
0
R/W
0
0
Reserved
0
0
0
R/W
R
Register Description
132
AMD-761™ System Controller Programmer’s Interface
Chapter 2
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
24081D—February 2002
Bit Definitions
Bit Definitions
Bit
AGP/PCI Prefetchable Memory Limit and Base (Dev1:0x24)
Name
Function
31–20
Prefet_Mem_Lim
Prefetchable Memory Limit Address
Prefetchable memory limit address defines the top address of the prefetchable address
range used by the AGP target (graphics controller) where control registers and FIFO-like
communication interfaces are mapped. The lower 20 bits of address are assumed to be
0xFFFFF. The memory address range adheres to 1-Mbyte alignment and granularity.
19–16
Reserved
Reserved
15–4
Prefet_Mem_Base
Prefetchable Memory Base Address
Prefetchable memory base address defines the base address of the prefetchable address
range used by the AGP target (graphics controller) where control registers and FIFO-like
communication interfaces are mapped. Bits [15:4] correspond to address bits [31:20]. The
lower 20 bits of the address are assumed to be 0. The memory address range adheres to
1-Mbyte alignment and granularity.
3–0
Reserved
Reserved
Programming Notes
Chapter 2
AMD-761™ System Controller Programmer’s Interface
133
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
24081D—February 2002
AGP/PCI I/O Limit and Base Upper 16 Bits
31
30
29
Dev1:0x30
28
Bit
27
26
25
24
0
0
0
0
19
18
17
16
0
0
0
0
11
10
9
8
0
0
0
0
3
2
1
0
0
0
0
Reserved
Reset
0
0
0
0
R/W
R
23
22
21
Bit
20
I/O_Lim[23:16]
Reset
0
0
0
0
R/W
R/W
15
14
13
12
Bit
Reserved
Reset
0
0
0
0
R/W
R
7
6
5
Bit
4
I/O_Base[23:16]
Reset
0
0
R/W
0
0
0
R/W
Register Description
This set of registers define the valid range of 32-bit I/O addresses that are allowed to be forwarded from the host to the
AGP/PCI. Note that if this register is 0, 32-bit addressing mode is effectively disabled.
Bit Definitions
Bit
AGP/PCI I/O Limit and Base Upper 16 Bits (Dev1:0x30)
Name
Function
31–24
Reserved
Reserved
23–16
I/O_Lim[23:16]
I/O Limit
This field defines the upper limit (inclusive) of 24-bit I/O addresses that are passed to the
AGP/PCI bus.
15–8
Reserved
Reserved
7–0
I/O_Base[23:16]
I/O Base
This field defines the base (inclusive) of 24-bit I/O addresses that are passed to the
AGP/PCI bus.
Programming Notes
134
AMD-761™ System Controller Programmer’s Interface
Chapter 2
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
24081D—February 2002
AGP/PCI Interrupt and Bridge Control
31
30
29
Dev1:0x3C
28
Bit
26
25
24
0
0
0
0
Reserved
Reset
0
0
0
0
R/W
Bit
27
R
23
22
21
20
19
18
17
16
Bridge_Fast
_B2B_En
Secon_Bus
_Reset
Mas_Abort
_Mode
Reserved
VGA_En
ISA_En
SERR_En
Par_Resp_En
0
0
0
0
0
0
0
0
Reset
R/W
R
15
14
R/W
13
12
Bit
R
11
10
9
8
0
0
0
0
3
2
1
0
0
0
0
0
Int_Pin
Reset
0
0
0
R/W
0
R/W (See Note)
7
6
5
4
Bit
Int_Line
Reset
0
0
R/W
0
0
R/W
Register Description
Bit Definitions
Bit
AGP/PCI Interrupt and Bridge Control (Dev1:0x3C)
Name
Function
Reserved
Reserved
23
Bridge_Fast_
B2B_En
Fast Back-to-Back Capable
This bit is always 0, indicating that the AMD-761™ system controller as a master is not
capable of generating fast back-to-back transactions to different agents on the
secondary bus.
22
Secon_Bus_Reset
Secondary Bus Reset
This bit is always 0. Reset for the secondary interface is done with the PCIRST# output of
the AMD-766™ peripheral bus controller.
21
Mas_Abort_Mode
Master Abort Mode
This bit is always 0. The response to a master abort is determined by the
RD_Data_Err_Dis bit, Dev0:F0:0x84 bit 12.
31–24
Chapter 2
AMD-761™ System Controller Programmer’s Interface
135
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
Bit Definitions (Continued)
24081D—February 2002
AGP/PCI Interrupt and Bridge Control (Dev1:0x3C)
Bit
Name
Function
20
Reserved
Reserved
19
VGA_En
VGA Enable
Affects the response by the bridge to compatible VGA addresses. When it is set, the bridge
decodes and forwards the following accesses on the primary interface to the secondary
interface.
Memory accesses in the range:
0xA0000 to 0xBFFFF
I/O address where AD[9:0] are in the ranges:
0x3B0 to 0x3BB and 0x3C0 to 0x3DF
(inclusive of ISA address aliases — AD[15:10] are not decoded)
18
ISA_En
ISA Enable
Modifies the response by the bridge to ISA I/O addresses. This modification applies only to
I/O addresses that are enabled by the I/O Base and I/O Limit registers and are in the first
64 Kbytes of PCI I/O address space (0000 0000h to 0000 FFFFh). When set, the bridge
blocks any forwarding from primary to secondary of I/O transactions addressing the last
768 bytes in each 1-Kbyte block. In the opposite direction (secondary to primary), I/O
transactions are forwarded if they address the last 768 bytes in each 1-Kbyte block.
0 = Forward all I/O addresses in the address range defined by the I/O Base and I/O Limit
registers.
1 = Block forwarding of ISA I/O addresses in the address range defined by the I/O Base
& I/O Limit registers that are in the first 64 Kbytes of PCI I/O address space (top 768
bytes of each 1-Kbyte block).
17
SERR_En
SERR Enable
Forwards the secondary interface SERR# assertions to the primary interface. This bit must
be set, along with the SERR enable bit (Dev 1:F0:0x04) to allow an AGP SERR# to be
propagated to the AMD-761™ system controller PCI SERR# pin. Refer to Table 7 on
page 34 for details about SERR# assertion and status.
16
Par_Resp_En
Parity Response Enable
This bit is always 0. The AMD-761 system controller does not support parity.
Int_Pin
Interrupt Pin
Indicates which interrupt pin the PCI-to-PCI bridge uses.
Note: This field is R/W depending on the value of the IntPinCntl bit (Bit 0 of Dev
1:0x40). Refer to “Dev1:0x40” on page 137 for details. The ability to write this
field is supported to allow BIOS to program to the required value.
15–8
The AMD-761 system controller hardware does not use this field internally in any way.
7–0
Int_Line
Interrupt Line
Communicates interrupt line routing information. This field is a simple R/W field to allow
BIOS software to program to the required value.
Programming Notes
136
AMD-761™ System Controller Programmer’s Interface
Chapter 2
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
24081D—February 2002
Miscellaneous Device 1 Control
31
30
Dev1:0x40
29
28
Bit
27
26
25
24
0
0
0
0
19
18
17
16
0
0
0
0
11
10
9
8
0
0
0
0
3
2
1
0
Reserved
Reset
0
0
0
0
R/W
R
23
22
21
20
Bit
Reserved
Reset
0
0
0
0
R/W
R
15
14
13
12
Bit
Reserved
Reset
0
0
0
0
R/W
R
7
6
5
Bit
4
Reserved
Reset
0
0
R/W
0
0
Int_Pin_Cntl
0
0
R
0
0
R/W
Register Description
Bit Definitions
Bit
31–1
0
Miscellaneous Device 1 Control (Dev1:0x40)
Name
Function
Reserved
Reserved
Int_Pin_Cntl
Interrupt Pin Control
This bit controls the IntPin field in AGP/PCI Interrupt and Bridge Control register
(Dev1:0x3C).
0 = IntPin field is read-only.
1 = IntPin field is read-writable for BIOS initialization.
Programming Notes
Chapter 2
AMD-761™ System Controller Programmer’s Interface
137
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
2.5
24081D—February 2002
Memory-Mapped Registers
The AMD-761 system controller implements a set of memorymapped control registers as shown in Section 2.5.2 on page 140.
Th e b a se fo r t h e s e reg is t e rs is d ef i n ed i n BA R 1 ( s ee
“Dev0:F0:0x14” on page 39). This address is determined and
loaded by system BIOS. The registers in the space are used by
the AMD-761 miniport driver to control the GART cache
functionality during run time.
2.5.1
AMD-761™ System Controller GART Cache Overview
This section provides a brief overview for programmers. The
Graphics Address Relocation Table (GART) is a structure in
memory that contains mappings from a virtual address
generated by an AGP master (or any other master in the system
including PCI masters and the CPU) and the actual physical
address of a given request. The default mode used by the
AMD-761 GART cache is a two-level directory/table indexing
scheme that is very similar to the standard x86 virtual memory
architecture. By using two levels of indexing, the GART
structure does not need to be physically contiguous. Figure 4
on page 139 illustrates the two-level indexing scheme.
138
AMD-761™ System Controller Programmer’s Interface
Chapter 2
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
24081D—February 2002
AMD-761™ System Controller
Physical
Memory
Northbridge
1K Table Entries
Table Cache
GART Table
16 Entries
Fully Associative
1K Table Entries
GART Directory
Directory Entry 2
Directory Cache
Directory Entry 1
8 Entries
Fully Associative
GART Base Address
register points here
(Dev0:BAR1: 0x04).
Figure 4.
Chapter 2
Two-Level GART Indexing
AMD-761™ System Controller Programmer’s Interface
139
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
2.5.2
24081D—February 2002
Memory-Mapped Register Map
For registers that are accessed by the AMD-761 system
controller miniport driver during run time, the AMD-761
system controller implements a set of memory-mapped
registers for quick access. These are defined in Table 16.
Table 16.
AMD-761™ System Controller Memory-Mapped Registers
Offset from
BAR1
Reference
0x00
“Bar1 + 0x00” on
page 141
GART Base Address
0x04
“Bar1 + 0x04” on
page 144
GART Cache Size
0x08
“Bar1 + 0x08” on
page 145
GART Cache Control
0x0C
“Bar1 + 0x0C” on
page 146
GART Cache Entry Control
0x10
“Bar1 + 0x10” on
page 147
GART Memory-Mapped Control Registers
Feature
Status
Feature Control
Capabilities
Revision ID
BAR1 Initialization
Note that BIOS must program the Base Address 1:GART
Memory Mapped Register Base register (Dev 0:F0:0x14) prior
t o a c c e ss i n g t h e m e m o ry - m a p p e d re g i s t e rs . R e f e r t o
“Dev0:F0:0x14” on page 39 for details of this register.
140
AMD-761™ System Controller Programmer’s Interface
Chapter 2
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
24081D—February 2002
Features and Capabilities
31
Bit
Reset
Bar1 + 0x00
30
29
Reserved
0
Valid_Bit_Err_ID
0
0
R/W
22
Bit
21
0
25
24
P2P_Status
GART_Cache
_Status
Reserved
Valid_Err
0
0
0
0
R/W1C
20
0
0
19
18
17
16
P2P_En
TLB_En
SB_STB_Tog
_Det
Gar_Valid_
Err_En
0
0
0
0
0
R
15
14
Bit
13
R/W
12
Reserved
0
0
R/W
0
11
10
9
8
Hang_En
P2P_Cap
Link_Cap
Valid_Cap
0
0
0
1
0
R
7
6
R/W
5
4
Bit
Reset
26
0
Reserved
R/W
Reset
27
R
23
Reset
28
R
3
2
1
0
0
0
0
1
Rev_ID
0
R/W
0
0
0
R
Register Description
Chapter 2
AMD-761™ System Controller Programmer’s Interface
141
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
Bit Definitions
Bit
24081D—February 2002
Features and Capabilities (Bar1 + 0x00)
Name
Function
31–30
Reserved
Reserved
29–28
Valid_Bit_Err_ID
Valid Bit Error ID
These bits are used to determine the source of the valid bit error. The values are as follow:
00 = AGP
01 = CPU
10 = PCI/AGP’s PCI
11 = Reserved
27
P2P_Status
P2P Status
This bit is hardwired to 0 to indicate that the AMD-761™ system controller implements
only those PCI-to-PCI bridge commands required to implement AGP (the AMD-761 system
controller does not implement a complete PCI 2.1-compliant PCI-to-PCI bridge between
PCI and AGP).
26
GART_Cache
_Status
GART Cache Status
0 = GART cache disabled
1 = GART cache enabled by software
25
Reserved
Reserved
24
Valid_Err
Valid Bit Error
When set, this bit indicates that a valid bit error has been detected and SERR# has been
asserted. Refer to Table 7 on page 34 for details about SERR# assertion and status. This bit
is cleared by writing a 1.
23–20
Reserved
Reserved
19
P2P_En
P2P Enable
This bit is hardwired to 0 to indicate that the AMD-761 system controller only implements
those PCI-to-PCI bridge commands required to implement AGP (the AMD-761 system
controller does not implement a complete PCI 2.1-compliant PCI-to-PCI bridge between
PCI and AGP).
18
TLB_En
TLB Enable
When set, this bit enables the caching of GART TLB entries.
17
SB_STB_Tog
_Det_Dis
Sideband Strobe Toggle Detect Disable
When set, this bit disables the AGP sideband strobe toggle detect logic.
16
GAR_Valid_Err
_En
GART Valid Error Enable
When set, the AMD-761 system controller asserts SERR# when a graphics device attempts
to access a page in AGP memory that is not valid (valid bit error). A valid bit error causes
the GART table walk state machine to hang. The processor can still access memory after
that if it does not use GART address space. Refer to Table 7 on page 34 for details about
SERR# assertion and status.
15–12
Reserved
Reserved
11
Hang_En
Hang Enable
When set, illegal GART entries fetched by the GTW logic forces the AMD-761 system
controller to hang.
142
AMD-761™ System Controller Programmer’s Interface
Chapter 2
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
24081D—February 2002
Bit Definitions (Continued)
Features and Capabilities (Bar1 + 0x00)
Bit
Name
Function
10
P2P_Cap
P2PCap
This bit is hardwired to 0 to indicate that the AMD-761™ system controller implements
only those PCI-to-PCI bridge commands required to implement AGP (the AMD-761 system
controller does not implement a complete PCI 2.1-compliant PCI-to-PCI bridge between
PCI and AGP).
9
Link_Cap
LinkCap
This bit is always Low, indicating that GART entry multiple pages are not supported.
8
Valid_Cap
ValCap
This bit is set to indicate that the AMD-761 system controller supports the detection of
valid bit errors.
Rev_ID
Revision ID
This field contains the revision identification.
7–0
Programming Notes
Chapter 2
AMD-761™ System Controller Programmer’s Interface
143
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
24081D—February 2002
GART Directory Base Address
31
30
Bar1 + 0x04
29
Bit
28
27
26
25
24
0
0
0
0
19
18
17
16
0
0
0
0
11
10
9
8
0
0
GART_Dir_Base_Addr
Reset
0
0
0
0
R/W
R/W
23
22
21
Bit
20
GART_Dir_Base_Addr
Reset
0
0
0
0
R/W
R/W
15
Bit
14
13
12
GART_Dir_Base_Addr
Reset
0
0
R/W
0
Reserved
0
0
0
R/W
7
6
R
5
4
Bit
3
2
1
0
0
0
0
0
Reserved
Reset
0
0
R/W
0
0
R
Register Description
Bit Definitions
Bit
GART Directory Base Address (Bar1 + 0x04)
Name
Function
31–12
GART_Dir_Base
_Addr
GART Directory Base Address
These bits define the base address of the GART directory that is located in physical system
memory. These 20 bits correspond to the 20 most significant bits of the 32-bit GART
directory base address that is aligned on a 4-Kbyte page boundary. Twenty bits provide
4-Kbyte resolution, which is the minimum allowable size of the GART. A value other than 0
defines a valid base address.
11–0
Reserved
Reserved
Programming Notes
144
AMD-761™ System Controller Programmer’s Interface
Chapter 2
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
24081D—February 2002
GART Cache Size
31
Bar1 + 0x08
30
29
Bit
28
27
26
25
24
0
0
0
0
19
18
17
16
0
0
0
0
11
10
9
8
0
0
0
0
3
2
1
0
0
0
0
GART_Cache_Size
Reset
0
0
0
0
R/W
R
23
22
21
Bit
20
GART_Cache_Size
Reset
0
0
0
0
R/W
R
15
14
13
Bit
12
GART_Cache_Size
Reset
0
0
0
0
R/W
R
7
6
5
Bit
4
GART_Cache_Size
Reset
0
0
R/W
0
1
0
R
Register Description
Bit Definitions
Bit
31–0
GART Cache Size (Bar1 + 0x08)
Name
Function
GART_Cache_Size
GART Cache Size
The AMD-761™ system controller implements a GART table cache that contains 16 entries,
organized as eight-way set associative.
Programming Notes
Chapter 2
AMD-761™ System Controller Programmer’s Interface
145
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
24081D—February 2002
GART Cache Control
31
Bar1 + 0x0C
30
29
28
Bit
27
26
25
24
0
0
0
0
19
18
17
16
0
0
0
0
11
10
9
8
0
0
0
0
3
2
1
0
Reserved
Reset
0
0
0
0
R/W
R
23
22
21
20
Bit
Reserved
Reset
0
0
0
0
R/W
R
15
14
13
12
Bit
Reserved
Reset
0
0
0
0
R/W
R
7
6
5
Bit
4
GART_Cache
_Inval
Reserved
Reset
0
0
R/W
0
1
0
0
R
0
0
R/W1S
Register Description
Bit Definitions
Bit
31–1
0
GART Cache Control (Bar1 + 0x0C)
Name
Function
Reserved
Reserved
GART_Cache
_Inval
GART Cache Invalidate
This bit is written by the AMD-761™ miniport driver. When set to 1, the AMD-761 system
controller invalidates the entire GART directory and table cache. When the invalidate
operation is completed, the AMD-761 system controller resets this bit to 0.
Programming Notes
146
AMD-761™ System Controller Programmer’s Interface
Chapter 2
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
24081D—February 2002
GART Table Cache Entry Control
31
30
Bar1 + 0x10
29
28
Bit
Reset
0
0
0
0
22
21
20
Bit
24
0
0
0
0
19
18
17
16
0
0
0
0
11
10
9
8
0
0
1
0
Tbl_Update
Tbl_Inval
_Entry
0
0
GART_Tbl_Entry_Addr
0
0
0
0
R/W
R/W
15
Bit
14
13
12
GART_Tbl_Entry_Addr
0
0
R/W
Reserved
0
0
0
0
R/W
7
6
R
5
Bit
Reset
25
R/W
23
Reset
26
GART_Tbl_Entry_Addr
R/W
Reset
27
4
3
2
Reserved
0
R/W
0
0
0
0
0
R
R/W1S
Register Description
This register must be written to with doubleword (32-bit or 4-byte) operands.
Chapter 2
AMD-761™ System Controller Programmer’s Interface
147
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
Bit Definitions
Bit
24081D—February 2002
GART Table Cache Entry Control (Bar1 + 0x10)
Name
Function
31–12
GART_Tbl_Entry
_Addr
GART Table Entry Address
These bits define the page address for the particular GART table entry to be invalidated or
updated. When a page address is written to this register by the AMD-761™ miniport
driver, the referenced GART table cache entry is invalidated or updated based on the value
in bits [1:0] as long as it is within the virtual address space. If the page address is outside of
the virtual address space, then the invalidate/update instructions do nothing.
11–2
Reserved
Reserved
1
Tbl_Update
Table Update
When set, this bit forces the AMD-761 system controller to update the GART table cache
entry specified in bits [31:12] with the current entry in the GART table in system memory.
The update function is performed immediately following the write to this register. When
the update operation is completed, this bit is reset to 0.
0
Tbl_Inval_Entry
Table Invalidate Entry
When set, this bit forces the AMD-761 system controller to invalidate the GART table cache
entry specified in bits [31:12] if it is present in the GART cache. The invalidate function is
performed immediately following the write to this register. When the invalidate operation
is completed, this bit is reset to 0. Note that this bit does not affect the GART
directory cache.
Programming Notes
148
AMD-761™ System Controller Programmer’s Interface
Chapter 2
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
24081D—February 2002
3
DDR SDRAM Interface
This chapter details BIOS configuration as it pertains to the
AMD-761™ system controller DDR SDRAM controller. The
topics discussed in this chapter are entitled as follows:
„
„
„
„
„
„
„
„
3.1
DDR DIMMS and DDR SDRAMs on page 150
• DDR Speed Grades on page 150
• DDR DIMM Data from Serial Presence Detect (SPD)
Device on page 151
Memory Space Configuration on page 152
DDR Memory DIMM Timings on page 157
Additional Memory Controller Settings on page 161
DRAM Mode/Status Settings on page 165
ECC and Memory Scrubbing on page 169
Programmable Delay Lines (PDL) on page 174
DDR I/O Drive Strength on page 182
Overview
To date, there are two types of DDR memory DIMMs—
unbuffered and registered. The AMD-761 system controller can
be configured to support up to two unbuffered DIMM slots with
two banks each, or up to four registered DIMM slots with two
banks each. Registered and unbuffered implementations
cannot be intermixed.
The AMD-761 system controller embeds the DDR SDRAM
memory controller of the system. All programming registers
t h a t c o n f i g u re t h e m e m o ry c o n t ro l l e r re s i d e i n P C I
configuration space. This space is defined in Bus 0, Device 0,
and exists in both Function 0 and Function 1.
Motherboard and Northbridge characteristics are programmed
f ro m d a t a p rov i d e d by t h e re s p e c t ive d e s i g n e rs a n d
manufacturers. This data includes bus speed implementations,
memory bus signal strengths and slew rates, and internal
memory controller characteristics, etc.
Chapter 3
DDR SDRAM Interface
149
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
24081D—February 2002
DI MM and me m ory dev ice ( m em ory chip) t im ing a nd
configuration data exist in the Serial Presence Detect (SPD)
EEPROM on the DIMM.
3.2
DDR DIMMS and DDR SDRAMs
The following section discusses DDR DIMMS and DDR
SDRAMS.
3.2.1
DDR Speed Grades
DDR DIMMs adhere to an alternate naming convention
associated with a corresponding data transfer rate. The data
rate is a function of the clock speed of the memory subsystem,
for example, 100-MHz clock or 133-MHz clock. Two names, and
their corresponding transfer rates, are currently defined and
implemented:
„
„
PC1600
PC2100
The PC1600 naming convention represents DIMMs with a data
transfer rate of 1600 Mbytes per second (1.6 Gbytes per
second). This data rate is calculated as follows:
PC1600 data transfer rate = (100-MHz clock) x (2 data
transfers/clock) x (8 bytes/transfer)
PC1600 data transfer rate = 1600 Mbytes per second
Similarly, the PC2100 designation represents DIMMs with a
data rate of 2100 Mbytes per second (2.1 Gbytes per second).
This data transfer rate is calculated as follows:
PC2100 data transfer rate = (133-MHz clock) x (2 data
transfers/clock) x (8 bytes/transfer)
PC2100 data transfer rate = 2100 Mbytes per second (rounded)
Note that the CAS latency (CL) parameter of the device does
not factor into the PC 1600 and PC2100 transfer rates
calculated above. The CAS latency setting is dependent on
device frequency, which is used in the calculation of the
transfer rates above. The CAS latency values are DDR device150
DDR SDRAM Interface
Chapter 3
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
24081D—February 2002
specific and based on the operating frequency of the device.
The CAS latency is specified as the initial latency (in clocks)
required by the device before data is returned during a read
access. In general, the higher the frequency, the larger the CAS
latency value. Typical device CL parameters and their
respective frequencies are shown in Table 17.
Table 17.
Typical CL Parameter Settings for PC1600 and PC2100
Designation
CAS Latency (CL) Setting
DDR Memory Clock Speed
PC1600
2
100 MHz
PC2100
2.5
133 MHz
Note: CAS latency settings are valid only if an acceptable entry
for the corresponding bus speed exists in SPD byte 9 or 23.
3.2.2
DDR DIMM Data from Serial Presence Detect (SPD) Device
DDR memory systems implemented with the AMD-761 system
controller require use of the Serial Presence Detect (SPD)
d a t a . T h i s d a t a d e s c r i b e s c o n f i g u ra t i o n a n d s p e e d
characteristics of the DDR DIMM and DDR SDRAM devices
mounted on the DIMM. The SPD is a serial EEPROM that
physically exists on the DIMM and is encoded by the DIMM
manufacturer. A description of this EEPROM is usually
provided on a data sheet for the DIMM itself along with data
describing the memory devices (chips) used. The data sheet
should also contain the byte values for the DIMM encoded in
the SPD on the DIMM. The SPD is accessed via the I2 C bus
implemented on the motherboard, normally via registers in a
Southbridge agent. Subroutines to access SPD data must be
provided in the BIOS or other code that requires access.
The I 2 C bus addresses the SPD via a 7-bit address where
convention dictates that memory DIMMs respond to an address
range beginning with 0xA0. The second memory DIMM
responds to 0xA2 and so on.
The I2C bus specification describes a 7-bit address. However,
this scheme actually uses 8 bits. The 8th bit is actually bit 0.
The scheme defines bit 0 as the read/write designation of the
address. Bit 0 equal to 0 means that the host is executing a
WRITE to the address. Bit 0 equal to 1 means that the host is
executing a READ from the address. Reality then is that A1
addresses a read operation to DIMM slot #0. A3 addresses a
Chapter 3
DDR SDRAM Interface
151
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
24081D—February 2002
read operation to DIMM slot #1. A0 addresses a write operation
to DIMM slot #0.
3.3
Memory Space Configuration
A DIMM may have one or two sides populated with DDR
devices. The term bank refers to one logical side of the DIMM
memory. For the purpose of this document, each bank has a
corresponding chip select. It is important to point out that
double-sided DIMMs require two separate chip-select signals.
Therefore, for these types of DIMMs, two separate base address
chip-select registers must be programmed. The size of each
bank is read from SPD, byte 31. The number of banks on the
DIMM is read from SPD byte 5.
The AMD-761 system controller DDR SDRAM controller
requires 21 bits of configuration information for each chip
select—that is, each side of the DIMM. These 21 bits are within
a full 32-bit configuration register that contains 11 reserved
bits. Usage of the 32 bits is shown in Table 18 and explained in
further detail below.
As previously mentioned, a DIMM socket may be single banked
(containing one logical side of DDR SDRAM devices) or double
banked (containing two logical sides of DDR SDRAM devices).
The DIMM socket may also be empty. If one bank is not present
or if the socket is empty—that is, two banks not present—then
their corresponding enable bit shown in Table 18 should be set
to 0.
Table 18.
DIMM Bank Address Bit Definition
Bit(s)
0
Bank n
1 = Enable
0 = Disable
2:1
Address Mode (modes 00 and 11 are reserved)
15:7
Address Mask — Size of this bank
31:23
Base Address — Starting address of this bank
It is important that the registers place the largest logical bank
of memory in the lowest address space and then progress in
order to higher address space with the smaller sized banks.
152
DDR SDRAM Interface
Chapter 3
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
24081D—February 2002
When the DIMM socket sides are equally sized, the order of
address space programming between them is not important.
Each side/row/bank of DRAM requires 4 bytes as previously
stated. The patterns that satisfy the Address Mask and Base
Address for various sizes of sides/rows/banks are shown in
Table 19.
Table 19.
Memory Size Addresses
Bank / Row Size
Address Mask
Base Address
[Address Lines]
[31:23]
[31:23]
8 Mbytes
N/A
0000_0000_1
16 Mbytes
N/A
0000_0001_0
32 Mbytes
0000_0001_1
0000_0010_0
64 Mbytes
0000_0011_1
0000_0100_0
128 Mbytes
0000_0111_1
0000_1000_0
256 Mbytes
0000_1111_1
0001_0000_0
512 Mbytes
0001_1111_1
0010_0000_0
1024 Mbytes (1 Gbyte)
0011_1111_1
0100_0000_0
2048 Mbytes (2 Gbytes)
0111_1111_1
1000_0000_0
The address mask and base address bits are presented as
xxxx_xxxx_x to show correspondence with address lines. In
practice, the 9 bits of address mask map to bank n, bits 15:7
and the 9 bits of base address map to bank n, bits 31:23.
The minimum memory size or granularity for DDR is 32
Mbytes. However, all base address and address mask bits
represent a granularity of 8 Mbytes.
The symmetry of the DDR device—that is, organization of
storage elements rows and columns—dictates the addressing
mode configuration. The specified addressing mode dictates
the physical mapping of the memory address signals to the
DDR device address signals. The addressing modes of the
AMD-761 system controller memory controller map to industrystandard DDR device symmetries set forth by the Joint
Electron Device Engineering Council (JEDEC). Therefore, the
addressing mode is set according to the devices on the DIMM.
„
„
Chapter 3
Addr_Mode => 01b for 64-Mbit and 128-Mbit DRAMs
Addr_Mode => 10b for 256-Mbit and 512-Mbit DRAMs
DDR SDRAM Interface
153
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
24081D—February 2002
Note: Modes 00b and 11b are reserved.
To determine the size of the DDR SDRAM device from SPD
data, BIOS needs to read the size of the bank(s) in SPD byte 31
and the device width in byte 13. DDR SDRAM widths are
either 4, 8, or 16 for this implementation. A 4-bit device width
implies that 16 DDR SDRAM devices exist on a DIMM for a
64-bit bus transfer. An 8-bit device width implies eight DDR
SDRAM devices exist on a DIMM for a 64-bit bus transfer, and
a 16-bit width implies four DDR SDRAM devices exist on a
DIMM for the 64-bit bus transfer. The size of the bank can be
deduced as:
Size of Device(Mbits) = Size of Bank x (SDRAM Width)
where the Size of Device is specified in Mbits. Dividing the
Size of Device value by eight (8) yields the size of the bank in
Mbytes.
If more than 4 Gbytes of total memory are populated in the
system, it is the responsibility of BIOS to configure and report
only 4 Gbytes to prevent a 4-Gbyte wrap, which would result in
aliasing. Table 20 shows the total amount of memory with
respect to DDR device density and width.
Table 20.
Total Memory
Width and
Density
DIMM 0
DIMM 1
DIMM 2
DIMM 3
X16 128 Mbit
128 Mbytes
256 Mbytes
384 Mbytes
512 Mbytes
X8 128 Mbit
256 Mbytes
512 Mbytes
768 Mbytes
1 Gbytes
X4 128 Mbit
512 Mbytes
1 Gbytes
1.5 Gbytes
2 Gbytes
X16 256 Mbit
256 Mbytes
512 Mbytes
768 Mbytes
1 Gbytes
X8 256 Mbit
512 Mbytes
1 Gbytes
1 Gbytes
2 Gbytes
X4 256 Mbit
1 Gbyte
2 Gbytes
3 Gbytes
4 Gbytes
X16 512 Mbit
512 Mbytes
1 Gbytes
1.5 Gbytes
2 Gbytes
X8 512 Mbit
1 Gbyte
2 Gbytes
3 Gbytes
4 Gbytes
X4 512 Mbit
2 Gbytes
4 Gbytes
Note: This table assumes double sided DIMMs.
Note: Total system maximum is 4 Gbytes.
Note: Shaded rows use x4 devices that are as registered DIMMs only.
154
DDR SDRAM Interface
Chapter 3
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
24081D—February 2002
This document assumes that BIOS uses the SPD to determine
the total amount of memory in the system. This document does
not specify a sizing algorithm other than utilizing the SPD.
Base Address
Chip Select
The Base Address Chip Select bits (Dev 0:F0:0xC0, bits [31:23]
through Dev 0:F0:0xDF, bits [31:23]) specify the 8-Mbytes
boundary a given chip-select services. Each of the eight chip
selects [7:0] have an associated Base Address Chip Select
register. Incoming addresses are compared against the value
programmed into the Base Address Chip Select register and
also the Address Mask bits (Dev 0:F0:0xC0, bits [15:7] through
Dev 0:F0:0xDF, bits [15:7]) of this register.
Address Mask
The Address Mask bits (Dev 0:F0:0xC0, bits [15:7] through Dev
0:F0:0xDF, bits [15:7]) specify which address bits to ignore
when incoming addresses are compared to the Base Address
Chip Select bits Dev 0:F0:0xC0, bits [31:23] through Dev
0:F0:0xDF, bits [31:23]) defined in Base Address Chip Select. If
a given bit is set in this register, its corresponding address bit
in the address compare is ignored.
Address Mode
The Address Mode bits (Dev 0:F0:0xC0, bits [2:1] through Dev
0:F0:0xDF, bits [2:1]) specify the memory address mapping.
The address memory mapping is specific to the symmetry of
the device and is shown in Table 21. As can be seen in this
table, the maximum page width is 2 Kbytes. This maximum
width implies that a new internal bank is accessed on a 2-Kbyte
boundary. Note that address modes 00b and 11b are reserved,
thus this field should never be specified.
Table 21.
AMD-761™ System Controller DDR SDRAM Addressing Modes
Mode
Pins
14
13
Mode 1
Addr_Mode=01
64Mb x4/8/16
128Mb x4/8/16
Row
12
Col
Mode 2
Addr_Mode=10
256Mb x4/8/16
512Mb x4/8/16
Chapter 3
12
11
10
9
8
7
6
5
4
3
2
1
0
11
24
23
22
21
20
19
18
17
16
15
14
13
12
11
27
PC
26
25
10
9
8
7
6
5
4
3
BK
BK
Row
12
11
25
24
23
22
21
20
19
18
17
16
15
14
13
Col
12
11
29
28
PC
27
26
10
9
8
7
6
5
4
3
BK
BK
DDR SDRAM Interface
155
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
24081D—February 2002
Chip Select Enable
The Chip Select Enable bit (Dev 0:F0:0xC0, bit [0] through Dev
0:F0:0xDF, bit [0]) specifies whether a bank of memory exists
for that corresponding chip select. When enabled with a 1b, the
incoming address is eligible to be compared with bits [31:23]
and [15:7] for chip-select decode. A 0b in this field disables the
associated chip select, thus the associated Base Address Chip
Select and Address Mask fields are ignored.
Example: Memory
Base Address
Registers
Table 22 is an example of how to size the Memory Base register
for a total of 128 Mbytes using a two-bank DIMM at 64 Mbytes
per bank.
Table 22.
Memory Sizing Example, 128 Mbytes Total
Registers – Bus:00 Device:00 Function:00
0
1
2
3
4
5
6
7
8
9
A
B
C
D
E
F
C 83 03 00 00 83 03 00 04 00 00 00 00 00 00 00 00
D 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
For the purpose of illustrating memory sizing, the bytes 0xC0–
0xDF are the relevant bytes. Configuration bytes C0h, C1h,
C2h, and C3h are for Bank 0. Byte C0h contains bits [7:0], C1h
bits [15:8], etc. This example shows 64 Mbytes in both banks 0.
Configuration bytes C4h, C5h, C6h, and C7h are for bank 1
Bits C0h[7] and C1h[7:0] contain the Address Mask for 64 Mbytes.
Bits C4h[7] and C5h[7:0] contain the Address Mask for 64 Mbytes.
Bit C0h[0] and bit C4h[0] signal Bank Enable.
Bit C2h[7] and bits C3h[7:0] set a Base Address of 0 Mbyte for
side/row/bank 0.
Bit C6h[7] and bits C7h[7:0] set a Base Address of 64 Mbytes
for side/row/bank 1.
The total memory size is 128 Mbytes. Banks 2–7 are empty. The
relevant bytes are set to 0.
156
DDR SDRAM Interface
Chapter 3
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
24081D—February 2002
Table 23 is an example on how to size the Memory Base register
for a total of 320 Mbytes using one-bank DIMM at 64 Mbytes
per bank and a two-bank DIMM at 128 Mbytes per bank.
Table 23.
Memory Sizing Example, 320 Mbytes Total
Registers – Bus:00 Device:00 Function:00
0
1
2
3
4
5
6
7
8
9
A
B
C
D
E
F
C 83 03 00 10 00 00 00 00 83 07 00 00 83 07 00 08
D 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
3.4
DDR Memory DIMM Timings
One of the most important changes from earlier SDRAM DIMM
technology is that conservative settings for CAS Latency (CL)
are no longer valid—that is, when there is doubt that the
DIMM works using CL=2, falling back to a setting of CL=3 is
not an alternative as it was on single data rate devices.
CAS latency for a DIMM must be set to a value described in the
SPD on the DIMM. A DIMM that is set to something other than
a rated value in its SPD cannot be expected to work and most
likely will not work.
Industry standards for CL on DDR DIMMS are 1.5, 2.0, and 2.5.
Please notice that the AMD-761 system controller supports
CL=3.0 as the highest CL setting. Some legacy DDR devices
support CL=3.0, but most devices available today specify
CL=2.5 as a maximum. The AMD-761 system controller does
not support CL=1.5.
3.4.1
Memory Timings
The AMD-761 system controller supports the following DDR
device timing parameters: tCL, tRCD, tRAS, tRP, tRC, tRRD, tWR,
and tWTR. The tCL, tRCD, tRAS, tRP, tRC, and tRRD timings are
available from the SPD. The data format of each byte is
described in the application note published by IBM and other
sources. Matching this data to memory controller settings is a
function of speed of the memory bus. Examples of settings are
developed for bus speeds of 100 MHz and 133 MHz.
Chapter 3
DDR SDRAM Interface
157
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
CAS Latency
24081D—February 2002
CAS latency values can occupy multiple bytes in the SPD. CAS
latency is the only item governing DIMM setup that has
multiple values. Table 24 shows CAS latency settings.
Table 24. CAS Latency Settings
Symbol
Name
SPD Byte
Typical Value
Description
Max bus speed for CL=2.5 with AMD-761™
system controller.
9
0
DIMM does not support CL=2.5.
75h
75h equal 7.5 ns. This DIMM can be used @
CL = 2.5 when bus speed is less than or equal to
133 MHz.
A0h
A0h equals 10 ns. This DIMM can be used @
CL = 2.5 when bus speed is less than or equal to
100 MHz.
CAS Latency
0x0x0x54[3:2]
tCL
Max bus speed for CL=2 with AMD-761™
system controller.
23
0
DIMM does not support CL=2.
75h
75h equal 7.5 ns. This DIMM can be used @
CL = 2 when bus speed is less than or equal to
133 MHz.
A0h
A0h equals 10 ns. This DIMM can be used @
CL = 2 when bus speed is less than or equal to
100 MHz.
Notes:
1. Other values in byte 9 represent other maximum bus speeds for CL=2.5. Should another speed occur, CL=2.5 cannot be used
beyond its max for this DIMM—that is, byte 9 = 80 means a maximum bus speed of 120 MHz. CL=2.5 can be used for a maximum
bus speed of 100 MHz, but not for 133 MHz.
2. Other values in byte 23 represent other maximum bus speeds for CL=2. Should another speed occur, CL=2 cannot be used beyond
its max for this DIMM—that is, byte 23 = 80 means a maximum bus speed of 120 MHz. CL=2 can be used for a maximum bus
speed of 100 MHz, but not for 133 MHz.
The two entries for supported CAS latency(CL) represent
different performance potential. The smaller value for CL (2)
would represent best performance. BIOS can choose from any
legal CL that exists in the SPD for the DIMM. The AMD-761
system controller supports CL values of 2, 2.5, and 3.
Other timing values in the SPD reflect minimum timings
required, based on the corresponding memory bus clock speed.
BIOS must program the memory controller configuration with
the correct timing values as specified by the DDR device.
158
DDR SDRAM Interface
Chapter 3
Preliminary Information
24081D—February 2002
AMD-761™ System Controller Software/BIOS Design Guide
tRCD
The RAS to CAS delay bits (Dev 0:F0:0x54, bits [1:0]) specify
the minimum amount of time required between the opening of
a page within the DDR device (via an ACTIVATE command)
and the issuance of a READ or WRITE command to that same
DDR device’s internal bank. This timing parameter is devicespecific. Byte 29 of the SPD defines the tRCD timing parameter.
Refer to Table 25 on page 160 for typical settings.
tRAS
The Row Active bits (Dev 0:F0:0x54, bits [6:4]) specify the
minimum amount of time that a page within the DDR device
(via an ACTIVATE command) can remain opened within the
same internal bank of the DDR device. This timing parameter
is device-specific. Byte 30 of the SPD defines the tRAS timing
parameter. Refer to Table 25 on page 160 for typical settings.
tRP
The Row Precharge time bits (Dev 0:F0:0x54, bits [8:7]) specify
the minimum amount of time that the DDR device requires to
precharge a row and is specified as the time between the
PRECHARGE command and an ACTIVATE command within
the same internal bank of the DDR device. This timing
parameter is DDR device-specific. Byte 27 of the SPD defines
the t RP timing parameter. Refer to Table 25 on page 160 for
typical settings.
tRC
The Row Cycle time bits (Dev 0:F0:0x54, bits [11:9]) specify the
minimum amount of time that the DDR device requires
between ACTIVATE commands within the same internal bank
of the DDR device. This timing parameter is DDR devicespecific. In short, this requirement specifies the minimum
amount of time that the same internal bank can recycle row
accesses. Byte 41 of the SPD defines the tRC timing parameter.
(Note that tRC is new to the SPD and voted in at the September
2000 JEDEC meeting.) Historically, tRC was defined as tRAS +
t RP, but this algorithm is not recommended when the SPD
information is available. Refer to Table 25 on page 160 for
typical settings.
tRRD
The Bank to Bank ACTIVATE time bit (Dev 0:F0:0x54, bit [23])
specifies the minimum amount of time that the same DDR
device can receive back-to-back ACTIVATE commands, even to
different internal banks. This timing parameter is DDR devicespecific. Device manufacturers specify the tRRD parameter to
limit current surges within the device, based on row ACTIVATE
activity, because row activates require a large amount of
Chapter 3
DDR SDRAM Interface
159
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
24081D—February 2002
current. Byte 28 of the SPD defines the tRRD timing parameter.
Refer to Table 25 on page 160 for typical settings.
Write Recovery
The Write Recovery bits (Dev 0:F0:0x54, bit [25:24]) specify the
minimum amount of time that must occur from the last WRITE
command to a PRECHARGE command to the same internal
bank of the DDR device. This device timing parameter is not
specified in the SPD, but the recommended setting is 10b and
specifies two system clock cycles between a write command
and a precharge command to the same internal bank. Refer to
Table 25 on page 160 for typical settings.
Write to Read
The Write To Read bit (Dev 0:F0:0x54, bit [26]) specifies the
minimum amount of time that must occur between the last
WRITE command to a following READ command to the same
internal bank of the DDR device. This device timing parameter
is not specified in the SPD, but the recommended setting is 1b
and specifies two system clock cycles. Refer to Table 25 on
page 160 for typical settings.
Table 25.
Symbol
Name
SPD
Typical Value
Byte
tRCD
Minimum RAS to
CAS Delay
0x0x0x54[1:0]
29
50h
tRAS
Minimum Active to
Precharge Time
0x0x0x54[6:4]
30
32h
tRP
Minimum Row
Precharge Time
0x0x0x54[8:7]
27
50h
tRC
Bank Cycle Time
0x0x0x54[11:9]
41
tRRD
Minimum Row Active
to Row Active Delay
0x0x0x54[23]
28
3Ch
N/A
N/A
N/A
N/A
tWR
tWTR
160
DDR Device Timing Values
Minimum Write to
Precharge Time
Minimum Write to
Read Time
DDR SDRAM Interface
Description
Has 2-bit fraction—see SPD
definitions. 50h = 20 ns.
2 cycles @100 MHz,
3 @ 133 MHz.
Integer value. 50-ns requirement. 5 cycles @ 100 MHz,
7 @ 133 MHz.
Has 2-bit fraction—see SPD
definitions. 50h = 20 ns.
2 cycles @100 MHz,
3 @ 133 MHz.
Typically defined as tRAS + tRP.
SPD entry available soon.
7 cycles @ 100 MHz,
10 @133 MHz.
Has 2-bit fraction—see SPD
definitions. 3Ch = 15 ns.
2 cycles @100 MHz and
133 MHz.
Chapter 3
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
24081D—February 2002
Example configurations are shown in Table 26.
Table 26.
3.5
Dev 0:F0:0x54 Bit Examples
CL
DIMM
Dev 0:F0:0x54
57 56 55 54
2
100 MHz Unbuffered
16 01 88 B5
2
100 MHz Registered
7E 01 88 B5
2.5
133 MHz Unbuffered
96 01 8C 4A
2.5
133 MHz Registered
F6 01 8E 5A
Additional Memory Controller Settings
This section discusses configuration features that are specific
to the AMD-761 system controller DDR memory controller. The
AMD-761 memory controller contains DDR memory controller
settings starting at (Dev 0:F0:0x54). These settings are Page
Hit Limit, Idle Cycle Limit, Registered DIMM Enable device
control (used in this register to specify registered versus
unbuffered DIMM), Read Wait State timing control, selectable
HOLD time for t he DDR address a nd comma nd buse s
(selectable per address and command bus A and B), and a
selectable wait state for Super Bypass control.
Page Hit Limit
The Page Hit Limit bits (Dev 0:F0:0x54, bits [15:14]) specify
the number of consecutive Page Hit requests that are
processed by the AMD-761 DRAM controller before choosing a
non-page hit request. This feature is designed to reduce
starvation (a pending request not fulfilled for an extended
period of time) due to a flood of consecutive page hit requests.
Typically, consecutive page hits yield the best DDR DRAM
page performance for those requesting devices (such as the
CPU or PCI device, etc.). However, starvation of a request
because it is a non-page-hit request does not constitute a fair
system memory access policy.
When the number of consecutive page hits across all internal
DDR device internal banks of a given chip select equals the
value specified in these bits, the DDR controller arbiter gives
priority to a DDR memory request that is not a page hit. It was
determined that eight consecutive page hit accesses is
Chapter 3
DDR SDRAM Interface
161
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
24081D—February 2002
adequate to give fair access to the memory sub-system.
Therefore, these bits should be set to 10b. A higher page hit
limit allows the prioritization of a large amount of consecutive
page hits, if available, whereas a lower page hit limit would
allow for a greater chance of page interruption should there be
an otherwise large amount of page hit requests. Refer to
Table 27 on page 165 for typical settings.
Idle Cycle Limit
The Idle Cycle Limit bits (Dev 0:F0:0x54, bits [18:16]) specify
the number of system clocks before the memory controller
issues a PRECHARGE ALL command to the currently active
chip select. This feature is used to tune system performance by
closing open pages during periods of memory request
inactivity. The idle cycle limit logic does not have any logical
indication of page conflicts or bank misses and simply counts
the number of system clocks of memory request inactivity. This
feature takes advantage of the lack of temporal locality, where
a page left open for a specified amount of time is less likely to
be accessed again. Therefore, it is more advantageous to
precharge the page and incur the page miss overhead rather
than the overhead associated with a page conflict.
Analysis shows that eight idle clocks is an adequate amount of
system clocks to wait for a following request to the memory
sub-system. Therefore, these bits should be set to 001b for best
performance. A higher idle cycle limit allows a greater chance
for a following request to access an open page. However,
temporal locality states that the greater amount of time
between accesses reduces the chance of a hit to the open page.
A lower idle cycle limit decreases the window of following
memory access to utilize an open page. A lower idle cycle limit
results in a greater chance of page interruption should there be
an otherwise large amount of page hit requests. Refer to
Table 27 on page 165 for typical settings.
Registered DIMM
Enable
162
The Registered DIMM Enable bit (Dev 0:F0:0x54, bits [27])
specifies whether the DDR DIMM sockets are populated with
registered or unbuffered DIMM modules. This bit is set to 1b
by BIOS if the DIMM sockets are populated with DDRre g i s t e re d D I M M m o d u l e s . T h e A M D -7 6 1 s y s t e m
controllerAMD-761 system controller memory controller does
not support the mixing of registered and unbuffered DDR
modules in the same system. The system must be populated
DDR SDRAM Interface
Chapter 3
Preliminary Information
24081D—February 2002
AMD-761™ System Controller Software/BIOS Design Guide
with either all registered or all unbuffered DDR modules.
Refer to Table 27 on page 165 for typical settings.
Read Wait State
The Read Wait State bit (Dev 0:F0:0x54, bits [28]) specifies
whether more time is needed in the DDR read data round trip
loop. The read data round trip loop originates at the AMD-761
system controller DDR CLK outputs and terminates at the
AMD-761 system controller internal requester logic. Because
all DDR read data is returned with its corresponding DQS
signal, read data is captured at the memory controller interface
in the DQS clock domain. This data is then held and crosses
into the core requester clock domain. However, because of the
physical DIMM placement on the motherboard, large round
trip delays the response time of the DDR devices, and
AMD-761 system controller internal delays may be long enough
that an additional wait state must be added to compensate for
the delay. When this bit is set to a 1b, the data captured in the
DQS clock domain is transferred to a register array that is
within the core logic clock domain and physically exists at the
pads of the AMD-761 system controller DDR interface. When
this bit is set to a 1b, the data is delayed to the requester by
one additional system clock period.
Because the Read Wait State bit is related to the full read data
round trip and may imply that the read data and DQS are being
returned from a far DIMM, when the Read Wait State bit is set
to 1b, one additional clock cycle is placed between READ
followed by WRITE cycles to prevent data and DQS overlap
when accessing a far DIMM for read data and followed
immediately by a write cycle.
Because of motherboard timing analysis and AMD-761 system
controller timing analysis, it is recommended that this bit be
set for 100-MHz and 133-MHz operation. Refer to Table 27 on
page 165 for typical settings.
Address Timing for
Copy-B
Chapter 3
The address timing for Copy-B bit (Dev 0:F0:0x54, bit [29])
specifies additional HOLD time for the address and command
bus B. When this bit is set to 1b, the memory address bus
(MAB[14:0]), RASB#, CASB#, WEB#, CKEB, and CS[7:6 and
3:2]# is delayed an additional 350 ps (best case) and 600 ps
(worst case) to provide additional HOLD time to the DDR
device. This bit should be set by BIOS when registered DIMMs
are installed and set to 0b when unbuffered DIMMs are
installed.
DDR SDRAM Interface
163
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
24081D—February 2002
This bit assumes A bus and B chip-select DIMM socket mapping
is such that the B bus uses Chip Select bit [7:6] and [3:2]. This
motherboard mapping should be adhered to should BIOS want
to control the A bus and B bus HOLD timing separately. Refer
to Table 27 on page 165 for typical settings.
Address Timing for
Copy-A
The address timing for Copy-A bit (Dev 0:F0:0x54, bit [30])
specifies additional HOLD time for the address and command
bus A. When this bit is set to 1b, the memory address bus
(MAA[14:0]), RASA#, CASA#, WEA#, CKEA, and CS[5:4 and
1:0]# is delayed an additional 350 ps (best case) and 600 ps
(worst case) to provide additional HOLD time to the DDR
device. This bit should be set by BIOS when registered DIMMs
are installed and set to 0b when unbuffered DIMMs are
installed.
This bit assumes A bus and B chip-select DIMM socket mapping
is such that the B bus uses Chip Select bit [5:4] and [1:0]. This
motherboard mapping should be adhered to should BIOS want
to control the A bus and B bus HOLD timing separately. Refer
to Table 27 on page 165 for typical settings.
Super Bypass Wait
State
164
The Super Bypass Wait State bit (Dev 0:F0:0x54, bit [31])
specifies an additional one system clock wait state for super
bypass requests, when set to 1b. A super bypass cycle is a lowlatency request to DDR memory from the bus interface unit
when all reordering queues are empty. This super bypass cycle
allows direct access to DDR memory. For internal timing
reasons, this bit must be set for 133-MHz operation. This bit
should be set to 0b for 100-MHz operation or below. Refer to
Table 27 for typical settings.
DDR SDRAM Interface
Chapter 3
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
24081D—February 2002
Table 27. System Related Timings
Name
3.6
0x0x0x54 Bit(s) Typical Setting
Description
Page Hit Limit
15:14
10b
8 cycles
Idle Cycle Limit
18:16
001b
8 cycles
Registered DIMM Enable
27
x
Read Wait State
28
1
Address Timing for Copy-B
29
x
Address Timing for Copy-A
30
x
Super Bypass Wait State
31
X
0 for unbuffered
1 for registered
Always set
0 for unbuffered
1 for registered
0 for unbuffered
1 for registered
0 < 133 MHz
1 @ 133 MHz
DRAM Mode/Status Settings
The AMD-761 system controller memory controller contains
additional DDR memory controller settings starting at (Dev
0:F0:0x58). These settings are: x4 DDR device symmetry
configuration, refresh control (which includes refresh rate,
refresh disable, and burst refresh enable), suspend to RAM
(STR) control, DDR device initialization control, and AMD-761
system controller DDR clock output control.
Chip-Select Width
The SDRAM Chip-Select Width bits (Dev 0:F0:0x58, bits [7:0])
are used to indicate DDR device data widths installed for the
corresponding chip select. The AMD-761 system controller can
differentiate between x4 or x8/x16 banks by BIOS setting a
corresponding bit for the chip select in this register. A bit
should be set to 1b to represent a x4 bank or set to 0b to
represent a x8/x16 bank.
The x8 and X16 devices use one DQS data strobe per byte,
whereas a x4 device uses one DQS data strobe per nibble
(4-bit). Because the AMD-761 system controller DRAM
controller uses the data mask (DM) signals as DQS data strobes
during data transfers to x4 devices, the DRAM controller uses
these bits to determine the function for the DM signals. The
Chapter 3
DDR SDRAM Interface
165
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
24081D—February 2002
AMD-761 system controller provides a data width selection for
each chip select, although it is unlikely that a double banked
DIMM can support x4 devices on one side and x8/x16 devices
on the other. However, this resolution is provided to allow chipselect signal routing flexibility on the motherboard should the
same DIMM socket not use neighboring chip-select wiring.
The SPD byte 13 provides DDR device data width information
and can be used to set these bits accordingly.
SDRAM Initialization
The SDRAM Initialization bit (Dev 0:F0:0x58, bit [25]), when
written to a 1b, initiates the DDR device initialization
sequence. However, as mentioned below, the Suspend to RAM
bits (Dev 0:F0:0x58, bits [22:21]) must be written to a 01b in
order for the initialization sequence to occur. The BIOS should
first initialize the DDR timing control registers and drive
strength registers prior to setting this bit. This bit remains set
after the initialization sequence has completed. Status as to
the completion of the initialization sequence can be provided
by polling the Mode Register Status (Dev 0:F0:0x58, bit [23])
but only after setting the Mode Register Status bit. This
procedure is described below. The SDRAM Initialization bit is
reset to 0b during a Suspend To RAM because a system reset is
issued in this case.
Mode Register Status
The Mode Register bit (Dev 0:F0:0x58, bit [23]), when written
with a 1b, is used to initiate a Load Mode Register command to
the DDR devices. The Load Mode Register command programs
the CAS latency of the device, burst length, and burst order.
The burst length and burst order are fixed to a burst of eight
and the device is programmed for interleaved mode. However,
the CAS latency is configurable via the CAS Latency bit. BIOS
must set the CAS latency bit to its correct value (defined by
DDR devices specification and operating frequency) before the
Mode Register bit is set. This bit is then cleared by the
AMD-761 system controller memory controller after the load
mode register cycle is issued to the DDR devices. Therefore,
after setting this bit, BIOS should poll this bit until it becomes
0b to verify that the Load Mode Register command has been
a p p l i e d t o t h e D D R d ev i c e s b e fo re c o n t i nu i n g . T h e
recommended method is to set this bit (after already
initializing the CAS Latency bit) when writing to this register
to set bits [22:21] of this register to a 01b and bit 25 of this
register to a 1b. Because the DDR initialization has priority
166
DDR SDRAM Interface
Chapter 3
Preliminary Information
24081D—February 2002
AMD-761™ System Controller Software/BIOS Design Guide
over the application of the Load Mode Register command and
the Load Mode Register command is the last command applied
in the DDR initialization, this bit can be polled to prove status
as to when the entire DDR initialization is complete.
Suspend to Ram
Control
The Suspend to RAM bits (Dev 0:F0:0x58, bits [22:21]) are used
by BIOS to communicate the power-up sequence to the
AMD-761 system controller.
The BIOS usage of the Suspend to RAM control bits are
defined in the power management section (see Section 4.4.1 on
page 191).
Burst Refresh Enable
The Burst Refresh bit (Dev 0:F0:0x58, bit [20]) allows the
AMD-761 system controller to skip refreshes that are queued,
until the maximum number (four) is reached.
Burst refresh support is a performance enhancement that
prevents refresh requests from interfering with memory
requests. Refresh requests that would have interfered with
memory requests would normally stall the memory accesses or
interfere with the open page policy by prematurely closing
pages due to the refresh. When burst refresh is enabled and the
burst queue is beginning to fill up, the DRAM controller treats
the refresh queue requests as an urgent priority.
Refresh Disable
The Refresh Disable bit (Dev 0:F0:0x58, bit [19]) allows the
disabling of refresh cycles for debug purposes only. This bit is
not reset during a system reset and it is therefore the
responsibility of BIOS to write this bit to a 0 to enable
refresh cycles.
Cycles per Refresh
The Cycles per Refresh bits (Dev 0:F0:0x58, bits [17:16])
provide a setting to specify the DDR refresh rate. The refresh
rate is tied directly to the clock frequency, thus it is important
for BIOS to configure the refresh rate based on the AMD-761
system controller frequency. BIOS should first determine the
AMD-761 system controller operating frequency by reading
(Dev 0:F0:0x58, bits [21:20]) and setting these bits according to
Table 28 below. The refresh rate should not be configured
slower than that specified by any of the DDR devices installed.
( E a ch D I M M i n s t a l l e d m ay h ave a d i f f e re n t re f re s h
requirement, so it is important to choose the refresh rate that
satisfies the least common denominator for all DIMMs.)
Chapter 3
DDR SDRAM Interface
167
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
Table 28.
DIMM Clock Disable
24081D—February 2002
Refresh Rate
Value
66 MHz
100 MHz
133 MHz
00
01
10
11
30.72 µs
23.04 µs
15.36 µs
7.68 µs
20.48 µs
15.36 µs
10.24 µs
7.68 µs
15.36 µs
11.52 µs
7.68 µs
3.84 µs
The DIMM clock disable bits (Dev 0:F0:0x58, bits [31:26])
provide a way to individually disable the six differential DDR
clock pairs provided for the DDR DIMMs. After BIOS memory
sizing, these bits can be used to disable clocks to empty DDR
DIMM slots. The setting of a bit disables the corresponding
clock pair. Each clock pair is connected according to the
motherboard layout for registered or unbuffered DIMMs. Refer
to the appropriate motherboard schematic to verify DDR clock
DIMM mapping to a particular DIMM slot.
With a system hard reset, these bits are cleared, thus enabling
all clock pairs. Because an AMD-761 system controller system
reset is issued during a power-managed S3 state, all clocks are
re-enabled following the exit from this state. Therefore, BIOS
should return to this register and restore the disabled clock
pairs that it had previously disabled during POST.
Note: DDR clocks are automatically disabled during the S3 powermanaged state when unbuffered DIMMs are installed but
continue running an additional six clocks when registered
DIMMs are installed.
168
DDR SDRAM Interface
Chapter 3
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
24081D—February 2002
3.7
ECC and Memory Scrubbing
The AMD-761 system controller DDR SDRAM controller
supports error correcting code (ECC) and memory scrubbing.
The error correction capability allows the correction of singlebit errors and the detection of multiple-bit errors in any
memory quadword. Data is only checked by the memory
controller during a read access. A data error may be due to a
faulted bit in the DDR device itself, or a faulted bit that
occurred during data transmissions from the DDR devices to
the AMD-761 system controller memory controller. To support
the ECC function, DIMMs must support additional storage for
the ECC check bits. When ECC is enabled, the system must
have all DDR DIMMs that are 72 bits wide (also called ECC
DDR DIMMs). The AMD-761 system controller DDR SDRAM
controller provides five ECC modes. All ECC modes work
correctly with either unbuffered or registered DDR DIMMs.
The five modes supported are:
„
„
„
„
„
ECC Disabled
High-Performance EC Mode (EC_HiPerf mode)—Error
Checking only, no correction, except to the AMD Athlon™
processor
High-Performance ECC Mode (ECC_HiPerf mode)—Error
Checking and Correction
ECC with Scrubbing (ECC_Scrub mode)—Error Checking
and Correction with Scrubbing
Diagnostic ECC mode (ECC_Diag)
Each mode is discussed below.
The ECC check bits that are stored in the additional DDR
devices on the DIMM are generated by the memory controller
(based on a Hamming code algorithm) and written into the
DIMMs check bit storage during a memory write operation
when any ECC function is enabled. A single byte of check bits
represents the associated quadword of data that is written into
memory.
Whe n any ECC m o d e is en able d a n d a re ad a c c es s i s
performed, the memory controller internally generates check
bits based on the data value read (for each quadword of data
read) and compares it with the check bits read along with the
Chapter 3
DDR SDRAM Interface
169
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
24081D—February 2002
data from the check bit storage of the DIMMs. If the generated
value does not match the check bit value, then both values are
used to detect the number of bits that contain errors and the
bit positions that contain errors. If only a single-bit error is
detected, the generated check bits and the read check bits are
used to correct the bit and pass the corrected data back to the
requester that requested the read data. This single-bit error is
signalled for system status. A read requester may be either the
AMD Athlon™ processor, PCI, AGP, APC, or GART. The
detection of more than a single-bit error signals a multiple-bit
system error and this data is not corrected. When any of the
AMD-761 system controller ECC features are enabled, all DDR
DIMMs installed must support ECC and all memory locations
must be written to (initialized) prior to system operation to
generate check bit values that match the data written for every
location of memory. It is the responsibility of the BIOS to
initialize all memory locations prior to any ECC function being
enabled.
The additional logic to support the ECC function is costly in
both silicon real estate and system timing. In the ECC modes
that support data correction, one additional system clock must
be used to generate the corrected data. However, because the
AMD Athlon processor checks for its own errors, data is passed
directly through the AMD-761 system controller without an
additional system clock delay.
The detailed implementation of error detection and correction
differs dependent on whether the read or write is from the
processor or PCI, APC, AGP, or GART and whether the write is
a full quadword or less than a full quadword in size. The
processor generates ECC for all full quadword writes and
checks and corrects (if necessary) on all reads. For processor,
PCI, APC, AGP, or GART partial quadword writes, the memory
system performs a read-modify-write operation by reading the
existing memory location, correcting the memory data if
necessary, merging in the modified bytes, generating new ECC,
and writing the new value to memory. A read-modify-write
operation is used only for all partial quadword writes. The data
read from memory during a read-modify-write operation is
checked and corrected before the merge/write operation. A
detailed operation is further described in Table 29 on
page 171.
170
DDR SDRAM Interface
Chapter 3
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
24081D—February 2002
Table 29.
AMD-761™ System Controller ECC Behavior (with ECC Enabled)
ECC
Generated By:
Operation
ECC
Checked By:
SBEs1
Corrected By:
AMD Athlon
Processor
AMD Athlon™ Processor System Bus Read
DRAM
AMD-761™ System Controller
and AMD Athlon
Processor
AMD Athlon Processor System Bus Full Quadword Writes
AMD Athlon
Processor
None
AMD Athlon Processor System Bus Partial Quadword Writes
AMD-761 System
Controller
RMW on each QW
AMD-761 System AMD-761 System
Controller2
Controller2
PCI/APCI/GART3 Read
DRAM
AMD-761
System
Controller
AMD-761 System
Controller
PCI/APCI/GART3 Full Quadword Writes
AMD-761 System
Controller
None
None
PCI/APCI/GART3 Partial Quadword Writes
AMD-761 System
Controller
RMW on each QW
AMD-761
System
Controller2
AMD-761 System
Controller2
None
Notes:
1. Single-bit error (SBE).
2. The data read from memory is checked and corrected before the merge/write.
3. APCI =Alternate PCI on AGP interface.
4. The scrubbing circuit detects, corrects read errors, and writes the corrected data to memory.
Memory scrubbing not only corrects single-bit errors to the
requesters and detects multiple-bit errors, but also writes the
corrected single-bit error value back into memory when this
feature is enabled. Refer to “ECC_Mode” on page 172 for more
information regarding the memory scrubbing feature and
configuration.
In addition to the status bits and chip-select identification, the
AMD-761 system controller allows single-bit and/or multiplebit errors to optionally assert SERR# to allow monitoring,
logging, and analysis of ECC errors by software. SysECCEn bit
should be set in the AMD Athlon processor when setting
"Report ECC Syndrome case." SysECCEn has an MSR address
of MSR C001_0010[15].
Chapter 3
DDR SDRAM Interface
171
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
3.7.1
SERR_Enable
ECC and Memory Scrubbing Configuration
The System Error Enable bits (Dev 0:F0:0x48, bits [15:14])
control the AMD-761 system controller reporting of ECC errors
to the system via the SERR# pin on the PCI bus. Note that
SERR# assertion is still subject to the normal PCI SERR#
Enable (Dev 0:F0:0x04, bit [8]). Error reporting options are as
follow:
„
„
„
ECC_Diag
24081D—February 2002
00 = SERR# assertion disabled
X1 = Multiple bit errors force SERR# assertion
1X = Single bit errors force SERR# assertion
The Error Correcting Code Diagnostic Mode Enable (Dev
0:F0:0x48, bit [12]) provides a way to purposely corrupt the
ECC check bits. When this mode is enabled, the AMD-761
system controller always writes 0x00h to the ECC check bit
byte. During partial writes, the RMW sequence still occurs, but
the ECC bits are always written to 0x00. This bit is useful for
logic testing and ECC driver development. A check bit value of
0x00 is a valid check bit code, so care should be used to not
corrupt a location where the user does not expect this valid
check bit value to exist. In the ECC_Diag mode, the AMD-761
system controller always writes 0x00 to the ECC byte to aid
testing of the ECC logic.
For reads, the ECC circuitry is unaffected by the ECC_Diag bit.
The ECC code returned from memory is checked, and errors
are reported in the ECC_Status bits as usual. Correction is not
performed in this mode to PCI, AGP, APC, or GART. However,
as mentioned earlier, because the AMD-761 system controller
simply passes ECC and read data information directly to the
AMD Athlon processor, the processor may correct this data if
this feature is enabled in the processor.
ECC_Mode
The Error Correcting Code mode bits enable a specific ECC
mode. These fields can be used in the following cases:
„
„
172
Disable ECC checking. In this mode, ECC is neither
generated nor maintained in the memory, and correction is
not performed. This mode is intended for memory systems
that are only 64 bits in width.
Enable ECC error checking mode only where data is still
checked and errors are still reported, but data destined for
the PCI or APCI/GART is not corrected. This approach
DDR SDRAM Interface
Chapter 3
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
24081D—February 2002
„
„
Chapter 3
provides the benefit of detecting an error but does not incur
the one clock penalty that is necessary for data correction
for data destined for the PCI or AGP. Data and ECC check
bits are still passed from the DDR devices to the
AMD Athlon processor, which performs its own data error
detection and correction. Therefore, data correction to the
AMD Athlon processor is not inhibited in this mode. This
mode provides all the benefits of parity checking with little
or no performance impact. It is useful in systems that desire
status information but not the overhead that is associated
with error correcting or scrubbing. A system can transition
between the EC_HiPerf mode, ECC_HiPerf mode, and
ECC_Scrub mode dynamically, thereby getting the desired
benefits of each mode as needed.
Enable ECC error checking and correction mode. Data
destined for the PCI or APCI/GART is corrected but at the
expense of one clock cycle. As always, data and ECC check
bits are still passed from the DDR devices to the
AMD Athlon processor, which performs its own data error
detection. The AMD-761 system controller provides a highperformance ECC mode (ECC_HiPerf) that provides all the
data integrity benefits of ECC but without the overhead of
scrubbing. In this mode, ECC is written into memory during
writes (partial writes result in a RMW sequence), and
correction is performed on reads. ECC checking is
performed and the status indicators provide valid
information regarding errors. This mode is useful in systems
that need status information and data integrity but not the
overhead that is associated with scrubbing. A system can
transition between the EC_HiPerf mode, ECC_HiPerf mode,
and ECC_Scrub mode dynamically, thereby attaining the
desired benefits of each mode as needed.
Enable ECC_Scrub mode where error checking, data
correction, and memory scrubbing are enabled. Memory
scrubbing corrects a detected single-bit error in the DDR
memory. When a single-bit error is detected, additional
cycle overhead is associated with correcting the single-bit
error in memory. ECC with scrubbing (ECC_Scrub) mode is
the ECC mode of highest reliability. In ECC_Scrub mode,
ECC is written into memory during writes (partial writes
result in a RMW sequence), and corrected data is provided
to the PCI/APCI/GART on reads. The AMD-761 system
controller checks the ECC returned from memory and sets
DDR SDRAM Interface
173
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
24081D—February 2002
the ECC status indicators. In addition, the controller also
corrects any single-bit errors in memory.
ECC_Status
The Error Correcting Code Status bits indicate the status of the
ECC detect logic as follows:
„
„
„
00 = No error
X1 = MED: Multi-bit error detect
1X = SED: Single-bit error detect
The ECC status bits and corresponding failing chip-select
indicators (see bits below) are set by the first error detected of
each type (SED or MED). The AMD-761 system controller does
not log any new errors of each type or assert SERR# until
software clears the associated ECC_Status bit by writing a 1.
ECC_CS_MED
The Multiple Bit Error Chip Select status provides the binary
encoded chip select for the first multiple-bit error detected by
the AMD-761 system controller. The Failing ECC Chip Select is
a binary encoded field and is valid only when the ECC_Status
bits indicate a multi-bit error was detected.
ECC_CS_SED
The Single-Bit Error Chip Select status provides the binary
encoded chip select for the first single-bit error detected by the
AMD-761 system controller. The Failing ECC Chip Select is a
binary encoded field and is valid only when the ECC_Status
bits indicate a single-bit error was detected.
3.8
Programmable Delay Lines (PDL)
This section describes the method used to create the delays
necessary for proper DQS operation on the AMD-761 system
controller DDR interface. The configuration registers used to
control the delays are located in Device 0:Function 1. Note that
for most systems, the BIOS should simply set the values
recommended in Section 7 on page 211. The following sections
provide a detailed description of the PDL operation and the
options for BIOS configuration.
For memory reads, the DDR devices drive the DQS pins edgealigned with the data, and the AMD-761 system controller must
“adjust” the incoming DQS to capture the data. The adjusting
of the incoming DQS requires delaying the DQS accordingly for
each byte or nibble. Because this timing is very tight, the
174
DDR SDRAM Interface
Chapter 3
Preliminary Information
24081D—February 2002
AMD-761™ System Controller Software/BIOS Design Guide
AMD-761 system controller implements a Programmable Delay
Line (PDL) to adjust the incoming DQS.
Each PDL is composed of a selectable buffer chain that is used
to delay the incoming DQS strobe for placing the DQS within
the valid data window. A separate PDL is implemented for each
DQS pin (nine total in non-x4Mode) with additional PDLs (for a
total of 18 in x4Mode) placed on the input of the data mask
(DM) pins for use when accessing a x4 DIMM. The PDL is only
used for read data capture. Because the propagation delay of
an individual buffer of the PDL is a function of process, voltage
a n d t e m p e ra t u re ( P V T ) , a m e ch a n i s m i s re q u i re d t o
compensate for these three variables. This calibration
mechanism determines the appropriate delay to apply across
PVT. A calibration mechanism is placed near every two PDLs to
accurately sense PVT near the actual PDLs used to delay the
incoming DQS strobes. Each calibration mechanism is hand
placed within the AMD-761 system controller to match gate for
gate the actual PDL. This approach minimizes error between
the calibration mechanism and the actual PDLs.
The range of each PDL is from 1 ns to 2.5 ns (worst case). The
resolution of the PDL is equal to one buffer delay inside the
AMD-761 system controller. That is, the value in the PDL
register that controls the “tap” point of the PDL delay chain
represents the number of internal buffer propagation delays.
Because the propagation delay of an internal buffer can vary
over PVT, the number of buffers (and therefore the value in the
PDL control register) can be different at different times (and
different across the same AMD-761 system controller device or
even different across selected AMD-761 system controller
devices), but it can still represent the same delay value in time
units.
Board effects (signal skews, cross talk, etc.) are incorporated in
the timing budget analysis, and they combine to reduce the
effective data-valid window width presented to the AMD-761
system controller. The PDL hardware assumes that the effects
are symmetric—that is, they shrink the setup and hold times
equally. If this symmetry is not the case for the system, then
the AMD-761 system controller allows the BIOS to compensate
for these effects.
The internally delayed DQS (output of the PDL) is used inside
the AMD-761 system controller to capture the corresponding
Chapter 3
DDR SDRAM Interface
175
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
24081D—February 2002
data byte (for x8 and x16 devices) or data nibble (for x4
devices) on a read cycle. The time value of the amount of delay
to be applied to each DQS is fixed and is only dependent on the
frequency of the system clock. Therefore, the DQS delay
required is known a priori and is listed in Table 30. What is not
known is how many internal buffer delays equal this required
time value over PVT, which is the purpose of the PDL
calibration mechanism.
Table 30.
Default DQS Delay versus System Clock Frequency
System Clock
Frequency
DQS Delay
(ns)
DQS Delay (% of CCLK2X Period)
100 MHz
2.0500 ns
41.0%
133 MHz
1.5625 ns
41.7%
Because the propagation delay of an individual buffer internal
to the AMD-761 system controller is a function of PVT, a
mechanism is required to compensate for these three variables.
As previously mentioned, the delay value is known, but the
number of buffers that provides this delay value is not known
for a given PVT point. The calibration mechanism provides this
piece of information. The mechanism used is a simple
measurement of how many buffer delays are required to equal
the system clock period. Because the system clock is generated
by a PLL in the AMD-761 system controller, and it is already
compensated for PVT, the system clock period is independent
of PVT. Therefore, the clock period can be assumed to be a
constant and can be used to correlate the PDL values (Cal_Dly
and Act_Dly) to units of time.
Each calibration mechanism inside the AMD-761 system
controller measures the 2X SYSCLK period in buffer delays.
This measurement can take a few hundred clock cycles,
therefore it is done off-line. The calibration mechanism
computes a Cal_Dly value that is then transferred into the PDL
control register (Act_Dly) at a time when the DQS pins are not
active as inputs.
The calibration is automatically performed once after reset
and once after self-refresh exit, and the resultant value is
transferred to each PDL. Re-calibration can be initiated via
software. The AMD-761 system controller also has a mode that
enables periodic auto calibration.
176
DDR SDRAM Interface
Chapter 3
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
24081D—February 2002
Periodic auto-calibration mode re-computes the Cal_Dly values
and transfers this value into the PDLs. All nine (or 18)
calibration mechanisms are enabled/disabled together for autocalibration. This mode is useful in adjusting the delay values
during operation. In effect, auto-calibration can adjust for
voltage and temperature (VT) drifts during operation. Note
that the AMD-761 system controller also allows re-calibration
to occur completely under software control when this (autocalibration) mode is disabled.
The auto-calibration period is configurable, and the possible
periods are 10000, 1000000, 10000000 clock cycles (at 100 MHz,
these periods are equal to 100 µs, 10 ms, and 100 ms, while at
133 MHz it is somewhat faster). The setting of the autocalibration period should be based on the actual
characteristics of the system.
Software can control when calibration is done (except for the
first computation at reset or an exit from self-refresh). It can
either configure the AMD-761 system controller for autocalibration (via the Auto_Cal_En bit), or it can initiate a single
recomputation (via the SW_ReCal bit). If software initiates a
single recomputation (via the SW_Recal bit), it should also poll
for this computation to be done.
Because auto-calibration registers are not initialized at reset, it
is the responsibility of the BIOS to initialize the SW_Cal_Dly.
The SW_Cal_Dly value that BIOS provides is based on a value
provided after AMD-761 silicon characterization. The hardware
computes the Cal_Dly value that is applied to the PDL based
on the SW_Cal_Dly programmed. The SW_Cal_Dly bits are
used by AMD-761 system controller to update the delay times
in both auto-calibration mode as well as software-initiated
calibrations. For example, if the delay required is 1.7 ns and
the system clock frequency is 133 MHz, the following is the
derivation of the SW_Cal_Dly value:
„
„
„
The half-period of system clock = 3.75 ns.
1.7 ns = 45.33% of the half-period.
The SW_Cal_Dly value is 0.4533 x 256 = 116 (rounded to
nearest integer) = 0x74.
The AMD-761 system controller allows software to optionally
write to the Act_Dly bits that control each PDL. The value
written to the Act_Dly bits is the number of buffer delays
Chapter 3
DDR SDRAM Interface
177
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
24081D—February 2002
required (rather than a percentage of the clock period). To
determine the number of buffer delays, software must first
read the Clk_Dly bits and scale this value for the required
Act_Dly. For example, if Clk_Dly is 75 buffer delays at 100
MHz, and the BIOS desires a delay of 2.1 ns, the following is the
derivation of the Act_Dly value:
„
„
„
75 buffer delays = half-period of system clock = 5 ns
2.1 ns = 2.1 / 5 x 75 = 31.5 buffer delays
The Act_Dly value is either 31 or 32 (depending on rounding
desired) = 0x1F or 0x20.
The AMD-761 system controller provides a configuration bit
(Act_Dly_Inh) that inhibits the auto calibration state machine
from updating the Act_Dly values after the computation of
Clk_Dly and Cal_Dly is completed. If this mode is used, the
PDLs (Act_Dly values) are not updated with new Cal_Dly
values (whether auto-calibration is enabled or whether
software initiates a re-calibration). However, the PDLs are
always updated at reset. Upon exit from self-refresh, the
Act_Dly_Inh bit determines whether the PDLs are updated or
not. This feature can be useful for diagnostic purposes.
SW_Recal
The Software Re-calibration bit (Dev 0:F1:0x40, bit [7])
provides a way for software to force a re-calibration cycle. This
action is allowed only when the auto calibration feature is
disabled. A re-calibration is forced when this bit is written to a
1b. This bit also provides status by being cleared when the
calibration has completed. BIOS may find it useful to be aware
of the completion of the calibration, although from a functional
perspective, the DDR memory controller does not require it.
When the re-calibration is complete, the hardware recomputes
the Cal_Dly values for all PDLs, based on the values of their
SW_Cal_Dly fields.
Use_Act_Dly
The Use Actual Delay bit (Dev 0:F1:0x40, bit [6]) provides a
way for software to change the PDL setting manually, which is
done by updating the Act_Dly field directly. BIOS should set
this bit to indicate to the hardware that it has written to the
Act_Dly fields and wants to update the PDLs (all 18) with the
newly written Act_Dly values. This method should be used only
w hen SW_ R ec a l and Aut o_ Ca l_En bits are not set. If
Auto_Cal_En is set, writes to this bit are ignored.
178
DDR SDRAM Interface
Chapter 3
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
24081D—February 2002
Auto_Cal_En
The Auto Calibration Enable bit (Dev 0:F1:0x40, bit [5])
provides a way for BIOS to enable the PDL auto calibration
function. When this bit is set, all of the Cal_Dly values are
recomputed periodically (according to the setting of the
Auto_Cal_Period field) for all PDLs, based on the values of
their SW_Cal_Dly fields. If the Act_Dly_Inh bit is not set, the
Cal_Dly values are also applied to the Act_Dly.
Note: Once Auto_Cal_En is set to 1, clearing it makes the bit a 0,
but the auto-calibration logic may perform one more
update, depending on when the Auto_Cal_En bit is cleared.
Therefore, BIOS should at least wait for the amount of time
specified by the Auto_Cal_Period field after clearing the
Auto_Cal_En bit before attempting to change any of the
PDL parameters.
Note: This bit should not be set if the system clock frequency is
66 MHz.
Act_Dly_Inh
The Actual Delay Update Inhibit bit (Dev 0:F1:0x40, bit [4])
provides a way for BIOS to inhibit an auto-calibration value
from updating the PDLs. The setting of this bit affects both
auto-calibration and software-initiated calibration but not the
Use_Act_Dly method. After an exit from self-refresh, the
setting of this bit determines whether the Act_Dly value is
updated or not.
Note: The internal logic tests this bit just prior to updating the
Act_Dly, so the other bits in this register should be taken
into consideration when writing to this bit.
Auto_Cal_Period
The Auto-Calibration Period (Dev 0:F1:0x40, bits [1:0]) bits
specify how often an auto-calibration occurs. The autocalibration periods are as follows:
„
„
„
„
00 = 10000 system clocks
01 = 1000000 system clocks
10 = 10000000 system clocks
11 = Reserved
B I O S s h o u l d c o n f i g u re t h i s f i e l d b e fo re s e t t i n g t h e
Auto_Cal_En bit. This field should not be altered while
Auto_Cal_En is set.
Clk_Dly
Chapter 3
The auto-calibrator’s Clock Delay (Dev 0:F1:0x44, bit [31:24]
through Dev 0:F1:0x88, bits [31:24]) is read-only and provides
DDR SDRAM Interface
179
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
24081D—February 2002
the number of PDL buffer delays required to make up a 2X
SYSCLK period. This value is used to calculate the actual PDL
value. The value returned from this field divided by the clock
frequency is the average delay per tap of the PDL.
SW_Cal_Dly
The auto-calibrator’s Software Calibration Delay (Dev
0:F1:0x44, bits [23:16] through Dev 0:F1:0x88, bits [23:16])
provides BIOS access to the overall percentage of the buffers
required, based on the total number of buffer delays shown in
the Clk_Dly field. This value is used to calculate the actual
PDL value. This value should be:
„
„
69h at 100 MHz (2.0500 ns 41.0%)
6Bh at 133 MHz (1.5625 ns 41.7%)
Cal_Dly
The auto-calibrator’s Calculated Delay (Dev 0:F1:0x44, bits
[15:8] through Dev 0:F1:0x88, bits [15:8]) is read-only and
provides the calculated delay based on the auto-calibrator’s
finding of Clk_Dly and the BIOS-specified SW_Cal_Dly. This
value is the final calibration value that is used for the PDL if
the Act_Dly_Inh bit (Dev 0:F1:0x40, bit [4]) is not set. If the
Act_Dly_Inh bit is set, this calculated value is not used to
update the PDLs.
Act_Dly
The auto-calibrator’s Actual Delay (Dev 0:F1:0x44, bits [7:0]
through Dev 0:F1:0x88, bits [7:0]) directly specifies the number
of PDL taps. BIOS can manually update the PDL by writing a
PDL tap value into this register and writing a 1b to the Use
Actual Delay bit (Dev 0:F1:0x40, bit [6]). This action should
only be done when the auto-calibration logic is disabled by
writing a 0b to (Dev 0:F1:0x40, bit [5]). Manually updating the
PDL while the auto-calibration logic is enabled could result in
unpredictable system operation.
3.8.1
Manual PDL Window Detection
The recommended value specified in the SW_Cal_Dly field
(Dev 0:F1:0x44, bits [23:16] through Dev 0:F1:0x88, bits
[23:16]) is based on calculated round trip timing assuming
worst case AMD-761 system controller conditions, worst case
DDR DIMM device conditions, and board routing. The most
critical timing relationship during a DDR DIMM read is the
round trip data delays and the DQS/data relationship relative
to each other. Many factors affect the DQS/data relationship.
Because of these factors, BIOS itself can determine a precise
180
DDR SDRAM Interface
Chapter 3
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
24081D—February 2002
SW_Cal_Dly value by performing a manual window detection
rather than using the specified values.
Manual window detection can be accomplished with the
following steps:
„
„
„
„
Chapter 3
Disable the PDL auto-calibration feature by setting Dev
0:F1:0x40, bit [5] = 1b0. Disabling auto-calibration prevents
auto-calibration interference while BIOS manipulates this
process manually.
Determine the operating range of each PDL by adjusting
each PDL tap from minimum to maximum to determine the
data window range. This determination is accomplished by
multiple iterative writes to alter the PDL and reading back
"expect" data from DDR memory after each PDL tap is
altered. For x8/x16 devices, this process is performed at the
byte resolution. For x4 devices, this process is performed at
the nibble resolution. The Actual Delay is adjusted via Dev
0:F1:0x44, bits [7:0] through Dev 0:F1:0x88, bits [7:0]. After
the Actual Delay is configured, BIOS must write a 1b to the
Use Actual Delay bit (Dev 0:F1:0x40, bit [6]) to apply the
new Actual Delay value.
Once the operational range for each byte (for x8/x16
devices) or for each nibble (for x4 devices) is determined,
the center point for this window can be determined by
dividing these ranges by two, which yields the “target
window PDL tap.”
The average PDL tap value must be determined for
knowledge of the expected delay per tap of the PDL. This
value can be retrieved by performing a software-initiated
calibration. First set the Actual Delay Update Inhibit Dev
0:F1:0x40, bit [4] to a 1b to prevent a calibration update.
Initiate a calibration by writing a 1b to Dev 0:F1:0x40, bit
[7], and then polling this bit to become a 0b to determine
when the calibration is complete. The total number of PDL
taps that make up 5 ns (for 100-MHz operation) or 3.75 ns
(for 133-MHz operation) can be found in the Clock Delay
field for each calibrator in Dev 0:F1:0x44, bits [31:24],
through Dev 0:F1:0x88, bits [31:24]. By dividing the
appropriate period (as applies to the frequency of the
AMD-761 system controller) by the values found in the
Clock Delay fields yields the “average delay per PDL tap.”
DDR SDRAM Interface
181
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
„
„
„
3.9
24081D—February 2002
Once the appropriate PDL value is determined for each
byte or nibble (as it applies), this value must be converted
into a Software Calibration Delay value for the autocalibration logic. This value can be calculated by
multiplying the “target window PDL tap” (found above) by
the “average delay per PDL tap,” which yields the
“required PDL tap delay” as a function of time (ns).
The Software Calibration delay is specified as a percentage.
Therefore, the Software Calibration delay = ((operating
period/2) / required PDL tap delay) x 256). The value
determined in this calculation must be applied to the
Software Calibration Delay field Dev 0:F1:0x44, bits [23:16],
through Dev 0:F1:0x88, bits [23:16].
Clear the Actual Delay Update Inhibit Dev 0:F1:0x40, bit
[4] to allow calibration updates and then enable the autocalibration system by writing a 1b to Dev 0:F1:0x40, bit [5].
DDR I/O Drive Strength
The DDR I/O pads are SSTL-2 compatible. The DDR pads have
configurable slew rate and drive strength control of N and P
transistors, separately. It is the responsibility of BIOS to
initialize the pad drive strength and slew rate before any
memory accesses. The DDR I/O drive strength and slew
controls exist at (Dev 0:F1:0x8C) through (Dev 0:F1:0x9B).
Drive strength and slew control are provided for both the P and
N transistors to allow for a fine adjustment for proper DDR
SSTL-2 crossover points and rise/fall edge rates.
Separate drive strength and slew control is provided for the
following:
„
Data strobes (DQS)
Note: If any chip select is configured to support a x4 DIMM, the
DM buses inherit the drive strength and slew setting
specified for the data strobes (DQS). Otherwise, the DM pins
inherit the drive strength specified for the MDAT pins. This
inheritance occurs because a x4 DIMM access uses the DM
signals as data strobes (DQS) signals.
„
„
182
Data bus (MDAT), ECC bus (MECC), and data mask bus
(DM) (See preceding note.)
Device clock output (CLKOUTH/L)
DDR SDRAM Interface
Chapter 3
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
24081D—February 2002
Note: The AMD-761 system controller provides differential clocks,
CLKOUTH and CLKOUTL, for the DDR DIMMs. This single
CLKOUT drive strength and slew setting applies for both
polarities of CLKOUT.
„
„
„
„
„
Device Chip Select (CS[7:0]#)
Command bus A (RASA#, CASA#, WEA#, and CKEA#)
Command bus B (RASB#, CASB#, WEB#, and CKEB#)
Memory address bus A (MAA[14:0])
Memory address bus B (MAB[14:0])
Signal integrity studies have shown that P and N slew settings
of 101b and a P drive strength setting of 11b and an N drive
strength setting of 10b for all of the signal groups specified
above provide adequate edge rates across various unbuffered
and registered DIMM devices and population. A proper drive
strength and slew setting for (Dev 0:F1:0x8C, bits [31:0]) is
0E_2D_0E_2Dh.
Chapter 3
DDR SDRAM Interface
183
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
184
DDR SDRAM Interface
24081D—February 2002
Chapter 3
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
24081D—February 2002
4
Power Management
This cha pte r provides the BIO S requirements for the
AMD-761™ system controller’s various power management
states. The AMD-761 system controller includes logic
specifically for the support of the following Advanced
Configuration and Power Interface (ACPI) states:
„
„
„
C2 Stop Grant (probed)
S1 Power-On Suspend
S3 Suspend to RAM
This chapter discusses the BIOS requirements for the AMD-761
sy s t e m c o n t rol le r o n ly, an d does not i ncl ude sp eci a l
requirements for the processor, Southbridge, or the operating
system support of each power management state.
Note: To accommodate the S3 state, some of the AMD-761 system
controller register bits are not initialized to a known value
at power-on with the RESET# signal. The BIOS must
initialize all of these bits for proper operation, especially
when enabling power management features as described in
this section. BIOS must also perform a save and restore of
all relevant configuration bits in the processor and chipset
to support the Suspend to RAM feature.
Table 31 on page 186 summarizes the various features required
by the AMD-761 system controller to support the different
power management states.
Note: ACPI C3 state is not supported by the AMD-761 system
controller, and the BIOS must not declare C3 support to the
operating system through the Fixed ACPI Description Table.
The BIOS should declare the following values:
•
•
•
Chapter 4
A value of 0 in the PM2_CNT_BLK field in the Fixed
ACPI Description Table (FADT)
A value of 0 in the PM2_CNT_LEN field of the FADT
A value of 0 in the X_PM2_CNT_BLK field of the FADT
if this ACPI 2.0 extension is supported by the operating
system.
Power Management
185
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
Table 31.
24081D—February 2002
AMD-761™ System Controller Power Management Features for
ACPI Support
AMD-761 system controller Power Management Feature
Disconnect processor when Halt special cycle is detected on
AMD Athlon™ system bus.
„ Enabled by BIU Status/Control (Dev 0:F0:0x60, bit 18)
ACPI State
C1 C2 S1 S3
X
Disconnect processor when Stop Grant special cycle is detected on
AMD Athlon™ processor system bus.
„ Enabled by BIU Status/Control (Dev 0:F0:0x60, bit 17 for CPU 0)
X
X
X
Memory controller forces DRAM to self-refresh mode
Enabled by BIU Status/Control (Dev 0:F0:0x60) and Mode/Status
Register (Dev 0:F0:0x70, bit 18)
X
X
X
X
X
„
DCSTOP# assertion by Southbridge causes AMD-761 system controller to gate off clock trees and DRAM clocks for lower power
„ Enabled when the Stp_Grant_Discon_En bit is set in the BIU
Status/Control Register (Dev 0:F0:0x60, bit 17).
RESET# assertion in S3 state causes AMD-761 system controller to
gate off I/O rings so power can be removed from AGP, PCI, and processor interfaces while VDD_CORE and DDR interface remains powered.
„ Enabled when the Stp_Grant_Discon_En bit is set in the BIU
Status/Control Register (Dev 0:F0:0x60, bit 17).
X
Each of the various power management features may be
optionally enabled with specific configuration bits in the
AMD-761 system controller’s host bridge configuration space as
described in the following sections.
4.1
C1 Halt State Requirements
The processor enters the C1 Halt state after executing a Halt
instruction and generating a Halt special cycle on the
AMD Athlon™ system bus. The AMD-761 system controller
supports two options for the Halt state:
1. Forward the Halt special cycle to the PCI bus but otherwise
continue normal operation (no power savings).
2. Disconnect the processor and then forward the Halt special
cycle to the PCI bus (processor enters very low-power state).
186
Power Management
Chapter 4
Preliminary Information
24081D—February 2002
AMD-761™ System Controller Software/BIOS Design Guide
The first option is the recommended mode and requires no
special setup in the AMD-761 system controller other than to
write a 0 to the Halt_Discon_En bit in the BIU Status/Control
register (Dev 0:F0:0x60, bit 18). This action causes the
AMD-761 system controller to react to the Halt special cycle on
the AMD Athlon system bus by forwarding the cycle to the PCI
bus but not attempting any processor disconnect. There is no
significant power savings in this mode.
The second option requires that the Halt_Discon_En bit be set,
which forces the AMD-761 system controller to initiate a
p r o c e s s o r d i s c o n n e c t f o r l ow e r p o w e r u s i n g t h e
PROCRDY/CONNECT protocol on the AMD Athlon™ system
bus. The PCI and AGP arbitration remains enabled in this
state, thus any DMA cycles that require a probe of the
processor’s cache causes the AMD-761 system controller to
reconnect using the PROCRDY/CONNECT protocol. There is
some additional latency imposed when this mode is enabled,
because each processor probe requires a reconnect of the CPU.
When the AMD Athlon system bus is disconnected, the
processor enters a very low-power state.
The AMD-766™ peripheral bus controller Southbridge does not
require any special initialization for either of the above
two modes.
4.2
C2 Stop Grant State Requirements
The processor enters the C2 Stop Grant state and issues a Stop
Grant special cycle on the AMD Athlon processor system bus in
response to the assertion of the STPCLK# input signal by the
Southbridge. The AMD-761 system controller supports two
options for the Stop Grant state:
1. Wait for a Stop Grant Special Cycle from both installed
processors and fForward the Stop Grant special cycle to the
PCI bus, but otherwise continue normal operation (no
significant processor power savings).
2. Disconnect the processor, enter self-refresh, and then
forward the Stop Grant special cycle to the PCI bus. This
power management state provides a lower power clock
Chapter 4
Power Management
187
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
24081D—February 2002
controlled state that allows snooping of the processor cache.
If the AMD Athlon processor system bus is disconnected,
the processor enters a very low-power state.
The first option requires no special setup in the AMD-761
s y s t e m c o n t ro l l e r o t h e r t h a n t o w r i t e a 0 t o t h e
Stp_Grant_Discon_En bit in the BIU Status/Control register
(Dev 0:F0:0x60, bit 17). This action causes the AMD-761 system
controller to react to the Stop Grant special cycle on the
AMD Athlon processor system bus simply by forwarding the
cycle to the PCI bus, but not attempting any processor
disconnect. No significant power savings occur in this mode.
When this option is selected, the BIOS should not declare
support for the C2 state in the Fixed ACPI Description Table.
The second option requires that the following AMD-761 system
controller configuration bits be initialized:
„
„
„
The Stp_Grant_Discon_En must be set in the BIU
Status/Control register. When this bit is set, the AMD-761
system controller flushes internal queues after receiving
the Stop Grant special cycle, force the DDR DRAM into selfrefresh mode, and forward the Stop Grant special cycle to
the PCI bus to the Southbridge.
DRAM refresh must be enabled by writing a 0 to the
Ref_Dis test bit in the DRAM Mode/Status register (Dev
0:F0:0x58, bit 19).
Self-refresh must be enabled by writing a 1 to the Self_Ref_En
bit in the Status/Control register (Dev 0:F0:0x70, bit 18).
DMA cycles initiated from the PCI bus or AGP interface’s PCI
bus can be probed in the C2 state. When a cacheable access is
initiated on these interfaces, the AMD-761 system controller
initiates a connect sequence on the AMD Athlon system bus
via the PROCRDY/CONNECT protocol.
This mode requires specific configuration registers in the to be
initialized for proper generation of the STPCLK# signal and
resume events.
188
Power Management
Chapter 4
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
24081D—February 2002
4.3
S1 Power-On Suspend State Requirements
The ACPI S1 state uses the Southbridge DCSTOP# signal to
gate off the AMD-761 system controller’s internal clock trees
for a very low-power state. All voltages remain powered on in
this mode.
To the AMD-761 system controller, the configuration register
initialization required for S1 support is the same as that
required for C2 support as described in Section 4.1 on
page 186. The AMD-761 system controller requires the
following BIOS/drivers for S1 support:
„
The Stp_Grant_Discon_En must be set in the BIU
Status/Control register. When this bit is set, the AMD-761
system controller flushes internal queues after receiving
the Stop Grant special cycle, forces the DDR DRAM into
self-refresh mode, and forwards the Stop Grant special cycle
to the PCI bus to the Southbridge.
„
DRAM refresh must be enabled by writing a 0 to the
Ref_Dis test bit in the DRAM Mode/Status register (Dev
0:F0:0x58, bit 19).
Self-refresh must be enabled by writing a 1 to the
Self_Ref_En bit in the Status/Control register (Dev
0:F0:0x70, bit 18).
„
„
To ensure that no probes are generated, all PCI/AGP traffic
must be prevented by the peripheral software drivers before
entering the S1 state when DCSTOP# is asserted. It is
expected that the drivers have already placed each PCI/AGP
peripheral into the D3 state prior to STPCLK# assertion by
the Southbridge.
The S1 state is supported by the AMD-761 system controller for
both unbuffered and registered DDR DIMMs. However, when
registered DIMMs are installed in the system (according to the
Reg_DIMM_En bit in the DRAM Timing register in Dev
0:F0:0x54), the DRAM clocks (CLKOUT[5:0], CLKOUT[5:0]#)
continue to be driven active. This action is required because
the registered DIMMs do not support removal of the clock
input unless in reset.
The S1 sleep state has a very low resume latency because the
PLLs are already running. The AMD-761 system controller
Chapter 4
Power Management
189
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
24081D—February 2002
simply enables its clock trees and reconnects the processor.
Because no power is removed from the system, and the RESET#
signal is not asserted, all AMD -7 61 syst em c ontroller
configuration registers retain their original value prior to
entering the S1 state.
The S1 sleep state requires specific configuration registers in
the AMD-768 peripheral bus controller or AMD-766 peripheral
bus controller to be initialized for proper generation of the
STPCLK# and DCSTOP# signals and resume events.
4.4
S3 Suspend to RAM State Requirements
The ACPI S3 state achieves maximum power savings and lowlatency resume by shutting off most system power supplies
while retaining system context in DRAM. This action requires
that the AMD-761 system controller core voltage remain
powered on along with the DRAM and part of the Southbridge,
while the remaining platform components are powered off.
For any system enabling the S3 state, a number of core logic
PCI configuration registers and processor MSRs must be saved
or restored prior to suspending or restoring S3. Also, certain
hidden bits must be unmasked. These requirements apply to all
platforms regardless of segment and whether or not AMD
PowerNow!™ is used.
To the AMD-761 system controller, the configuration register
initialization required for S3 support is the same as that
required for S1 support. The AMD-761 system controller
requires the following of the BIOS/drivers for S3 support:
„
„
190
The Stp_Grant_Discon_En must be set in the BIU
Status/Control register. When this bit is set, the AMD-761
system controller flushes internal queues after receiving
the Stop Grant special cycle, force the DDR DRAM into selfrefresh mode, and forward the Stop Grant special cycle to
the PCI bus to the Southbridge.
DRAM refresh must be enabled by writing a 0 to the
Ref_Dis test bit in the DRAM Mode/Status register (Dev
0:F0:0x58, bit 19).
Power Management
Chapter 4
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
24081D—February 2002
„
„
„
Self-refresh must be enabled by writing a 1 to the
Self_Ref_En bit in the Status/Control register (Dev
0:F0:0x70, bit 18).
To ensure that no probes are generated, all PCI/AGP traffic
must be prevented by the peripheral software drivers before
entering the S3 state when DCSTOP# is asserted. It is
expected that the drivers have already placed each PCI/AGP
peripheral into the D3 state prior to STPCLK# assertion by
the Southbridge.
The Suspend to RAM control bits (STR_Control[1:0]) in the
DRAM Mode/Status register (Dev 0:F0:0x58) must be
properly controlled by BIOS to force the AMD-761 system
controller to properly enter and exit the S3 state. Refer to
Section 4.4.1 on page 191 for details.
To accommodate S3 support, the AMD-761 system controller
does not initialize most of the memory controller configuration
registers to a known value when RESET# is asserted. It is
important that these registers be properly initialized by BIOS
during the power-up configuration. Once initialized, the
AMD-761 system controller retains these values when
resuming from the S3 state.
4.4.1
STR Bit Control for S3 Support
Th e S T R _C o n t ro l b i t s a re p rov i d e d t o a l l ow B I O S t o
communicate state changes to the AMD-761 system controller’s
power management logic. Proper control of these bits is
required to ensure that the correct sequence is followed when
the AMD-761 system controller is entering and exiting the
Suspend to RAM state.
Each of the three STR_Control modes are described below.
Power-On Reset (00)
Chapter 4
The AMD-761 system controller always sets the STR_Control
bits to this value when the RESET# pin is asserted—that is,
when powering up from the S3, S4, S5, and Mechanical Off
states). The AMD-761 system controller memory controller
always drives the DRAM CKE pins Low in this state, forcing
the DRAMs inactive, and the memory controller configuration
registers retain the values they had prior to the RESET#
assertion.
Power Management
191
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
Normal Resume (01)
24081D—February 2002
BIOS should write this value to the STR_Control bits when
resuming from the S4 (Suspend to Disk), S5 (Soft Off), or
Mechanical Off states. This action forces the AMD-761 memory
controller to follow the normal DRAM initialization sequence
as follows:
„
„
Assert CKE pins to enable clocks at the DRAM DIMMs
Perform required DRAM initialization sequence, including
writes to DRAM mode registers, etc.
The BIOS should then follow the normal initialization sequence
in this mode, including DRAM configuration and memory
sizing, etc.
After a hard reset, BIOS should set these bits to 01b and bit 25
of this re gis te r (D R AM I n it ) t o a 1 b w it h in t h e sa me
configuration write. If this register is not set to a 01b, setting
bit 25 of this register has no effect. This pattern is written by
BIOS to inform the AMD-761 system controller memory
controller that this is a power-on reset rather than a Suspend
To RAM wakeup from reset.
Resume from S3 (1X)
BIOS should write this value to the STR_Control bits when
resuming from the S3 (Suspend to RAM) state. This action
instructs the AMD-761 system controller memory controller to
perform the proper DDR protocol to exit self-refresh but not
attempt to re-initialize the DDR DRAM devices—that is, mode
register writes, etc.). Note that this bit is ignored by the
memory controller after it exits self-refresh, until the bit is
cleared by RESET#. Problems are thus avoided when the
AMD-761 system controller periodically enters and exits selfrefresh for C2, S1 and clock throttling.
As shown in Figure 5 on page 193, when BIOS writes a 1X to the
STR_Control field upon exiting the S3 state, the AMD-761
system controller simply takes the DRAM out of self-refresh
mode. At this time all of the AMD-761 memory controller
configuration registers retain their original values programmed
prior to entry to the S3 state, thus allowing BIOS immediate
access to memory for the restoration of all other system
configuration registers and context restoration. Refer to
Section 1.1.3 on page 4 for a list of the AMD-761 system
controller configuration registers that are not set to a known
value when the RESET# pin is asserted.
192
Power Management
Chapter 4
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
24081D—February 2002
•
Resume from S3/S4/S5 or mechanical off states,
RESET# asserted, forces 00
DRAM CKE pins are Low, all DRAM
CLKOUT pins are enabled
STR_Control
00
Resume from S4/S5 or mechanical
off states, BIOS writes 01
Resume from S3 state, BIOS writes 1X
STR_Control
1X
•
•
•
•
Powerdown or enter S3 state,
STR_Control bits reset to 00
by assertion of RESET# pin
AMD-761™ system controller asserts DRAM CKE pins and exits
self-refresh mode.
The AMD-761 system controller retains the value of all memory
controller configuration registers; all other registers are cleared
to their power-up values.
BIOS disables any unused DDR clocks.
BIOS can now begin restoring all other configuration registers
from DRAM.
•
•
•
Figure 5.
Suspend to RAM (STR_Control) Bits Usage
4.5
Clock Throttling
STR_Control
01
DRAM CKE pins are asserted by the AMD-761 system controller.
BIOS initiates the AMD-761 system controller to start DRAM.
power-up initialization process, including disabling any unused
DDR clocks, writing to DRAM mode registers, etc.
BIOS continues normal system initialization and POST process.
Clock throttling is a power management mechanism that
periodically causes the assertion of the STPCLK# signal to the
processor to achieve lower system power. Clock throttling can be
accomplished through a combination of hardware and software
and can be performed at regular intervals—that is, modulating
the STPCLK# pin or through a more sophisticated system such
as implementing thermal sensors on the motherboard.
The AMD-761 system controller supports clock throttling with
the same hardware mechanisms that are used for C2 support
and requires the following BIOS configuration register
initialization.
„
Chapter 4
The Stp_Grant_Discon_En must be set in the BIU
Status/Control register. When this bit is set, the AMD-761
system controller flushes internal queues after receiving
the Stop Grant special cycle, forces the DDR DRAM into
Power Management
193
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
24081D—February 2002
self-refresh mode, and forwards the Stop Grant special cycle
to the PCI bus to the Southbridge.
„
„
DRAM refresh must be enabled by writing a 0 to the Ref_Dis test
bit in the DRAM Mode/Status register (Dev 0:F0:0x58, bit 19).
Self-refresh must be enabled by writing a 1 to the Self_Ref_En
bit in the Status/Control register (Dev 0:F0:0x70, bit 18).
DMA cycles initiated from the PCI bus or AGP interface PCI
bus can be probed while in the Stop Grant state during clock
throttling. When a cacheable access is initiated on these
interfaces, the AMD-761 system controller initiates a connect
sequence on the AMD Athlon system bus via the
PROCRDY/CONNECT protocol.
Note that when using clock throttling, the Southbridge must be
programmed to wait for the Stop Grant special cycle before
changing the state of the STPCLK# signal.
4.6
DDR DRAM Clock Enables
The AMD-761 system controller is designed to provide BIOS the
ability to disable any unused DDR DRAM clock pairs to reduce
power and system noise. These clock pairs are controlled by the
Clk_Dis[5:0] field in the DRAM Mode/Status register (Dev
0:F0:0x58). The AMD-761 system controller provides six
differential clock pairs to support up to two unbuffered DIMMs or
four registered DIMMs. The usage of these clocks is motherboardspecific (i.e., which clock pairs connect to which DIMM clock
inputs).
The Clk_Dis bits are initialized to 0 when RESET# is asserted,
thus guaranteeing that all DRAM clock pairs are enabled when
exiting the S3 state.
It is recommended that clock pairs that are connected to
unused DIMM slots be disabled by BIOS. Note that because the
values programmed by BIOS during power-on initialization are
not maintained when entering the S3 state, BIOS is required to
write to the Clk_Dis field when restoring the AMD-761 system
controller configuration registers.
194
Power Management
Chapter 4
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
24081D—February 2002
5
PCI Bus Interface
This chapter provides additional details of some of the
AMD-761™ system controller PCI interface options that affect
system performance and compliance to the PCI Local Bus
Specification, Revision 2.2, as well as some recommended settings
for the AMD-761 system controller configuration register bits.
The features and options discussed are as follows:
„
„
„
„
5.1
PCI delayed transactions and target latency
PCI transaction ordering
Special arbitration options for Southbridges with legacy
DMA requirements
Performance enhancement options, including read prefetching and PCI chaining
Delayed Transactions and Ordering Rules Usage
The AMD-761 system controller provides three transaction
operating modes for the PCI bus host bridge interface as listed
in Table 32 on page 196. BIOS should program the bits listed in
Table 32 to only one of these combinations for best results.
Chapter 5
PCI Bus Interface
195
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
Table 32.
24081D—February 2002
AMD-761™ Processor System Controller PCI Read Transaction Options
PCI_DT_En
PCI_OR_En
Tgt_Latency
Dev 0:F0:0x4C, bit 2 Dev 0:F0:0x4C, bit 1 Dev 0:F0:0x84, bit 23
Description
0
Disabled
0
Disabled
0
Disabled
No PCI transaction ordering or target latency
rules are enforced. Delayed transactions are
disabled, but masters are not retried by the
AMD-761™ system controller during memory
reads (unless the PCI_WR_Post_Rty bit is set in
the PCI Arbitration Register at Dev 0:F0:0x84).
This mode is not fully PCI 2.2-compliant
because the AMD-761 system controller host
bridge may consume greater than 32 PCI bus
clocks during memory read transactions, and
transaction ordering is not strictly enforced.
1
Enabled
0
Disabled
1
Enabled
Delayed transactions are enabled and target
latency rules are enforced. This mode is not
fully PCI 2.2-compliant because transaction
ordering rules are not strictly enforced.
1
Enabled
1
Enabled
1
Enabled
Delayed transactions are enabled, target latency
and transaction ordering rules are enforced. This
mode provides full PCI 2.2-compliance.
The effects of the settings described in Table 32 above are
described further in the following sections.
5.1.1
Delayed Transactions and Target Latency
Delayed transactions and read target latency should be
enabled and disabled together in the AMD-761 system
controller, such that both bits are either set or cleared.
„
„
196
Setting the read target latency bit (Tgt_Latency) forces the
AMD-761 system controller to disconnect the current PCI
memory read cycle in progress when the defined maximum
allowable latency has expired. This latency is defined in the
PCI Local Bus Specification, Revision 2.2, as 16 PCI clocks (32
PCI clocks for host bridges that must snoop processor
caches). When the read target latency is reached, the
AMD-761 system controller asserts the STOP# signal, thus
disconnecting the PCI master (retry). The master is then
obligated by protocol to retry the same cycle after rearbitration, in anticipation that the read has completed in
the memory subsystem, thus the next read cycle falls within
the maximum target latency.
Setting the delayed transaction enable (PCI_DT_En) causes
the AMD-761 system controller to latch the address and
read command that was initiated by the external master
PCI Bus Interface
Chapter 5
Preliminary Information
24081D—February 2002
AMD-761™ System Controller Software/BIOS Design Guide
when the read target latency timer expires, thus allowing
the PCI target and memory controller logic to
independently complete the read so that the next time the
original master retries the read, the data is ready to return
immediately (assumes the PCI_WR_Post_Rty bit is not set
in the PCI Arbitration Register (Dev 0:F0:0x84, bit 14).
There are two reasons delayed transactions may be enabled:
1. For systems that must meet the target latency requirement,
delayed transactions are better because the memory read
cycle is queued in the AMD-761 system controller memory
controller after the PCI master is disconnected and while it
is re-arbitrating for the PCI bus. This action provides a
higher likelihood that when the master retries the
transaction, the read data is immediately available.
2. Delayed transactions free up the PCI bus during the time
that the memory subsystem is retrieving the read data, for
peer-to-peer PCI traffic between other PCI masters and
agents. Unfortunately, this type of traffic is rare in most
systems.
It should be noted that the AMD-761 system controller
supports only a single-level delayed transaction queue, thus the
performance benefit may be minimal and may actually be
worse with delayed transa ct ions enabled under some
conditions.
The following sec t io ns provide exa mples of PCI re ad
transactions with delayed transactions enabled and disabled.
Note that in both examples the read target latency feature
enable is set the same as the delayed transaction feature
enable.
Delayed Transactions
and Target Latency
Disabled
This example assumes that a memory read transaction is
initiated by a PCI master and that the AMD-761™ system
controller is unable to return data within the specified 32 PCI
clock latency.
1. The AMD-761 system controller initiates a memory read to
the memory controller and simultaneously issues a probe to
the processor. The memory subsystem is unable to return
the data within 32 PCI clocks, so it continues to hold the bus
(DEVSEL# active, STOP#, and TRDY# inactive).
Chapter 5
PCI Bus Interface
197
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
24081D—February 2002
2. A second PCI master requests the bus to access main
memory, and it receives a bus grant from the AMD-761
system controller PCI arbiter, but it must wait until the
memory read cycle initiated by the previous master is
completed. If this master’s cycle was targeted to another
PCI agent, it still could not begin the transaction because
the bus is tied up by the previous master and the AMD-761
system controller.
3. Some number of PCI clocks later, the memory subsystem
returns read data to the master completing the transaction.
The bus goes idle, so the next master begins its transaction.
Delayed Transactions
and Target Latency
Enabled
This example assumes that a memory read transaction is
initiated by a PCI master and that the AMD-761 system
controller is unable to return data within the specified 32 PCI
clock latency.
1. The AMD-761 system controller latches the memory read
command and the address, and initiates a memory read to
the memory controller and simultaneously issues a probe to
the processor. The memory subsystem is unable to return
the data within 32 PCI clocks, so it asserts the STOP# signal
while TRDY# remains inactive. This action causes the
master that originated the cycle to disconnect, and it must
re-arbitrate for the bus. Meanwhile, the AMD-761 system
controller memory controller continues to process the
enqueued memory read transaction.
2. A second PCI master’s bus request is now granted.
• If the request is a read from main memory, the AMD-761
system controller retries the cycle but does not queue
the transaction because it already has an outstanding
delayed transaction in progress.
• If the request is to a peer PCI agent, then the transaction
can continue in parallel to the memory cycle being
completed by the AMD-761 system controller.
3. The original master wins bus arbitration and retries its read
command, and the AMD-761 system controller now
responds with the read data within the specified maximum
target read latency.
In summary, if compliance to the target latency rules is desired,
then it is recommended that delayed transactions enable and
the target latency bits are enabled.
198
PCI Bus Interface
Chapter 5
Preliminary Information
24081D—February 2002
5.1.2
AMD-761™ System Controller Software/BIOS Design Guide
Transaction Ordering Rules
The PCI Local Bus Specification, Revision 2.2, defines various
transaction ordering rules to accommodate the producerconsumer model and to prevent deadlock conditions on the bus
under certain conditions.
The AMD-761 system controller provides the ability to
optionally disable strict adherence to the transaction ordering
rules if desired. The ordering rules are defined such that data
and its associated flags are visible by any agent on any segment
of the PCI bus. In typical systems, however, this visibility is not
necessary, as both data and flags typically reside in main
system memory. It may be possible to achieve slightly better
PCI bus performance when ordering rules compliance is
disabled, because PCI masters attempting to read main
memory are not disconnected to force the flushing of posted
write FIFOs in the AMD-761 system controller.
Fi g u re 6 o n p a g e 2 0 1 i l l u s t ra t e s a n ex a m p l e s y s t e m
implementation with data and associated flags stored in
different locations. In this example, the flag is stored in main
memory (DRAM) and the data is stored in the PCI agent.
The sections that follow describe the behavior in a system with
and without ordering rules compliance.
With Ordering Rules
Enabled
Using Figure 6 as an example, the following case describes the
behavior of the AMD-761 system controller when ordering
rules are followed.
1. The processor writes data (memory write) destined to an
agent on the PCI bus, and the data is posted in the AMD-761
system controller PCI posting buffer.
2. The processor then sets a flag in memory, informing the PCI
agent that the data is written.
3. The PCI master reads the flag, but this action causes the
data previously written by the processor to be flushed from
the AMD-761 system controller posted write buffer. The PCI
master is disconnected by the AMD-761 system controller
(STOP# active with TRDY# inactive) to allow the AMD-761
system controller to write the data to the PCI agent.
Chapter 5
PCI Bus Interface
199
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
24081D—February 2002
4. The PCI master regains bus ownership and attempts to read
the flag again. This time it successfully reads the flag and
the previously posted write data has already been written to
the master’s target interface.
It should be noted that this configuration is rare, as most
systems place the data and the flag in main memory.
With Ordering Rules
Disabled
Using Figure 6 as an example, the following case describes the
behavior of the AMD-761 system controller when ordering
rules are not followed.
1. The processor writes data (memory write) destined to an
agent on the PCI bus, and the data is posted in the AMD-761
system controller PCI posting buffer.
2. The processor then sets a flag in memory, informing the PCI
agent that the data is written.
3. The PCI master reads the flag, but the associated data
(previously written by the processor) has not been flushed
from the AMD-761 system controller posted write buffer.
This situation results in a data incoherency.
Again, as in the case when ordering rules are enabled, note
that this configuration is rare, as most systems place the data
and the flag in main memory. The AMD-761 system controller
provides the ordering rules feature for compliance to the PCI
Local Bus Specification, Revision 2.2.
200
PCI Bus Interface
Chapter 5
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
24081D—February 2002
Northbridge
DRAM
CPU
FLAG
DATA
Producer
Data Posted in Northbridge
PCI Bus
PCI Agent
•
•
•
Consumer
Figure 6.
5.1.3
Producer (CPU) writes data to the agent (consumer), data is
posted in the bridge posting buffer.
Producer sets flag in memory.
Consumer reads flag, causing the posting buffer to be automatically flushed with ordering rules compliance enabled.
Example of System with Flag and Data Stored across PCI Bus Domain
Special Arbitration Considerations for the Southbridge
To accommodate legacy DMA as is supported in the AMD-766™
peripheral bus controller (the devices connected to the
AMD-761 system controller’s SBREQ# and SBGNT# pins), the
AMD-761 system controller makes special exceptions in the
arbitration for the Southbridge.
„
„
Chapter 5
The Southbridge is not preempted or disconnected when it
gains access to the PCI bus as a master. This design prevents
potential deadlock conditions that can occur with legacy
DMA. There are no BIOS requirements to enable or disable
this functionality.
Before winning bus arbitration, the AMD-761 system
controller’s internal memory read and write queues can
optionally be locked and flushed. This option is controlled
by the SB_Lock_Dis bit in the PCI Arbitration Control
register (Dev 0:F0:0x84, bit 8). This bit is cleared for normal
operation.
PCI Bus Interface
201
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
24081D—February 2002
By default, the AMD-761 system controller does not allow the
SBREQ# PCI request to be preempted by requests on the
normal REQ#[6:0] pins, and it does not disconnect the
Southbridge once it has started a transfer.
5.2
PCI Performance Optimization Options
In addition to transaction level options as listed in Section 5.1
on page 195, the AMD-761 system controller PCI bus interface
provides various system level options that can be used to tune
the system performance. Each of these options are described in
the following sections.
5.2.1
Read Prefetching
When the AMD-761 system controller is the target of PCI
memory read accesses to system memory, the AMD-761 system
controller’s PCI target interface initiates a probe of the
AMD Athlon™ processor’s cache and a read of eight quadwords
(a single cache line) from memory. Setting the read prefetching
bit (PCI_Pref_En, Dev 0:F0:0x84, bit 1) causes the AMD-761
system controller to prefetch another eight quadwords from
memory, speculating that the PCI master will request another
cache line at the next cache-aligned address.
The obvious advantage to read prefetching is that masters that
are reading multiple contiguous cache lines of data can stream
this data more effectively on the PCI bus. The disadvantage is
that it could result in wasted bandwidth of the memory
subsystem of the prefetched data that is purged because it was
not needed by the PCI master.
202
PCI Bus Interface
Chapter 5
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
24081D—February 2002
5.2.2
PCI Chaining
PCI chaining is a feature designed to optimize memory writes
from the processor to the PCI bus. Chaining simply causes
write combining at the PCI interface, such that four quadword
CPU memory writes to contiguous addresses are chained
together, resulting in a single PCI burst-write instead of
separate nonburst writes.
PCI chaining is enabled by the PCI_Chain_En bit in the PCI
A r b i t ra t i o n C o n t r o l re g i s t e r ( D e v 0 : F 0 : 0 x 8 4 ) . I t i s
re c o m me n d e d t h a t t h i s b i t a lways b e s e t fo r o p t i m a l
performance.
5.2.3
PCI Bus Parking
The PCI Local Bus Specification, Revision 2.2, requires that a
default bus owner be designated that always drives the bus to a
known value to prevent the bus from floating for long idle
periods. The AMD-761 system controller provides two options
for bus parking:
„
„
Park on the AMD-761 system controller—that is, CPU
accesses to PCI agents
Park on the last master that had bus tenure
Arbitration latency on an idle bus for the agent that has
default ownership (bus is parked on that agent) is zero PCI
clocks, whereas it is two PCI clocks for all other masters.
PCI bus parking is controlled by the Park_PCI bit in the PCI
A r b i t ra t i o n C o n t r o l re g i s t e r ( D e v 0 : F 0 : 0 x 8 4 ) . I t i s
recommended that this bit be cleared to 0 to force parking the
bus on the AMD-761 system controller.
Chapter 5
PCI Bus Interface
203
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
204
PCI Bus Interface
24081D—February 2002
Chapter 5
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
24081D—February 2002
6
AGP Interface
This chapter details some of the specific BIOS requirements for
programming the AMD-761™ system controller’s AGP
interface.
6.1
AGP Dynamic Compensation Requirements
To accommodate the high-speed requirements of 4X AGP rates,
the AMD-761 system controller provides circuitry designed to
automatically compensate for motherboard impedance on the
AGP interface over the range of temperature and voltage, by
dynamically adjusting the drive strength of the AMD-761
system controller I/O pads when 1.5-V signalling is selected by
the AGP card. This action requires proper initialization by
BIOS as described in this section. Two separate 32-bit
c o n f i g u ra t i o n re g i s t e rs a re u s e d t o c o n t ro l AG P I / O
characteristics:
1. AGP Dynamic Compensation register, Dev 0:F0:0xB4
2. AGP Compensation Bypass register, Dev 0:F0:0xB8
Two modes are provided in the AGP compensation circuitry:
„
„
Automatically compensate once or at regular intervals by
adjusting the drive strengths of the AGP interface I/O cells.
In this case, BIOS is not required to program the drive
strength values.
Bypass the compensation and allow BIOS to write drive
strength values directly to the I/O cells.
The AMD-761 system controller allows the AGP strobe signals
(ADSTB[1:0], ADSTB[1:0]#) to be controlled independently
from all other AGP signals, including the ability to bypass
compensation for one set of signals while the other set is
compensated and vice-versa. The slew rate for the AGP
interface pins is also programmable by BIOS but is not changed
by the autocompensation logic.
Chapter 6
AGP Interface
205
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
24081D—February 2002
Additional compensation details are provided in the following
sections, and specific programming recommendations are
listed in Section 6.3 on page 209.
6.1.1
The AGP 4X Dynamic Compensation Register
AGP compensation is controlled by the AGP 4X Dynamic
Compensation register (Dev 0:F0:0xB4). This register contains
additional fields that are not directly related to compensation
but control various attributes of the AMD-761 system
controller AGP interface. This section provides additional
details about the fields related to compensation.
PVal, NVal
The PVal and NVal are read-only fields that can be used to
determine the drive strength values being automatically
written to the AGP I/O pads by the compensation logic. These
a p p ly o n ly t o t h e s i g n a l s u s e d fo r d a t a t ra n s f e r a n d
status/control—that is, not the AGP strobes. Typically the
values read back allow BIOS to determine if the correct
compensation resistors are installed on the motherboard.
Quantum_Cnt,
Always_Compensate
These fields are used to enable 1.5-V signalling compensation
at regular intervals, which is the suggested method for all 4X
AGP non-strobe signals. The Quantum_Cnt field can be
programmed for the maximum value (6.4 seconds), because it is
not expected that a more frequent adjustment is required. The
compensation is scheduled by the AMD-761 system controller
such that changing the drive strength values does not interfere
with AGP traffic.
If compensation bypass is selected for both the data transfer
and strobe pins (both the BYPXfer and BYPStrb bits are set in
the Compensation Bypass register) then these fields are
ignored.
Do_Compensate,
Comp3.3
206
These bits can be used in two cases:
„
To force a normal, single compensation cycle in 1.5-V
signalling mode to update the AGP I/O drive strengths, and
to prevent any further updates. In this case, the
Do_Compensate bit may be set (Comp3.3 should be
cleared), and the AGP interface must not be enabled until
this bit is read back as a 0, indicating that the compensation
cycle is complete.
AGP Interface
Chapter 6
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
24081D—February 2002
„
To force a single compensation cycle in 3.3-V signalling
mode (typically used for debug only). In this case, both the
Do_Compensate and the Comp3.3 bits should be set, and
the AGP interface must not be enabled until this bit is read
back as a 0, indicating that the compensation cycle is
complete.
If compensation bypass is selected for both the data transfer
and strobe pins (both the BYPXfer and BYPStrb bits are set in
the Compensation Bypass register) then these fields are
ignored.
6.1.2
Selection of 1.5- or 3.3-V AGP Signalling
The selection of the AGP signalling type (1.5 V versus 3.3 V) is
done by the AGP card via the TYPEDET# pin when it is
installed in the AGP slot. AGP cards operating in 3.3-V
signalling mode have their TYPDET# pin unconnected. Cards
operating in 1.5-V signalling mode have the pin connected to
VSS, forcing it to 0. The AMD-761 system controller latches the
value of the TYPEDET# pin at reset, and BIOS can read this
value in the Configuration Status register (Dev 0:F0:0x88,
bit 25). The allowable rates at each signalling level are shown
in Table 33 as listed in the Accelerated Graphics Port Interface
Specification, Revision 2.0.
Table 33.
Allowable AGP Rate versus Signalling Level
AGP Rate
1.5-V Signalling
3.3-V Signalling
1X
Supported
Supported
2X
Supported
Supported
4X
Supported
Not Supported
S e c t io n 6 . 3 o n p a g e 2 0 9 d e sc r i b e s t h e re c o m m e n d e d
initialization sequence for reading this value and configuring
various AMD-761 system controller parameters accordingly.
Chapter 6
AGP Interface
207
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
6.2
24081D—February 2002
Feature Override Bits for AGP Cards
The AMD-761 system controller supports 1X, 2X, and 4X AGP
rates as well as fast writes. The capability to support these
features is normally reported to the operating system via the
AGP Status register (Dev 0:F0:0xA4) as defined by the
Accelerated Graphics Port Interface Specification, Revision 2.0.
The operating system is thus able to determine and select the
highest rate supported by both the AGP card and the AMD-761
system controller.
The AGP interface of the AMD-761 system controller includes
two configuration bits that can be used to override the AGP
Status register and to prevent reporting 4X and fast write
capability. These bits are required to allow operation with AGP
cards that operate with 3.3-V signalling, but still report 4X
capability to the operating system. The problem thus created is
because the operating system attempts to place the card and
the AMD-761 system controller into 4X mode, but this speed is
not supported when 3.3-V signalling is selected. The solution is
for the AMD-761 system controller to report capability of a
maximum of 2X AGP speed in this configuration.
The two override bits are described below, and specific
programming recommendations are listed in Section 6.3.
4X_Override
This bit is used to force the 4X rate bit to 0 in the AGP Status
register (Dev 0:F0:0xA4, bit 2). After reset, the rate field in the
AGP Status register is set to all 1s, indicating support for a
maximum of 4X AGP speed. Setting the 4X_Override bit
automatically forces this field to 011, indicating a maximum of
2X support. This override mechanism is required because the
AGP Status register is defined as a read-only register in the
AGP specification.
FW_Enable
This bit indirectly enables fast write support in the AMD-761
system controller. Fast write support is reported to the
operating system through the AGP Status register as described
above for the rate field, but the FW status bit in the AGP Status
register defaults to 0 (not supported) in the AMD-761 system
controller. The FW_Enable bit should be set if this feature is
desired.
Section 6.3 provides guidelines for setting these bits.
208
AGP Interface
Chapter 6
Preliminary Information
24081D—February 2002
6.3
AMD-761™ System Controller Software/BIOS Design Guide
BIOS Initialization Requirements
This section lists the steps in an algorithm recommended to
properly configure the AMD-761 system controller AGP fast
write and rate features, as well as the compensation and slew
rate values.
This BIOS algorithm must properly detect the AGP card’s
signalling type (1.5 V or 3.3 V) and enable the appropriate
features as listed in the steps below. Note that these steps are
require before the AGP interface is enabled.
1. Detect the signalling level (1.5 V or 3.3 V) by reading the
value of the TYPEDET# pin that was latched by the
AMD-761 system controller at reset. This value can be read
in the Configuration Status register, Dev 0:F0:0x88, bit 25.
• If 0, then 1.5-V signalling is selected by the AGP card. If
1, then 3.3-V signalling is used.
2. Configure the override bits according to the signalling level
as listed in Table 34 on page 210 and the following notes.
• If 1.5 V, then the 4X_Override bit should be cleared, and
the FW_Enable bit should be set in the AGP 4X Dynamic
Compensation register (Dev 0:F0:0xB4, bits 6 and 7,
respectively). This action causes the AGP Status register
(Dev 0:F0:0xA4) to report 4X and fast write capability to
the operating system.
• If 3.3 V, then the 4X_Override bit should be set, and the
FW_Enable bit should be cleared in the AGP 4X
Dynamic Compensation register (Dev 0:F0:0xB4, bits 6
and 7, respectively). This action causes the AGP Status
register (Dev 0:F0:0xA4) to report a maximum rate of 2X,
and no fast write capability to the operating system.
3. Program the appropriate compensation, drive strength,
bypass, and slew rates to the AGP I/O pads in the AGP 4X
Dynamic Compensation and AGP Compensation Bypass
register according to Table 34 below.
Chapter 6
AGP Interface
209
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
Table 34.
AGP I/O Settings for 1.5- and 3.3-V Signalling
Register
Dev 0:F0:0xB4
Dev 0:F0:0xB8
6.4
24081D—February 2002
Bit/Field Name
Bits
1.5-V Value
TYPEDET# = 0
3.3-V Value
TYPEDET# = 1
FW_Enable
[7]
1
0
4X_Override
[6]
0
1
Comp3.3
[5]
0
0
PCI
[2]
0
0
Always_Compensate
[1]
1
0
Do_Compensate
[0]
0
0
BYP_PDrvXfer
[31:28]
Don’t Care
Don’t Care
BYP_NDrvXfer
[27:24]
Don’t Care
Don’t Care
BYPXfer
[23]
0
0
PSlewXfer
[19:18]
11
11
NSlewXfer
[17:16]
11
11
BYP_PDrvStrb
[15:12]
1111
Don’t Care
BYP_NDrvStrb
[11:8]
1111
Don’t Care
BYPStrb
[7]
1
0
PSlewStrb
[3:2]
11
11
NSlewStrb
[1:0]
11
11
AGP Miniport Driver Requirements
AMD has found that some early generation 4x AGP cards were
not consistently implemented using published 4x AGP
guidelines for AGP signal impedance and routing. These AGP
cards do not work reliably with the default AGP drive-strengths
of the AMD-761 system controller. As a result, AMD has
developed a mini-port solution to adjust the AMD-761 system
controller AGP drive strengths to the optimal levels for these
early generation AGP cards as identified by the vendor and
device ID in PCI configuration space. AMD does not plan for
any current or future generation AGP cards to experience any
incompatibilities with the AMD-761 system controller. If a card
is identified that requires a drive strength change, the AMD
mini-port or the AGP card is updated to allow compatibility.
210
AGP Interface
Chapter 6
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
24081D—February 2002
7
Recommended BIOS Settings
This chapter provides the recommended BIOS settings for the
initialization of some of the key AMD-761™ system controller
configuration registers.
Registers that change based on the system implementation,
such as memory space and sizing, AGP GART region, DDR
DIMM timing, etc., are not included here because they are very
platform-specific.
The following notes apply to the recommended settings tables
in this section:
„
„
„
„
All items keyed as BOLD CAPITALS should be set or
controlled by BIOS. This is mandatory. No setting can be
assumed by default.
Refer to the actual configuration register descriptions for
details of each bit. These can be found in “AMD-761™
System Controller Programmer’s Interface” on page 9 of this
document.
The final and precise definition of bits in the SPD of a DDR
DIMM can be found in JEDEC reference materials and
specifications.
Values that are shown as x..xh or x..xb must be set by BIOS.
Numerical Values shown with h or b are preferred settings.
For any system enabling the S3 state, a number of core logic
PCI configuration registers and processor MSRs must be saved
or restored prior to suspending or restoring S3. Also, certain
hidden bits must be unmasked. These requirements apply to all
p l a t fo r m s re g a rdl e s s o f s e g m e n t a n d w h e t h e r o r n o t
AMD PowerNow!™ is used.
Chapter 7
Recommended BIOS Settings
211
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
7.1
24081D—February 2002
PCI Bus 0, Device 0, Function 0 Registers
PCI Bus 0, Device 0, contains configuration registers that are
mostly specific to the AMD-761 system controller and its
processor, DDR SDRAM, AGP, and PCI bus interfaces. The Bus
0, Device 0 space contains two separate functions as follows:
212
„
Function 0 contains standard PCI configuration space,
timing and arbitration control for each interface, and
memory decode registers.
„
Function 1 contains DDR drive strength control and
calibration control for the programmable delay lines (PDLs)
of the DRAM interface.
Recommended BIOS Settings
Chapter 7
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
24081D—February 2002
Registers
----Bits
Register Bit Name
0x0x0x00h
Initialized/
Required
Value
Actual
Value
Key
fcn( )
Notes
PCI ID
Single-processor DDR
Northbridge
AMD
31:16
Device ID
700Eh
r
15:0
Vendor ID
1022h
r
PCI Command and Status
PERR
0b
r
SERR Sent
yb
c
Master ABRT
Target ABRT
Target ABRTS Signaled
DEVSEL_Timing
Data_PERR
FastB2B
UDF
66M
Cap_Lst
Reserved
FBACK
SERR, System Error Enable
Step
PERR
VGA Palette Snoop
MWINV
SCYC
MSTR
MEM
IO
yb
yb
0b
01b
0b
0b
0b
0b
1b
000h
0b
yb
0b
0b
0b
0b
0b
1b
1b
0b
u
u
r
r
r
r
r
r
r
r
u
r
r
r
r
r
r
B
r
0 = Disable, 1 = Enable
PCI Rev ID and Class Code
Class Code
Sub_Class Code
Prog. I/F
Revision ID
06h
00h
00h
1yh
r
r
r
r
Bridge device
Host/PCI bridge
Host/PCI bridge
Rev B1 = 11h, B2=12h, B3=13h
0x0x0x04h
31
30
29
28
27
26:25
24
23
22
21
20
19:10
9
8
7
6
5
4
3
2
1
0
0x0x0x08h
31:24
23:16
15:8
7:0
KEY:
Chapter 7
B= Mandatory BIOS function
A= AGP setup by BIOS
P= Power management setup by BIOS o = Setup by OS or OS driver
r = Hardcoded and reserved
u = PCI operational user interface
Recommended BIOS Settings
Not supported
R/W/1C, from AMD-761™
system controller
R/W/1C, from bus master
R/W/1C, from bus master target
Not supported
PCI memory access enable
IO access disable on PCI bus
c = Calculated/set by AMD-761™ internal logic
F = Performance enhancement set by BIOS
E = Elective BIOS function
213
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
Registers
----Bits
0x0x0x0Ch
31:24
23:16
15:8
7:0
0x0x0x10h
31:25
Description
PCI Latency Timer and
Header Type
Reserved
Header_Type
Lat_Timer
Reserved
BAR0:AGP Virtual Address Space
AGP Base Address Register 0
GART AGP Aperture Address
24:4
Base Address Low
3
2:1
Flags BAR0 mem as Prefetchable
BAR0 Type mem as 32 bits
Flags BAR0 as MEMORY
Address Space
0
0x0x0x14h
31:12
11:4
3
2:1
0
KEY:
214
Initialized/
Required
Value
BAR1:GART Memory Mapped
Register Base
GART Memory Mapped Base
Address Register
Settable portion of Address
GART Memory Mapped Base
Address Register Low, hardwired
to force 4 Kbytes
BAR1 mem Prefetchable
BAR1 Type mem as 32 bits
Flags BAR1 as MEMORY
24081D—February 2002
Actual
Value
Key
fcn( )
Notes
00h
00h
20h
00h
r
r
B
r
xxxx_xxxb
A
0b00_000h
r
1b
00b
r
r
Always 0 = 32 Mbytes
minimum
PCI specification
PCI specification
0b
r
PCI specification
xxxx_xh
A
00h
r
1b
00b
0b
r
r
r
B= Mandatory BIOS function
A= AGP setup by BIOS
P= Power management setup by BIOS o = Setup by OS or OS driver
r = Hardcoded and reserved
u = PCI operational user interface
Recommended BIOS Settings
PCI specification
PCI specification
PCI specification
c = Calculated/set by AMD-761™ internal logic
F = Performance enhancement set by BIOS
E = Elective BIOS function
Chapter 7
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
24081D—February 2002
Description
Initialized/
Required
Value
AGP/PCI Capabilities Pointer
Reserved
000000h
r
Capabilities Pointer
A0h
r
Extended BIU Control
Reserved
P0_WrDataDly
Reserved
000h
yyyb
0b
r
r
r
Registers
----Bits
0x0x0x34h
31:8
7:0
0x0x0x44h
31:11
10:8
7:4
Actual
Value
Key
P0_2BitPF
1b
B
2:0
Reserved
0b
B
0000h
r
15:14
13
12
ECC Mode/Status
Reserved
SERR_Enable
xxb
B
Reserved
ECC_Diag
0b
0b
r
B
xxb
B
Must be set for
AMD Athlon™ processor
Must be set by BIOS
00b = ECC/SERR Disabled
1xb = SERR on Multi_Bit Errors
x1b = SERR on Single Bit Errors
See SERR# 0x0x0x4[8]
ECC_Mode
11:10
SPD # 11
9:8
ECC_Status
00b
B
7:4
3:0
ECC_CS_MED
ECC_CS_SED
yh
yh
c
c
KEY:
B= Mandatory BIOS function
A= AGP setup by BIOS
P= Power management setup by BIOS o = Setup by OS or OS driver
r = Hardcoded and reserved
u = PCI operational user interface
Chapter 7
Recommended BIOS Settings
Notes
AGP function pointer
First item in AGP
capabilities list
3
0x0x0x48h
31:16
fcn( )
SPD
0 = Disable, 1= Enable
00b = NO ECC or ECC Disabled
01b = Data Errors Reported
10b = Data Errors Corrected
for Memory and PCI /AGP
11b = Data Errors Corrected
and Memory Scrubbed
00b = No Error
x1b =MED Multi Bit Error
Detect
1xb =SED Single Bit Error
Detect
R/W/1C
CS of first MED
CS of first SED
c = Calculated/set by AMD-761™ internal logic
F = Performance enhancement set by BIOS
E = Elective BIOS function
215
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
Registers
----Bits
0x0x0x4Ch
31:04
4:3
Description
Actual
Value
Key
fcn( )
Notes
PCI Control
Reserved
Reserved
0000h
00b
r
B
2
PCI_DT_En
0b
B
1
PCI_OR_EN
0b
B
0
Func1_En
0b
B
31:24
23:20
19:16
AMD Athlon™ System Bus
Dynamic Compensation
Reserved
PVal
NVal
00h
yh
yh
r
c
c
15:12
Byp_P
0h
B
11:8
Byp_N
0h
B
7:5
4
3:0
SlewCntl
Byp
Reserved
011b
0b
0h
B
B
r
KEY:
B= Mandatory BIOS function
A= AGP setup by BIOS
P= Power management setup by BIOS o = Setup by OS or OS driver
r = Hardcoded and reserved
u = PCI operational user interface
0x0x0x50h
216
Initialized/
Required
Value
24081D—February 2002
Recommended BIOS Settings
Must be set by BIOS
0= Disable Delayed
Transactions
1= Enable Delayed
Transactions
0= Disable Ordering Rules
Compliance
1 = Enable PCI Ordering
Rules Compliance
1= Enable 0x0x1xRR Access
P Transistor Value in Use
N Transistor Value in Use
P Transistor Value Used if
Byp = 1
N Transistor Value Used if
Byp = 1
1 = Enable Byp_P and Byp_N
c = Calculated/set by AMD-761™ internal logic
F = Performance enhancement set by BIOS
E = Elective BIOS function
Chapter 7
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
24081D—February 2002
Registers
----Bits
0x0x0x54h
31
30
29
28
27
26
25:24
23
22:19
Initialized/
Required
Value
Description
Actual
Value
Key
fcn( )
xb
B
FSB
xb
B
SPD
xb
B
SPD
1b
B
xb
B
tWTR = Write Data In to Read
Command Delay
1b
B
tWR = Write Recovery Time
10b
B
xb
B
000_0b
r
SDRAM Timing
SPBWaitState
AddrTiming_A
SPD # 21
AddrTiming_B
SPD # 21
RD_Wait_State
Reg_DIMM_En
SPD # 21
tRRD = Active Bank A to Active
Bank Command Delay
SPD # 28
Reserved
SPD
SPD
18:16
001b
B
15:14
Page Hit request before a
nonPage hit
10b
B
13:12
Reserved
tRC = Bank Cycle Time
00b
r
tRAS + tRP
xxxb
B
FSB
and
SPD
xxb
B
FSB
SPD
8:7
KEY:
Chapter 7
or SPD# 41(new, not yet
implemented)
tRP = Precharge Time
SPD # 27
B= Mandatory BIOS function
A= AGP setup by BIOS
P= Power management setup by BIOS o = Setup by OS or OS driver
r = Hardcoded and reserved
u = PCI operational user interface
Recommended BIOS Settings
0 @ 100-MHz FSB
1 @ 133-MHz FSB
0 @ Unbuffered DIMM
1 @ Registered DIMM
0 @ Unbuffered
1 @ Registered
Must = 1
0 @ Unbuffered DIMM
1 @ Registered DIMM
0 = 1 Clock
1 = 2 Clocks
00b=1 Clock, 01b=Reserved
10b=2 Clocks, 11b=3 Clocks
0 = 2 Clocks
1 = 3 Clocks
000 = 0 cyc, 001 = 8 cyc (safe)
010 = 12 cyc, 011 = 16 cyc
100 = 24 cyc, 101 = 32 cyc
110 = 48 cyc, 111 = Disable
00 = 1 cyc, 01 = 4 cyc
10 = 8 cyc (safe), 11 = 16 cyc
Idle cycle to wait before
pre-charging the idle bank
Include bit 24 above
11:9
Notes
000 = 3 cyc, 001 = 4 cyc
010 = 5 cyc, 011 = 6 cyc
100 = 7 cyc, 101 = 8 cyc (safe)
110 = 9 cyc, 111 = 10 cyc
00 = 3 cyc (safe), 01 = 2 cyc
10 = 1 cyc, 11 = 4 cyc
c = Calculated/set by AMD-761™ internal logic
F = Performance enhancement set by BIOS
E = Elective BIOS function
217
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
Registers
----Bits
0x0x0x54h
6:4
Description
Initialized/
Required
Value
24081D—February 2002
Actual
Value
Key
1:0
KEY:
7.1.1
Notes
SDRAM Timing
tRAS = Minimum Bank Active
Time
SPD # 30
B
FSB
and
SPD
000 = 2 cyc, 001 = 3 cyc
010 = 4 cyc, 011 = 5 cyc
100 = 6 cyc
101 = 7 cyc (safe)
110 = 8 cyc, 111 = 9 cyc
xxb
B
FSB
and
SPD
00 = 3 cyc (optional on
DIMM, not recommended)
01 = 2 cyc, recommended
10 = 2.5 cyc, 11-reserved
xxb
B
FSB
and
SPD
00 = 1 cyc, 01 = 2 cyc
10 = 3 cyc (safe), 11 = 4 cyc
xxxb
tCL = CAS Latency
3:2
fcn( )
SPD # 25 or
# 23 or
#9
tRCD — RAS to CAS Latency
SPD # 29
B= Mandatory BIOS function
A= AGP setup by BIOS
P= Power management setup by BIOS o = Setup by OS or OS driver
r = Hardcoded and reserved
u = PCI operational user interface
c = Calculated/set by AMD-761™ internal logic
F = Performance enhancement set by BIOS
E = Elective BIOS function
Example Settings for Memory Timing
The table below provides example BIOS settings for the DRAM
Timing register, for both 100-MHz and 133-MHz bus speeds.
Note some register bits change based on the DIMM type:
„
„
U for Unbuffered DIMMs
R for registered DIMMs
Note also that SPD values observed to date are from production
DIMMs. Future additions and changes to the SPD bytes should
be expected.
218
Recommended BIOS Settings
Chapter 7
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
24081D—February 2002
0x0x0x54h
SDRAM Timing
31
30
29
28
27
26
SPBWaitState
AddrTiming_A SPD # 21
AddrTiming_B, SPD # 21
RD_Wait_State
Reg_DIMM_En, SPD # 21
tWTR = Write Data In to Read CMD
25:24
23
tWR = Write Recovery Time
tRRD =ActBnkAtoActBnk CMD
SPD # 28
22:19
100 MHz
133 MHz
U
U
R
R
0b
0b
0b
ns
1b
1b
1b
0b
0b
1b
0b
SPD
0 @ 100 MHz , 1 @ 133 MHz FSB
0 @ Unbuff, 1 @ Reg DIMM
0 @ Unbuff, 1 @ Reg DIMM
Must = 1
0 @ Unbuff, 1 @ Reg DIMM
0 = 1 Clock, 1 = 2 Clocks
00b=1 Clock, 01b=Reserved
10b=2 Clocks, 11b=3 Clocks
1b
1b
1b
1b
0b
1b
1b
1b
10b
10b
0b
0b
0000b
0000b
3Ch
15
0 = 2 Clocks, 1 = 3 Clocks
000 = 0 cyc, 001 = 8 cyc (safe)
010 = 12 cyc, 011 = 16 cyc
100 = 24 cyc, 101 = 32 cyc
110 = 48 cyc, 111 = Disable
00 = 1 cyc, 01 = 4 cyc
10 = 8 cyc, (safe) 11 = 16 cyc
18:16
Idle cycle to wait before
precharging the idle bank
001b
001b
15:14
Page Hit request before a
nonPage hit
10b
10b
00b
00b
100b
110b
to
111b
41h
to
46h
65
to
70
000 = 3 cyc, 001 = 4 cyc
010 = 5 cyc, 011 = 6 cyc
100 = 7 cyc, 101 = 8 cyc (safe)
110 = 9 cyc, 111 = 10 cyc
01b
00b
50h
20
00 = 3 cyc (safe), 01 = 2 cyc
10 = 1 cyc, 11 = 4 cyc
011b
100b
to
101b
2Dh
to
45
to
50
000 = 2 cyc, 001 = 3 cyc
010 = 4 cyc, 011 = 5 cyc
100 = 6 cyc, 101 = 7 cyc (safe)
110 = 8 cyc, 111 = 9 cyc
13:12
tRC = Bank Cycle Time
11:9
8:7
6:4
tRAS + tRP
or SPD# 41(new, not yet
implemented)
tRP = Precharge Time
SPD # 27
tRAS = Minimum Bank Active
Time
SPD # 30
tCL = CAS Latency
3:2
SPD # 25 (Not Available)
# 23
# 9
1:0
Chapter 7
tRCD — RAS to CAS Latency
SPD # 29
32h
---01b
01b
------01b
A0h
75h
10b
10b
--00b-10b
A0h
75h
01b
10b
50h
Recommended BIOS Settings
00 = 3 cyc (optional on DIMM,
not recommended)
01 = 2 cyc, recommended
10 = 2.5 cyc
11 = reserved
(See 00 above.)
20
00 = 1 cyc, 01 = 2 cyc
10 = 3 cyc (safe), 11 = 4 cyc
219
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
Registers
----Bits
0x0x0x58h
31
30
29
28
27
26
Description
Actual
Value
Key
fcn( )
Notes
MB
MB
MB
MB
MB
MB
0=Enable, 1=Disable
0=Enable, 1=Disable
0=Enable, 1=Disable
0=Enable, 1=Disable
0=Enable, 1=Disable
0=Enable, 1=Disable
Set to start memory
controller.
All other memory config bits
should be set before setting
this bit. Stays set, can be
reset but not to 0.
SDRAM Mode/Status
Clk_Dis5 – DIMM Clock 5
Clk_Dis4 – DIMM Clock 4
Clk_Dis3 – DIMM Clock 3
Clk_Dis2 – DIMM Clock 2
Clk_Dis1 – DIMM Clock 1
Clk_Dis0 – DIMM Clock 0
xb
xb
xb
xb
xb
xb
E
E
E
E
E
E
25
SDRAM Init
1b
B
24
Reserved
0b
r
23
Mode register status
xb
B
22:21
STR_Control = Suspend to
RAM Control
xxb
B
20
19
18
Burst refresh enable
Ref_Dis = Refresh Disable
Reserved
0b
0b
0b
B
B
B
17:16
15:8
KEY:
220
Initialized/
Required
value
24081D—February 2002
Cycles per (between) Refresh
SPD # 12
xxb
B
0_0h
r
B= Mandatory BIOS function
A= AGP setup by BIOS
P= Power management setup by BIOS o = Setup by OS or OS driver
r = Hardcoded and reserved
u = PCI operational user interface
Recommended BIOS Settings
To be set before or with
SDRAM Init. Causes writing
of the memory mode
register when SDRAM Init is
set. After setting, drops to 0
when function complete.
Cannot be set to 0.
Set <---> Last Power State
01b <---> MOFF, S4 or S5
10b <---> S3
Refer to “S3 Suspend to
RAM State Requirements”
on page 190 for details.
0-Disable, 1-Enable
1 = Disable Refresh = Debug Bit
FSB
and
SPD
@100 MHz FSB:
00 = 2K cyc, 01 = 1.5K cyc
10 = 1K cyc, 11 = 0.75K cyc
@133-MHz FSB:
00=1.5K cyc, 01=1.1K cyc
10=0.75K cyc, 11=0.37K cyc
c = Calculated/set by AMD-761™ internal logic
F = Performance enhancement set by BIOS
E = Elective BIOS function
Chapter 7
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
24081D—February 2002
Registers
----Bits
7
6
5
4
3
2
1
0
KEY:
Chapter 7
Initialized/
Required
Value
Description
CS7_X4Mode Chip-Select x4 Enable
SPD # 13
CS6_X4Mode Chip-Select x4 Enable
SPD # 13
CS5_X4Mode Chip-Select x4 Enable
SPD # 13
CS4_X4Mode Chip-Select x4 Enable
SPD # 13
CS3_X4Mode Chip-Select x4 Enable
SPD # 13
CS2_X4Mode Chip-Select x4 Enable
SPD # 13
CS1_X4Mode Chip-Select x4 Enable
SPD # 13
CS0_X4Mode Chip-Select x4 Enable
SPD # 13
Actual
Value
Key
fcn( )
Notes
xb
B
SPD
0=x8/x16, 1=x4 DIMM devices
xb
B
SPD
0=x8/x16, 1=x4 DIMM devices
xb
B
SPD
0=x8/x16, 1=x4 DIMM devices
xb
B
SPD
0=x8/x16, 1=x4 DIMM devices
xb
B
SPD
0=x8/x16, 1=x4 DIMM devices
xb
B
SPD
0=x8/x16, 1=x4 DIMM devices
xb
B
SPD
0=x8/x16, 1=x4 DIMM devices
xb
B
SPD
0=x8/x16, 1=x4 DIMM devices
B= Mandatory BIOS function
A= AGP setup by BIOS
P= Power management setup by BIOS o = Setup by OS or OS driver
r = Hardcoded and reserved
u = PCI operational user interface
Recommended BIOS Settings
c = Calculated/set by AMD-761™ internal logic
F = Performance enhancement set by BIOS
E = Elective BIOS function
221
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
Registers
----Bits
Initialized/
Required
Value
Description
24081D—February 2002
Actual
Value
Key
fcn( )
Notes
0x0x0x60h
31
30:28
27:25
24:22
21:19
BIU0 Status/Control
Probe enable for CPU0
Reserved
Xca_Probe_Cnt
Xca_RD_Cnt
Xca_WR_Cnt
18
AMD Athlon system bus halt
disconnect enable
0b
B
17
AMD Athlon system bus stop
grant disconnect enable
1b
B
110b
B
0011b
r
1b
B
0=Disable, 1=Enable
yyb
yyyyb
yb
yyb
r
r
r
r
From init logic
From init logic
From init logic
From init logic
0b
B
0=Delay groups 1 and 3
1=No delays
16:14
13:10
9
8:7
6:3
2
1:0
0x0x0x64h
31
222
1b
000b
010b
110b
110b
Probe limit
Ack limit
0000 = 1 un-acked command
0001 = 2.......
Bypass_ En
Super Bypass Enable
SysDC_Out_ delay
SysDC_In_ delay
WR2_RD
RD2_WR
B
B
B
B
B
0=Disable, 1=Enable
0=Disable 1=Enable
Refer to “Power
Management” on page 185
for details.
0=Disable, 1=Enable
Refer to “Power
Management” on page 185
for details.
0-7 = 1 to 8 probes
110b = 7 recommended
This field should be used to
set up SysAckLimit in
AMD Athlon™
(+1 to this value) (SYSCFG)
BIU0 SIP
ClkFwd Offset
yyyb
yy_yyyyh
30:0
RO from Init/SIP logic
KEY:
B= Mandatory BIOS function
A= AGP setup by BIOS
P= Power management setup by BIOS o = Setup by OS or OS driver
r = Hardcoded and reserved
u = PCI operational user interface
Recommended BIOS Settings
r
c = Calculated/set by AMD-761™ internal logic
F = Performance enhancement set by BIOS
E = Elective BIOS function
Chapter 7
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
24081D—February 2002
Registers
----Bits
0x0x0x70h
31:19
18
17:11
Initialized/
Required
Value
Description
Actual
Value
Key
MRO Status/Control
Reserved
0b
r
Self_Ref_En
1b
B
0000000b
B
Reserved
10
PCI pipe enable
1b
B
9
PCI Block Write Enable
1b
B
000h
B
8:0
0X0X0X80h
31:17
16
15:8
7:0
KEY:
Chapter 7
Reserved
fcn( )
Notes
Enable memory self refresh
for S1/S3 states.
0 = MRO checks
outstanding read probe
before PCI transactions
1 = MRO pipelines PCI
transactions
0 = BIU does RID/INV
probes, forcing MRO MWQ
to wait for data movement
1 = BIU does NOP/INV probes
for PCI full-block writes
Who AM I
Reserved
BIU0 present
First AMD Athlon system bus ID
Who AM I
00b
000h
1b
00h
00h
B= Mandatory BIOS function
A= AGP setup by BIOS
P= Power management setup by BIOS o = Setup by OS or OS driver
r = Hardcoded and reserved
u = PCI operational user interface
Recommended BIOS Settings
r
c
c
c
c = Calculated/set by AMD-761™ internal logic
F = Performance enhancement set by BIOS
E = Elective BIOS function
223
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
Registers
----Bits
0x0x0x84h
31:24
23
22:18
Description
Actual
Value
Key
fcn()
Notes
PCI Arbitration Control
AGP VGA BIOS address decode
0Fh
A
Tgt_Latency
0b
B
000_00b
r
Reserved
17
AGP Chaining
1b
B
16
PCI Chaining
1b
B
15
MDA Support
0b
A
14
PCI Write-Post retry
1b
B
13
AGP Write Post retry
1b
B
12
Dis Rd Data Err
1b
B
KEY:
224
Initialized/
Required
Value
24081D—February 2002
B= Mandatory BIOS function
A= AGP setup by BIOS
P= Power management setup by BIOS o = Setup by OS or OS driver
r = Hardcoded and reserved
u = PCI operational user interface
Recommended BIOS Settings
0x0x0
x84[3]
System config dependent
Bit 31: 0D_C000 = 0D_FFFF
Bit 30: 0D_8000 = 0D_BFFF
…
Bit 24: 0C_0000 = 0C_3FFF
One or more of these bits
should be set if an AGP card
has a ROM BIOS.
0=AMD-751™ System
Controller-Compatible
1=PCI Maximum Target
Latency Rule. When =1,
0x0x0x84[3] must = 0.
Enabled = 1, when set CPU
writes to AGP are chained
Enabled = 1, when set CPU
writes to PCI are chained
Enabled = 1, allows
monochrome adapter for
AGP device driver debug.
Normally 0. See AMD-761™
System Controller Data
Sheet, order# 24088, for
information.
1 = Enables retry on PCI if
there are pending posted
writes
1 = Enables retry on AGP if
there are pending posted
writes
0 = Returns read data error
to processor on master
abort or target abort
1 = AMD-761™ system
controller returns all 1s on
data read error
c = Calculated/set by AMD-761™ internal logic
F = Performance enhancement set by BIOS
E = Elective BIOS function
Chapter 7
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
24081D—February 2002
Registers
----Bits
Description
Initialized/
Required
Value
Actual
Value
Key
11
Dis AGP Early Probe
0b
A
10
Dis PCI Early Probe
0b
B
9
Dis AGP arbiter pipelining
0b
A
8
Southbridge lock disable
0b
B
7
PM register enable
xb
P
6
15-Mbytes hole enable
xb
B
5
14-Mbytes hole enable
xb
B
4
EV6 mode
1b
B
3
Target latency timer disable
1b
B
2
ApcPreEn
0b
B
1
PciPreEn
0b
B
0
ParkPCI
0b
B
KEY:
Chapter 7
B= Mandatory BIOS function
A= AGP setup by BIOS
P= Power management setup by BIOS o = Setup by OS or OS driver
r = Hardcoded and reserved
u = PCI operational user interface
Recommended BIOS Settings
fcn( )
0x0x
0x84
[23]
Notes
1 = Disable early snoop
from AGP master running a
PCI cycle to memory
1 = Disable early probe
request for write cycles
from an external PCI master
1 = Disable AGP arbiter from
pipelining grants onto bus
1 = Disable flushing function
performed before granting
bus to the Southbridge
1 = Enables R/W accesses to
PM register at 0:0x18 BAR2
– AGP Power management
1 = Enable a memory hole
at 15-16 Mbytes
1 = Enable a memory hole
at 14-15 MBytes
1 = Enable PCI decoding in
EV6 mode. Used for
opening buffers in 640K to
1-Mbyte memory address
space. Legacy USB/SCSI
devices sometimes need
this capability.
1 = Disable AMD-751™
system controller target
latency timer on both PCI
and AGP’s PCI interfaces
1 = Disables AMD-751
system controller to prefetch
data from SDRAM when a
PCI master on AGP bus reads
from main memory
1 = Enables AMD-751
system controller to prefetch
data from SDRAM when a
PCI master on PCI bus reads
from main memory
0 = PCI arbiter parks on
processor accesses to PCI
1 = Enables parking on an
external PCI master
c = Calculated/set by AMD-761™ internal logic
F = Performance enhancement set by BIOS
E = Elective BIOS function
225
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
Registers
---Bits
0x0x0x88h
31:29
28:26
Config Status
AGP_Clk_Mux
Sys_Clk_Mux
Actual
Value
Key
yyyb
yyyb
fcn( )
Notes
r
r
25
Type_Det
yb
r
24
23
22
S2K_Thresh
K7_PP_En
IG_PP_En
yb
1b
1b
r
r
r
21:20
Clk_Speed
yyb
r
19:18
17:16
15
14
13
12
11:8
7
Reserved
S2K_Bus_Len
Tristate_En
Nand_En
Bypass_PLLs
Dis_Divider
Reserved
Sip_ROM
yyb
yyb
yb
yb
yb
yb
yh
yb
r
r
r
r
r
r
r
r
6
Reg_DIMM_En
yb
r
5
4
3:0
In_Clk_En
Out_Clk_En
CPU0_Divider
yb
yb
yh
r
r
r
xxh
B
000_0000h
r
0x0x0x9Ch
226
Description
Initialized/
Required
Value
24081D—February 2002
0=1.5-V AGP Card
Signalling
1=3.3-V AGP Card
Signalling
FSB speed:
00b=100 MHz
01b=66 MHz
10b= Reserved
11b=133 MHz
0=Unbuffered,
1=Registered
PCI Top of Memory
31:24
PCI Memory Top
23:0
Reserved
KEY:
B= Mandatory BIOS function
A= AGP setup by BIOS
P= Power management setup by BIOS o = Setup by OS or OS driver
r = Hardcoded and reserved
u = PCI operational user interface
Recommended BIOS Settings
Actual Memory Size
AD[31:24]
c = Calculated/set by AMD-761™ internal logic
F = Performance enhancement set by BIOS
E = Elective BIOS function
Chapter 7
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
24081D—February 2002
Registers
---Bits
0x0x0xA0h
31:24
23:20
19:16
15:8
7:0
Description
AGP Capability Identifier
Reserved
Major_Rev
Minor_Rev
Next_Pointer
Cap_ID
0x0x0xA4h
Max_ReqQ_Depth
23:10
Reserved
8:6
5
Actual
Value
Key
r
r
r
r
r
Null = Final item on list
02h = AGP
0Fh
r
Max # AGP Command
Requests
00b
SBA
Reserved
R4G
000h
r
1b
r
000b
0b
r
r
FW
yb
r
3
Reserved
0b
r
111b
r
0000_0h
00b
r
yb
o
yb
o
0x0x0xA8h
31:10
9
8
7:6
Rates
Reserved
SBA_Ena
Sideband addressing enable
AGP_Ena
AGP operation enable
0b
r
5
0b
r
4
Fast_Writes
yb
o
0b
yyyb
r
o
KEY:
Chapter 7
Side Band Addressing
Supported
0x0x
0B4
[7]
Fixed at 4 Gbytes Maximum
1 = Fast Write Support
0 = Fast Write Not Supported
AMD-761 system controller
supports 1x/2x/4x
AGP Command Register
Reserved
Greater than 4G address
support
3
2:0
Notes
00h
2h
0h
00h
02h
4
2:0
fcn( )
AGP Status Register
31:24
9
Initialized/
Required
Value
Reserved
AGP data transfer mode
B= Mandatory BIOS function
A= AGP setup by BIOS
P= Power management setup by BIOS o = Setup by OS or OS driver
r = Hardcoded and reserved
u = PCI operational user interface
Recommended BIOS Settings
Set by operating system
agent, not BIOS.
0 = Disable, 1 = Enable
Set by operating system
agent, not BIOS.
0 = Disable, 1 = Enable
0 = Disable, 1 = Enable
0x0x0
B4[7]
0=Disabled, 1=Enabled
001b=1x, 010b=2x,100b=4x
c = Calculated/set by AMD-761™ internal logic
F = Performance enhancement set by BIOS
E = Elective BIOS function
227
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
Registers
----Bits
0x0x0xACh
31:17
16
15:4
3:1
0
0x0x0xB0h
31:21
20
228
Initialized/
Required
Value
Description
AGP Virtual Address Space
Size Register
Reserved
VGA_IA_En
Reserved
VA_Size
AGP aperture size
GARTEna
AGP aperture base address enable
Gart/AGP Mode Control
Reserved
Reserved
24081D—February 2002
Actual
Value
yyyb 000h
Key
Notes
r
xb
B
000h
r
xxxb
A
xb
A
00h 000b
0b
r
B
19
NonGART Snoop
0b
B
18
Reserved
0b
B
17
GART page directory cache enable
0b
B
16
15:0
GART Index Scheme control
Reserved
yb
00h
o
r
KEY:
B= Mandatory BIOS function
A= AGP setup by BIOS
P= Power management setup by BIOS o = Setup by OS or OS driver
r = Hardcoded and reserved
u = PCI operational user interface
Recommended BIOS Settings
fcn( )
0 = No ISA aliasing on
address [15:0]
1 = Force AMD-751™
system controller to alias
ISA address [15:0]
000 = 32 Mbytes
001 = 64 Mbytes
010 = 128 Mbytes
011 = 256 Mbytes
100 = 512 Mbytes
101 = 1 Gbyte
110 = 2 Gbytes
128 Mbytes recommended
0 = Disable register
1 = Enable register 0:0x10
(BAR0) and start GART
Debug/Performance register
0 = Disable probes
1 = Enable probes
Debug/Performance
register
0 = Disable, 1 = Enable
0 = 2-Level, 1 = 1-Level Mode
c = Calculated/set by AMD-761™ internal logic
F = Performance enhancement set by BIOS
E = Elective BIOS function
Chapter 7
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
24081D—February 2002
Registers
----Bits
Description
Initialized/
Required
Value
Actual
Value
Key
31:28
PVal
yh
c
27:24
NVal
yh
c
Reserved
DisStrb
0b
0b
r
A
000001b
A
00h
r
21:16
Quantum_Cnt
15:8
Reserved
P transistor strength, xfer
I/O pads
N transistor strength, xfer
I/O pad
1=Disable ADSTB[1:0}#
100-ms intervals for
Always_Compensate
7
FW_Enable
xb
A
B4/BF
6
4x_Override
xb
A
B4/BF
5
Comp3.3
0b
A
Reserved
PCI drive strength
0b
0b
r
A
1
Always_Compensate
xb
A
0
Do_Compensate
0b
A
4:3
2
KEY:
Chapter 7
Notes
AGP 4x Dynamic
Compensation
0x0x0xB4h
23
22
fcn( )
B= Mandatory BIOS function
A= AGP setup by BIOS
P= Power management setup by BIOS o = Setup by OS or OS driver
r = Hardcoded and reserved
u = PCI operational user interface
Recommended BIOS Settings
B4/BB
0=Disable, 1=Enable
Controls 0x0x0xA4h[4] and
0x0x0xA8h[4]
Refer to “Feature Override
Bits for AGP Cards” on
page 208 for details.
0=Disabled,
1=Enabled -> Forces
0x0x0xA4h[0]->010b->2x AGP
Refer to “Feature Override
Bits for AGP Cards” on
page 208 for details.
Do_Compensate=1 shows
PVal and NVal when Comp3.3
=1 with 3.3-V AGP cards
Normally = 0
0=Disable, 1=Enable
Refer to “AGP Interface” on
page 205 for details.
Set to init dynamic
compensation
Clears when finished
c = Calculated/set by AMD-761™ internal logic
F = Performance enhancement set by BIOS
E = Elective BIOS function
229
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
Registers
----Bits
0x0x0xB8h
230
Initialized/
Required
Value
Description
24081D—February 2002
Actual
Value
Key
fcn( )
Notes
AGP Compensation Bypass
31:28
BYP_PDrvXfer
xh
A
B4/BB
27:24
BYP_NDrvXfer
xh
A
B4/BB
23
BYPXfer
xb
A
B4/BB
22:20
Reserved
000b
r
19:18
BYP_PSlewXfer
xxb
A
B4/BB
17:16
BYP_NSlewXfer
xxb
A
B4/BB
15:12
BYP_PDrvStrb
xh
A
B4/BB
11:8
BYP_NDrvStrb
xh
A
B4/BB
KEY:
B= Mandatory BIOS function
A= AGP setup by BIOS
P= Power management setup by BIOS o = Setup by OS or OS driver
r = Hardcoded and reserved
u = PCI operational user interface
Recommended BIOS Settings
P Drive bypass value for data
Refer to “BIOS Initialization
Requirements” on page 209
for details.
N Drive bypass value for data
Refer to “BIOS Initialization
Requirements” on page 209
for details.
1=Enable Drive Bypass for
Data
Refer to “BIOS Initialization
Requirements” on page 209
for details.
P slew rate value for data
Refer to “BIOS Initialization
Requirements” on page 209
for details.
N slew rate value for data
Refer to “BIOS Initialization
Requirements” on page 209
for details.
P drive bypass value for
strobes
Refer to “BIOS Initialization
Requirements” on page 209
for details.
N drive bypass value for
strobes
Refer to “BIOS Initialization
Requirements” on page 209
for details.
c = Calculated/set by AMD-761™ internal logic
F = Performance enhancement set by BIOS
E = Elective BIOS function
Chapter 7
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
24081D—February 2002
Registers
----Bits
Description
Initialized/
Required
Value
Actual
Value
Key
7
BYPStrb
xb
A
6:4
Reserved
000b
r
fcn( )
Notes
B4/BB
1=Enable Drive Bypass for
Strobes
Refer to “BIOS Initialization
Requirements” on page 209
for details.
3:2
BYP_PSlewStrb
xxb
A
B4/BB
1:0
BYP_NSlewStrb
xxb
A
B4/BB
KEY:
B= Mandatory BIOS function
A= AGP setup by BIOS
P= Power management setup by BIOS o = Setup by OS or OS driver
r = Hardcoded and reserved
u = PCI operational user interface
Chapter 7
Recommended BIOS Settings
P slew rate value for strobes
Refer to “BIOS Initialization
Requirements” on page 209
for details.
N slew rate value for strobes
Refer to “BIOS Initialization
Requirements” on page 209
for details.
c = Calculated/set by AMD-761™ internal logic
F = Performance enhancement set by BIOS
E = Elective BIOS function
231
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
7.1.2
24081D—February 2002
Examples: AGP Compensation Register Settings (0xB4-0xBB)
TYPEDET#
0x0x0x88[25]
Type_Det = 1 indicates that a card in the AGP slot is a 3.3-V
signalling card, which supports 2X AGP maximum. A 3.3-V
signalling card cannot run above 2X AGP.
Type_Det = 0 indicates that a card in the AGP slot is a 1.5-V
signalling card, which supports 4X AGP maximum. A 1.5-V
signalling card can run at 1X, 2X, or 4X AGP rates.
Refer to “AGP Interface” on page 205 for details on how the
value of the Type_Det bit and the settings of the AGP
c o m p e n s a t i o n re g i s t e r a f f e c t t h e s e t t i n g s i n AG P
Compensation Bypass register.
Type_Det = 1 2X AGP Maximum Type_Det =1 == 3.3-V card in AGP slot
0x0x0x..
B4h
B5h
B6h
B7h
B8h
B9h
BAh
BBh
48h
00h
01h
C5h
0Fh
FFh
0Fh
C5h
No Option
Type_Det = 0 4X AGP Maximum, Reduced to 2X AGP with 4X_Override
0x0x0x..
0x0x0x..
B4h
B5h
B6h
B7h
B8h
B9h
BAh
BBh
Option 1
4Ah
00h
01h
D8h
8Fh
FFh
04h
D8h
4x_Override and Always_Compensate
B4h
B5h
B6h
B7h
B8h
B9h
BAh
BBh
Option 2
48h
00h
01h
D8h
8Fh
FFh
84h
D8h
4x_Override and Bypass
Type_Det = 0 4xAGP Maximum, Options of Always Compensate, Bypass and Fast Writes
0x0x0x..
0x0x0x..
0x0x0x..
0x0x0x..
232
B4h
B5h
B6h
B7h
B8h
B9h
BAh
BBh
Option 1
02h
00h
01h
D8h
8Fh
FFh
04h
D8h
Always_Compensate
B4h
B5h
B6h
B7h
B8h
B9h
BAh
BBh
Option 2
82h
00h
01h
D8h
8Fh
FFh
04h
D8h
Always Compensate and Fast Writes
B4h
B5h
B6h
B7h
B8h
B9h
BAh
BBh
Option 3
00h
00h
01h
D8h
8Fh
FFh
84h
D8h
Bypass
B4h
B5h
B6h
B7h
B8h
B9h
BAh
BBh
Option 4
80h
00h
01h
D8h
8Fh
FFh
84h
D8h
Bypass and Fast Writes
Recommended BIOS Settings
Chapter 7
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
24081D—February 2002
Registers
----Bits
0x0x0xC0h
31:23
22:16
Initialized/
Required
Value
Description
Actual
Value
Key
fcn( )
Notes
Memory Base Address
Register 0
CS_Base
Chip-Select Base 0
Bank 0 base address
Starting address of the bank
Map to AD[31:23]
Reserved
xxh
xb
B
000b
0h
r
Set by memory sizing routines
0000_0000_0b = 0
0000_0001_0b = 16 Mbytes
0000_0010_0b = 32 Mbytes
0000_0011_0b = 48 Mbytes
0000_1000_0b = 128 Mbytes
0001_0000_0b = 256 Mbytes
0010_0000_0b = 512 Mbytes,
etc.
Set by memory sizing routines
0000_0000_1b = 16 Mbytes
0000_0001_1b = 32 Mbytes
0000_0011_1b = 64 Mbytes
0000_0111_1b = 128 Mbytes
0000_1111_1b = 256 Mbytes
0001_1111_1b = 512 Mbytes
0011_1111_1b = 1 Gbyte
0111_1111_1b = 1 Gbyte
15:7
CS_Mask
Chip-Select Mask 0
Bank 0 address mask
Sizes the bank
Map to AD[31:23]
6:3
Reserved
2:1
Addr_Mode
Size of Device = Size of Bank x
(Primary SDRAM Width /8)
xxb
B
Enable/Disable Bank 1
xb
B
01b=SDRAM device
<256 Mbits
10b=SDRAM device
>128 Mbits
00b and 11b are reserved
0=Disable CS, 1=Enable CS
xxh xb
000b 0h
xxh
xb
0h
xxb
xb
B
r
B
r
B
B
As 0x0x0xC0h above
As 0x0x0xC0h above
As 0x0x0xC0h above
As 0x0x0xC0h above
As 0x0x0xC0h above
As 0x0x0xC0h above
0
0x0x0xC4h
31:23
22:16
15:7
6:3
2:1
0
KEY:
Chapter 7
Memory Base Address
Register 1
Chip-Select Base 1
Reserved
Chip-Select Mask 1
Reserved
Addr_Mode
Enable/Disable Bank 1
xxh
xb
0h
B= Mandatory BIOS function
A= AGP setup by BIOS
P= Power management setup by BIOS o = Setup by OS or OS driver
r = Hardcoded and reserved
u = PCI operational user interface
Recommended BIOS Settings
B
r
SPD
# 31
and
13
c = Calculated/set by AMD-761™ internal logic
F = Performance enhancement set by BIOS
E = Elective BIOS function
233
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
Registers
----Bits
0x0x0xC8h
31:23
22:16
15:7
6:3
2:1
0
0x0x0xCCh
31:23
22:16
15:7
6:3
2:1
0
KEY:
Description
Actual
Value
Key
fcn( )
Notes
Memory Base Address
Register 2
Chip-Select Base 2
Reserved
Chip-Select Mask 2
Reserved
Addr_Mode
Enable/Disable Bank 2
xxh xb
000b 0h
xxh
xb
0h
xxb
xb
B
r
B
r
B
B
As 0x0x0xC0h above
As 0x0x0xC0h above
As 0x0x0xC0h above
As 0x0x0xC0h above
As 0x0x0xC0h above
As 0x0x0xC0h above
Memory Base Address
Register 3
Chip-Select Base 3
Reserved
Chip-Select Mask 3
Reserved
Addr_Mode
Enable/Disable Bank 3
xxh xb
000b 0h
xxh
xb
0h
xxb
xb
B
r
B
r
B
B
As 0x0x0xC0h above
As 0x0x0xC0h above
As 0x0x0xC0h above
As 0x0x0xC0h above
As 0x0x0xC0h above
As 0x0x0xC0h above
B= Mandatory BIOS function
A= AGP setup by BIOS
P= Power management setup by BIOS o = Setup by OS or OS driver
r = Hardcoded and reserved
u = PCI operational user interface
Memory Rules
234
Initialized/
Required
Value
24081D—February 2002
c = Calculated/set by AMD-761™ internal logic
F = Performance enhancement set by BIOS
E = Elective BIOS function
1. Memory must be organized so that the largest banks occupy the lowest
addresses.
2. All memory registers must be initialized, even when they are 0 memory
registers do not default to 0.
3. Unbuffered memories can be configured two deep, registered
memories can be configured four deep. In all cases, unused memory
registers must be zeroed.
Recommended BIOS Settings
Chapter 7
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
24081D—February 2002
Registers
----Bits
Initialized/
Required
Value
Description
Actual
Value
Key
fcn( )
Notes
0x0x0xD0h
31:23
22:16
15:7
6:3
2:1
0
Memory Base Address Register 4
Chip-Select Base 4
Reserved
Chip-Select Mask 4
Reserved
Addr_Mode
Enable/Disable Bank 4
xxh xb
000b 0h
xxh xb
0h
xxb
xb
B
r
B
r
B
B
As 0x0x0xC0h above
As 0x0x0xC0h above
As 0x0x0xC0h above
As 0x0x0xC0h above
As 0x0x0xC0h above
As 0x0x0xC0h above
0x0x0xD4h
31:23
22:16
15:7
6:3
2:1
0
Memory Base Address Register 5
Chip-Select Base 5
Reserved
Chip-Select Mask 5
Reserved
Addr_Mode
Enable/Disable Bank 5
xxh xb
000b 0h
xxh
xb
0h
xxb
xb
B
r
B
r
B
B
As 0x0x0xC0h above
As 0x0x0xC0h above
As 0x0x0xC0h above
As 0x0x0xC0h above
As 0x0x0xC0h above
As 0x0x0xC0h above
0x0x0xD8h
31:23
22:16
15:7
6:3
2:1
0
Memory Base Address Register 6
Chip-Select Base 6
Reserved
Chip-Select Mask 6
Reserved
Addr_Mode
Enable/Disable Bank 6
xxh xb
000b 0h
xxh
xb
0h
xxb
xb
B
r
B
r
B
B
As 0x0x0xC0h above
As 0x0x0xC0h above
As 0x0x0xC0h above
As 0x0x0xC0h above
As 0x0x0xC0h above
As 0x0x0xC0h above
0x0x0xDCh
31:23
22:16
15:7
6:3
2:1
0
Memory Base Address Register 7
Chip-Select Base 7
Reserved
Chip-Select Mask 7
Reserved
Addr_Mode
Enable/Disable Bank 7
xxh xb
000b 0h
xxh
xb
0h
xxb
xb
B
r
B
r
B
B
As 0x0x0xC0h above
As 0x0x0xC0h above
As 0x0x0xC0h above
As 0x0x0xC0h above
As 0x0x0xC0h above
As 0x0x0xC0h above
KEY:
Chapter 7
B= Mandatory BIOS function
A= AGP setup by BIOS
P= Power management setup by BIOS o = Setup by OS or OS driver
r = Hardcoded and reserved
u = PCI operational user interface
Recommended BIOS Settings
c = Calculated/set by AMD-761™ internal logic
F = Performance enhancement set by BIOS
E = Elective BIOS function
235
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
7.1.3
24081D—February 2002
PCI Bus 0, Device 0, Function 1 Registers
The Device 0, Function 1 registers are used for the purpose of
controlling the DDR SDRAM interface drive strengths, and
calibration of the Programmable Delay Lines (PDLs).
All Function 1 register bits are defaulted to an unknown value
as required for the AMD-761 system controller to support the
Advanced Configuration and Power Interface (ACPI) S3
(Suspend to RAM) state.
For proper operation, it is absolutely necessary that BIOS
initialize all Function 1 register bits.
Please obtain the AMD-761™ System Controller Revision Guide,
order# 23613, for the most current information for each silicon
revision.
236
Recommended BIOS Settings
Chapter 7
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
24081D—February 2002
Registers
----Bits
0x0x1x40h
31:8
Initialized/
Required
Value
Description
DDR PDL Calibration Control
Reserved
Actual
Value
Key
0000_000h
7
0b
B
6
Use_Act_Dly
Use Actual Delay
0b
B
5
Auto_Cal_En
Auto Calibration Mode
4
Act_Dly_Inh
Actual Delay Update Inhibit
0b
B
Reserved
00b
r
1:0
B
01b
B
DDR PDL Configuration Register 0
Clk_Dly
yyh
c
23:16
SW_Cal_Dly
xxh
B
15:8
7:0
Cal_Dly
Act_Dly
yyh
xxh
c
c
KEY:
B= Mandatory BIOS function
A= AGP setup by BIOS
P= Power management setup by BIOS o = Setup by OS or OS driver
r = Hardcoded and reserved
u = PCI operational user interface
0x0x1x44h
31:24
Chapter 7
Write 1=>Calibration
0=Calibration Complete
1=Calibration Not Complete
0=Disable,
1=Enable SW_Recal and
Auto_Cal_En Must = 0
When Use_Act_Dly = 1
0=Disable
1=Enable
Refer to AMD-761™ System
Controller Revision Guide,
order# 23613, for special
instructions for Revision B2
silicon.
0=Disable
1=Enable
Refer to AMD-761™ System
Controller Revision Guide,
order# 23613, for special
instructions for Revision B2
silicon.
1b
Auto_Cal_Period
Auto-Calibration Period
Recommended BIOS Settings
Notes
r
SW_Recal
Set after setting SW_Cal_Dly
3:2
fcn( )
00=10000 System Clocks
01=1000000 System Clocks
10=10000000 System Clocks
11=Reserved
FSB
Half Period of the System Clock
Delay for DQS:
100 MHz = 69h
133 MHz = 6Bh
SW_Cal_Dly in # of Buffers
From SW_Recal or Direct Write
c = Calculated/set by AMD-761™ internal logic
F = Performance enhancement set by BIOS
E = Elective BIOS function
237
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
Registers
----Bits
0x0x1x48h
31:24
Description
Actual
Value
Key
DDR PDL Configuration Register 1
Clk_Dly
yyh
c
23:16
SW_Cal_Dly
xxh
B
15:8
7:0
Cal_Dly
Act_Dly
yyh
xxh
c
c
DDR PDL Configuration Register 2
Clk_Dly
yyh
c
23:16
SW_Cal_Dly
xxh
B
15:8
7:0
Cal_Dly
Act_Dly
yyh
xxh
c
c
0x0x1x4Ch
31:24
0x0x1x50h
Clk_Dly
yyh
c
23:16
SW_Cal_Dly
xxh
B
15:8
7:0
Cal_Dly
Act_Dly
yyh
xxh
c
c
Notes
FSB
Half Period of the System Clock
Delay for DQS:
100 MHz = 69h
133 MHz = 6Bh
SW_Cal_Dly in # of Buffers
From SW_Recal or Direct Write
FSB
Half Period of the System Clock
Delay for DQS:
100 MHz = 69h
133 MHz = 6Bh
SW_Cal_Dly in # of Buffers
from SW_Recal or Direct Write
FSB
Half Period of the System
Clock
Delay for DQS:
100 MHz = 69h
133 MHz = 6Bh
SW_Cal_Dly in # of Buffers
from SW_Recal or Direct Write
DDR PDL Configuration Register 4
31:24
Clk_Dly
yyh
c
23:16
SW_Cal_Dly
xxh
B
15:8
7:0
Cal_Dly
Act_Dly
yyh
xxh
c
c
DDR PDL Configuration Register 5
Clk_Dly
yyh
c
23:16
SW_Cal_Dly
xxh
B
15:8
7:0
Cal_Dly
Act_Dly
yyh
xxh
c
c
KEY:
B= Mandatory BIOS function
A= AGP setup by BIOS
P= Power management setup by BIOS o = Setup by OS or OS driver
r = Hardcoded and reserved
u = PCI operational user interface
0x0x1x58h
31:24
fcn( )
DDR PDL Configuration Register 3
31:24
0x0x1x54h
238
Initialized/
Required
Value
24081D—February 2002
Recommended BIOS Settings
FSB
FSB
Half Period of the System
Clock
Delay for DQS:
100 MHz = 69h
133 MHz = 6Bh
SW_Cal_Dly in # of Buffers
From SW_Recal or Direct Write
Half Period of the System Clock
Delay for DQS:
100 MHz = 69h
133 MHz = 6Bh
SW_Cal_Dly in # of Buffers
From SW_Recal or Direct Write
c = Calculated/set by AMD-761™ internal logic
F = Performance enhancement set by BIOS
E = Elective BIOS function
Chapter 7
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
24081D—February 2002
Registers
----Bits
0x0x1x5Ch
31:24
Initialized/
Required
Value
Description
Actual
Value
Key
DDR PDL Configuration Register 6
Clk_Dly
yyh
c
23:16
SW_Cal_Dly
xxh
B
15:8
Cal_Dly
yyh
c
7:0
Act_Dly
xxh
c
DDR PDL Configuration Register 7
Clk_Dly
yyh
c
23:16
SW_Cal_Dly
xxh
B
15:8
Cal_Dly
yyh
c
7:0
Act_Dly
xxh
c
DDR PDL Configuration Register 8
Clk_Dly
yyh
c
23:16
SW_Cal_Dly
xxh
B
15:8
Cal_Dly
yyh
c
7:0
Act_Dly
xxh
c
DDR PDL Configuration Register 9
Clk_Dly
yyh
c
23:16
SW_Cal_Dly
xxh
B
15:8
Cal_Dly
yyh
c
7:0
Act_Dly
xxh
c
DDR PDL Configuration Register 10
Clk_Dly
yyh
c
23:16
SW_Cal_Dly
xxh
B
15:8
Cal_Dly
yyh
c
7:0
Act_Dly
xxh
c
KEY:
B= Mandatory BIOS function
A= AGP setup by BIOS
P= Power management setup by BIOS o = Setup by OS or OS driver
r = Hardcoded and reserved
u = PCI operational user interface
0x0x1x60h
31:24
0x0x1x64h
31:24
0x0x1x68h
31:24
0x0x1x6Ch
31:24
Chapter 7
Recommended BIOS Settings
fcn( )
FSB
Notes
Half Period of the Sys. Clk.
Delay for DQS:
100 MHz = 69h
133 MHz = 6Bh
SW_Cal_Dly in # of Buffers
From SW_Recal or
Direct Write
FSB
Half Period of the Sys. Clk.
Delay for DQS:
100 MHz = 69h
133 MHz = 6Bh
SW_Cal_Dly in # of Buffers
From SW_Recal or
Direct Write
FSB
Half Period of the Sys. Clk.
Delay for DQS:
100 MHz = 69h
133 MHz = 6Bh
SW_Cal_Dly in # of Buffers
From SW_Recal or
Direct Write
FSB
Half Period of the Sys. Clk.
Delay for DQS:
100 MHz = 69h
133 MHz = 6Bh
SW_Cal_Dly in # of Buffers
From SW_Recal or
Direct Write
FSB
Half Period of the Sys. Clk.
Delay for DQS:
100 MHz = 69h
133 MHz = 6Bh
SW_Cal_Dly in # of Buffers
From SW_Recal or
Direct Write
c = Calculated/set by AMD-761™ internal logic
F = Performance enhancement set by BIOS
E = Elective BIOS function
239
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
Registers
----Bits
0x0x1x70h
31:24
Description
Actual
Value
Key
DDR PDL Config Register 11
Clk_Dly
yyh
c
23:16
SW_Cal_Dly
xxh
B
15:8
7:0
Cal_Dly
Act_Dly
yyh
xxh
c
c
DDR PDL Config Register 12
Clk_Dly
yyh
c
23:16
SW_Cal_Dly
xxh
B
15:8
7:0
Cal_Dly
Act_Dly
yyh
xxh
c
c
DDR PDL Config Register 13
Clk_Dly
yyh
c
23:16
SW_Cal_Dly
xxh
B
15:8
7:0
Cal_Dly
Act_Dly
yyh
xxh
c
c
DDR PDL Config Register 14
Clk_Dly
yyh
c
23:16
SW_Cal_Dly
xxh
B
15:8
7:0
Cal_Dly
Act_Dly
yyh
xxh
c
c
KEY:
B= Mandatory BIOS function
A= AGP setup by BIOS
P= Power management setup by BIOS o = Setup by OS or OS driver
r = Hardcoded and reserved
u = PCI operational user interface
0x0x1x74h
31:24
0x0x1x78h
31:24
0x0x1x7Ch
31:24
240
Initialized/
Required
Value
24081D—February 2002
Recommended BIOS Settings
fcn( )
Notes
FSB
Half Period of the System Clock
Delay for DQS:
100 MHz = 69h
133 MHz = 6Bh
SW_Cal_Dly in # of Buffers
From SW_Recal or Direct Write
FSB
Half Period of the System Clock
Delay for DQS:
100 MHz = 69h
133 MHz = 6Bh
SW_Cal_Dly in # of Buffers
From SW_Recal or Direct Write
FSB
Half Period of the System Clock
Delay for DQS:
100 MHz = 69h
133 MHz = 6Bh
SW_Cal_Dly in # of Buffers
From SW_Recal or Direct Write
FSB
Half Period of the System Clock
Delay for DQS:
100 MHz = 69h
133 MHz = 6Bh
SW_Cal_Dly in # of Buffers
From SW_Recal or Direct Write
c = Calculated/set by AMD-761™ internal logic
F = Performance enhancement set by BIOS
E = Elective BIOS function
Chapter 7
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
24081D—February 2002
Registers
----Bits
0x0x1x8h
31:24
Initialized/
Required
Value
Description
Actual
Value
Key
DDR PDL Config Register 15
Clk_Dly
yyh
c
23:16
SW_Cal_Dly
xxh
B
15:8
7:0
Cal_Dly
Act_Dly
yyh
xxh
c
c
DDR PDL Config Register 16
Clk_Dly
yyh
c
23:16
SW_Cal_Dly
xxh
B
15:8
7:0
Cal_Dly
Act_Dly
yyh
xxh
c
c
DDR PDL Config Register 17
Clk_Dly
yyh
c
23:16
SW_Cal_Dly
xxh
B
15:8
7:0
Cal_Dly
Act_Dly
yyh
xxh
c
c
0x0x1x8h
31:24
0x0x1x8h
31:24
KEY:
Chapter 7
B= Mandatory BIOS function
A= AGP setup by BIOS
P= Power management setup by BIOS o = Setup by OS or OS driver
r = Hardcoded and reserved
u = PCI operational user interface
Recommended BIOS Settings
fcn( )
Notes
FSB
Half Period of the System Clock
Delay for DQS:
100 MHz = 69h
133 MHz = 6Bh
SW_Cal_Dly in # of Buffers
From SW_Recal or Direct Write
FSB
Half Period of the System Clock
Delay for DQS:
100 MHz = 69h
133 MHz = 6Bh
SW_Cal_Dly in # of Buffers
From SW_Recal or Direct Write
FSB
Half Period of the System Clock
Delay for DQS:
100 MHz = 69h
133 MHz = 6Bh
SW_Cal_Dly in # of Buffers
From SW_Recal or Direct Write
c = Calculated/set by AMD-761™ internal logic
F = Performance enhancement set by BIOS
E = Elective BIOS function
241
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
Registers
----Bits
0x0x1x8Ch
31:30
242
Initialized/
Required
Value
Description
24081D—February 2002
Actual
Value
Key
DDR DQS/MDAT Pad Config
Reserved
00b
r
29:27
PSlewMDAT
101b
B
26:24
NSlewMDAT
101b
B
23:20
Reserved
0h
r
19:18
PDrvMDAT
11b
B
17:16
NDrvMDAT
10b
B
15:14
Reserved
00b
r
13:11
PSlewDQS
101b
B
10:8
NSlewDQS
101b
B
7:4
Reserved
0h
r
3:2
PDrvDQS
11b
B
1:0
NDrvDQS
10b
B
KEY:
B= Mandatory BIOS function
A= AGP setup by BIOS
P= Power management setup by BIOS o = Setup by OS or OS driver
r = Hardcoded and reserved
u = PCI operational user interface
Recommended BIOS Settings
fcn( )
Notes
Slowest 000b <-> 111b Fastest
MDAT Rising Edge Slew Rate
Slowest 000b <-> 111b Fastest
MDAT Falling Edge Slew Rate
Weakest 00b<->11b Strongest
MDAT P Transistor Drv Strength
Weakest 00b<->11b Strongest
MDAT N Transistor Drv Strength
Slowest 000b <-> 111b Fastest
DQS Rising Edge Slew Rate
Slowest 000b <-> 111b Fastest
DQS Falling Edge Slew Rate
Weakest 00b<->11b Strongest
DQS P Transistor Drv Strength
Weakest 00b<->11b Strongest
DQS N Transistor Drv Strength
c = Calculated/set by AMD-761™ internal logic
F = Performance enhancement set by BIOS
E = Elective BIOS function
Chapter 7
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
24081D—February 2002
Registers
----Bits
Description
Initialized/
Required
Value
Actual
Value
Key
31:30
DDR CLK/CS Pad
Configuration
Reserved
00b
r
29:27
PSlewCLK
101b
B
26:24
NSlewCLK
101b
B
23:20
Reserved
0h
r
19:18
PDrvCLK
11b
B
17:16
NDrvCLK
10b
B
15:14
Reserved
00b
r
13:11
PSlewCS
101b
B
10:8
NSlewCS
101b
B
7:4
Reserved
0h
r
3:2
PDrvCS
11b
B
1:0
NDrvCS
10b
B
0x0x1x90h
KEY:
Chapter 7
B= Mandatory BIOS function
A= AGP setup by BIOS
P= Power management setup by BIOS o = Setup by OS or OS driver
r = Hardcoded and reserved
u = PCI operational user interface
Recommended BIOS Settings
fcn( )
Notes
Slowest 000b <-> 111b Fastest
CLK Rising Edge Slew Rate
Slowest 000b <-> 111b Fastest
CLK Falling Edge Slew Rate
Weakest 00b<->11b Strongest
CLK P Transistor Drv Strength
Weakest 00b<->11b Strongest
CLK N Transistor Drv Strength
Slowest 000b <-> 111b Fastest
CS Rising Edge Slew Rate
Slowest 000b <-> 111b Fastest
CS Falling Edge Slew Rate
Weakest 00b<->11b Strongest
CS P Transistor Drv Strength
Weakest 00b<->11b Strongest
CS N Transistor Drv Strength
c = Calculated/set by AMD-761™ internal logic
F = Performance enhancement set by BIOS
E = Elective BIOS function
243
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
Registers
----Bits
Actual
Value
Key
31:30
DDR CMDB/CMDA Pad
Configuration
Reserved
00b
r
29:27
PSlewCMDB
101b
B
26:24
NSlewCMDB
101b
B
23:20
Reserved
0h
r
19:18
PDrvCMDB
11b
B
17:16
NDrvCMDB
10b
B
15:14
Reserved
00b
r
13:11
PSlewCMDA
101b
B
10:8
NSlewCMDA
101b
B
7:4
Reserved
0h
r
3:2
PDrvCMDA
11b
B
1:0
NDrvCMDA
10b
B
KEY:
B= Mandatory BIOS function
A= AGP setup by BIOS
P= Power management setup by BIOS o = Setup by OS or OS driver
r = Hardcoded and reserved
u = PCI operational user interface
0x0x1x94h
244
Description
Initialized/
Required
Value
24081D—February 2002
Recommended BIOS Settings
fcn( )
Notes
Slowest 000b <-> 111b Fastest
CMDB Rising Edge Slew Rate
Slowest 000b <-> 111b Fastest
CMDB Falling Edge Slew Rate
Weakest 00b<->11b Strongest
CMDB P Transistor Drv Strength
Weakest 00b<->11b Strongest
CMDB N Transistor Drv Strength
Slowest 000b <-> 111b Fastest
CMDA Rising Edge Slew Rate
Slowest 000b <-> 111b Fastest
CMDA Falling Edge Slew Rate
Weakest 00b<->11b Strongest
CMDA P Transistor Drv Strength
Weakest 00b<->11b Strongest
CMDA N Transistor Drv Strength
c = Calculated/set by AMD-761™ internal logic
F = Performance enhancement set by BIOS
E = Elective BIOS function
Chapter 7
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
24081D—February 2002
Registers
----Bits
Description
Initialized/
Required
Value
Actual
Value
Key
31:30
DDR MAA/MAB Pad
Configuration
Reserved
00b
r
29:27
PSlewMAB
101b
B
26:24
NSlewMAB
101b
B
23:20
Reserved
0h
r
19:18
PDrvMAB
11b
B
17:16
NDrvMAB
10b
B
15:14
Reserved
00b
r
13:11
PSlewMAA
101b
B
10:8
NSlewMAA
101b
B
7:4
Reserved
0h
r
3:2
PDrvMAA
11b
B
1:0
NDrvMAA
10b
B
0x0x1x98h
KEY:
Chapter 7
B= Mandatory BIOS function
A= AGP setup by BIOS
P= Power management setup by BIOS o = Setup by OS or OS driver
r = Hardcoded and reserved
u = PCI operational user interface
Recommended BIOS Settings
fcn( )
Notes
Slowest 000b <-> 111b Fastest
MAB Rising Edge Slew Rate
Slowest 000b <-> 111b Fastest
MAB Falling Edge Slew Rate
Weakest 00b<->11b Strongest
MAB P Transistor Drv Strength
Weakest 00b<->11b Strongest
MAB N Transistor Drv Strength
Slowest 000b <-> 111b Fastest
MAA Rising Edge Slew Rate
Slowest 000b <-> 111b Fastest
MAA Falling Edge Slew Rate
Weakest 00b<->11b Strongest
MAA P Transistor Drv Strength
Weakest 00b<->11b Strongest
MAA N Transistor Drv Strength
c = Calculated/set by AMD-761™ internal logic
F = Performance enhancement set by BIOS
E = Elective BIOS function
245
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
7.2
24081D—February 2002
PCI Bus 0, Device 1, Function 0 Registers
Device 1 registers provide the necessary controls for the
AMD-761 system controller’s internal PCI-to-PCI bridge and
AGP controller functions.
The PCI to PCI bridge functions as a logical bridge between the
Host PCI bus and the AGP interface and contains the normal
PCI configuration registers for such a device. Most of these bits
are read-only.
246
Recommended BIOS Settings
Chapter 7
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
24081D—February 2002
Registers
----Bits
Description
0x1x0x00h
Initialized/
Required
Value
Actual
Value
Key
fcn( )
Notes
PCI ID
AMD-761™ system
controller
AMD
31:16
Device ID
700Fh
r
15:0
Vendor ID
1022h
r
PCI Command and Status
PERR_Rcv
0b
r
SERR Sent
yb
u
0b
0b
0b
01b
0b
0b
0b
1b
0b
00b 00h
0b
yb
0b
0b
0b
0b
0b
1b
1b
1b
r
r
r
r
r
r
r
r
r
r
u
r
r
r
r
r
B
B
B
0 = Disable, 1 = Enable
06h
04h
00h
00h
r
r
r
r
Bridge device
Host/PCI bridge
Host/PCI bridge
0x1x0x04h
31
30
29
28
27
26:25
24
23
22
21
20
19:10
9
8
7
6
5
4
3
2
1
0
0x1x0x08h
31:24
23:16
15:8
7:0
KEY:
Chapter 7
Master ABRT
Target ABRT
Target ABRTS Signaled
DEVSEL_Timing
Data_PERR
FastB2B
UDF
66M
Cap_Lst
Reserved
FBACK
SERR, System Error Enable
Step
PERR
VGA Palette Snoop
MWINV
SCYC
MSTR
MEM
IO
PCI Rev ID and Class Code
Class Code
Sub_Class Code
Prog. I/F
Revision ID
B= Mandatory BIOS function
A= AGP setup by BIOS
P= Power management setup by BIOS o = Setup by OS or OS driver
r = Hardcoded and reserved
u = PCI operational user interface
Recommended BIOS Settings
Not supported
R/W/1C, from AMD-761
system controller
R/W/1C, from bus master
R/W/1C, from bus master target
Not supported
Support 66 MHz on device 1
DMA enabled on APCI
Memory access enable on APCI
IO access Enabled on APCI
c = Calculated/set by AMD-761™ internal logic
F = Performance enhancement set by BIOS
E = Elective BIOS function
247
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
Registers
----Bits
0x1x0x0Ch
31:24
23:16
15:8
7:0
0x1x0x18h
31:24
23:16
15:8
7:0
KEY:
248
Description
Initialized/
Required
Value
24081D—February 2002
Actual
Value
Key
AGP/PCI Header Type
Reserved
Header_Type
Pri_Lat_Timer
Reserved
00h
01h
40h
00h
r
r
B
r
AGP/PCI Sub Bus Num/
Secondary Latency Timer
Secon_Lat_Timer
Sub_Bus_Num
Secon_Bus_Num
Pri_Bus_Num
40h
01h
01h
00h
B
B
B
r
B= Mandatory BIOS function
A= AGP setup by BIOS
P= Power management setup by BIOS o = Setup by OS or OS driver
r = Hardcoded and reserved
u = PCI operational user interface
Recommended BIOS Settings
fcn( )
Notes
c = Calculated/set by AMD-761™ internal logic
F = Performance enhancement set by BIOS
E = Elective BIOS function
Chapter 7
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
24081D—February 2002
Registers
----Bits
0x1x0x1Ch
31
30
29
28
27
26:25
24
23
22
21
20
19:16
Initialized/
Required
Value
Description
Actual
Value
Key
PCI Command and Status
PERR_Rcv
0b
r
SERR_Rcv
yb
u
Master ABRT
Target ABRT
Target ABRTS Signaled
DEVSEL_Timing
Data_PERR
FastB2B
UDF
66M
Cap_Lst
Reserved
yb
yb
0b
01b
0b
0b
0b
1b
0b
0h
u
u
r
r
r
r
r
r
r
r
15:12
IO_Lim[15:12]
xh
B
11:8
IOLimit_R
1h
r
7:4
IOBase [15:12]
xh
B
3:0
IOBase_R
1h
r
KEY:
Chapter 7
B= Mandatory BIOS function
A= AGP setup by BIOS
P= Power management setup by BIOS o = Setup by OS or OS driver
r = Hardcoded and reserved
u = PCI operational user interface
Recommended BIOS Settings
fcn( )
Notes
Not supported
R/W/1C from AMD-761™
system controller
R/W/1C from bus master
R/W/1c from bus master target
Not supported
Upper 4 bits defining top
address that is used by the
bridge to forward I/O
transactions from one
interface to another.
Lower 4 bits defining top
address that is used by the
bridge to forward I/O
transactions from one
interface to another. 0x1
indicates that 32 bit I/O
address decoding is available
Writable 4 bits that defines
bottom address that is used
by the bridge to forward I/O
transactions from one
interface to another.
Lower 4 bits defining bottom
address that is used by the
bridge to forward I/O
transactions from one
interface to another. 0x1
indicates that 32 bit I/O
address decoding is available.
c = Calculated/set by AMD-761™ internal logic
F = Performance enhancement set by BIOS
E = Elective BIOS function
249
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
Registers
----Bits
0x1x0x20h
Description
MLim[31:20]
19:16
Reserved
15:4
MBase[31:20]
3:0
Reserved
31:20
Key
fcn( )
Notes
xxxh
B
0h
r
xxxh
B
0h
r
Memory Limit Address
defining top address to be
used by AGP target graphics
controller for control
registers and buffers. The
lower 20 bits are 0xFFFFF
for 1-Mbyte granularity.
Memory Limit Address
defining lower address to be
used by AGP target graphics
controller for control
registers and buffers. The
lower 20 bits are 0xFFFFF
for 1-Mbyte granularity.
AGP/PCI Prefetchable
Memory Limit and Base
MLim [31:20]
19:16
250
Actual
Value
AGP/PCI Memory Limit and Base
31:20
0x1x0x24h
Initialized/
Required
Value
24081D—February 2002
xxxh
B
0h
r
15:4
MBase [31:20]
xxxh
B
3:0
Reserved
0h
r
KEY:
B= Mandatory BIOS function
A= AGP setup by BIOS
P= Power management setup by BIOS o = Setup by OS or OS driver
r = Hardcoded and reserved
u = PCI operational user interface
Recommended BIOS Settings
Prefetchable Memory Limit
Address defining top address
to be used by AGP target
graphics controller for control
registers and buffers. The
lower 20 bits are 0xFFFFF for
1-Mbyte granularity.
Prefetchable Memory Base
Address defining lower
address to be used by AGP
target graphics controller for
control registers and buffers.
The lower 20 bits are 0xFFFFF
for 1-Mbyte granularity.
c = Calculated/set by AMD-761™ internal logic
F = Performance enhancement set by BIOS
E = Elective BIOS function
Chapter 7
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
24081D—February 2002
Registers
----Bits
0x1x0x30h
31:24
Initialized/
Required
Value
Description
AGP/PCI I/O Limit and Base
Reserved
Actual
Value
00h
Key
IO_ Lim [23:16]
xxh
B
15:8
Reserved
00h
r
0x1x0x3Ch
31:24
23
22
21
20
19
18
17
16
15:8
7:0
IO_ Base [23:16]
xxh
B
AGP/PCI Interrupt and
Bridge Control
Reserved
Bridge_Fast_B2B_En
Secon_Bus_ Reset
Mas_Abort_Mode
Reserved
VGA_En
ISA_En
SERR_En
Par_Resp_En
Int_Pin
Int_Line
00h
0b
0b
0b
0b
1b
0b
yb
0b
xxh
xxh
r
r
r
r
r
B
B
u
r
B
B
0x1x0x40h
Miscellaneous Device 1 Control
31:1
Reserved
0
Int_Pin_Cntl
KEY:
Chapter 7
000b
0000000h
xb
B= Mandatory BIOS function
A= AGP setup by BIOS
P= Power management setup by BIOS o = Setup by OS or OS driver
r = Hardcoded and reserved
u = PCI operational user interface
Recommended BIOS Settings
Notes
r
23:16
7:0
fcn( )
This field defines the upper
limit (inclusive) of the 24bit
I/O addresses passed to
the AGP/PCI bus.
This field defines the base
(inclusive) of the 24bit I/O
addresses passed to the
AGP/PCI bus.
Enabled by 0x1x0x40[0]
r
B
1=Enable 0x1x0x3C[15:8]
c = Calculated/set by AMD-761™ internal logic
F = Performance enhancement set by BIOS
E = Elective BIOS function
251
Preliminary Information
AMD-761™ System Controller Software/BIOS Design Guide
252
Recommended BIOS Settings
24081D—February 2002
Chapter 7