summaryrefslogtreecommitdiffstats
path: root/src/usr/mbox
diff options
context:
space:
mode:
authorJaymes Wilks <mjwilks@us.ibm.com>2018-03-08 16:30:41 -0600
committerDaniel M. Crowell <dcrowell@us.ibm.com>2018-04-06 12:30:40 -0400
commitbe53610329532c64c3a924db343c0d474079b95d (patch)
treec3f3e95129ad545d5be44e59bb3d42124d8251cb /src/usr/mbox
parentd5ba4627b254190f6b37ee487b3be1951c056e08 (diff)
downloadblackbird-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.C32
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,
OpenPOWER on IntegriCloud