summaryrefslogtreecommitdiff
path: root/src/mainboard/asus
diff options
context:
space:
mode:
authorStefan Reinauer <stepan@coresystems.de>2009-07-21 21:38:33 +0000
committerStefan Reinauer <stepan@openbios.org>2009-07-21 21:38:33 +0000
commitb657a3c9b726334aac89f1af16495eab3ebefc6b (patch)
tree428e1de09fdb4d29d783f5ea875c41d13effa893 /src/mainboard/asus
parent4d933dd2d686879e0c27839d3f9046e348580da8 (diff)
downloadcoreboot-b657a3c9b726334aac89f1af16495eab3ebefc6b.tar.xz
This fixes a couple of issues with older Linux kernels (that expect an XSDT as
soon as there's an ACPI 2.0 or later table) * add XSDT support * add more table types This patch will break at least the kontron (and possibly some new boards I missed) Signed-off-by: Stefan Reinauer <stepan@coresystems.de> Acked-by: Peter Stuge <peter@stuge.se> git-svn-id: svn://svn.coreboot.org/coreboot/trunk@4453 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
Diffstat (limited to 'src/mainboard/asus')
-rw-r--r--src/mainboard/asus/a8v-e_se/acpi_tables.c10
-rw-r--r--src/mainboard/asus/m2v-mx_se/acpi_tables.c16
2 files changed, 13 insertions, 13 deletions
diff --git a/src/mainboard/asus/a8v-e_se/acpi_tables.c b/src/mainboard/asus/a8v-e_se/acpi_tables.c
index a204c90976..f2af5bdfa7 100644
--- a/src/mainboard/asus/a8v-e_se/acpi_tables.c
+++ b/src/mainboard/asus/a8v-e_se/acpi_tables.c
@@ -108,7 +108,7 @@ unsigned long write_acpi_tables(unsigned long start)
/* Clear all table memory. */
memset((void *) start, 0, current - start);
- acpi_write_rsdp(rsdp, rsdt);
+ acpi_write_rsdp(rsdp, rsdt, NULL);
acpi_write_rsdt(rsdt);
/* We explicitly add these tables later on: */
@@ -131,25 +131,25 @@ unsigned long write_acpi_tables(unsigned long start)
current += sizeof(acpi_fadt_t);
acpi_create_fadt(fadt, facs, dsdt);
- acpi_add_table(rsdt, fadt);
+ acpi_add_table(rsdp, fadt);
/* If we want to use HPET timers Linux wants it in MADT. */
printk_debug("ACPI: * MADT\n");
madt = (acpi_madt_t *) current;
acpi_create_madt(madt);
current += madt->header.length;
- acpi_add_table(rsdt, madt);
+ acpi_add_table(rsdp, madt);
printk_debug("ACPI: * MCFG\n");
mcfg = (acpi_mcfg_t *) current;
acpi_create_mcfg(mcfg);
current += mcfg->header.length;
- acpi_add_table(rsdt, mcfg);
+ acpi_add_table(rsdp, mcfg);
printk_debug("ACPI: * SRAT\n");
srat = (acpi_srat_t *) current;
acpi_create_srat(srat);
current += srat->header.length;
- acpi_add_table(rsdt, srat);
+ acpi_add_table(rsdp, srat);
printk_info("ACPI: done.\n");
return current;
diff --git a/src/mainboard/asus/m2v-mx_se/acpi_tables.c b/src/mainboard/asus/m2v-mx_se/acpi_tables.c
index 5c9c1db0ad..606321791e 100644
--- a/src/mainboard/asus/m2v-mx_se/acpi_tables.c
+++ b/src/mainboard/asus/m2v-mx_se/acpi_tables.c
@@ -119,7 +119,7 @@ unsigned long write_acpi_tables(unsigned long start)
/* Clear all table memory. */
memset((void *) start, 0, current - start);
- acpi_write_rsdp(rsdp, rsdt);
+ acpi_write_rsdp(rsdp, rsdt, NULL);
acpi_write_rsdt(rsdt);
/* We explicitly add these tables later on: */
@@ -146,39 +146,39 @@ unsigned long write_acpi_tables(unsigned long start)
current += sizeof(acpi_fadt_t);
acpi_create_fadt(fadt, facs, dsdt);
- acpi_add_table(rsdt, fadt);
+ acpi_add_table(rsdp, fadt);
printk_debug("ACPI: * HPET\n");
hpet = (acpi_hpet_t *) current;
current += sizeof(acpi_hpet_t);
acpi_create_hpet(hpet);
- acpi_add_table(rsdt, hpet);
+ acpi_add_table(rsdp, hpet);
/* If we want to use HPET timers Linux wants an MADT. */
printk_debug("ACPI: * MADT\n");
madt = (acpi_madt_t *) current;
acpi_create_madt(madt);
current += madt->header.length;
- acpi_add_table(rsdt, madt);
+ acpi_add_table(rsdp, madt);
printk_debug("ACPI: * MCFG\n");
mcfg = (acpi_mcfg_t *) current;
acpi_create_mcfg(mcfg);
current += mcfg->header.length;
- acpi_add_table(rsdt, mcfg);
+ acpi_add_table(rsdp, mcfg);
printk_debug("ACPI: * SRAT\n");
srat = (acpi_srat_t *) current;
acpi_create_srat(srat);
current += srat->header.length;
- acpi_add_table(rsdt, srat);
+ acpi_add_table(rsdp, srat);
/* SLIT */
printk_debug("ACPI: * SLIT\n");
slit = (acpi_slit_t *) current;
acpi_create_slit(slit);
current+=slit->header.length;
- acpi_add_table(rsdt,slit);
+ acpi_add_table(rsdp,slit);
/* SSDT */
printk_debug("ACPI: * SSDT\n");
@@ -186,7 +186,7 @@ unsigned long write_acpi_tables(unsigned long start)
acpi_create_ssdt_generator(ssdt, "DYNADATA");
current += ssdt->length;
- acpi_add_table(rsdt, ssdt);
+ acpi_add_table(rsdp, ssdt);
printk_info("ACPI: done.\n");
return current;