AMD, the AMD Arrow logo, AMD Athlon, ATI, Mobility, PowerPlay, CrossFire, Radeon, and combinations thereof, are trademarks of Advanced Micro Devices, Inc.
HyperTransport is a licensed trademark of the HyperTransport Technology Consortium.
Microsoft and Windows are registered trademarks of Microsoft Corporation.
Other product names used in this publication are for identification purposes only and may be trademarks of their respective companies.
Disclaimer
The contents of this document are provided in connection with Advanced Micro Devices, Inc. ("AMD") products. AMD makes no representations or warranties with respect
to the accuracy or completeness of the contents of this publication and reserves the right to make changes to specifications and product descriptions at any time without notice.
No license, whether express, implied, arising by estoppel, or otherwise, to any intellectual property rights are granted by this publication. Except as set forth in AMD's Standard
Terms and Conditions of Sale, AMD assumes no liability whatsoever, and disclaims any express or implied warranty, relating to its products including, but not limited to, the
implied warranty of merchantability, fitness for a particular purpose, or infringement of any intellectual property right.
AMD's products are not designed, intended, authorized or warranted for use as components in systems intended for surgical implant into the body, or in other applications
intended to support or sustain life, or in any other application in which the failure of AMD's product could create a situation where personal injury, death, or severe property or
environmental damage may occur. AMD reserves the right to discontinue or make changes to its products at any time without notice.
1.1 About This Manual .............................................................................................................................................................1-1
2.4 General RS780 IOC Programming After Boot-Up.............................................................................................................2-3
2.5 Miscellaneous IOC Features Programming ........................................................................................................................2-4
3.2 Memory Clock Changes For POWERPLAY......................................................................................................................3-3
3.3 Switching Back From PM Mode to Nominal Mode ...........................................................................................................3-4
3.4 Power Saving Settings ........................................................................................................................................................3-5
3.5 DOS Mode Power Saving ...................................................................................................................................................3-7
5.2.1PCIE Port Configuration Space............................................................................................................................5-1
5.2.2PCIE Core Index Space ....................................................................................................................................... 5-2
5.2.3PCIE Port Index Space ........................................................................................................................................ 5-2
5.4.2DDI Modes Only ................................................................................................................................................. 5-5
5.4.3PCIE and DDI Combined Modes ........................................................................................................................ 5-6
5.6.1Default Configuration D .................................................................................................................................... 5-10
5.6.2Configuration C ................................................................................................................................................. 5-10
5.7 PCIE Link Training Sequence...........................................................................................................................................5-11
5.9.14Link Training ..................................................................................................................................................... 5-22
5.9.15Power Down Control ......................................................................................................................................... 5-22
5.9.16Software Initiated Speed Change to GEN2 (CMOS Option – Disabled by Default)
5.9.17Active State Power Management (ASPM) ........................................................................................................ 5-31
5.10.12 Link Training ..................................................................................................................................................... 5-46
5.10.13 Power Down Control ......................................................................................................................................... 5-46
5.10.14 Software Initiated Speed Change to GEN2 (CMOS Option – Disabled by Default).........................................5-49
5.10.15 Active State Power Management (ASPM).........................................................................................................5-51
5.12.2Program the Common Clock Configuration.......................................................................................................5-59
5.12.3Slot Power Limit (CMOS Option - Default 75W) .............................................................................................5-59
5.12.4Update Hot-Plug Info .........................................................................................................................................5-59
5.12.5Disable Immediate Timeout on Link Down .......................................................................................................5-59
5.12.8Dynamic Link Width Control.............................................................................................................................5-60
5.12.9Special Features Programming Sequence ..........................................................................................................5-60
Chapter 6: Graphics Core Settings
6.1 Bus Interface (BIF) .............................................................................................................................................................6-1
6.5 Gpuioreg BAR For Accessing nbconfig Registers (A12)...................................................................................................6-2
6.7 Master Abort Status ............................................................................................................................................................6-3
8.1 HT Link Initialization......................................................................................................................................................... 8-1
8.2 HTIU Indirect Register Space ............................................................................................................................................ 8-1
8.3 CPU Register Access ......................................................................................................................................................... 8-1
8.6.4AMD Family 10h Processor Buffer Allocation Settings .................................................................................... 8-8
8.6.5AMD Family 11h Buffer Allocation Settings ................................................................................................... 8-17
8.6.6K8 Buffer Allocation Settings (Special Settings For UMA Mode)................................................................... 8-24
8.6.7Additional UMA Settings .................................................................................................................................. 8-24
8.7 Power Management Settings............................................................................................................................................ 8-25
8.7.1AMD Family 10h PMM Programming ............................................................................................................. 8-25
8.7.2AMD Family 11h PMM Programming ............................................................................................................. 8-25
8.8.2Low-Power HyperTransport Features ............................................................................................................... 8-26
8.9.1Debug Menu Features........................................................................................................................................ 8-29
Chapter 9: CLMC Programming
9.1 Global CLMC Settings....................................................................................................................................................... 9-1
9.1.2Default Inactive Lane State ................................................................................................................................. 9-1
9.3.1Programming the NBMCIND Registers.............................................................................................................. 9-3
9.4 CLMC Control Features..................................................................................................................................................... 9-4
9.4.1CDLD (Centralized Dynamic Link Disconnection) ............................................................................................ 9-4
9.4.2CDLC (Centralized Dynamic Link Configuration) ............................................................................................. 9-4
9.4.3CDLW (Centralized Dynamic Link Width) ........................................................................................................ 9-9
This document is intended for BIOS engineers designing BIOSes for systems based on AMD’s 780G family of
northbridges. It describes the register programming requirements needed to ensure the proper functioning of the 780G
ASIC. Use this document in conjunction with the related AMD 780G Family Register Reference Guide and AMD 780G
Family BIOS Developer’s Guide.
Unless indicated otherwise, the programming information in this document applies to the following 780G variants (note
that Chapter 9only applies to 780G mobile variants):
•RS780 (AMD 780G)
•RS780C (AMD 780V)
•RS780D (AMD 790GX)
•RS780E (AMD 780E)
•RS780M (AMD M780G)
•RS780MC (AMD M780V)
•RX781 (AMD M770) (Chapter 6 does not apply to the RX781 variant)
Some of the settings indicated in this document are workarounds for items that are expected to be solved in subsequent
ASIC revisions. This document will therefore be updated as frequently as required.
Chapter 1
Introduction
Changes and additions to the previous release of this document are highlighted in red. Refer to Appendix A: Revision
History at the end of this document for a detailed revision history.
Configuration access to the RS780 can be accomplished through one of the following two methods described in sections
2.3.1 and 2.3.2 below.
2.3.1Using CF8/CFC I/O Pair
This method works for all registers of Dev0 and Dev1, and all PCI registers of Dev2 to Dev10. This method DOES NOT
work for PCIE extended registers of Dev2 to Dev10. The address mapping follows the standard PCI specification:
•Addr[11:8] = FunNum
•Addr[15:12] = DevNum
•Addr[23:16] = BusNum
•Addr[7:2] = RegNum
Note: For conventional CF8/CFC IO pair configuration access, the first IO write to CF8 (which is a register index access),
has to set Data[31] to indicate that this is a configuration access. Otherwise, it will be treated as a regular IO cycle.
2.3.2Using BAR3 Memory Mapped Register Access
This method works for all PCI registers of Dev0, all PCI registers, and PCIE extended registers of Dev2 to Dev8. The
address mapping follows the PCIE specification:
•Addr[14:12] = FunNum
•Addr[19:15] = DevNum
•Addr[11:2] = RegNum (Addr[11:8] is an extended register field)
•Addr[20 + n-1:20] = BusNum *
•Addr[33:20 + n] = Reserved for BAR3 match *
* Note: ‘n’ indicates how many bits are allocated for the bus number. This value is decided by nbcfg0x84[18:16]. These
relations are listed in Table 2-2 below:
Table 2-2 nbcfg0x84[18:16] Relations
nbcfg0x84[18:16]n
3’b0011
3’b0102
3’b0113
3’b1004
3’b1015
3’b1106
3’b1117
3’b0008
The programming procedure to enable BAR3 is as follows:
Note: nbcfg0x20 is the BAR3 memory upper address register (above 4G). The RS780 could support memory up to 16G,
so this register must be set correctly.
After system boot-up, all registers should keep the default values.
The BIOS starts the bus enumeration, and detects the following: Bus0Dev0Fun0, Dev0Fun1, Dev1Fun0, Dev1Fun1,
Dev2Fun0, Dev3Fun0, Dev4Fun0, Dev5Fun0, Dev6Fun0, Dev7Fun0. Then, for all of these PCI device headers or P2P
device headers, the BIOS enables IOSpace (0x04[0]) and MemSpaceEn (0x04[1]). It also defines the primary bus number,
the secondary bus number, and the subordinate bus number.
The following registers in Table 2-3 need to be programmed after boot-up. Note: After boot-up to Windows occurs, the
IOC register default values follow the values in this table.
•Step 2: Program the BAR2 register (assign values to nbcfg0x18[31:5]). A 32 bytes IO space is reserved for
BAR2(ACPI PM) registers.
•Step 3: Enable BAR2 decoding (set nbcfg0x84[7]).
Note: The above programming procedure is necessary before enabling ACPI. BAR2 is a memory mapped IO base register
that could be used to reserve some space for the ACPI registers. After BAR2 is setup, IO access which address matches
BAR[31:5] should be treated as ACPI register access, and Addr[4:0] is used as the register offset. The current offset 0x00
and 0x04 are used, as PM2_CNTL and PM1_Status, respectively.
2.5.2S3 PME_Turn_Off/PME_To_Ack Sequence
No programming is required in the RS780. However, a backup sequence is required in case there is a mis-communication
between the northbridge and the southbridge.
2.5.3Disabling Internal Graphics
Internal graphics disabling is controlled by an efuse bit, but may also be disabled by writing 1 to register nbcfg0x7C[0]
(NBCFG.NB_IOC_CFG_CNTL[0])
2.5.4GFX MSI Enable
The SBIOS must enable internal graphics MSI capability in GCCFG by setting the following:
•NBCFG.NB_CNTL.STRAP_MSI_ENABLE=’1’
The OS will determine if MSI’s are supported by the system, and if so, the OS will set the following:
•GCCFG.MSI_MSG_CNTL.MSI_EN=’1’
Note: At the time of this writing, to enable MSI in Vista, set the registry key as follows:
Set nbmiscind0x0C[3] to disable Bus0 Device3 register access and decoding. Note: An efuse called CrossFireDisable is
also used that could disable Device 3. Either bit as 1 would disable device 3.
•Input_address refers the request address IOC received from CPU.
•BROADCAST_BASE refers to the broadcast memory range start address.
•Bridge_Prefetchable_BASE refers to external graphics device memory range start address.
•BROADCAST_OFFSET is the offset between translated broadcast base address and bridge Prefetchable_BASE
address.
Two broadcast addresses are obtained by applying two Bridge_Prefetchable_BASE addresses from the two PCI
configuration space. Therefore, a single CPU memory write request could be translated and redirected to two external
graphics devices by IOC. Note that this address translation and broadcast algorithm is only applicable to CPU memory
write requests. For CPU memory read requests, the address translation to the primary graphics device is performed using
the above equation, and the request is only forwarded to the primary graphics devices since only one response is expected
by the CPU.
The P2P master could be any device from the southbridge, devices connected behind P2P bridge 2, 3, 4, 5, 6, 7,9 and 10.
The P2P targets could be devices connected behind P2P bridge 1, 2, 3, 4, 5, 6, 7,9, 10. The southbridge cannot be a target
for trusted-PC purposes. The P2P traffic could be only memory writes. After bootup, by default all P2P traffic listed
above should be enabled. In order to disable a P2P target at a specific device, the following register bits in Table 2-5 need
to be set as follows:
MVPU is a feature that enables P2P traffic between external graphics devices (the devices behind P2P bridge 2 and 3) and
the internal graphics device (the device behind P2P bridge 1). The corresponding P2P traffic access enable bits are
described in section Table 2-5 above.
2.9IOC Dynamic Clock Setup
The following clocks are in IOC:
•LCLK (free running)
•LCLK_MST (master branch)
•LCLK_SLV (slave branch - Note: This dynamic branch should not be used)
Note: Only LCLK_MST (master branch) and LCLK_SLV (slave branch) can be dynamically turned on and off.
The two bits that control IOC dynamic clocks are as follows:
•clkcfg0x8C[13] CLKGATE_DIS_IOC_LCLK_MST
•clkcfg0x8C[14] CLKGATE_DIS_IOC_LCLK_SLV (Note: Ensure that this bit is programmed to 1 in order to avoid
system instability)
Note: Clkconfig:0x94[27] CLKGATE_IOC_SLV_GFX - BIOS should program to 1 to disable clock gating on this
branch.
RS780 boots up in synchronous UMA clock mode. The memory clock and HT clock are driven by the same HT PLL. In
UMA sync mode the memory PLL is not used and should be powered down.
•Program <NBMCIND:0x6> Bit[31] MC_MPLL_CONTROL.MPLL_POWERDOWN = ‘1’ to power down memory
3.4.3Powering Down Graphics Core and Memory Clocks in Northbridge-Only Mode
Table 3-4 Powering Down Graphics core and Memory Clocks in NB-Only Mode Settings
ASIC RevSettingsFunction/Comment
All Revs
<CLKCFG:0x8C> Bit[21] = 0x1
<CLKCFG:00xE4> Bit[0] = 0x1
Powers down reference clock to graphics core PLL in
northbridge only mode
Powers down clock to memory controller in
northbridge only mode
3.4.4Powering Down IOC GFX Clock in No External Graphics Mode
Table 3-5 Powering Down IOC GFX Clock In No External Graphics Mode Settings
ASIC RevSettingsFunction/Comment
All Revs
<CLKCFG:0xE8> Bit[17] = 0x1 Powers down clock to IOC GFX block in no external
graphics mode
3.4.5PWM Controller
There are five PWM controllers mapped to five GPIO pins that can be used for voltage adjustment purpose after boot-up.
Table 3-6 PWM Controller/GPIO Pins Mapping
ASIC RevRegister settingFunction/Comment
All Revs
1.CLK_TOP_PWM1_CTRL<CLKCFG:0xB0>
2. CLK_TOP_PWM2_CTRL<CLKCFG:0xB4>
3. CLK_TOP_PWM3_CTRL <CLKCFG:0xCC>
4. CLK_TOP_PWM4_CTRL<CLKCFG:0x4C>
5. CLK_TOP_PWM5_CTRL<CLKCFG:0x50>
1. PWM control on LVDS_BLON GPIO pin
2. PWM control on LVDS_ENA_BL GPIO pin
3. PWM control on STRP_DATA GPIO pin
4. PWM control on LVDS_DIGON GPIO pin
5. PWM control on TMDS_HPD GPIO pin
Each of the above PWM registers in PWM Controller/GPIO Pins Mapping has the following register fields:
•Bit[0]: Enable the PWM controller
•Bits[12:1]: Number of cycles in pulse period of a 100MHz reference clock
•Bits[24:13]: Number of high cycles in pulse period of a 100MHz reference clock
•Bit[25]: Output enable of the GPIO
The STRP_DATA pin by default is driving low, and register setting <clkcfg:0xE0> Bit[0] = ‘1’ is required before using
PWM or GPIO control.
The STRP_DATA pin is also used for core voltage scaling purposes. The CLK_TOP_PWM3_CTRL < CLKCFG:0xCC >
Bit[0] = ’0’ is required to enable the graphics device driver to have control on the STRP_DATA pin.
The register settings < nbmisind:0x40 > Bit[8] = ‘1’ and Bit[10] = ’1’ are required for using PWM1 on the LVDS_BLON
pin.
This chapter describes the initialization and feature programming of the northbridge PCI Express subsystem. The
northbridge implements PCI Express point-to-point links to external devices.
There are 9 configurable PCI Express ports, which can be divided into 3 groups (implemented in hardware as 3 separate
cores):
•PCIE-GFX: 2 ports, 16 lanes in total. Each port is configurable from x1 to x8 link. The 2 ports can also be combined
to provide 1 x16 port (default configuration).
•PCIE-GPPSB: 1 SB port and 4 GPP ports, 8 lanes in total. The SB port provides a dedicated x4 link to the
southbridge. The remaining 4 lanes are distributed across the 4 GPP ports to support 4 different configurations: a)
4:0:0:0:0, b) 4:4:0:0:0, c) 4:2:2:0:0, d) 4:2:1:1:0 and e) 4:1:1:1:1 (default configuration).
•PCIE-GPP: 2 ports, 2 lanes in total. Each port provides a x1 link. The 2 ports can also be combined to provide a x2
link.
5.2PCI Express Configuration Space
The PCI Express configuration space consists of the following four groups:
•PCIE Port Configuration Space (section 5.2.1)
•PCIE Core Index Space (section 5.2.2)
Chapter 5
PCIE Initialization
•PCIE Port Index Space (section 5.2.3)
•PCIE Extended Configuration Space (section 5.2.4)
5.2.1PCIE Port Configuration Space
Each PCIE port has a standard Type 1 Virtual PCI-to-PCI bridge header in the PCI configuration space. These are devices
2 through 10 on PCI bus 0.
•GFX Port A: Device 2 (GFX0)
•GFX Port B: Device 3 (GFX1)
•GPPSB Port A: Device 8 (SB link, hidden by default)
The PCIE Core Index Space contains control and status registers that are generic to all PCIE ports in the northbridge.
This register space is accessed through an index/data register pair:
•NB_BIF_NB: NB_PCIE_INDX_ADDR: nbconfig: 0xe0
•NB_PCIE_INDX_ADDR: [7:0] - Address in PCIE Core
•GFX_GPPSB_SEL [18:16]:
•000 – PCIE GFX Core
•001 – PCIE GPPSB Core
•010 – PCIE GPP Core
•011 – Broadcast to all 3 cores
•All other values are unused
•NB_BIF_NB: NB_PCIE_INDX_DATA: nbconfig: 0xe4
Note: Registers in the core index space are referenced with the name PCIEIND or BIF_NB.
5.2.3PCIE Port Index Space
The Port Index Space contains control and status registers that are specific to each port within the core. Each PCIE device
implements its own set of registers in this space.
Each PCIE device contains an index/data pair in its Virtual Bridge PCI configuration space to access the Port Index Space
registers. Please note the following information for the index/data register pair:
•Index register: bus 0, device X, register 0xE0.
•Data register: bus 0, device X, register 0xE4.
Note: Register descriptions are referenced with the name PCIEIND_P or BIF_NBP.
5.2.4PCIE Extended Configuration Space
PCI Express extends the PCI configuration space from 256 bytes to 4096 bytes. Extended PCIE configuration space
memory maps 4KB for each device. The first 256 bytes of each 4KB are the same as PCI 2.3 configuration registers, and
the remaining 3840 bytes are PCIE specific configuration registers.
The northbridge uses NBCFG:NB_BAR3_PCIEXP_MMCFG nbconfig:0x1C (BAR3) to map the PCI Express Extended
Configuration Space to a 256MB range within the first 4GB of addressable memory. PCIE devices are accessed by
reading/writing to a memory mapped address that is based on the base address in BAR3. The PCIE target address is
formed as follows:
•Addr[11:2] = RegNum (Addr[11:8] is extended register field)