Patrick Rudolph has uploaded this change for review.

View Change

soc/intel/*/Kconfig: Enable x86_64 Kconfig option

Tested on Intel Skylake. Compiles and boots without issues.
Used tianocore as payload and could boot into Ubuntu 20.

Other platforms might not compile due to drivers not being ported
to x86_64 or might not boot due to a yet unsupported boot flow.

Untested:
* FSP MPinit
* FSP-T
* SMM loader v2
* libgfxinit
* FSP graphics init

Change-Id: Id2919766acc2e11d81c279c23380a9e6fd50f0bb
Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
---
M src/soc/intel/alderlake/Kconfig
M src/soc/intel/apollolake/Kconfig
M src/soc/intel/cannonlake/Kconfig
M src/soc/intel/common/block/cpu/Kconfig
M src/soc/intel/denverton_ns/Kconfig
M src/soc/intel/elkhartlake/Kconfig
M src/soc/intel/icelake/Kconfig
M src/soc/intel/jasperlake/Kconfig
M src/soc/intel/skylake/Kconfig
M src/soc/intel/tigerlake/Kconfig
10 files changed, 24 insertions(+), 9 deletions(-)

git pull ssh://review.coreboot.org:29418/coreboot refs/changes/44/48244/1
diff --git a/src/soc/intel/alderlake/Kconfig b/src/soc/intel/alderlake/Kconfig
index d6db6a0..61d8ee4 100644
--- a/src/soc/intel/alderlake/Kconfig
+++ b/src/soc/intel/alderlake/Kconfig
@@ -8,7 +8,8 @@
config CPU_SPECIFIC_OPTIONS
def_bool y
select ACPI_INTEL_HARDWARE_SLEEP_VALUES
- select ARCH_ALL_STAGES_X86_32
+ select ARCH_ALL_STAGES_X86_32 if !EXP_ARCH_X86_64
+ select ARCH_ALL_STAGES_X86_64 if EXP_ARCH_X86_64
select BOOT_DEVICE_SUPPORTS_WRITES
select CACHE_MRC_SETTINGS
select CPU_INTEL_COMMON
diff --git a/src/soc/intel/apollolake/Kconfig b/src/soc/intel/apollolake/Kconfig
index 29e133c..0df396d 100644
--- a/src/soc/intel/apollolake/Kconfig
+++ b/src/soc/intel/apollolake/Kconfig
@@ -22,7 +22,8 @@
def_bool y
select ACPI_INTEL_HARDWARE_SLEEP_VALUES
select ACPI_NO_PCAT_8259
- select ARCH_ALL_STAGES_X86_32
+ select ARCH_ALL_STAGES_X86_32 if !EXP_ARCH_X86_64
+ select ARCH_ALL_STAGES_X86_64 if EXP_ARCH_X86_64
select BOOT_DEVICE_SUPPORTS_WRITES
# CPU specific options
select CPU_INTEL_COMMON
diff --git a/src/soc/intel/cannonlake/Kconfig b/src/soc/intel/cannonlake/Kconfig
index f256405..07cdeb5 100644
--- a/src/soc/intel/cannonlake/Kconfig
+++ b/src/soc/intel/cannonlake/Kconfig
@@ -74,7 +74,8 @@
def_bool y
select ACPI_INTEL_HARDWARE_SLEEP_VALUES
select ACPI_NHLT
- select ARCH_ALL_STAGES_X86_32
+ select ARCH_ALL_STAGES_X86_32 if !EXP_ARCH_X86_64
+ select ARCH_ALL_STAGES_X86_64 if EXP_ARCH_X86_64
select BOOT_DEVICE_SUPPORTS_WRITES
select CACHE_MRC_SETTINGS
select CPU_INTEL_COMMON
diff --git a/src/soc/intel/common/block/cpu/Kconfig b/src/soc/intel/common/block/cpu/Kconfig
index 9023b58..6a95b4d 100644
--- a/src/soc/intel/common/block/cpu/Kconfig
+++ b/src/soc/intel/common/block/cpu/Kconfig
@@ -1,3 +1,9 @@
+config EXP_ARCH_X86_64
+ bool "Experimental x86_64 support"
+ default n
+ help
+ This option will compile and run coreboot in x86_64 long mode.
+
config SOC_INTEL_COMMON_BLOCK_CPU
bool
default n
diff --git a/src/soc/intel/denverton_ns/Kconfig b/src/soc/intel/denverton_ns/Kconfig
index 98c61ce..9ad2a70 100644
--- a/src/soc/intel/denverton_ns/Kconfig
+++ b/src/soc/intel/denverton_ns/Kconfig
@@ -13,7 +13,8 @@

config CPU_SPECIFIC_OPTIONS
def_bool y
- select ARCH_ALL_STAGES_X86_32
+ select ARCH_ALL_STAGES_X86_32 if !EXP_ARCH_X86_64
+ select ARCH_ALL_STAGES_X86_64 if EXP_ARCH_X86_64
select BOOT_DEVICE_SUPPORTS_WRITES
select DEBUG_GPIO
select SOC_INTEL_COMMON
diff --git a/src/soc/intel/elkhartlake/Kconfig b/src/soc/intel/elkhartlake/Kconfig
index 64680e8..4cfee7e 100644
--- a/src/soc/intel/elkhartlake/Kconfig
+++ b/src/soc/intel/elkhartlake/Kconfig
@@ -8,7 +8,8 @@
config CPU_SPECIFIC_OPTIONS
def_bool y
select ACPI_INTEL_HARDWARE_SLEEP_VALUES
- select ARCH_ALL_STAGES_X86_32
+ select ARCH_ALL_STAGES_X86_32 if !EXP_ARCH_X86_64
+ select ARCH_ALL_STAGES_X86_64 if EXP_ARCH_X86_64
select BOOT_DEVICE_SUPPORTS_WRITES
select CACHE_MRC_SETTINGS
select CPU_INTEL_COMMON
diff --git a/src/soc/intel/icelake/Kconfig b/src/soc/intel/icelake/Kconfig
index 5fdfa2f..4dedbe7 100644
--- a/src/soc/intel/icelake/Kconfig
+++ b/src/soc/intel/icelake/Kconfig
@@ -8,7 +8,8 @@
config CPU_SPECIFIC_OPTIONS
def_bool y
select ACPI_INTEL_HARDWARE_SLEEP_VALUES
- select ARCH_ALL_STAGES_X86_32
+ select ARCH_ALL_STAGES_X86_32 if !EXP_ARCH_X86_64
+ select ARCH_ALL_STAGES_X86_64 if EXP_ARCH_X86_64
select BOOT_DEVICE_SUPPORTS_WRITES
select CACHE_MRC_SETTINGS
select CPU_INTEL_COMMON
diff --git a/src/soc/intel/jasperlake/Kconfig b/src/soc/intel/jasperlake/Kconfig
index c23e3ce..683865a 100644
--- a/src/soc/intel/jasperlake/Kconfig
+++ b/src/soc/intel/jasperlake/Kconfig
@@ -8,7 +8,8 @@
config CPU_SPECIFIC_OPTIONS
def_bool y
select ACPI_INTEL_HARDWARE_SLEEP_VALUES
- select ARCH_ALL_STAGES_X86_32
+ select ARCH_ALL_STAGES_X86_32 if !EXP_ARCH_X86_64
+ select ARCH_ALL_STAGES_X86_64 if EXP_ARCH_X86_64
select BOOT_DEVICE_SUPPORTS_WRITES
select CACHE_MRC_SETTINGS
select CPU_INTEL_COMMON
diff --git a/src/soc/intel/skylake/Kconfig b/src/soc/intel/skylake/Kconfig
index c61304b..bb39571 100644
--- a/src/soc/intel/skylake/Kconfig
+++ b/src/soc/intel/skylake/Kconfig
@@ -19,7 +19,8 @@
def_bool y
select ACPI_INTEL_HARDWARE_SLEEP_VALUES
select ACPI_NHLT
- select ARCH_ALL_STAGES_X86_32
+ select ARCH_ALL_STAGES_X86_32 if !EXP_ARCH_X86_64
+ select ARCH_ALL_STAGES_X86_64 if EXP_ARCH_X86_64
select BOOT_DEVICE_SUPPORTS_WRITES
select CACHE_MRC_SETTINGS
select CPU_INTEL_COMMON
diff --git a/src/soc/intel/tigerlake/Kconfig b/src/soc/intel/tigerlake/Kconfig
index b95b2f0..e4cd466 100644
--- a/src/soc/intel/tigerlake/Kconfig
+++ b/src/soc/intel/tigerlake/Kconfig
@@ -8,7 +8,8 @@
config CPU_SPECIFIC_OPTIONS
def_bool y
select ACPI_INTEL_HARDWARE_SLEEP_VALUES
- select ARCH_ALL_STAGES_X86_32
+ select ARCH_ALL_STAGES_X86_32 if !EXP_ARCH_X86_64
+ select ARCH_ALL_STAGES_X86_64 if EXP_ARCH_X86_64
select BOOT_DEVICE_SUPPORTS_WRITES
select CACHE_MRC_SETTINGS
select CPU_INTEL_COMMON

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

Gerrit-Project: coreboot
Gerrit-Branch: master
Gerrit-Change-Id: Id2919766acc2e11d81c279c23380a9e6fd50f0bb
Gerrit-Change-Number: 48244
Gerrit-PatchSet: 1
Gerrit-Owner: Patrick Rudolph <patrick.rudolph@9elements.com>
Gerrit-Reviewer: Andrey Petrov <andrey.petrov@gmail.com>
Gerrit-Reviewer: Mariusz SzafraƄski <mariuszx.szafranski@intel.com>
Gerrit-Reviewer: Michal Motyl <michalx.motyl@intel.com>
Gerrit-Reviewer: Patrick Rudolph <siro@das-labor.org>
Gerrit-Reviewer: Suresh Bellampalli <suresh.bellampalli@intel.com>
Gerrit-Reviewer: Vanessa Eusebio <vanessa.f.eusebio@intel.com>
Gerrit-MessageType: newchange