From d1d3f44dd9394894efd35b822c33ce36a6d01392 Mon Sep 17 00:00:00 2001 From: Ilya Smirnov Date: Thu, 28 Mar 2019 08:32:24 -0500 Subject: SMF: New Ultravisor White/Blacklist Handling New procedure to call the SBE chip op to pass the SBE the address at which it will populate the Ultravisor XSCOM white/blacklist. The white/blacklist is also included in hostboot reserved memory and is passed to HDAT. Change-Id: If28854a73fa521297084bdee391fab95aa4f9a8a RTC: 192422 Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/75238 Tested-by: Jenkins Server Tested-by: FSP CI Jenkins Reviewed-by: Nicholas E. Bofferding Tested-by: Jenkins OP Build CI Tested-by: Jenkins OP HW Reviewed-by: Daniel M. Crowell --- src/usr/runtime/populate_hbruntime.C | 26 +++++++++++++++++++++++++- src/usr/runtime/preverifiedlidmgr.C | 7 ++++++- 2 files changed, 31 insertions(+), 2 deletions(-) (limited to 'src/usr') diff --git a/src/usr/runtime/populate_hbruntime.C b/src/usr/runtime/populate_hbruntime.C index 764404804..371c3bee8 100644 --- a/src/usr/runtime/populate_hbruntime.C +++ b/src/usr/runtime/populate_hbruntime.C @@ -1697,7 +1697,6 @@ errlHndl_t populate_HbRsvMem(uint64_t i_nodeId, bool i_master_node) } } - // Also add unsecure HOMER to the reserved mem if in SMF mode if(SECUREBOOT::SMF::isSmfEnabled()) { auto l_unsecureHomerSize = l_sys-> @@ -1729,6 +1728,31 @@ errlHndl_t populate_HbRsvMem(uint64_t i_nodeId, bool i_master_node) { break; } + + // Now get the UVBWLIST from the SBE + uint64_t l_uvbwlistAddr = + PreVerifiedLidMgr::getNextResMemAddr(UVBWLIST_SIZE); + assert(l_uvbwlistAddr, + "populate_HbRsvMem: Ultravisor XSCOM white/blacklist address is 0"); + TRACFCOMP(g_trac_runtime, + "populate_HbRsvMem: Ultravisor XSCOM white/blacklist address = 0x%.16llX", + l_uvbwlistAddr); + l_elog =SBEIO::sendPsuSecurityListBinDumpRequest(l_uvbwlistAddr, + l_masterProc); + if(l_elog) + { + break; + } + + l_elog = setNextHbRsvMemEntry(HDAT::RHB_TYPE_UVBWLIST, + i_nodeId, + l_uvbwlistAddr, + UVBWLIST_SIZE, + HBRT_RSVD_MEM__UVBWLIST); + if(l_elog) + { + break; + } } } } while(0); diff --git a/src/usr/runtime/preverifiedlidmgr.C b/src/usr/runtime/preverifiedlidmgr.C index 95d122fee..7b6fe6e09 100644 --- a/src/usr/runtime/preverifiedlidmgr.C +++ b/src/usr/runtime/preverifiedlidmgr.C @@ -5,7 +5,7 @@ /* */ /* OpenPOWER HostBoot Project */ /* */ -/* Contributors Listed Below - COPYRIGHT 2017,2018 */ +/* Contributors Listed Below - COPYRIGHT 2017,2019 */ /* [+] International Business Machines Corp. */ /* */ /* */ @@ -596,3 +596,8 @@ errlHndl_t PreVerifiedLidMgr::loadImage(const uint64_t i_imgAddr, return l_errl; } + +uint64_t PreVerifiedLidMgr::getNextResMemAddr(const size_t i_size) +{ + return Singleton::instance().getNextAddress(i_size); +} -- cgit v1.2.3