aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorShilpasri G Bhat <shilpa.bhat@linux.vnet.ibm.com>2017-06-08 09:56:42 +0530
committerStewart Smith <stewart@linux.vnet.ibm.com>2017-06-08 16:02:06 +1000
commit3c64f79ad2220d03a0af49d44f0548e08da54a44 (patch)
treeb53710618d7624508a548ee4d7f51a70bb661c1e
parent142d3f196104e60afa34084be17abb0cb77ea4a8 (diff)
downloadskiboot-3c64f79ad2220d03a0af49d44f0548e08da54a44.zip
skiboot-3c64f79ad2220d03a0af49d44f0548e08da54a44.tar.gz
skiboot-3c64f79ad2220d03a0af49d44f0548e08da54a44.tar.bz2
platform/zz: Acknowledge OCC_LOAD mbox message in ZZ
In P9 FSP box, OCC image is pre-loaded. So do not handle the load command and send SUCCESS to FSP on recieving OCC_LOAD mbox message. Signed-off-by: Shilpasri G Bhat <shilpa.bhat@linux.vnet.ibm.com> Signed-off-by: Stewart Smith <stewart@linux.vnet.ibm.com>
-rw-r--r--hw/occ.c17
-rw-r--r--platforms/ibm-fsp/zz.c8
2 files changed, 22 insertions, 3 deletions
diff --git a/hw/occ.c b/hw/occ.c
index 34ef9a7..bc3abc7 100644
--- a/hw/occ.c
+++ b/hw/occ.c
@@ -1082,6 +1082,19 @@ static void occ_do_load(u8 scope, u32 dbob_id __unused, u32 seq_id)
if (err)
return;
+ if (proc_gen == proc_gen_p9) {
+ /* OCC is pre-loaded in P9, so send SUCCESS to FSP */
+ rsp = fsp_mkmsg(FSP_CMD_LOAD_OCC_STAT, 2, 0, seq_id);
+ if (rsp)
+ rc = fsp_queue_msg(rsp, fsp_freemsg);
+ if (rc) {
+ log_simple_error(&e_info(OPAL_RC_OCC_LOAD),
+ "OCC: Error %d queueing FSP OCC LOAD STATUS msg", rc);
+ fsp_freemsg(rsp);
+ }
+ return;
+ }
+
/*
* Check if hostservices lid caching is complete. If not, queue
* the load request.
@@ -1413,8 +1426,8 @@ void occ_p9_interrupt(uint32_t chip_id)
void occ_fsp_init(void)
{
- /* OCC is P8 only */
- if (proc_gen != proc_gen_p8)
+ /* OCC is supported in P8 and P9 */
+ if (proc_gen < proc_gen_p8)
return;
/* If we have an FSP, register for notifications */
diff --git a/platforms/ibm-fsp/zz.c b/platforms/ibm-fsp/zz.c
index 89d87b4..c13911f 100644
--- a/platforms/ibm-fsp/zz.c
+++ b/platforms/ibm-fsp/zz.c
@@ -44,10 +44,16 @@ static uint32_t ibm_fsp_occ_timeout(void)
return 60;
}
+static void zz_init(void)
+{
+ hservices_init();
+ ibm_fsp_init();
+}
+
DECLARE_PLATFORM(zz) = {
.name = "ZZ",
.probe = zz_probe,
- .init = ibm_fsp_init,
+ .init = zz_init,
.exit = ibm_fsp_exit,
.cec_power_down = ibm_fsp_cec_power_down,
.cec_reboot = ibm_fsp_cec_reboot,