mainboard/intel/quark: Add FSP selection values
Add Kconfig values to select the FSP setup:
* FSP version: 1.1 or 2.0
* Implementation: Subroutine or SEC/PEI core based
* Build type: DEBUG or RELEASE
* Enable all debugging for FSP
* Remove USE_FSP1_1 and USE_FSP2_0
Look for include files in vendorcode/intel/fsp/fsp???/quark
BRANCH=none
BUG=None
TEST=Build FSP 1.1 (subroutine) and run on Galileo Gen2
Change-Id: I3a6cb571021611820263a8cbfe83e69278f50a21
Signed-off-by: Lee Leahy <Leroy.P.Leahy@intel.com>
Reviewed-on: https://review.coreboot.org/16806
Tested-by: build bot (Jenkins)
Reviewed-by: Martin Roth <martinroth@google.com>
diff --git a/src/mainboard/intel/galileo/Kconfig b/src/mainboard/intel/galileo/Kconfig
index 2acc439..0c1fe5b 100644
--- a/src/mainboard/intel/galileo/Kconfig
+++ b/src/mainboard/intel/galileo/Kconfig
@@ -18,11 +18,10 @@
config BOARD_SPECIFIC_OPTIONS
def_bool y
select BOARD_ROMSIZE_KB_8192
- select CREATE_BOARD_CHECKLIST
+# select CREATE_BOARD_CHECKLIST
select ENABLE_BUILTIN_HSUART1
select HAVE_ACPI_TABLES
select SOC_INTEL_QUARK
- select USE_FSP1_1
config MAINBOARD_DIR
string
@@ -45,16 +44,107 @@
runtime. Select which generation of the Galileo that coreboot
should initialize.
-config USE_FSP1_1
- bool
- default n
+choice
+ prompt "FSP version"
+ default FSP_VERSION_1_1
+
+config FSP_VERSION_1_1
+ bool "FSP 1.1"
+ select CREATE_BOARD_CHECKLIST
select PLATFORM_USES_FSP1_1
# select ADD_FSP_RAW_BIN
-
-config USE_FSP2_0
- bool
- default n
+ help
+ Use FSP 1_1 binary
+config FSP_VERSION_2_0
+ bool "FSP 2.0"
select PLATFORM_USES_FSP2_0
select POSTCAR_STAGE
+ help
+ Use FSP 2.0 binary
+
+endchoice
+
+config FSP_VERSION
+ string
+ default "fsp1_1" if FSP_VERSION_1_1
+ default "fsp2_0" if FSP_VERSION_2_0
+
+choice
+ prompt "FSP binary type"
+ default FSP_BUILD_TYPE_DEBUG
+
+config FSP_BUILD_TYPE_DEBUG
+ bool "Debug"
+ help
+ Use the debug version of FSP
+config FSP_BUILD_TYPE_RELEASE
+ bool "Release"
+ help
+ Use the release version of FSP
+
+endchoice
+
+config FSP_BUILD_TYPE
+ string
+ default "DEBUG" if FSP_BUILD_TYPE_DEBUG
+ default "RELEASE" if FSP_BUILD_TYPE_RELEASE
+
+choice
+ prompt "FSP type"
+ depends on FSP_VERSION_2_0 || FSP_VERSION_1_1
+ default FSP_TYPE_1_1_PEI if FSP_VERSION_1_1
+ default FSP_TYPE_2_0_PEI if FSP_VERSION_2_0
+
+config FSP_TYPE_1_1
+ bool "MemInit subroutine"
+ depends on FSP_VERSION_1_1
+ help
+ FSP 1.1 implemented as subroutines, no EDK-II cores
+config FSP_TYPE_1_1_PEI
+ bool "SEC + PEI Core + MemInit PEIM"
+ depends on FSP_VERSION_1_1
+ help
+ FSP 1.1 implemented using SEC and PEI core
+config FSP_TYPE_2_0
+ bool "MemInit subroutine"
+ depends on FSP_VERSION_2_0
+ help
+ FSP 2.0 implemented as subroutines, no EDK-II cores
+config FSP_TYPE_2_0_PEI
+ bool "SEC + PEI Core + MemInit PEIM"
+ depends on FSP_VERSION_2_0
+ help
+ FSP 2.0 implemented using SEC and PEI core
+
+endchoice
+
+config FSP_TYPE
+ string
+ default "Fsp1_1" if FSP_TYPE_1_1
+ default "Fsp1_1Pei" if FSP_TYPE_1_1_PEI
+ default "Fsp2_0" if FSP_TYPE_2_0
+ default "Fsp2_0Pei" if FSP_TYPE_2_0_PEI
+
+config FSP_DEBUG_ALL
+ bool "Enable all FSP debug support"
+ depends on FSP_VERSION_2_0 || FSP_VERSION_1_1
+ default y
+# Enable display and verification for coreboot build tests
+ select BOOTBLOCK_CONSOLE
+ select DISPLAY_HOBS
+ select DISPLAY_MTRRS
+ select DISPLAY_SMM_MEMORY_MAP
+ select DISPLAY_UPD_DATA
+ select DISPLAY_ESRAM_LAYOUT if FSP_VERSION_2_0
+ select DISPLAY_FSP_CALLS_AND_STATUS if FSP_VERSION_2_0
+ select DISPLAY_FSP_HEADER if FSP_VERSION_2_0
+ select POSTCAR_CONSOLE if FSP_VERSION_2_0
+ select VERIFY_HOBS if FSP_VERSION_2_0
+ select DISPLAY_FSP_ENTRY_POINTS if FSP_VERSION_1_1
+ help
+ Turn on debug support to display HOBS, MTRRS, SMM_MEMORY_MAP, UPD_DATA
+ also turn on FSP 2.0 debug support for ESRAM_LAYOUT,
+ FSP_CALLS_AND_STATUS, FSP_HEADER, POSTCAR_CONSOLE and VERIFY_HOBS
+ or FSP 1.1 DISPLAY_FSP_ENTRY_POINTS
endif # BOARD_INTEL_QUARK