diff options
author | Subrata Banik <subratabanik@google.com> | 2024-09-27 14:48:04 +0530 |
---|---|---|
committer | Subrata Banik <subratabanik@google.com> | 2024-10-02 03:06:02 +0000 |
commit | 2f8bee7d544be7d75e29d36e6b7425aa74223a1a (patch) | |
tree | c8bab3a4a346c2bbe62658cb651a502118aa33a6 /src | |
parent | e5cce0055239b3c73ea5220c122e183694091ab6 (diff) |
soc/intel: Deprecate SoC-specific global reset status configs
This change removes the SoC-specific `FSP_STATUS_GLOBAL_RESET_REQUIRED_X`
Kconfigs, as they are no longer necessary for handling FSP global reset
requests.
Previously, these Kconfigs were used to select a specific 32-bit reset
status code. However, with the introduction of FSP 2.4 and 64-bit
interfaces, the global reset status code can now vary between
architectures.
To address this, the FSP driver now sets the `FSP_STATUS_GLOBAL_RESET`
config to a common default value (depending upon most commonly used
global reset status code) based on the interface:
- 0x40000003 for 32-bit FSP interfaces
- 0x4000000000000003 for 64-bit FSP interfaces
This default can be overridden if an FSP implementation uses a
different status code (for example: Apollo Lake selects different FSP
reset status code as 0x40000005).
By removing the SoC-specific configurations, this change simplifies
global reset handling and ensures compatibility across different FSP
versions and platforms.
Below table shows the relationship between Platform, FSP and FSP Global
Reset Status:
+-----------------+--------------+-------------------------+
| Platform | FSP | Global Reset Status |
+-----------------+--------------+-------------------------+
| Alder Lake | 32-bit | 0x40000003 |
+-----------------+--------------+-------------------------+
| Apollo Lake | 32-bit | 0x40000005 |
+-----------------+--------------+-------------------------+
| Cannon Lake | 32-bit | 0x40000003 |
+-----------------+--------------+-------------------------+
| Elkhart Lake | 32-bit | 0x40000003 |
+-----------------+--------------+-------------------------+
| Jasper Lake | 32-bit | 0x40000003 |
+-----------------+--------------+-------------------------+
| Meteor Lake | 32-bit | 0x40000003 |
+-----------------+--------------+-------------------------+
| Sky Lake | 32-bit | 0x40000003 |
+-----------------+--------------+-------------------------+
| Tiger Lake | 32-bit | 0x40000003 |
+-----------------+--------------+-------------------------+
| Panther Lake | 64-bit | 0x4000000000000003 |
+-----------------+--------------+-------------------------+
BUG=b:347669091
TEST=Verified FSP requested global reset functionality on google/rex0
(32-bit) and google/rex64 (64-bit) platforms.
w/ 32-bit FSP:
```
(Wdt) AllowKnownReset
[FspResetSystem2] FSP Reset Initiated
FSP returning control to Bootloader with reset required return status
40000003
FSPS, status=0x40000003
FSP: handling reset type, status=0x40000003
GLOBAL RESET!
global_reset() called!
HECI: Global Reset(Type:1) Command
```
w/ 64-bit FSP:
```
(Wdt) AllowKnownReset
[FspResetSystem2] FSP Reset Initiated
FSP returning control to Bootloader with reset required return status 3
FSPS, status=0x4000000000000003
FSP: handling reset type, status=0x4000000000000003
GLOBAL RESET!
global_reset() called!
HECI: Global Reset(Type:1) Command
```
Change-Id: I32bdbf7ea6afa7d5e5f91ea96d887719d26a593f
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/84572
Reviewed-by: Christian Walter <christian.walter@9elements.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Karthik Ramasubramanian <kramasub@google.com>
Reviewed-by: Jayvik Desai <jayvik@google.com>
Diffstat (limited to 'src')
-rw-r--r-- | src/drivers/intel/fsp2_0/Kconfig | 60 | ||||
-rw-r--r-- | src/soc/intel/alderlake/Kconfig | 1 | ||||
-rw-r--r-- | src/soc/intel/apollolake/Kconfig | 5 | ||||
-rw-r--r-- | src/soc/intel/cannonlake/Kconfig | 1 | ||||
-rw-r--r-- | src/soc/intel/elkhartlake/Kconfig | 1 | ||||
-rw-r--r-- | src/soc/intel/jasperlake/Kconfig | 1 | ||||
-rw-r--r-- | src/soc/intel/meteorlake/Kconfig | 1 | ||||
-rw-r--r-- | src/soc/intel/pantherlake/Kconfig | 1 | ||||
-rw-r--r-- | src/soc/intel/skylake/Kconfig | 1 | ||||
-rw-r--r-- | src/soc/intel/tigerlake/Kconfig | 1 |
10 files changed, 25 insertions, 48 deletions
diff --git a/src/drivers/intel/fsp2_0/Kconfig b/src/drivers/intel/fsp2_0/Kconfig index 8e9dcdc4dc..c5c485bad2 100644 --- a/src/drivers/intel/fsp2_0/Kconfig +++ b/src/drivers/intel/fsp2_0/Kconfig @@ -341,50 +341,32 @@ config FSP_M_ADDR help The address FSP-M will be relocated to during build time -config FSP_STATUS_GLOBAL_RESET_REQUIRED_3 - bool - help - FSP Reset Status code used for global reset as per FSP EAS v2.0 section 11.2.2 - -config FSP_STATUS_GLOBAL_RESET_REQUIRED_4 - bool - help - FSP Reset Status code used for global reset as per FSP EAS v2.0 section 11.2.2 - -config FSP_STATUS_GLOBAL_RESET_REQUIRED_5 - bool - help - FSP Reset Status code used for global reset as per FSP EAS v2.0 section 11.2.2 - -config FSP_STATUS_GLOBAL_RESET_REQUIRED_6 - bool - help - FSP Reset Status code used for global reset as per FSP EAS v2.0 section 11.2.2 - -config FSP_STATUS_GLOBAL_RESET_REQUIRED_7 - bool - help - FSP Reset Status code used for global reset as per FSP EAS v2.0 section 11.2.2 - -config FSP_STATUS_GLOBAL_RESET_REQUIRED_8 - bool - help - FSP Reset Status code used for global reset as per FSP EAS v2.0 section 11.2.2 - config FSP_STATUS_GLOBAL_RESET hex depends on SOC_INTEL_COMMON_FSP_RESET - default 0x40000003 if FSP_STATUS_GLOBAL_RESET_REQUIRED_3 - default 0x40000004 if FSP_STATUS_GLOBAL_RESET_REQUIRED_4 - default 0x40000005 if FSP_STATUS_GLOBAL_RESET_REQUIRED_5 - default 0x40000006 if FSP_STATUS_GLOBAL_RESET_REQUIRED_6 - default 0x40000007 if FSP_STATUS_GLOBAL_RESET_REQUIRED_7 - default 0x40000008 if FSP_STATUS_GLOBAL_RESET_REQUIRED_8 - default 0xffffffff + range 0x4000000000000003 0x4000000000000008 if !PLATFORM_USES_FSP2_X86_32 + range 0x40000003 0x40000008 + default 0x4000000000000003 if !PLATFORM_USES_FSP2_X86_32 + default 0x40000003 help If global reset is supported by SoC then select the correct status value for global - reset type from SoC Kconfig based on available Kconfig options - FSP_STATUS_GLOBAL_RESET_REQUIRED_X. Default is unsupported. + reset type. + + This option specifies the global reset status code used by the + platform, as defined in the FSP specification. + + The FSP specification allows for a range of values to indicate a + global reset request, typically between + FSP_STATUS_GLOBAL_RESET_REQUIRED_3 and + FSP_STATUS_GLOBAL_RESET_REQUIRED_8. + + This option defaults to the most commonly used global reset + status code in FSP implementations: + - 0x40000003 for 32-bit FSP interfaces + - 0x4000000000000003 for 64-bit FSP interfaces + + If your FSP implementation uses a different global reset status + code, override this default value accordingly. config SOC_INTEL_COMMON_FSP_RESET bool diff --git a/src/soc/intel/alderlake/Kconfig b/src/soc/intel/alderlake/Kconfig index ec6123db48..3afd9931fc 100644 --- a/src/soc/intel/alderlake/Kconfig +++ b/src/soc/intel/alderlake/Kconfig @@ -18,7 +18,6 @@ config SOC_INTEL_ALDERLAKE select FAST_SPI_SUPPORTS_EXT_BIOS_WINDOW select FSP_M_XIP select FSP_MULTIPHASE_SI_INIT_RETURN_BROKEN - select FSP_STATUS_GLOBAL_RESET_REQUIRED_3 select FSP_USES_CB_DEBUG_EVENT_HANDLER select FSPS_HAS_ARCH_UPD select GENERIC_GPIO_LIB diff --git a/src/soc/intel/apollolake/Kconfig b/src/soc/intel/apollolake/Kconfig index 61aaa44a7e..55f59b3bed 100644 --- a/src/soc/intel/apollolake/Kconfig +++ b/src/soc/intel/apollolake/Kconfig @@ -21,7 +21,6 @@ config SOC_INTEL_APOLLOLAKE select EDK2_CPU_TIMER_LIB if PAYLOAD_EDK2 select FAST_SPI_GENERATE_SSDT select FSP_PLATFORM_MEMORY_SETTINGS_VERSIONS - select FSP_STATUS_GLOBAL_RESET_REQUIRED_5 select GENERIC_GPIO_LIB select HAVE_ASAN_IN_ROMSTAGE select HAVE_CF9_RESET_PREPARE @@ -102,6 +101,10 @@ config SOC_INTEL_GEMINILAKE if SOC_INTEL_APOLLOLAKE +config FSP_STATUS_GLOBAL_RESET + hex + default 0x40000005 + config USE_LEGACY_8254_TIMER default y diff --git a/src/soc/intel/cannonlake/Kconfig b/src/soc/intel/cannonlake/Kconfig index d012dadbe2..59b09a5d33 100644 --- a/src/soc/intel/cannonlake/Kconfig +++ b/src/soc/intel/cannonlake/Kconfig @@ -15,7 +15,6 @@ config SOC_INTEL_CANNONLAKE_BASE select EDK2_CPU_TIMER_LIB if PAYLOAD_EDK2 select FSP_COMPRESS_FSP_S_LZMA select FSP_M_XIP - select FSP_STATUS_GLOBAL_RESET_REQUIRED_3 select FSP_USES_CB_STACK select GENERIC_GPIO_LIB select HAVE_DPTF_EISA_HID diff --git a/src/soc/intel/elkhartlake/Kconfig b/src/soc/intel/elkhartlake/Kconfig index 815a7a1137..ff3c82f6ff 100644 --- a/src/soc/intel/elkhartlake/Kconfig +++ b/src/soc/intel/elkhartlake/Kconfig @@ -13,7 +13,6 @@ config SOC_INTEL_ELKHARTLAKE select EDK2_CPU_TIMER_LIB if PAYLOAD_EDK2 select FSP_COMPRESS_FSP_S_LZ4 select FSP_M_XIP - select FSP_STATUS_GLOBAL_RESET_REQUIRED_3 select GENERIC_GPIO_LIB select HAVE_FSP_GOP select HAVE_SMI_HANDLER diff --git a/src/soc/intel/jasperlake/Kconfig b/src/soc/intel/jasperlake/Kconfig index 1502c7509c..3fd6826e12 100644 --- a/src/soc/intel/jasperlake/Kconfig +++ b/src/soc/intel/jasperlake/Kconfig @@ -14,7 +14,6 @@ config SOC_INTEL_JASPERLAKE select EDK2_CPU_TIMER_LIB if PAYLOAD_EDK2 select FSP_COMPRESS_FSP_S_LZ4 select FSP_M_XIP - select FSP_STATUS_GLOBAL_RESET_REQUIRED_3 select GENERIC_GPIO_LIB select HAVE_DPTF_EISA_HID select HAVE_FSP_GOP diff --git a/src/soc/intel/meteorlake/Kconfig b/src/soc/intel/meteorlake/Kconfig index 955b8bf629..b6252c5a93 100644 --- a/src/soc/intel/meteorlake/Kconfig +++ b/src/soc/intel/meteorlake/Kconfig @@ -19,7 +19,6 @@ config SOC_INTEL_METEORLAKE select FSP_COMPRESS_FSP_S_LZ4 select FAST_SPI_SUPPORTS_EXT_BIOS_WINDOW select FSP_M_XIP - select FSP_STATUS_GLOBAL_RESET_REQUIRED_3 select FSP_UGOP_EARLY_SIGN_OF_LIFE if !SOC_INTEL_METEORLAKE_PRE_PRODUCTION_SILICON select FSP_USES_CB_DEBUG_EVENT_HANDLER select FSPS_HAS_ARCH_UPD diff --git a/src/soc/intel/pantherlake/Kconfig b/src/soc/intel/pantherlake/Kconfig index 94104cca55..8cb0aa8f1b 100644 --- a/src/soc/intel/pantherlake/Kconfig +++ b/src/soc/intel/pantherlake/Kconfig @@ -17,7 +17,6 @@ config SOC_INTEL_PANTHERLAKE_BASE select FAST_SPI_SUPPORTS_EXT_BIOS_WINDOW select FSP_COMPRESS_FSP_S_LZ4 select FSP_M_XIP - select FSP_STATUS_GLOBAL_RESET_REQUIRED_3 select FSP_UGOP_EARLY_SIGN_OF_LIFE select FSP_USES_CB_DEBUG_EVENT_HANDLER select FSPS_HAS_ARCH_UPD diff --git a/src/soc/intel/skylake/Kconfig b/src/soc/intel/skylake/Kconfig index 3ec84abcc4..22017c848b 100644 --- a/src/soc/intel/skylake/Kconfig +++ b/src/soc/intel/skylake/Kconfig @@ -13,7 +13,6 @@ config SOC_INTEL_COMMON_SKYLAKE_BASE select EDK2_CPU_TIMER_LIB if PAYLOAD_EDK2 select FSP_COMPRESS_FSP_S_LZ4 select FSP_M_XIP - select FSP_STATUS_GLOBAL_RESET_REQUIRED_3 select GENERIC_GPIO_LIB select HAVE_FSP_GOP select HAVE_FSP_LOGO_SUPPORT diff --git a/src/soc/intel/tigerlake/Kconfig b/src/soc/intel/tigerlake/Kconfig index 77e53ad937..1b04fbc0c8 100644 --- a/src/soc/intel/tigerlake/Kconfig +++ b/src/soc/intel/tigerlake/Kconfig @@ -17,7 +17,6 @@ config SOC_INTEL_TIGERLAKE select FAST_SPI_SUPPORTS_EXT_BIOS_WINDOW select FSP_COMPRESS_FSP_S_LZ4 select FSP_M_XIP - select FSP_STATUS_GLOBAL_RESET_REQUIRED_3 select GENERIC_GPIO_LIB select HAVE_FSP_GOP select HAVE_HYPERTHREADING |