diff options
author | Shilpasri G Bhat <shilpa.bhat@linux.vnet.ibm.com> | 2017-06-08 09:56:42 +0530 |
---|---|---|
committer | Stewart Smith <stewart@linux.vnet.ibm.com> | 2017-06-08 16:02:06 +1000 |
commit | 3c64f79ad2220d03a0af49d44f0548e08da54a44 (patch) | |
tree | b53710618d7624508a548ee4d7f51a70bb661c1e | |
parent | 142d3f196104e60afa34084be17abb0cb77ea4a8 (diff) | |
download | skiboot-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.c | 17 | ||||
-rw-r--r-- | platforms/ibm-fsp/zz.c | 8 |
2 files changed, 22 insertions, 3 deletions
@@ -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, |