diff options
author | Stefan Reinauer <stepan@coresystems.de> | 2009-07-21 21:38:33 +0000 |
---|---|---|
committer | Stefan Reinauer <stepan@openbios.org> | 2009-07-21 21:38:33 +0000 |
commit | b657a3c9b726334aac89f1af16495eab3ebefc6b (patch) | |
tree | 428e1de09fdb4d29d783f5ea875c41d13effa893 /src/mainboard/amd/serengeti_cheetah_fam10/acpi_tables.c | |
parent | 4d933dd2d686879e0c27839d3f9046e348580da8 (diff) |
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/amd/serengeti_cheetah_fam10/acpi_tables.c')
-rw-r--r-- | src/mainboard/amd/serengeti_cheetah_fam10/acpi_tables.c | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/src/mainboard/amd/serengeti_cheetah_fam10/acpi_tables.c b/src/mainboard/amd/serengeti_cheetah_fam10/acpi_tables.c index 8239a115bf..b8782e1b42 100644 --- a/src/mainboard/amd/serengeti_cheetah_fam10/acpi_tables.c +++ b/src/mainboard/amd/serengeti_cheetah_fam10/acpi_tables.c @@ -223,7 +223,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); /* @@ -234,7 +234,7 @@ unsigned long write_acpi_tables(unsigned long start) 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 */ current = ( current + 0x07) & -0x08; @@ -242,7 +242,7 @@ unsigned long write_acpi_tables(unsigned long start) madt = (acpi_madt_t *) current; acpi_create_madt(madt); current+=madt->header.length; - acpi_add_table(rsdt,madt); + acpi_add_table(rsdp,madt); /* SRAT */ current = ( current + 0x07) & -0x08; @@ -250,7 +250,7 @@ unsigned long write_acpi_tables(unsigned long start) srat = (acpi_srat_t *) current; acpi_create_srat(srat); current+=srat->header.length; - acpi_add_table(rsdt,srat); + acpi_add_table(rsdp,srat); /* SLIT */ current = ( current + 0x07) & -0x08; @@ -258,7 +258,7 @@ unsigned long write_acpi_tables(unsigned long start) slit = (acpi_slit_t *) current; acpi_create_slit(slit); current+=slit->header.length; - acpi_add_table(rsdt,slit); + acpi_add_table(rsdp,slit); /* SSDT */ current = ( current + 0x0f) & -0x10; @@ -271,7 +271,7 @@ unsigned long write_acpi_tables(unsigned long start) /* recalculate checksum */ ssdt->checksum = 0; ssdt->checksum = acpi_checksum((unsigned char *)ssdt,ssdt->length); - acpi_add_table(rsdt,ssdt); + acpi_add_table(rsdp,ssdt); printk_debug("ACPI: * SSDT for PState at %lx\n", current); current = acpi_add_ssdt_pstates(rsdt, current); @@ -312,7 +312,7 @@ unsigned long write_acpi_tables(unsigned long start) 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 @@ -339,7 +339,7 @@ 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 DUMP_ACPI_TABLES == 1 printk_debug("rsdp\n"); |