coreboot/src
Patrick Rudolph de8e4d930d cpu/x86/64bit/mode_switch: Work around FSP bug
FSP, that is build against EDK2 2018 or newer, is able to back up and
restore the bootloader IDT on entry/exit. Even though it sets up its
own IDT, FSP checks the bootloader IDT size and deadloops without
warning if it's too big.

On x86_64 coreboot the IDT is naturally bigger than on x86_32 and thus
x86_32 FSP might die on entry. Work around this issue by:

* Back up and restore the IDT in protected_mode_call_wrapper
* Load zero IDT in protected mode before jumping to function

TEST: Can boot on SPR FSP (x86_32) using x86_64 coreboot with
      exceptions in romstage enabled.

Change-Id: I56367d8153aa10a9b1bcaa5ffde8ebe202e8c00c
Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/85789
Reviewed-by: Shuo Liu <shuo.liu@intel.com>
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Maximilian Brune <maximilian.brune@9elements.com>
2025-01-08 08:17:57 +00:00
..
acpi acpi/acpigen: generate Create*Field() from name string directly 2024-12-10 02:58:29 +00:00
arch arch/x86: Replace 'unsigned long int' by 'unsigned long' 2025-01-08 02:57:44 +00:00
commonlib Fix up CFR's open issues 2024-12-30 21:27:36 +00:00
console console/i2c_smbus: Allow to send data w/o register offset 2024-07-11 00:06:22 +00:00
cpu cpu/x86/64bit/mode_switch: Work around FSP bug 2025-01-08 08:17:57 +00:00
device arch/x86: Rename breakpoint removal function 2024-12-10 08:48:00 +00:00
drivers drivers/uart: Replace 'unsigned long int' by 'unsigned long' 2025-01-08 03:09:36 +00:00
ec ec/starlabs/merlin: Add the option to reduce the LED brightness 2025-01-07 19:30:26 +00:00
include cpu/x86/topology: Add module_id to CPU topology 2025-01-07 21:10:04 +00:00
lib drivers/option: Add forms in cbtables 2024-12-18 18:16:51 +00:00
mainboard soc/mediatek/mt8196: Correct the argument type of MT6363 2025-01-08 02:53:46 +00:00
northbridge haswell NRI: Post-process selected timings 2024-12-10 09:38:00 +00:00
sbom src, util: Clean up makefile.inc in text, help & comments 2024-01-26 20:15:18 +00:00
security drivers/pc80/tpm: Remove flag TPM_RDRESP_NEED_DELAY 2024-10-14 15:26:11 +00:00
soc soc/mediatek/mt8196: Correct the argument type of MT6363 2025-01-08 02:53:46 +00:00
southbridge Treewide: Remove unused header files 2024-11-30 04:44:06 +00:00
superio superio/ite: Add support for IT8625E 2024-11-21 15:49:12 +00:00
vendorcode vendorcode/amd/opensil/genoa_poc/ramstage.c: Fix log typos 2025-01-07 16:20:40 +00:00
Kconfig Add initial experimental LTO support 2024-08-24 12:50:38 +00:00