From: Stefan Reinauer Date: Wed, 22 Jul 2009 01:11:37 +0000 (+0000) Subject: Fix up the tree again... X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=commitdiff_plain;h=4704dc520b1d5eb8ae730b336ee5f6b7401f7dfc;hp=cdfe376c06bf95399b03196de0a436e719811eea;p=coreboot.git Fix up the tree again... * acpi_add_table requires a pointer to the RSDP, not the RSDT anymore, in order to properly support XSDT generation. * fix compilation the DSDT on gigabyte/m57sli * drop a remaining, forgotten HPET_NAME for "HPET" Signed-off-by: Stefan Reinauer Acked-by: Stefan Reinauer git-svn-id: svn://svn.coreboot.org/coreboot/trunk@4461 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1 --- diff --git a/src/arch/i386/boot/acpi.c b/src/arch/i386/boot/acpi.c index 515976636..baff4f0dd 100644 --- a/src/arch/i386/boot/acpi.c +++ b/src/arch/i386/boot/acpi.c @@ -341,7 +341,7 @@ void acpi_create_hpet(acpi_hpet_t *hpet) memset((void *)hpet, 0, sizeof(acpi_hpet_t)); /* fill out header fields */ - memcpy(header->signature, HPET_NAME, 4); + memcpy(header->signature, "HPET", 4); memcpy(header->oem_id, OEM_ID, 6); memcpy(header->oem_table_id, ACPI_TABLE_CREATOR, 8); memcpy(header->asl_compiler_id, ASLC, 4); diff --git a/src/arch/i386/include/arch/acpi.h b/src/arch/i386/include/arch/acpi.h index 7f87f64a0..f5668c343 100644 --- a/src/arch/i386/include/arch/acpi.h +++ b/src/arch/i386/include/arch/acpi.h @@ -389,7 +389,7 @@ int acpi_get_sleep_type(void); #endif -unsigned long acpi_add_ssdt_pstates(acpi_rsdt_t *rsdt, unsigned long current); +unsigned long acpi_add_ssdt_pstates(acpi_rsdp_t *rsdp, unsigned long current); #define ACPI_WRITE_MADT_IOAPIC(dev,id) \ do { \ diff --git a/src/mainboard/amd/serengeti_cheetah_fam10/acpi_tables.c b/src/mainboard/amd/serengeti_cheetah_fam10/acpi_tables.c index b8782e1b4..184735b10 100644 --- a/src/mainboard/amd/serengeti_cheetah_fam10/acpi_tables.c +++ b/src/mainboard/amd/serengeti_cheetah_fam10/acpi_tables.c @@ -274,7 +274,7 @@ unsigned long write_acpi_tables(unsigned long start) acpi_add_table(rsdp,ssdt); printk_debug("ACPI: * SSDT for PState at %lx\n", current); - current = acpi_add_ssdt_pstates(rsdt, current); + current = acpi_add_ssdt_pstates(rsdp, current); #if CONFIG_ACPI_SSDTX_NUM >= 1 diff --git a/src/mainboard/gigabyte/m57sli/Config.lb b/src/mainboard/gigabyte/m57sli/Config.lb index be770434b..d3289427c 100644 --- a/src/mainboard/gigabyte/m57sli/Config.lb +++ b/src/mainboard/gigabyte/m57sli/Config.lb @@ -170,8 +170,8 @@ if CONFIG_HAVE_ACPI_TABLES object acpi_tables.o makerule dsdt.c depends "$(CONFIG_MAINBOARD)/dsdt.asl" - action "iasl -p $(PWD)/dsdt -tc $(CONFIG_MAINBOARD)/dsdt.asl" - action "mv dsdt.hex dsdt.c" + action "iasl -p dsdt -tc $(CONFIG_MAINBOARD)/dsdt.asl" + action "mv $(CURDIR)/dsdt.hex dsdt.c" end object ./dsdt.o end diff --git a/src/mainboard/gigabyte/m57sli/acpi_tables.c b/src/mainboard/gigabyte/m57sli/acpi_tables.c index 5a677495e..ecc063df1 100644 --- a/src/mainboard/gigabyte/m57sli/acpi_tables.c +++ b/src/mainboard/gigabyte/m57sli/acpi_tables.c @@ -130,7 +130,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: */ @@ -156,39 +156,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"); @@ -196,7 +196,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; diff --git a/src/mainboard/intel/eagleheights/acpi_tables.c b/src/mainboard/intel/eagleheights/acpi_tables.c index 71ba060d7..c96c632e2 100644 --- a/src/mainboard/intel/eagleheights/acpi_tables.c +++ b/src/mainboard/intel/eagleheights/acpi_tables.c @@ -169,7 +169,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); /* @@ -181,7 +181,7 @@ unsigned long write_acpi_tables(unsigned long start) current += sizeof(acpi_hpet_t); ALIGN_CURRENT; acpi_create_intel_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"); @@ -190,14 +190,14 @@ unsigned long write_acpi_tables(unsigned long start) acpi_create_madt(madt); current += madt->header.length; ALIGN_CURRENT; - 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; ALIGN_CURRENT; - acpi_add_table(rsdt, mcfg); + acpi_add_table(rsdp, mcfg); printk_debug("ACPI: * FACS\n"); facs = (acpi_facs_t *) current; @@ -220,7 +220,7 @@ unsigned long write_acpi_tables(unsigned long start) ALIGN_CURRENT; acpi_create_fadt(fadt, facs, dsdt); - acpi_add_table(rsdt, fadt); + acpi_add_table(rsdp, fadt); printk_info("ACPI: done.\n"); return current; diff --git a/src/mainboard/via/epia-m700/acpi_tables.c b/src/mainboard/via/epia-m700/acpi_tables.c index ecb8de48e..fefe7b652 100644 --- a/src/mainboard/via/epia-m700/acpi_tables.c +++ b/src/mainboard/via/epia-m700/acpi_tables.c @@ -147,7 +147,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: */ @@ -171,14 +171,14 @@ 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); /* NO MCFG in VX855, no PCI-E. */ @@ -186,7 +186,7 @@ unsigned long write_acpi_tables(unsigned long start) hpet = (acpi_mcfg_t *) current; acpi_create_hpet(hpet); current += hpet->header.length; - acpi_add_table(rsdt, hpet); + acpi_add_table(rsdp, hpet); #if 0 printk_debug("ACPI: * SSDT\n"); @@ -195,7 +195,7 @@ unsigned long write_acpi_tables(unsigned long start) memcpy((void *)ssdt,(void *)AmlCode_ssdt, ((acpi_header_t *)AmlCode_ssdt)->length); ssdt->checksum = 0; /* Don't trust iasl to get this right. */ ssdt->checksum = acpi_checksum(ssdt, ssdt->length); - acpi_add_table(rsdt, ssdt); + acpi_add_table(rsdp, ssdt); printk_debug("ACPI: * SSDT @ %08x Length %x\n", ssdt, ssdt->length); #endif diff --git a/src/mainboard/via/epia-n/acpi_tables.c b/src/mainboard/via/epia-n/acpi_tables.c index 9ca946de5..3f58d6682 100644 --- a/src/mainboard/via/epia-n/acpi_tables.c +++ b/src/mainboard/via/epia-n/acpi_tables.c @@ -63,7 +63,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); /* @@ -86,7 +86,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); printk_info("ACPI: done.\n"); return current; diff --git a/src/northbridge/amd/amdfam10/amdfam10_acpi.c b/src/northbridge/amd/amdfam10/amdfam10_acpi.c index f902d6ee9..77fd3ccb1 100644 --- a/src/northbridge/amd/amdfam10/amdfam10_acpi.c +++ b/src/northbridge/amd/amdfam10/amdfam10_acpi.c @@ -312,7 +312,7 @@ extern unsigned char AmlCode_sspr2[]; extern unsigned char AmlCode_sspr1[]; /* fixme: find one good way for different p_state_num */ -unsigned long acpi_add_ssdt_pstates(acpi_rsdt_t *rsdt, unsigned long current) +unsigned long acpi_add_ssdt_pstates(acpi_rsdp_t *rsdp, unsigned long current) { device_t cpu; int cpu_index = 0; @@ -348,7 +348,7 @@ unsigned long acpi_add_ssdt_pstates(acpi_rsdt_t *rsdt, unsigned long current) /* recalculate checksum */ ssdt->checksum = 0; ssdt->checksum = acpi_checksum((unsigned char *)ssdt,ssdt->length); - acpi_add_table(rsdt,ssdt); + acpi_add_table(rsdp, ssdt); cpu_index++; }