[coreboot] [patch] fix Windows 7 checked build assert caused by FADT length/revision inconsistency

Scott Duplichan scott at notabs.org
Fri Oct 22 04:11:02 CEST 2010


Running a checked build of Windows is needed for understanding
its various BIOS related BSODs. Win7 checked build complains
when running coreboot+seabios:

FADT revision inconsistent with length.
    Revision:        0x1
    Length:          0xf4
    Expected Length: 0x74

The following patch solves the problem. Tested on Mahogany_fam10 only.


Signed-off-by: Scott Duplichan <scott at notabs.org>

Index: src/southbridge/nvidia/ck804/ck804_fadt.c
===================================================================
--- src/southbridge/nvidia/ck804/ck804_fadt.c	(revision 5978)
+++ src/southbridge/nvidia/ck804/ck804_fadt.c	(working copy)
@@ -20,10 +20,11 @@
 	memcpy(header->signature, "FACP", 4);
 #ifdef LONG_FADT
 	header->length = 244;
+	header->revision = 3;
 #else
 	header->length = 0x74;
+	header->revision = 1;
 #endif
-	header->revision = 1;
 	memcpy(header->oem_id, "CORE  ", 6);
 	memcpy(header->oem_table_id, "CB-FADT ", 8);
 	memcpy(header->asl_compiler_id, "IASL", 4);
Index: src/mainboard/iwill/dk8_htx/fadt.c
===================================================================
--- src/mainboard/iwill/dk8_htx/fadt.c	(revision 5978)
+++ src/mainboard/iwill/dk8_htx/fadt.c	(working copy)
@@ -19,7 +19,7 @@
 	memset((void *)fadt,0,sizeof(acpi_fadt_t));
 	memcpy(header->signature,"FACP",4);
 	header->length = 244;
-	header->revision = 1;
+	header->revision = 3;
 	memcpy(header->oem_id,OEM_ID,6);
 	memcpy(header->oem_table_id,"COREBOOT",8);
 	memcpy(header->asl_compiler_id,ASLC,4);
Index: src/mainboard/asrock/939a785gmh/fadt.c
===================================================================
--- src/mainboard/asrock/939a785gmh/fadt.c	(revision 5978)
+++ src/mainboard/asrock/939a785gmh/fadt.c	(working copy)
@@ -52,7 +52,7 @@
 	memset((void *)fadt, 0, sizeof(acpi_fadt_t));
 	memcpy(header->signature, "FACP", 4);
 	header->length = 244;
-	header->revision = 1;
+	header->revision = 3;
 	memcpy(header->oem_id, OEM_ID, 6);
 	memcpy(header->oem_table_id, "COREBOOT", 8);
 	memcpy(header->asl_compiler_id, ASLC, 4);
Index: src/mainboard/kontron/kt690/fadt.c
===================================================================
--- src/mainboard/kontron/kt690/fadt.c	(revision 5978)
+++ src/mainboard/kontron/kt690/fadt.c	(working copy)
@@ -52,7 +52,7 @@
 	memset((void *)fadt, 0, sizeof(acpi_fadt_t));
 	memcpy(header->signature, "FACP", 4);
 	header->length = 244;
-	header->revision = 1;
+	header->revision = 3;
 	memcpy(header->oem_id, OEM_ID, 6);
 	memcpy(header->oem_table_id, "COREBOOT", 8);
 	memcpy(header->asl_compiler_id, ASLC, 4);
Index: src/mainboard/gigabyte/ma78gm/fadt.c
===================================================================
--- src/mainboard/gigabyte/ma78gm/fadt.c	(revision 5978)
+++ src/mainboard/gigabyte/ma78gm/fadt.c	(working copy)
@@ -52,7 +52,7 @@
 	memset((void *)fadt, 0, sizeof(acpi_fadt_t));
 	memcpy(header->signature, "FACP", 4);
 	header->length = 244;
-	header->revision = 1;
+	header->revision = 3;
 	memcpy(header->oem_id, OEM_ID, 6);
 	memcpy(header->oem_table_id, "COREBOOT", 8);
 	memcpy(header->asl_compiler_id, ASLC, 4);
Index: src/mainboard/gigabyte/ma785gmt/fadt.c
===================================================================
--- src/mainboard/gigabyte/ma785gmt/fadt.c	(revision 5978)
+++ src/mainboard/gigabyte/ma785gmt/fadt.c	(working copy)
@@ -52,7 +52,7 @@
 	memset((void *)fadt, 0, sizeof(acpi_fadt_t));
 	memcpy(header->signature, "FACP", 4);
 	header->length = 244;
-	header->revision = 1;
+	header->revision = 3;
 	memcpy(header->oem_id, OEM_ID, 6);
 	memcpy(header->oem_table_id, "COREBOOT", 8);
 	memcpy(header->asl_compiler_id, ASLC, 4);
Index: src/mainboard/amd/mahogany/fadt.c
===================================================================
--- src/mainboard/amd/mahogany/fadt.c	(revision 5978)
+++ src/mainboard/amd/mahogany/fadt.c	(working copy)
@@ -52,7 +52,7 @@
 	memset((void *)fadt, 0, sizeof(acpi_fadt_t));
 	memcpy(header->signature, "FACP", 4);
 	header->length = 244;
-	header->revision = 1;
+	header->revision = 3;
 	memcpy(header->oem_id, OEM_ID, 6);
 	memcpy(header->oem_table_id, "COREBOOT", 8);
 	memcpy(header->asl_compiler_id, ASLC, 4);
Index: src/mainboard/amd/pistachio/fadt.c
===================================================================
--- src/mainboard/amd/pistachio/fadt.c	(revision 5978)
+++ src/mainboard/amd/pistachio/fadt.c	(working copy)
@@ -52,7 +52,7 @@
 	memset((void *)fadt, 0, sizeof(acpi_fadt_t));
 	memcpy(header->signature, "FACP", 4);
 	header->length = 244;
-	header->revision = 1;
+	header->revision = 3;
 	memcpy(header->oem_id, OEM_ID, 6);
 	memcpy(header->oem_table_id, "COREBOOT", 8);
 	memcpy(header->asl_compiler_id, ASLC, 4);
Index: src/mainboard/amd/dbm690t/fadt.c
===================================================================
--- src/mainboard/amd/dbm690t/fadt.c	(revision 5978)
+++ src/mainboard/amd/dbm690t/fadt.c	(working copy)
@@ -52,7 +52,7 @@
 	memset((void *)fadt, 0, sizeof(acpi_fadt_t));
 	memcpy(header->signature, "FACP", 4);
 	header->length = 244;
-	header->revision = 1;
+	header->revision = 3;
 	memcpy(header->oem_id, OEM_ID, 6);
 	memcpy(header->oem_table_id, "COREBOOT", 8);
 	memcpy(header->asl_compiler_id, ASLC, 4);
Index: src/mainboard/amd/serengeti_cheetah/fadt.c
===================================================================
--- src/mainboard/amd/serengeti_cheetah/fadt.c	(revision 5978)
+++ src/mainboard/amd/serengeti_cheetah/fadt.c	(working copy)
@@ -19,7 +19,7 @@
 	memset((void *)fadt,0,sizeof(acpi_fadt_t));
 	memcpy(header->signature,"FACP",4);
 	header->length = 244;
-	header->revision = 1;
+	header->revision = 3;
 	memcpy(header->oem_id,OEM_ID,6);
 	memcpy(header->oem_table_id,"COREBOOT",8);
 	memcpy(header->asl_compiler_id,ASLC,4);
Index: src/mainboard/amd/mahogany_fam10/fadt.c
===================================================================
--- src/mainboard/amd/mahogany_fam10/fadt.c	(revision 5978)
+++ src/mainboard/amd/mahogany_fam10/fadt.c	(working copy)
@@ -52,7 +52,7 @@
 	memset((void *)fadt, 0, sizeof(acpi_fadt_t));
 	memcpy(header->signature, "FACP", 4);
 	header->length = 244;
-	header->revision = 1;
+	header->revision = 3;
 	memcpy(header->oem_id, OEM_ID, 6);
 	memcpy(header->oem_table_id, "COREBOOT", 8);
 	memcpy(header->asl_compiler_id, ASLC, 4);
Index: src/mainboard/amd/tilapia_fam10/fadt.c
===================================================================
--- src/mainboard/amd/tilapia_fam10/fadt.c	(revision 5978)
+++ src/mainboard/amd/tilapia_fam10/fadt.c	(working copy)
@@ -52,7 +52,7 @@
 	memset((void *)fadt, 0, sizeof(acpi_fadt_t));
 	memcpy(header->signature, "FACP", 4);
 	header->length = 244;
-	header->revision = 1;
+	header->revision = 3;
 	memcpy(header->oem_id, OEM_ID, 6);
 	memcpy(header->oem_table_id, "COREBOOT", 8);
 	memcpy(header->asl_compiler_id, ASLC, 4);
Index: src/mainboard/amd/serengeti_cheetah_fam10/fadt.c
===================================================================
--- src/mainboard/amd/serengeti_cheetah_fam10/fadt.c	(revision 5978)
+++ src/mainboard/amd/serengeti_cheetah_fam10/fadt.c	(working copy)
@@ -40,7 +40,7 @@
 	memset((void *)fadt,0,sizeof(acpi_fadt_t));
 	memcpy(header->signature,"FACP",4);
 	header->length = 244;
-	header->revision = 1;
+	header->revision = 3;
 	memcpy(header->oem_id,OEM_ID,6);
 	memcpy(header->oem_table_id,"COREBOOT",8);
 	memcpy(header->asl_compiler_id,ASLC,4);
Index: src/mainboard/iei/kino-780am2-fam10/fadt.c
===================================================================
--- src/mainboard/iei/kino-780am2-fam10/fadt.c	(revision 5978)
+++ src/mainboard/iei/kino-780am2-fam10/fadt.c	(working copy)
@@ -52,7 +52,7 @@
 	memset((void *)fadt, 0, sizeof(acpi_fadt_t));
 	memcpy(header->signature, "FACP", 4);
 	header->length = 244;
-	header->revision = 1;
+	header->revision = 3;
 	memcpy(header->oem_id, OEM_ID, 6);
 	memcpy(header->oem_table_id, "COREBOOT", 8);
 	memcpy(header->asl_compiler_id, ASLC, 4);
Index: src/mainboard/via/epia-m700/fadt.c
===================================================================
--- src/mainboard/via/epia-m700/fadt.c	(revision 5978)
+++ src/mainboard/via/epia-m700/fadt.c	(working copy)
@@ -30,7 +30,7 @@
 	memset((void *)fadt, 0, sizeof(acpi_fadt_t));
 	memcpy(header->signature, "FACP", 4);
 	header->length = 244;
-	header->revision = 1;
+	header->revision = 3;
 	memcpy(header->oem_id, "VX800 ", 6);
 	memcpy(header->oem_table_id, "LNXBACPI", 8);
 	memcpy(header->asl_compiler_id, "LXB", 8);
Index: src/mainboard/via/vt8454c/fadt.c
===================================================================
--- src/mainboard/via/vt8454c/fadt.c	(revision 5978)
+++ src/mainboard/via/vt8454c/fadt.c	(working copy)
@@ -29,7 +29,7 @@
 	memset((void *) fadt, 0, sizeof(acpi_fadt_t));
 	memcpy(header->signature, "FACP", 4);
 	header->length = 244;
-	header->revision = 1;
+	header->revision = 3;
 	memcpy(header->oem_id, "CX700 ", 6);
 	memcpy(header->oem_table_id, "COREBOOT", 8);
 	memcpy(header->asl_compiler_id, "CORE", 4);
Index: src/mainboard/via/epia-m/fadt.c
===================================================================
--- src/mainboard/via/epia-m/fadt.c	(revision 5978)
+++ src/mainboard/via/epia-m/fadt.c	(working copy)
@@ -31,7 +31,7 @@
 	memset((void *)fadt,0,sizeof(acpi_fadt_t));
 	memcpy(header->signature,"FACP",4);
 	header->length = 244;
-	header->revision = 1;
+	header->revision = 3;
 	memcpy(header->oem_id,OEM_ID,6);
 	memcpy(header->oem_table_id,"COREBOOT",8);
 	memcpy(header->asl_compiler_id,ASLC,4);
Index: src/mainboard/via/epia-n/fadt.c
===================================================================
--- src/mainboard/via/epia-n/fadt.c	(revision 5978)
+++ src/mainboard/via/epia-n/fadt.c	(working copy)
@@ -33,7 +33,7 @@
 	memset((void *)fadt,0,sizeof(acpi_fadt_t));
 	memcpy(header->signature,"FACP",4);
 	header->length = 244;
-	header->revision = 1;
+	header->revision = 3;
 	memcpy(header->oem_id,OEM_ID,6);
 	memcpy(header->oem_table_id,"COREBOOT",8);
 	memcpy(header->asl_compiler_id,ASLC,4);
Index: src/mainboard/jetway/pa78vm5/fadt.c
===================================================================
--- src/mainboard/jetway/pa78vm5/fadt.c	(revision 5978)
+++ src/mainboard/jetway/pa78vm5/fadt.c	(working copy)
@@ -52,7 +52,7 @@
 	memset((void *)fadt, 0, sizeof(acpi_fadt_t));
 	memcpy(header->signature, "FACP", 4);
 	header->length = 244;
-	header->revision = 1;
+	header->revision = 3;
 	memcpy(header->oem_id, OEM_ID, 6);
 	memcpy(header->oem_table_id, "COREBOOT", 8);
 	memcpy(header->asl_compiler_id, ASLC, 4);
Index: src/mainboard/technexion/tim8690/fadt.c
===================================================================
--- src/mainboard/technexion/tim8690/fadt.c	(revision 5978)
+++ src/mainboard/technexion/tim8690/fadt.c	(working copy)
@@ -52,7 +52,7 @@
 	memset((void *)fadt, 0, sizeof(acpi_fadt_t));
 	memcpy(header->signature, "FACP", 4);
 	header->length = 244;
-	header->revision = 1;
+	header->revision = 3;
 	memcpy(header->oem_id, OEM_ID, 6);
 	memcpy(header->oem_table_id, "COREBOOT", 8);
 	memcpy(header->asl_compiler_id, ASLC, 4);
Index: src/mainboard/technexion/tim5690/fadt.c
===================================================================
--- src/mainboard/technexion/tim5690/fadt.c	(revision 5978)
+++ src/mainboard/technexion/tim5690/fadt.c	(working copy)
@@ -52,7 +52,7 @@
 	memset((void *)fadt, 0, sizeof(acpi_fadt_t));
 	memcpy(header->signature, "FACP", 4);
 	header->length = 244;
-	header->revision = 1;
+	header->revision = 3;
 	memcpy(header->oem_id, OEM_ID, 6);
 	memcpy(header->oem_table_id, "COREBOOT", 8);
 	memcpy(header->asl_compiler_id, ASLC, 4);
Index: src/mainboard/intel/eagleheights/fadt.c
===================================================================
--- src/mainboard/intel/eagleheights/fadt.c	(revision 5978)
+++ src/mainboard/intel/eagleheights/fadt.c	(working copy)
@@ -56,7 +56,7 @@
 	memset((void *) fadt, 0, sizeof(acpi_fadt_t));
 	memcpy(header->signature, "FACP", 4);
 	header->length = 244;
-	header->revision = 1;
+	header->revision = 3;
 	memcpy(header->oem_id, "CORE  ", 6);
 	memcpy(header->oem_table_id, "COREBOOT", 8);
 	memcpy(header->asl_compiler_id, "CORE", 4);
Index: src/mainboard/asus/m4a785-m/fadt.c
===================================================================
--- src/mainboard/asus/m4a785-m/fadt.c	(revision 5978)
+++ src/mainboard/asus/m4a785-m/fadt.c	(working copy)
@@ -52,7 +52,7 @@
 	memset((void *)fadt, 0, sizeof(acpi_fadt_t));
 	memcpy(header->signature, "FACP", 4);
 	header->length = 244;
-	header->revision = 1;
+	header->revision = 3;
 	memcpy(header->oem_id, OEM_ID, 6);
 	memcpy(header->oem_table_id, "COREBOOT", 8);
 	memcpy(header->asl_compiler_id, ASLC, 4);


-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: patch-fadt.txt
URL: <http://www.coreboot.org/pipermail/coreboot/attachments/20101021/e0b9e4d6/attachment.txt>


More information about the coreboot mailing list