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
diff --git a/src/mainboard/iwill/dk8_htx/acpi_tables.c b/src/mainboard/iwill/dk8_htx/acpi_tables.c
index 53822bd..12e0494 100644
--- a/src/mainboard/iwill/dk8_htx/acpi_tables.c
+++ b/src/mainboard/iwill/dk8_htx/acpi_tables.c
@@ -224,7 +224,7 @@
/* 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);
/*
@@ -234,14 +234,14 @@
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);
/* SRAT */
@@ -249,14 +249,14 @@
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");
@@ -264,7 +264,7 @@
acpi_create_ssdt_generator(ssdt, "DYNADATA");
current += ssdt->length;
- acpi_add_table(rsdt, ssdt);
+ acpi_add_table(rsdp, ssdt);
#if CONFIG_ACPI_SSDTX_NUM >= 1
@@ -302,7 +302,7 @@
update_ssdtx((void *)ssdtx, i);
ssdtx->checksum = 0;
ssdtx->checksum = acpi_checksum((unsigned char *)ssdtx,ssdtx->length);
- acpi_add_table(rsdt,ssdtx);
+ acpi_add_table(rsdp,ssdtx);
}
#endif
@@ -326,7 +326,7 @@
current += sizeof(acpi_fadt_t);
acpi_create_fadt(fadt,facs,dsdt);
- acpi_add_table(rsdt,fadt);
+ acpi_add_table(rsdp,fadt);
#if DUMP_ACPI_TABLES == 1
printk_debug("rsdp\n");