diff options
-rw-r--r-- | src/include/cpu/amd/amdk8_sysconf.h | 2 | ||||
-rw-r--r-- | src/mainboard/siemens/sitemp_g1p1/dsdt.asl | 10 | ||||
-rw-r--r-- | src/northbridge/amd/amdk8/acpi.c | 4 | ||||
-rw-r--r-- | src/northbridge/amd/amdk8/northbridge.c | 3 |
4 files changed, 14 insertions, 5 deletions
diff --git a/src/include/cpu/amd/amdk8_sysconf.h b/src/include/cpu/amd/amdk8_sysconf.h index 3ae35fd17d..b367ac0e99 100644 --- a/src/include/cpu/amd/amdk8_sysconf.h +++ b/src/include/cpu/amd/amdk8_sysconf.h @@ -21,6 +21,8 @@ struct amdk8_sysconf_t { void *mb; // pointer for mb releated struct + unsigned mmconf_start; + unsigned mmconf_end; }; extern struct amdk8_sysconf_t sysconf; diff --git a/src/mainboard/siemens/sitemp_g1p1/dsdt.asl b/src/mainboard/siemens/sitemp_g1p1/dsdt.asl index 9d64e89943..a48a6de18d 100644 --- a/src/mainboard/siemens/sitemp_g1p1/dsdt.asl +++ b/src/mainboard/siemens/sitemp_g1p1/dsdt.asl @@ -255,8 +255,6 @@ DefinitionBlock ("DSDT.aml", "DSDT", 2, "SIEMENS", "SITEMP ", 0x20101005) MPEN, 8 } - Name (IOLM,0xe0000000) - #include "acpi/platform.asl" Scope(\_SB) { @@ -385,6 +383,8 @@ DefinitionBlock ("DSDT.aml", "DSDT", 2, "SIEMENS", "SITEMP ", 0x20101005) External (MMIO) External (TOM1) External (TOM2) + External (MMCB) /* MMConf Begin */ + External (MMCE) /* MMConf End */ Name(_HID, EISAID("PNP0A03")) Name(_ADR, 0x00180000) /* Dev# = BSP Dev#, Func# = 0 */ @@ -1186,9 +1186,9 @@ DefinitionBlock ("DSDT.aml", "DSDT", 2, "SIEMENS", "SITEMP ", 0x20101005) CreateDWordField(CRES, ^EMM2._MAX, EM2E) CreateDWordField(CRES, ^EMM2._LEN, EM2L) - Store(TOM1, EM2B) - Subtract(IOLM, 1, EM2E) - Subtract(IOLM, TOM1, EM2L) + Store(MMCB, EM2B) + Subtract(MMCE, 1, EM2E) + Subtract(MMCE, MMCB, EM2L) If(LGreater(LOMH, 0xC0000)){ Store(0xC0000, EM1B) /* Hole above C0000 and below E0000 */ 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) { |