Arthur Heymans has uploaded this change for review.

View Change

cpu/x86/Kconfig: Mark 64bit support as stable

With SMM holding page tables itself, we can consider SMM support stable
and safe enough for general use.

Also update the respective documentation.

Signed-off-by: Arthur Heymans <arthur@aheymans.xyz>
Change-Id: Ifcf0a1a5097a2d7c064bb709ec0b09ebee13a47d
---
M Documentation/arch/x86/index.md
M src/arch/x86/Kconfig
2 files changed, 4 insertions(+), 11 deletions(-)

git pull ssh://review.coreboot.org:29418/coreboot refs/changes/38/80338/1
diff --git a/Documentation/arch/x86/index.md b/Documentation/arch/x86/index.md
index c7115b4..ea0ec61 100644
--- a/Documentation/arch/x86/index.md
+++ b/Documentation/arch/x86/index.md
@@ -5,9 +5,7 @@
* [x86 PAE support](pae.md)

## State of x86_64 support
-At the moment there's only experimental x86_64 support.
-The `emulation/qemu-i440fx` and `emulation/qemu-q35` boards do support
-*ARCH_RAMSTAGE_X86_64* , *ARCH_POSTCAR_X86_64* and *ARCH_ROMSTAGE_X86_64*.
+A few SOCs now support 64bit mode. Search for HAVE_EXP_X86_64_SUPPORT in Kconfig.

In order to add support for x86_64 the following assumptions were made:
* The CPU supports long mode
@@ -15,7 +13,6 @@
* All code that is to be run must be below 4GiB in physical memory
* The high dword of pointers is always zero
* The reference implementation is qemu
-* The CPU supports 1GiB hugepages
* x86 payloads are loaded below 4GiB in physical memory and are jumped
to in *protected mode*

@@ -54,7 +51,6 @@
1. Fine grained page tables for SMM:
* Must not have execute and write permissions for the same page.
* Must allow only that TSEG pages can be marked executable
- * Must reside in SMRAM
2. Support 64bit PCI BARs above 4GiB
3. Place and run code above 4GiB

@@ -62,13 +58,10 @@
* Fix compilation errors
* Test how well CAR works with x86_64 and paging
* Improve mode switches
-* Test libgfxinit / VGA Option ROMs / FSP

-## Known bugs on real hardware
+## Known problems on real hardware

-According to Intel x86_64 mode hasn't been validated in CAR environments.
-Until now it could be verified on various Intel platforms and no issues have
-been found.
+Running VGA rom directly fails. Yabel works fine though.

## Known bugs on KVM enabled qemu

diff --git a/src/arch/x86/Kconfig b/src/arch/x86/Kconfig
index 1697ee7..c264130 100644
--- a/src/arch/x86/Kconfig
+++ b/src/arch/x86/Kconfig
@@ -74,7 +74,7 @@
to provide a config file for Jenkins to build-test the 64-bit option.

config USE_EXP_X86_64_SUPPORT
- bool "[EXPERIMENTAL] Run coreboot in long (64-bit) mode"
+ bool "Run coreboot in long (64-bit) mode"
depends on HAVE_EXP_X86_64_SUPPORT
select ARCH_ALL_STAGES_X86_64
help

To view, visit change 80338. To unsubscribe, or for help writing mail filters, visit settings.

Gerrit-Project: coreboot
Gerrit-Branch: main
Gerrit-Change-Id: Ifcf0a1a5097a2d7c064bb709ec0b09ebee13a47d
Gerrit-Change-Number: 80338
Gerrit-PatchSet: 1
Gerrit-Owner: Arthur Heymans <arthur@aheymans.xyz>
Gerrit-MessageType: newchange