Mark the first 64K memory as reserved as well since U-Boot uses this
memory region for things like VBIOS execution in real mode. After
kernel resumes, it checks low memory range per config option
CONFIG_X86_RESERVE_LOW which is 64K by default to see whether a
memory corruption occurs during the suspend/resume.

Signed-off-by: Bin Meng <bmeng...@gmail.com>
---

 arch/x86/lib/fsp/fsp_dram.c | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/arch/x86/lib/fsp/fsp_dram.c b/arch/x86/lib/fsp/fsp_dram.c
index 417c611..2b383ef 100644
--- a/arch/x86/lib/fsp/fsp_dram.c
+++ b/arch/x86/lib/fsp/fsp_dram.c
@@ -100,6 +100,18 @@ unsigned install_e820_map(unsigned max_entries, struct 
e820entry *entries)
                CONFIG_STACK_SIZE;
        entries[num_entries].type = E820_RESERVED;
        num_entries++;
+
+       /*
+        * Mark the first 64K memory as reserved as well since U-Boot uses
+        * this memory region for things like VBIOS execution in real mode.
+        * After kernel resumes, it checks low memory range per config option
+        * CONFIG_X86_RESERVE_LOW which is 64K by default to see whether a
+        * memory corruption occurs during the suspend/resume.
+        */
+       entries[num_entries].addr = 0;
+       entries[num_entries].size = 0x10000;
+       entries[num_entries].type = E820_RESERVED;
+       num_entries++;
 #endif
 
        return num_entries;
-- 
2.9.2

_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
https://lists.denx.de/listinfo/u-boot

Reply via email to