From b657a3c9b726334aac89f1af16495eab3ebefc6b Mon Sep 17 00:00:00 2001 From: Stefan Reinauer Date: Tue, 21 Jul 2009 21:38:33 +0000 Subject: 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 Acked-by: Peter Stuge git-svn-id: svn://svn.coreboot.org/coreboot/trunk@4453 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1 --- src/mainboard/asus/a8v-e_se/acpi_tables.c | 10 +++++----- src/mainboard/asus/m2v-mx_se/acpi_tables.c | 16 ++++++++-------- 2 files changed, 13 insertions(+), 13 deletions(-) (limited to 'src/mainboard/asus') 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; -- cgit v1.2.3