> -----Original Message----- > From: [email protected] [mailto:[email protected]] > On Behalf Of Patrick Georgi > Sent: Wednesday, May 13, 2009 12:46 AM > To: [email protected] > Subject: [coreboot] [PATCH]Fix ACPI in HIGH-and-LOW tables configuration > > Hi, > > I messed up and added some "harmless" code right before pushing this > change. > Just that it wasn't harmless. I'm sorry. > > Anyway, with this patch, ACPI works again for setups with both > HAVE_HIGH_TABLES and HAVE_LOW_TABLES, as the RSDP contains valid data now > (without it the RSDT is bogus: it is read out before it is written) Index: src/arch/i386/boot/tables.c =================================================================== --- src/arch/i386/boot/tables.c (Revision 4279) +++ src/arch/i386/boot/tables.c (Arbeitskopie) @@ -116,14 +116,16 @@ #if HAVE_HIGH_TABLES == 1 #if HAVE_LOW_TABLES == 1 unsigned long high_rsdp=ALIGN(high_table_end, 16); - unsigned long rsdt_location=(unsigned long*)(((acpi_rsdp_t*)high_rsdp)->rsdt_address); - acpi_write_rsdp(rom_table_end, rsdt_location); - rom_table_end = ALIGN(ALIGN(rom_table_end, 16) + sizeof(acpi_rsdp_t), 16); #endif if (high_tables_base) { high_table_end = write_acpi_tables(high_table_end); high_table_end = (high_table_end+1023) & ~1023; } +#if HAVE_LOW_TABLES == 1 + unsigned long rsdt_location=(unsigned long*)(((acpi_rsdp_t*)high_rsdp)->rsdt_address); + acpi_write_rsdp(rom_table_end, rsdt_location); + rom_table_end = ALIGN(ALIGN(rom_table_end, 16) + sizeof(acpi_rsdp_t), 16); +#endif #else #if HAVE_LOW_TABLES == 1 rom_table_end = write_acpi_tables(rom_table_end); > Signed-off-by: Patrick Georgi <[email protected]>
Can you move the declaration of high_rsdp too? One less #if. I don't see how this changes the functionality. Which variable are you worried about? Sorry if I'm being blind. Thanks, Myles -- coreboot mailing list: [email protected] http://www.coreboot.org/mailman/listinfo/coreboot

