soc/intel: Correct return type of fsp_get_pch_reset_status()
The `fsp_get_pch_reset_status()` function returns a FSP reset status
code. This change corrects its return type from `uint32_t` to
`efi_return_status_t` to ensure consistency with the FSP API and
prevent potential issues caused by type mismatch.
This correction is necessary for compatibility with both 32-bit and
64-bit FSP interfaces. The change also updates all callers of this
function in the Meteor Lake and Panther Lake SoCs to use the correct
return type.
Includes `fsp/api.h` to provide the `efi_return_status_t` definition.
BUG=b:347669091
TEST=Verified global reset functionality on google/rex0 (32-bit) and
google/rex64 (64-bit) platforms.
Change-Id: I0cdee541506bf424f50fd00833d5ee200a3a8a48
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/84571
Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com>
Reviewed-by: Christian Walter <christian.walter@9elements.com>
Reviewed-by: Karthik Ramasubramanian <kramasub@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
This commit is contained in:
parent
2ec9addc30
commit
c74de0dea7
4 changed files with 11 additions and 9 deletions
|
|
@ -41,7 +41,7 @@ void chipset_handle_reset(efi_return_status_t status)
|
|||
die("unknown reset type");
|
||||
}
|
||||
|
||||
static uint32_t fsp_reset_type_to_status(EFI_RESET_TYPE reset_type)
|
||||
static efi_return_status_t fsp_reset_type_to_status(EFI_RESET_TYPE reset_type)
|
||||
{
|
||||
efi_return_status_t status;
|
||||
|
||||
|
|
@ -68,7 +68,7 @@ static uint32_t fsp_reset_type_to_status(EFI_RESET_TYPE reset_type)
|
|||
* If reset type is `EfiResetPlatformSpecific` then relying on pch_reset_data structure
|
||||
* to know if the reset type is a global reset.
|
||||
*/
|
||||
uint32_t fsp_get_pch_reset_status(void)
|
||||
efi_return_status_t fsp_get_pch_reset_status(void)
|
||||
{
|
||||
size_t size;
|
||||
const struct fsp_reset_hob *hob = fsp_find_extension_hob_by_guid(fsp_reset_guid, &size);
|
||||
|
|
|
|||
|
|
@ -3,6 +3,8 @@
|
|||
#ifndef _INTEL_COMMON_RESET_H_
|
||||
#define _INTEL_COMMON_RESET_H_
|
||||
|
||||
#include <efi/efi_datatype.h>
|
||||
|
||||
/*
|
||||
* Implement SoC specific global reset (i.e. a reset of both host and
|
||||
* ME partitions). Usually the ME is asked to perform the reset first.
|
||||
|
|
@ -21,6 +23,6 @@ __noreturn void global_reset(void);
|
|||
* If reset type if `EfiResetPlatformSpecific` then relying on pch_reset_data structure
|
||||
* to know if the reset type is a global reset.
|
||||
*/
|
||||
uint32_t fsp_get_pch_reset_status(void);
|
||||
efi_return_status_t fsp_get_pch_reset_status(void);
|
||||
|
||||
#endif /* _INTEL_COMMON_RESET_H_ */
|
||||
|
|
|
|||
|
|
@ -264,7 +264,7 @@ static void soc_enable(struct device *dev)
|
|||
|
||||
static void soc_init_final_device(void *chip_info)
|
||||
{
|
||||
uint32_t reset_status = fsp_get_pch_reset_status();
|
||||
efi_return_status_t reset_status = fsp_get_pch_reset_status();
|
||||
|
||||
if (reset_status == FSP_SUCCESS)
|
||||
return;
|
||||
|
|
@ -273,8 +273,8 @@ static void soc_init_final_device(void *chip_info)
|
|||
fsp_handle_reset(reset_status);
|
||||
|
||||
/* Control shouldn't return here */
|
||||
die_with_post_code(POSTCODE_HW_INIT_FAILURE,
|
||||
"Failed to handle the FSP reset request with error 0x%08x\n", reset_status);
|
||||
fsp_die_with_post_code(reset_status, POSTCODE_HW_INIT_FAILURE,
|
||||
"Failed to handle the FSP reset request with error");
|
||||
}
|
||||
|
||||
struct chip_operations soc_intel_meteorlake_ops = {
|
||||
|
|
|
|||
|
|
@ -262,7 +262,7 @@ static void soc_enable(struct device *dev)
|
|||
|
||||
static void soc_init_final_device(void *chip_info)
|
||||
{
|
||||
uint32_t reset_status = fsp_get_pch_reset_status();
|
||||
efi_return_status_t reset_status = fsp_get_pch_reset_status();
|
||||
|
||||
if (reset_status == FSP_SUCCESS)
|
||||
return;
|
||||
|
|
@ -271,8 +271,8 @@ static void soc_init_final_device(void *chip_info)
|
|||
fsp_handle_reset(reset_status);
|
||||
|
||||
/* Control shouldn't return here */
|
||||
die_with_post_code(POSTCODE_HW_INIT_FAILURE,
|
||||
"Failed to handle the FSP reset request with error 0x%08x\n", reset_status);
|
||||
fsp_die_with_post_code(reset_status, POSTCODE_HW_INIT_FAILURE,
|
||||
"Failed to handle the FSP reset request with error");
|
||||
}
|
||||
|
||||
struct chip_operations soc_intel_pantherlake_ops = {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue