summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/northbridge/amd/amdfam10/nb_control.c4
-rw-r--r--src/northbridge/amd/amdfam10/northbridge.c21
2 files changed, 23 insertions, 2 deletions
diff --git a/src/northbridge/amd/amdfam10/nb_control.c b/src/northbridge/amd/amdfam10/nb_control.c
index f95b6f80ae..8e8dd578f2 100644
--- a/src/northbridge/amd/amdfam10/nb_control.c
+++ b/src/northbridge/amd/amdfam10/nb_control.c
@@ -60,10 +60,10 @@ static void nb_control_init(struct device *dev)
pci_write_config32(dev, 0xe0, dword);
/* Configure northbridge P-states */
- dword = pci_read_config32(dev, 0xe0);
+ dword = pci_read_config32(dev, 0x170);
dword &= ~(0x7 << 9); /* NbPstateThreshold = compute_unit_count */
dword |= (compute_unit_count & 0x7) << 9;
- pci_write_config32(dev, 0xe0, dword);
+ pci_write_config32(dev, 0x170, dword);
printk(BIOS_DEBUG, "done.\n");
}
diff --git a/src/northbridge/amd/amdfam10/northbridge.c b/src/northbridge/amd/amdfam10/northbridge.c
index 2684d89449..4826a36213 100644
--- a/src/northbridge/amd/amdfam10/northbridge.c
+++ b/src/northbridge/amd/amdfam10/northbridge.c
@@ -1755,6 +1755,8 @@ static void detect_and_enable_probe_filter(device_t dev)
disable_cache();
wbinvd();
+
+ /* Enable probe filter */
for (i = 0; i < sysconf.nodes; i++) {
device_t f3x_dev = dev_find_slot(0, PCI_DEVFN(0x18 + i, 3));
@@ -1771,6 +1773,25 @@ static void detect_and_enable_probe_filter(device_t dev)
do {
} while (!(pci_read_config32(f3x_dev, 0x1d4) & (0x1 << 19)));
}
+
+ if (is_fam15h()) {
+ printk(BIOS_DEBUG, "Enabling ATM mode\n");
+
+ /* Enable ATM mode */
+ for (i = 0; i < sysconf.nodes; i++) {
+ device_t f0x_dev = dev_find_slot(0, PCI_DEVFN(0x18 + i, 0));
+ device_t f3x_dev = dev_find_slot(0, PCI_DEVFN(0x18 + i, 3));
+
+ dword = pci_read_config32(f0x_dev, 0x68);
+ dword |= (0x1 << 12); /* ATMModeEn = 1 */
+ pci_write_config32(f0x_dev, 0x68, dword);
+
+ dword = pci_read_config32(f3x_dev, 0x1b8);
+ dword |= (0x1 << 27); /* L3ATMModeEn = 1 */
+ pci_write_config32(f3x_dev, 0x1b8, dword);
+ }
+ }
+
enable_cache();
/* Reenable L3 and DRAM scrubbers */