coreboot/src/arch/x86
Patrick Rudolph 7a359497cd cpu/x86/64bit: Add code to call function in protected mode
This adds a helper function for long mode to call some code in protected
mode and return back to long mode.

The primary use case is to run binaries that have been compiled for
protected mode, like the FSP or MRC binaries.

Tested on Intel Skylake. The FSP-M runs and returns without error while
coreboot runs in long mode.

Change-Id: I22af2d224b546c0be9e7295330b4b6602df106d6
Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/48175
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Arthur Heymans <arthur@aheymans.xyz>
2020-12-05 08:19:17 +00:00
..
acpi ACPI: Drop commented-out DSDT DefinitionBlock instances 2020-07-09 23:55:06 +00:00
include cpu/x86/64bit: Add code to call function in protected mode 2020-12-05 08:19:17 +00:00
acpi.c src: Make HAVE_CF9_RESET set the FADT reset register 2020-07-20 13:23:13 +00:00
acpi_bert_storage.c src: Remove unused 'include <bootstate.h>' 2020-06-02 07:40:35 +00:00
acpi_s3.c ACPI S3: Split arch-agnostic parts 2020-11-19 22:58:11 +00:00
assembly_entry.S arch/x86/gdt: Work around assembler bug 2020-08-21 16:01:42 +00:00
boot.c arch/x86/boot: Jump to payload in protected mode 2020-08-19 09:06:43 +00:00
bootblock_crt0.S x86: Put bootblock startup code into .text._start section 2020-12-03 00:10:34 +00:00
bootblock_normal.c cbfs: Simplify load/map API names, remove type arguments 2020-12-02 22:13:17 +00:00
c_exit.S arch/x86/boot: Jump to payload in protected mode 2020-08-19 09:06:43 +00:00
c_start.S lib: Add ASan support to ramstage on x86 arch 2020-08-21 07:37:52 +00:00
car.ld cbfs: Enable CBFS mcache on most chipsets 2020-12-02 22:12:10 +00:00
cf9_reset.c treewide: Remove "this file is part of" lines 2020-05-11 17:11:40 +00:00
cpu.c src/arch: Drop unneeded empty lines 2020-08-24 09:16:19 +00:00
cpu_common.c treewide: Remove "this file is part of" lines 2020-05-11 17:11:40 +00:00
ebda.c treewide: Remove "this file is part of" lines 2020-05-11 17:11:40 +00:00
exception.c src/arch: Drop unneeded empty lines 2020-08-24 09:16:19 +00:00
exit_car.S arch/x86/exit_car.S: Fix checking clflush support 2020-08-31 06:45:35 +00:00
gdt_init.S arch/x86/gdt: Work around assembler bug 2020-08-21 16:01:42 +00:00
id.ld Revert "arch|cpu/x86: Add Kconfig option for x86 reset vector" 2020-11-17 07:46:34 +00:00
id.S treewide: Remove "this file is part of" lines 2020-05-11 17:11:40 +00:00
idt.S arch/x86: Support x86_64 exceptions 2020-07-05 19:56:09 +00:00
ioapic.c treewide: Remove "this file is part of" lines 2020-05-11 17:11:40 +00:00
Kconfig cbfs: Enable CBFS mcache on most chipsets 2020-12-02 22:12:10 +00:00
Makefile.inc ACPI S3: Split arch-agnostic parts 2020-11-19 22:58:11 +00:00
memcpy.c arch/x86: Add support for ASan to memory functions 2020-08-21 07:46:04 +00:00
memlayout.ld Revert "arch|cpu/x86: Add Kconfig option for x86 reset vector" 2020-11-17 07:46:34 +00:00
memmove.c arch/x86: Add support for ASan to memory functions 2020-08-21 07:46:04 +00:00
memset.c arch/x86: Add support for ASan to memory functions 2020-08-21 07:46:04 +00:00
mmap_boot.c treewide: Remove "this file is part of" lines 2020-05-11 17:11:40 +00:00
mpspec.c arch/x86/mpspec.c: Drop dead code 2020-07-12 19:31:21 +00:00
pirq_routing.c src/arch: Drop unneeded empty lines 2020-08-24 09:16:19 +00:00
post.c treewide: Remove "this file is part of" lines 2020-05-11 17:11:40 +00:00
postcar.c treewide: Remove "this file is part of" lines 2020-05-11 17:11:40 +00:00
postcar_loader.c arch/x86/postcar_loader: Remove unused 'include <cpu/cpu.h>' 2020-07-14 16:15:28 +00:00
rdrand.c treewide: Remove "this file is part of" lines 2020-05-11 17:11:40 +00:00
smbios.c arch/x86/smbios: Update SMBIOS type 16 error correction type 2020-11-25 09:18:04 +00:00
smbios_defaults.c arch/x86/smbios: Update SMBIOS type 0 ec version 2020-10-12 08:42:57 +00:00
tables.c src: Remove unused 'include <bootstate.h>' 2020-06-02 07:40:35 +00:00
thread.c treewide: Remove "this file is part of" lines 2020-05-11 17:11:40 +00:00
thread_switch.S treewide: Remove "this file is part of" lines 2020-05-11 17:11:40 +00:00
timestamp.c treewide: Remove "this file is part of" lines 2020-05-11 17:11:40 +00:00
timestamp.inc treewide: Remove "this file is part of" lines 2020-05-11 17:11:40 +00:00
verstage.c treewide: Remove "this file is part of" lines 2020-05-11 17:11:40 +00:00
wakeup.S treewide: Remove "this file is part of" lines 2020-05-11 17:11:40 +00:00
walkcbfs.S arch/x86/walkcbfs.S: Mark code as x86_32 2020-08-24 07:05:33 +00:00