[coreboot] [PATCH]Fix ACPI in HIGH-and-LOW tables configuration

Myles Watson mylesgw at gmail.com
Wed May 13 14:20:46 CEST 2009



> -----Original Message-----
> From: coreboot-bounces at coreboot.org [mailto:coreboot-bounces at coreboot.org]
> On Behalf Of Patrick Georgi
> Sent: Wednesday, May 13, 2009 12:46 AM
> To: coreboot at coreboot.org
> 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 <patrick.georgi at coresystems.de>

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





More information about the coreboot mailing list