diff options
| author | Jaymes Wilks <mjwilks@us.ibm.com> | 2018-03-08 16:30:41 -0600 |
|---|---|---|
| committer | Daniel M. Crowell <dcrowell@us.ibm.com> | 2018-04-06 12:30:40 -0400 |
| commit | be53610329532c64c3a924db343c0d474079b95d (patch) | |
| tree | c3f3e95129ad545d5be44e59bb3d42124d8251cb /src/usr/mbox | |
| parent | d5ba4627b254190f6b37ee487b3be1951c056e08 (diff) | |
| download | blackbird-hostboot-be53610329532c64c3a924db343c0d474079b95d.tar.gz blackbird-hostboot-be53610329532c64c3a924db343c0d474079b95d.zip | |
Propagate TPM information into HDAT on non-master nodes
Extends HDAT population to add TPM data to all functional nodes
- Added message sends from the master to each node
- Each node updates # of instances, sizes of structures, etc.
- Each node navigates to its appropriate offset in HDAT
- HDAT now populates entries for all TPMs in the blueprint
- Physical presence interaction mechanism is master-only obtained
- TPM SRTM and DRTM logs are no longer interlaced between TPM info
- Single node workaround reverted
Change-Id: Ic77cbeb7ba3d35a9f02ba68525ed79f27159e9bf
RTC:167290
Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/55283
Reviewed-by: Nicholas E. Bofferding <bofferdn@us.ibm.com>
Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com>
Tested-by: Jenkins OP Build CI <op-jenkins+hostboot@us.ibm.com>
Tested-by: Jenkins OP HW <op-hw-jenkins+hostboot@us.ibm.com>
Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com>
Reviewed-by: ILYA SMIRNOV <ismirno@us.ibm.com>
Reviewed-by: Michael Baiocchi <mbaiocch@us.ibm.com>
Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
Diffstat (limited to 'src/usr/mbox')
| -rw-r--r-- | src/usr/mbox/ipcSp.C | 32 |
1 files changed, 30 insertions, 2 deletions
diff --git a/src/usr/mbox/ipcSp.C b/src/usr/mbox/ipcSp.C index f04dc81c8..45d85a442 100644 --- a/src/usr/mbox/ipcSp.C +++ b/src/usr/mbox/ipcSp.C @@ -101,6 +101,35 @@ void IpcSp::msgHandler() switch(msg->type) { + case IPC_POPULATE_TPM_INFO_BY_NODE: + { + // msg->extra_data contains PAYLOAD Base + RUNTIME::setPayloadBaseAddress( + reinterpret_cast<uint64_t>(msg->extra_data)); + + // msg->data[0] contains the HDAT TPM info instance to populate + err = RUNTIME::populate_TpmInfoByNode(msg->data[0]); + + if (err) + { + TRACFCOMP( g_trac_ipc, ERR_MRK"IpcSp::msgHandler: populate_TpmInfoByNode errored - must shutdown now!!!"); + const auto l_errPlid = err->plid(); + errlCommit(err, IPC_COMP_ID); + INITSERVICE::doShutdown(l_errPlid, true); + } + + // give a response back to the sender + err = MBOX::send(MBOX::HB_POP_TPM_INFO_MSGQ, msg, msg->data[1]); + if (err) + { + const auto l_errPlid = err->plid(); + errlCommit(err,IPC_COMP_ID); + msg_free(msg); + INITSERVICE::doShutdown(l_errPlid, true); + } + break; + } + case IPC_POPULATE_ATTRIBUTES: // make sure runtime module is loaded if ( !VFS::module_is_loaded( "libruntime.so" ) ) @@ -266,8 +295,7 @@ void IpcSp::msgHandler() INITSERVICE::doShutdown(l_errPlid, true); } break; - } - + } case IPC_FREQ_ATTR_DATA: { TRACFCOMP( g_trac_ipc, |

