coreboot-kgpe-d16/Documentation
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
..
Intel mb,soc/intel: Rename acpi_fill_in_fadt() to acpi_fill_fadt() 2020-06-07 21:45:45 +00:00
RFC Documentation/RFC: Drop obsolete doc 2019-10-07 01:08:55 +00:00
_static Documentation: Add static CSS file to fix tables 2018-05-14 17:21:37 +00:00
acpi Documentation/acpi: Fix the path to variants/hatch/overridetree.cb 2020-05-26 14:58:35 +00:00
arch cpu/x86/smm: Add support for long mode 2020-07-08 07:28:32 +00:00
community Documentation: Add our issue tracker to services 2019-10-07 01:08:40 +00:00
contributing documentation: Add documentation ideas for season of docs 2020-05-01 13:47:06 +00:00
doxygen Documentation: Add doxygen_platform target 2017-03-23 21:19:34 +01:00
drivers smmstore: Verify userspace-provided pointer to protect SMM 2020-06-17 09:18:05 +00:00
flash_tutorial Documentation: Use inline code block for kernel parameter 2020-02-19 12:09:53 +00:00
getting_started Documentation: Encourage documentation with code changes 2020-05-20 08:44:26 +00:00
gfx drivers/intel/gma: Add override for presence straps 2020-05-20 23:38:05 +00:00
ifdtool Documentation: ifdtool/layout: use real table for FD regions 2020-02-17 20:08:41 +00:00
lib fw_config: Add firmware configuration interface 2020-06-02 16:40:04 +00:00
mainboard doc/mb/ocp: Add documentation for Delta Lake 2020-07-04 11:16:44 +00:00
northbridge Documentation: Add tutorial for me_cleaner on Lenovo devices 2020-03-02 11:39:05 +00:00
releases Documentation: Add section about SPD tools for TGL and JSL 2020-06-10 18:39:15 +00:00
security cpu/x86/smm: Add helper functions to verify SMM access 2020-06-17 09:17:56 +00:00
soc soc/amd/picasso/Makefile: Use apcb_tool to generate APCBs from SPDs 2020-05-18 07:40:51 +00:00
superio superio/nuvoton/nct5539d: Update documentation and remove DSDT 2020-03-11 15:03:39 +00:00
technotes Documentation/tutorial: Add tutorial for writing unit tests 2020-05-30 08:46:59 +00:00
tutorial Documentation/tutorial: Add tutorial for writing unit tests 2020-05-30 08:46:59 +00:00
vendorcode Documentation/vendorcode/eltan: Update security document 2020-01-30 13:28:24 +00:00
AMD-S3.txt Documentation: change coreboot to lowercase 2017-06-12 04:06:40 +02:00
COPYING Documentation/COPYING: Remove trailing whitespace 2018-04-27 09:10:20 +00:00
Doxyfile.coreboot Documentation: Update doxygen config files 2018-05-22 07:27:58 +00:00
Doxyfile.coreboot_simple Documentation: Update doxygen config files 2018-05-22 07:27:58 +00:00
Makefile Documentation: Allow passing arguments into make livesphinx 2019-02-05 21:15:37 +00:00
Makefile.sphinx Documentation: Add several fixes 2020-07-01 21:51:26 +00:00
POSTCODES post_code: add post code for video initialization failure 2019-05-22 17:45:11 +00:00
beginverbatim.tex Rename documentation -> Documentation 2015-05-06 19:09:47 +02:00
cbfs.txt Fix typos involving "the the" 2018-12-18 13:24:28 +00:00
codeflow.svg Documentation: Remove whitespace before tab 2018-06-04 11:48:23 +00:00
coding_style.md Documentation/coding_style.md: Update line length limit 2019-09-04 10:54:41 +00:00
conf.py Documentation: Add several fixes 2020-07-01 21:51:26 +00:00
corebootBuildingGuide.tex Use git HTTP URLs without `/p` in it 2018-04-17 10:38:06 +00:00
coreboot_logo.png Rename documentation -> Documentation 2015-05-06 19:09:47 +02:00
distributions.md docs/distributions: remove entry for John Lewis' ROMs 2019-08-02 09:59:44 +00:00
endverbatim.tex Rename documentation -> Documentation 2015-05-06 19:09:47 +02:00
gcov.txt Rename documentation -> Documentation 2015-05-06 19:09:47 +02:00
hypertransport.svg Rename documentation -> Documentation 2015-05-06 19:09:47 +02:00
index.md documentation: Add documentation ideas for season of docs 2020-05-01 13:47:06 +00:00
mainboard_io_trap_handler_sample.c ACPI GNVS: Replace uses of smm_get_gnvs() 2020-07-01 05:14:24 +00:00
payloads.md Documentation: Add Heads to payloads 2020-03-02 11:39:16 +00:00
util.md Doc,util: Update list of utilities 2020-04-20 06:55:49 +00:00