From 9de9d8f7c5b5c73247dc69925a594fcd07ce060c Mon Sep 17 00:00:00 2001 From: Ilya Smirnov Date: Thu, 15 Nov 2018 08:34:52 -0600 Subject: SMF: Create New UVBWLIST Partition A new partition was added for the contents of the XSCOM white/blacklist called UVBWLIST. When the time comes, this partition will hold the binary representation of the aforementioned lists. The partition is dumped into hostboot reserved memory for Ultravisor consumption. Change-Id: I06ebce74aae3c0df987e5a057967842042db2bae RTC: 192422 Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/68869 Tested-by: Jenkins Server Tested-by: Jenkins OP Build CI Tested-by: Jenkins OP HW Reviewed-by: Nicholas E. Bofferding Tested-by: FSP CI Jenkins Reviewed-by: Michael Baiocchi Reviewed-by: Daniel M. Crowell --- src/usr/pnor/pnor_utils.C | 4 +++- src/usr/runtime/common/runtime_utils.C | 4 ++++ src/usr/util/utillidpnor.C | 11 ++++++----- 3 files changed, 13 insertions(+), 6 deletions(-) (limited to 'src/usr') diff --git a/src/usr/pnor/pnor_utils.C b/src/usr/pnor/pnor_utils.C index 68df913e0..95989cd66 100644 --- a/src/usr/pnor/pnor_utils.C +++ b/src/usr/pnor/pnor_utils.C @@ -378,7 +378,8 @@ bool PNOR::isEnforcedSecureSection(const uint32_t i_section) i_section == MEMD || i_section == CAPP || i_section == TESTLOAD || - i_section == VERSION; + i_section == VERSION || + i_section == UVBWLIST; #endif #else return false; @@ -450,6 +451,7 @@ const char * PNOR::SectionIdToString( uint32_t i_secIdIndex ) "CENHWIMG", /**< PNOR::CENTAUR_HW_IMG : Centaur HCODE ref image */ "HDAT", /**< PNOR::HDAT : Hdat Data */ "EECACHE", /**< PNOR::EECACHE : Cached data from various EEPROMs */ + "UVBWLIST", /**< PNOR::UVBWLIST : Ultravisor XSCOM white/blacklist */ #endif }; diff --git a/src/usr/runtime/common/runtime_utils.C b/src/usr/runtime/common/runtime_utils.C index ba15de167..e61d90b31 100644 --- a/src/usr/runtime/common/runtime_utils.C +++ b/src/usr/runtime/common/runtime_utils.C @@ -31,6 +31,7 @@ namespace RUNTIME // -- OCC // -- WOFDATA // -- HCODE +// -- UVBWLIST // -- Images that never have secure headers /// -- RINGOVD const PreVerifyVector preVerifiedPnorSections { @@ -39,6 +40,9 @@ const PreVerifyVector preVerifiedPnorSections { {PNOR::HCODE, true}, {PNOR::VERSION, true}, {PNOR::RINGOVD, false}, +#ifndef CONFIG_FSP_BUILD + {PNOR::UVBWLIST, true}, +#endif }; bool isPreVerifiedSection(const PNOR::SectionId i_section) diff --git a/src/usr/util/utillidpnor.C b/src/usr/util/utillidpnor.C index f304eab2d..0f2d464ae 100644 --- a/src/usr/util/utillidpnor.C +++ b/src/usr/util/utillidpnor.C @@ -5,7 +5,7 @@ /* */ /* OpenPOWER HostBoot Project */ /* */ -/* Contributors Listed Below - COPYRIGHT 2014,2018 */ +/* Contributors Listed Below - COPYRIGHT 2014,2019 */ /* [+] International Business Machines Corp. */ /* */ /* */ @@ -48,11 +48,12 @@ const size_t lidIdStrLength = 9; // The second Lid in the pair is the Container LID (Secure Header) static const PnorLidsMap PnorToLidsMap = { - { PNOR::TESTRO, LidAndContainerLid(TEST_LIDID, INVALID_LIDID)}, + { PNOR::TESTRO, LidAndContainerLid(TEST_LIDID, INVALID_LIDID)}, { PNOR::VERSION, LidAndContainerLid(VERSION_LIDID, INVALID_LIDID)}, - { PNOR::OCC, LidAndContainerLid(OCC_LIDID, OCC_CONTAINER_LIDID)}, - { PNOR::WOFDATA, LidAndContainerLid(WOF_LIDID, WOF_CONTAINER_LIDID)}, - { PNOR::HCODE, LidAndContainerLid(NIMBUS_HCODE_LIDID, HCODE_CONTAINER_LIDID)}, + { PNOR::OCC, LidAndContainerLid(OCC_LIDID, OCC_CONTAINER_LIDID)}, + { PNOR::WOFDATA, LidAndContainerLid(WOF_LIDID, WOF_CONTAINER_LIDID)}, + { PNOR::HCODE, LidAndContainerLid(NIMBUS_HCODE_LIDID, HCODE_CONTAINER_LIDID)}, + { PNOR::UVBWLIST, LidAndContainerLid(TEST_LIDID, INVALID_LIDID)}, /* @TODO RTC:177927 - Figure out how to handle different Lids for the same PNOR section based on chip. { PNOR::HCODE, LidAndContainerLid(CUMULUS_HCODE_LIDID, HCODE_CONTAINER_LIDID)}, -- cgit v1.2.3