x86: acpi: Align FACS table to a 64 byte boundary
authorBin Meng <bmeng.cn@gmail.com>
Sat, 7 May 2016 14:46:27 +0000 (07:46 -0700)
committerBin Meng <bmeng.cn@gmail.com>
Mon, 23 May 2016 07:18:00 +0000 (15:18 +0800)
Per ACPI spec, the FACS table address must be aligned to a 64 byte
boundary (Windows checks this, but Linux does not).

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
Reviewed-by: Stefan Roese <sr@denx.de>
Tested-by: Stefan Roese <sr@denx.de>
Reviewed-by: Simon Glass <sjg@chromium.org>
arch/x86/lib/acpi_table.c

index 7ff6e8c..9cdea93 100644 (file)
@@ -339,7 +339,11 @@ u32 write_acpi_tables(u32 start)
        current = ALIGN(current, 16);
        xsdt = (struct acpi_xsdt *)current;
        current += sizeof(struct acpi_xsdt);
-       current = ALIGN(current, 16);
+       /*
+        * Per ACPI spec, the FACS table address must be aligned to a 64 byte
+        * boundary (Windows checks this, but Linux does not).
+        */
+       current = ALIGN(current, 64);
 
        /* clear all table memory */
        memset((void *)start, 0, current - start);