From 2f8bee7d544be7d75e29d36e6b7425aa74223a1a Mon Sep 17 00:00:00 2001 From: Subrata Banik Date: Fri, 27 Sep 2024 14:48:04 +0530 Subject: 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 Reviewed-on: https://review.coreboot.org/c/coreboot/+/84572 Reviewed-by: Christian Walter Tested-by: build bot (Jenkins) Reviewed-by: Karthik Ramasubramanian Reviewed-by: Jayvik Desai --- src/drivers/intel/fsp2_0/Kconfig | 60 ++++++++++++++-------------------------- 1 file changed, 21 insertions(+), 39 deletions(-) (limited to 'src/drivers') 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 -- cgit v1.2.3