soc/intel/common/block/cse: Move enum csme_failure_reason
CSE error codes may be applicable to move than just CSE Lite SKU errors, therefore move this enum to the intelblocks/cse.h file so that it can be used in other CSE-related code. While copying, remove `LITE_SKU` from a few of the enum values that are not necessarily CSE Lite SKU-specific. Signed-off-by: Tim Wawrzynczak <twawrzynczak@chromium.org> Change-Id: I0351587c67ce12f781c536998ca18a6a804d080a Reviewed-on: https://review.coreboot.org/c/coreboot/+/55672 Reviewed-by: Subrata Banik <subrata.banik@intel.com> Reviewed-by: Sridhar Siricilla <sridhar.siricilla@intel.com> Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
This commit is contained in:
parent
12d31b2764
commit
e380a43803
|
@ -38,46 +38,6 @@ enum boot_partition_id {
|
||||||
RW = 1
|
RW = 1
|
||||||
};
|
};
|
||||||
|
|
||||||
/* CSE recovery sub-error codes */
|
|
||||||
enum csme_failure_reason {
|
|
||||||
|
|
||||||
/* No error */
|
|
||||||
CSE_LITE_SKU_NO_ERROR = 0,
|
|
||||||
|
|
||||||
/* Unspecified error */
|
|
||||||
CSE_LITE_SKU_UNSPECIFIED = 1,
|
|
||||||
|
|
||||||
/* CSE fails to boot from RW */
|
|
||||||
CSE_LITE_SKU_RW_JUMP_ERROR = 2,
|
|
||||||
|
|
||||||
/* CSE RW boot partition access error */
|
|
||||||
CSE_LITE_SKU_RW_ACCESS_ERROR = 3,
|
|
||||||
|
|
||||||
/* Fails to set next boot partition as RW */
|
|
||||||
CSE_LITE_SKU_RW_SWITCH_ERROR = 4,
|
|
||||||
|
|
||||||
/* CSE firmware update failure */
|
|
||||||
CSE_LITE_SKU_FW_UPDATE_ERROR = 5,
|
|
||||||
|
|
||||||
/* Fails to communicate with CSE */
|
|
||||||
CSE_LITE_SKU_COMMUNICATION_ERROR = 6,
|
|
||||||
|
|
||||||
/* Fails to wipe CSE runtime data */
|
|
||||||
CSE_LITE_SKU_DATA_WIPE_ERROR = 7,
|
|
||||||
|
|
||||||
/* CSE RW is not found */
|
|
||||||
CSE_LITE_SKU_RW_BLOB_NOT_FOUND = 8,
|
|
||||||
|
|
||||||
/* CSE CBFS RW SHA-256 mismatch with the provided SHA */
|
|
||||||
CSE_LITE_SKU_RW_BLOB_SHA256_MISMATCH = 9,
|
|
||||||
|
|
||||||
/* CSE CBFS RW metadata is not found */
|
|
||||||
CSE_LITE_SKU_RW_METADATA_NOT_FOUND = 10,
|
|
||||||
|
|
||||||
/* CSE CBFS RW blob layout is not correct */
|
|
||||||
CSE_LITE_SKU_LAYOUT_MISMATCH_ERROR = 11,
|
|
||||||
};
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Boot partition status.
|
* Boot partition status.
|
||||||
* The status is returned in response to MKHI_BUP_COMMON_GET_BOOT_PARTITION_INFO cmd.
|
* The status is returned in response to MKHI_BUP_COMMON_GET_BOOT_PARTITION_INFO cmd.
|
||||||
|
@ -687,7 +647,7 @@ static enum csme_failure_reason cse_update_rw(const struct cse_bp_info *cse_bp_i
|
||||||
if (!cse_write_rw_region(target_rdev, cse_cbfs_rw, cse_blob_sz))
|
if (!cse_write_rw_region(target_rdev, cse_cbfs_rw, cse_blob_sz))
|
||||||
return CSE_LITE_SKU_FW_UPDATE_ERROR;
|
return CSE_LITE_SKU_FW_UPDATE_ERROR;
|
||||||
|
|
||||||
return CSE_LITE_SKU_NO_ERROR;
|
return CSE_NO_ERROR;
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool cse_prep_for_rw_update(const struct cse_bp_info *cse_bp_info,
|
static bool cse_prep_for_rw_update(const struct cse_bp_info *cse_bp_info,
|
||||||
|
@ -734,7 +694,7 @@ static enum csme_failure_reason cse_trigger_fw_update(const struct cse_bp_info *
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!cse_prep_for_rw_update(cse_bp_info, source_metadata)) {
|
if (!cse_prep_for_rw_update(cse_bp_info, source_metadata)) {
|
||||||
rv = CSE_LITE_SKU_COMMUNICATION_ERROR;
|
rv = CSE_COMMUNICATION_ERROR;
|
||||||
goto error_exit;
|
goto error_exit;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -791,7 +751,7 @@ void cse_fw_sync(void)
|
||||||
|
|
||||||
if (!cse_get_bp_info(&cse_bp_info)) {
|
if (!cse_get_bp_info(&cse_bp_info)) {
|
||||||
printk(BIOS_ERR, "cse_lite: Failed to get CSE boot partition info\n");
|
printk(BIOS_ERR, "cse_lite: Failed to get CSE boot partition info\n");
|
||||||
cse_trigger_recovery(CSE_LITE_SKU_COMMUNICATION_ERROR);
|
cse_trigger_recovery(CSE_COMMUNICATION_ERROR);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!cse_fix_data_failure_err(&cse_bp_info.bp_info))
|
if (!cse_fix_data_failure_err(&cse_bp_info.bp_info))
|
||||||
|
|
|
@ -80,6 +80,45 @@ struct cse_rw_metadata {
|
||||||
uint8_t sha256[VB2_SHA256_DIGEST_SIZE];
|
uint8_t sha256[VB2_SHA256_DIGEST_SIZE];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/* CSE recovery sub-error codes */
|
||||||
|
enum csme_failure_reason {
|
||||||
|
/* No error */
|
||||||
|
CSE_NO_ERROR = 0,
|
||||||
|
|
||||||
|
/* Unspecified error */
|
||||||
|
CSE_ERROR_UNSPECIFIED = 1,
|
||||||
|
|
||||||
|
/* CSE fails to boot from RW */
|
||||||
|
CSE_LITE_SKU_RW_JUMP_ERROR = 2,
|
||||||
|
|
||||||
|
/* CSE RW boot partition access error */
|
||||||
|
CSE_LITE_SKU_RW_ACCESS_ERROR = 3,
|
||||||
|
|
||||||
|
/* Fails to set next boot partition as RW */
|
||||||
|
CSE_LITE_SKU_RW_SWITCH_ERROR = 4,
|
||||||
|
|
||||||
|
/* CSE firmware update failure */
|
||||||
|
CSE_LITE_SKU_FW_UPDATE_ERROR = 5,
|
||||||
|
|
||||||
|
/* Fails to communicate with CSE */
|
||||||
|
CSE_COMMUNICATION_ERROR = 6,
|
||||||
|
|
||||||
|
/* Fails to wipe CSE runtime data */
|
||||||
|
CSE_LITE_SKU_DATA_WIPE_ERROR = 7,
|
||||||
|
|
||||||
|
/* CSE RW is not found */
|
||||||
|
CSE_LITE_SKU_RW_BLOB_NOT_FOUND = 8,
|
||||||
|
|
||||||
|
/* CSE CBFS RW SHA-256 mismatch with the provided SHA */
|
||||||
|
CSE_LITE_SKU_RW_BLOB_SHA256_MISMATCH = 9,
|
||||||
|
|
||||||
|
/* CSE CBFS RW metadata is not found */
|
||||||
|
CSE_LITE_SKU_RW_METADATA_NOT_FOUND = 10,
|
||||||
|
|
||||||
|
/* CSE CBFS RW blob layout is not correct */
|
||||||
|
CSE_LITE_SKU_LAYOUT_MISMATCH_ERROR = 11,
|
||||||
|
};
|
||||||
|
|
||||||
/* set up device for use in early boot enviroument with temp bar */
|
/* set up device for use in early boot enviroument with temp bar */
|
||||||
void heci_init(uintptr_t bar);
|
void heci_init(uintptr_t bar);
|
||||||
/*
|
/*
|
||||||
|
|
Loading…
Reference in New Issue