drivers/intel/fsp2_0: Split reset handling logic
FSP 2.0 spec only defines 2 reset request (COLD, WARM) exit codes. The rest 6 codes are platform-specific and may vary. Modify helper function so that only basic resets are handled and let SoC deal with the rest. Change-Id: Ib2f446e0449301407b135933a2088bcffc3ac32a Signed-off-by: Andrey Petrov <andrey.petrov@intel.com> Reviewed-on: https://review.coreboot.org/15730 Reviewed-by: Aaron Durbin <adurbin@chromium.org> Tested-by: build bot (Jenkins)
This commit is contained in:
committed by
Aaron Durbin
parent
1b1d4b7ae6
commit
3a94a3ba5b
@ -134,8 +134,19 @@ enum cb_err fsp_validate_component(struct fsp_header *hdr,
|
||||
return CB_SUCCESS;
|
||||
}
|
||||
|
||||
static bool fsp_reset_requested(enum fsp_status status)
|
||||
{
|
||||
return (status >= FSP_STATUS_RESET_REQUIRED_COLD &&
|
||||
status <= FSP_STATUS_RESET_REQUIRED_8);
|
||||
}
|
||||
|
||||
void fsp_handle_reset(enum fsp_status status)
|
||||
{
|
||||
if (!fsp_reset_requested(status))
|
||||
return;
|
||||
|
||||
printk(BIOS_DEBUG, "FSP: handling reset type %x\n", status);
|
||||
|
||||
switch(status) {
|
||||
case FSP_STATUS_RESET_REQUIRED_COLD:
|
||||
hard_reset();
|
||||
@ -143,16 +154,15 @@ void fsp_handle_reset(enum fsp_status status)
|
||||
case FSP_STATUS_RESET_REQUIRED_WARM:
|
||||
soft_reset();
|
||||
break;
|
||||
case FSP_STATUS_RESET_REQUIRED_GLOBAL_RESET:
|
||||
global_reset();
|
||||
case FSP_STATUS_RESET_REQUIRED_3:
|
||||
case FSP_STATUS_RESET_REQUIRED_4:
|
||||
case FSP_STATUS_RESET_REQUIRED_5:
|
||||
case FSP_STATUS_RESET_REQUIRED_6:
|
||||
case FSP_STATUS_RESET_REQUIRED_7:
|
||||
case FSP_STATUS_RESET_REQUIRED_8:
|
||||
chipset_handle_reset(status);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
bool fsp_reset_requested(enum fsp_status status)
|
||||
{
|
||||
return (status >= FSP_STATUS_RESET_REQUIRED_COLD &&
|
||||
status <= FSP_STATUS_RESET_REQUIRED_GLOBAL_RESET);
|
||||
}
|
||||
|
Reference in New Issue
Block a user