aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOliver O'Halloran <oohall@gmail.com>2020-03-05 17:52:00 +1100
committerOliver O'Halloran <oohall@gmail.com>2020-03-11 17:24:16 +1100
commitb776bb0fa86b31873007c7e4f677dfb7a70e54d2 (patch)
treefafe6b2a357047bc10a99e0217d4048edaa582d2
parent2e122fbadf7f1175202151f72ee4b81bcb811cb3 (diff)
downloadskiboot-b776bb0fa86b31873007c7e4f677dfb7a70e54d2.zip
skiboot-b776bb0fa86b31873007c7e4f677dfb7a70e54d2.tar.gz
skiboot-b776bb0fa86b31873007c7e4f677dfb7a70e54d2.tar.bz2
hw/fsp: Fix GENERIC_FAILURE mailbox status code
The 0xEF return code is used to tell the hypervisor that the FSP was not able to replicate an NVRAM write to the secondary FSP. The GENERIC_FAILURE is using this code instead of the correct 0xFE code which indicates a generic error condition. We already have a FSP_STATUS_GENERIC_ERROR for 0xFE so convert the existing users of FSP_STATUS_GENERIC_FAILURE to use GENERIC_ERROR and remove the duplicate. Reviewed-by: Vasant Hegde <hegdevasant@linux.vnet.ibm.com> Signed-off-by: Oliver O'Halloran <oohall@gmail.com>
-rw-r--r--hw/prd.c4
-rw-r--r--include/fsp.h3
-rw-r--r--platforms/ibm-fsp/hostservices.c2
3 files changed, 4 insertions, 5 deletions
diff --git a/hw/prd.c b/hw/prd.c
index 2301daf..a119b92 100644
--- a/hw/prd.c
+++ b/hw/prd.c
@@ -119,7 +119,7 @@ static void prd_msg_consumed(void *data, int status)
if (status != 0) {
prlog(PR_DEBUG,
"PRD: Failed to send FSP -> HBRT message\n");
- notify_status = FSP_STATUS_GENERIC_FAILURE;
+ notify_status = FSP_STATUS_GENERIC_ERROR;
}
assert(platform.prd);
assert(platform.prd->msg_response);
@@ -372,7 +372,7 @@ int prd_hbrt_fsp_msg_notify(void *data, u32 dsize)
{
struct prd_fw_msg *fw_notify;
int size, fw_notify_size;
- int rc = FSP_STATUS_GENERIC_FAILURE;
+ int rc = FSP_STATUS_GENERIC_ERROR;
if (!prd_enabled || !prd_active) {
prlog(PR_NOTICE, "PRD: %s: PRD daemon is not ready\n",
diff --git a/include/fsp.h b/include/fsp.h
index 92f5459..ec079a2 100644
--- a/include/fsp.h
+++ b/include/fsp.h
@@ -46,7 +46,6 @@
#define FSP_STATUS_FLASH_INPROGRESS 0x61
#define FSP_STATUS_FLASH_NOPROGRESS 0x62
#define FSP_STATUS_FLASH_INVALID_SIDE 0x63
-#define FSP_STATUS_GENERIC_ERROR 0xfe
#define FSP_STATUS_EOF_ERROR 0x02
#define FSP_STATUS_DMA_ERROR 0x24
#define FSP_STATUS_BUSY 0x3e
@@ -61,7 +60,7 @@
#define FSP_STATUS_TOD_PERMANENT_ERROR 0xAF /* Permanent error in TOD */
#define FSP_STATUS_I2C_TRANS_ERROR 0xE4 /* I2C device / transmission error */
#define FSP_STATUS_IND_PARTIAL_SUCCESS 0xE5 /* Indicator partial success */
-#define FSP_STATUS_GENERIC_FAILURE 0xEF /* Generic Failure in execution */
+#define FSP_STATUS_GENERIC_ERROR 0xFE /* Generic Failure in execution */
/*
* FSP registers
diff --git a/platforms/ibm-fsp/hostservices.c b/platforms/ibm-fsp/hostservices.c
index d93c4f6..d61d583 100644
--- a/platforms/ibm-fsp/hostservices.c
+++ b/platforms/ibm-fsp/hostservices.c
@@ -883,7 +883,7 @@ static bool hservice_hbrt_msg_notify(uint32_t cmd_sub_mod, struct fsp_msg *msg)
}
if (prd_hbrt_fsp_msg_notify(buf, len)) {
- hservice_hbrt_msg_response(FSP_STATUS_GENERIC_FAILURE);
+ hservice_hbrt_msg_response(FSP_STATUS_GENERIC_ERROR);
prlog(PR_NOTICE, "Unable to send FSP - HBRT message\n");
}