summaryrefslogtreecommitdiff
path: root/src/northbridge
diff options
context:
space:
mode:
authorPatrick Georgi <patrick.georgi@secunet.com>2013-04-09 15:41:23 +0200
committerRonald G. Minnich <rminnich@gmail.com>2013-04-10 17:40:49 +0200
commit1fde22c54cacb15493bbde8835ec9e20f1d39bf5 (patch)
treec1ae3ed6d547ddda1759be3d6ef73f381701edbd /src/northbridge
parent7576f2515ed81a67e6271cb6a88fa94b626e2938 (diff)
siemens/sitemp_g1p1: Make ACPI report the right mmconf region
ACPI reported the entire space between top-of-memory and some (relatively) arbitrary limit as useful for MMIO. Unfortunately the HyperTransport configuration disagreed. Make them match up. Other boards are not affected since they don't report any region for that purpose at all (it seems). Change-Id: I432a679481fd1c271f14ecd6fe74f0b7a15a698e Signed-off-by: Patrick Georgi <patrick.georgi@secunet.com> Reviewed-on: http://review.coreboot.org/3047 Tested-by: build bot (Jenkins) Reviewed-by: Ronald G. Minnich <rminnich@gmail.com>
Diffstat (limited to 'src/northbridge')
-rw-r--r--src/northbridge/amd/amdk8/acpi.c4
-rw-r--r--src/northbridge/amd/amdk8/northbridge.c3
2 files changed, 7 insertions, 0 deletions
diff --git a/src/northbridge/amd/amdk8/acpi.c b/src/northbridge/amd/amdk8/acpi.c
index 2eb39c07d1..0a6fbbadae 100644
--- a/src/northbridge/amd/amdk8/acpi.c
+++ b/src/northbridge/amd/amdk8/acpi.c
@@ -280,6 +280,10 @@ int k8acpi_write_vars(void)
*/
lens += acpigen_write_name_dword("TOM2", (msr.hi << 12) | msr.lo >> 20);
+ /* MMConf area for PCI0, begin and end */
+ lens += acpigen_write_name_dword("MMCB", sysconf.mmconf_start);
+ lens += acpigen_write_name_dword("MMCE", sysconf.mmconf_end);
+
lens += k8acpi_write_HT();
//minus opcode
acpigen_patch_len(lens - 1);
diff --git a/src/northbridge/amd/amdk8/northbridge.c b/src/northbridge/amd/amdk8/northbridge.c
index 5c1d97a1c6..d0d65ff290 100644
--- a/src/northbridge/amd/amdk8/northbridge.c
+++ b/src/northbridge/amd/amdk8/northbridge.c
@@ -561,6 +561,9 @@ static void amdk8_set_resources(device_t dev)
amdk8_set_resource(dev, res, nodeid);
}
+ sysconf.mmconf_start = mem_lowest_start;
+ sysconf.mmconf_end = mem_highest_end;
+
compact_resources(dev);
for(bus = dev->link_list; bus; bus = bus->next) {