From: Benjamin Doron <benjamin.do...@9elements.com>

It appears that coreboot's GDT has changed recently, as the latest
U-Boot builds throw general protection faults early in the entrypoint
(arch/x86/cpu/start.S) while attempting to setup the segments.

When this config symbol is unset, U-Boot relies on the GDT loaded by
start16.s. However, this is never compiled into coreboot builds, so instead,
it uses whichever GDT was loaded by coreboot. This is subject to change.

Selecting this config symbol makes the 32-bit entrypoint code
load a GDT that matches U-Boot's expectations, fixing this issue.

Cc: Simon Glass <s...@chromium.org>
Signed-off-by: Benjamin Doron <benjamin.do...@9elements.com>
---
 configs/coreboot_defconfig | 1 +
 1 file changed, 1 insertion(+)

diff --git a/configs/coreboot_defconfig b/configs/coreboot_defconfig
index dfb97a3d302c..fbf6a4fea088 100644
--- a/configs/coreboot_defconfig
+++ b/configs/coreboot_defconfig
@@ -1,4 +1,5 @@
 CONFIG_X86=y
+CONFIG_X86_LOAD_FROM_32_BIT=y
 CONFIG_TEXT_BASE=0x1110000
 CONFIG_SYS_MALLOC_LEN=0x2000000
 CONFIG_NR_DRAM_BANKS=8
-- 
2.51.0

Reply via email to