summaryrefslogtreecommitdiff
path: root/src/arch
diff options
context:
space:
mode:
Diffstat (limited to 'src/arch')
-rw-r--r--src/arch/x86/tables.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/arch/x86/tables.c b/src/arch/x86/tables.c
index 8d2f7b6f20..5940c64eba 100644
--- a/src/arch/x86/tables.c
+++ b/src/arch/x86/tables.c
@@ -149,6 +149,13 @@ static unsigned long write_smbios_table(unsigned long rom_table_end)
if (high_table_pointer) {
unsigned long new_high_table_pointer;
+ /*
+ * Clear the entire region to ensure the unused space doesn't
+ * contain garbage from a previous boot, like stale table
+ * signatures that could be found by the OS.
+ */
+ memset((void *)high_table_pointer, 0, MAX_SMBIOS_SIZE);
+
new_high_table_pointer =
smbios_write_tables(high_table_pointer);
rom_table_end = ALIGN_UP(rom_table_end, 16);