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");