diff options
author | Patrick Georgi <patrick.georgi@secunet.com> | 2013-04-09 15:41:23 +0200 |
---|---|---|
committer | Ronald G. Minnich <rminnich@gmail.com> | 2013-04-10 17:40:49 +0200 |
commit | 1fde22c54cacb15493bbde8835ec9e20f1d39bf5 (patch) | |
tree | c1ae3ed6d547ddda1759be3d6ef73f381701edbd /src/northbridge | |
parent | 7576f2515ed81a67e6271cb6a88fa94b626e2938 (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.c | 4 | ||||
-rw-r--r-- | src/northbridge/amd/amdk8/northbridge.c | 3 |
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) { |