coreboot-kgpe-d16/src
Patrick Rudolph 03a79520d6 cpu/x86/smm: Add support for long mode
Enable long mode in SMM handler.
x86_32 isn't affected by this change.

As the rsm instruction used to leave SMM doesn't restore MSR registers,
drop back to protected mode after running the smi_handler and restore
IA32_EFER MSR (which enables long mode support) to previous value.

NOTE: This commit does NOT introduce a new security model. It uses the
      same page tables as the remaining firmware does.
      This can be a security risk if someone is able to manipulate the
      page tables stored in ROM at runtime. USE FOR TESTING ONLY!

Tested on Qemu Q35.

Change-Id: I8bba4af4688c723fc079ae905dac95f57ea956f8
Signed-off-by: Patrick Rudolph <siro@das-labor.org>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/35681
Reviewed-by: Raul Rangel <rrangel@chromium.org>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2020-07-08 07:28:32 +00:00
..
acpi acpigen: Add acpigen_notify 2020-07-07 20:31:22 +00:00
arch armv7: mmu: Use 'tlbimva' to invalidate TLB entries 2020-07-07 21:48:30 +00:00
commonlib lib/coreboot_table: Add Intel FSP version to coreboot table 2020-07-04 11:20:08 +00:00
console console: Update for vboot before bootblock 2020-06-15 22:07:12 +00:00
cpu cpu/x86/smm: Add support for long mode 2020-07-08 07:28:32 +00:00
device Kconfig: Escape variable to accommodate new Kconfig versions 2020-06-19 15:29:04 +00:00
drivers dptf: Add support for IDSP 2020-07-07 17:23:47 +00:00
ec ec/google: Add function ec_fill_dptf_helpers() 2020-07-07 20:31:30 +00:00
include acpigen: Add acpigen_notify 2020-07-07 20:31:22 +00:00
lib prog_loaders: Fix ramstage loading on x86 2020-07-06 09:36:15 +00:00
mainboard mb/ocp/deltalake: Configure IPMI FRB2 watchdog timer via VPD variables in romstage 2020-07-08 07:24:22 +00:00
northbridge nb/intel/haswell/acpi: Update to ASL 2.0 syntax 2020-07-08 07:26:25 +00:00
security arch/x86: Remove RELOCATABLE_RAMSTAGE 2020-07-06 06:17:47 +00:00
soc soc/intel/common/block: Add new block DTT 2020-07-07 20:31:14 +00:00
southbridge sb/intel/i82801jx/sata.c: Handle ABAR as a resource 2020-07-06 23:34:21 +00:00
superio superio/winbond/w83977tf: Add suspend related fields 2020-06-16 20:17:26 +00:00
vendorcode vendorcode/intel/fsp/fsp2_0/cpx_sp: Update to FSP ww26 release and adapt soc 2020-07-07 22:24:41 +00:00
Kconfig arch/x86: Remove RELOCATABLE_RAMSTAGE 2020-07-06 06:17:47 +00:00