summaryrefslogtreecommitdiffstats
path: root/src/usr
diff options
context:
space:
mode:
authorIlya Smirnov <ismirno@us.ibm.com>2018-01-16 11:05:23 -0600
committerDaniel M. Crowell <dcrowell@us.ibm.com>2018-01-29 11:07:10 -0500
commit6e7bb893b400ab5e1823ee73f1e035e22b06c819 (patch)
tree0154ca45c59f235af07d915ee4a5e258d4342cc4 /src/usr
parentdddd42af796f2a40631a24864980acad12ce08ce (diff)
downloadtalos-hostboot-6e7bb893b400ab5e1823ee73f1e035e22b06c819.tar.gz
talos-hostboot-6e7bb893b400ab5e1823ee73f1e035e22b06c819.zip
Load MEMD Partition in Itep 7.3
With the changes to supported_freqs HWP, the getVPD function gets called in istep 7.3, but the MEMD partition, which this function requires, is not yet loaded. The fix is to load the MEMD partition at the beginning of Istep 7.3 and unload it at the end. Change-Id: I0d18104db3473b9a6ca5ee6a5b4f6c4dbb500eee Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/52008 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: Nicholas E. Bofferding <bofferdn@us.ibm.com> Reviewed-by: William G. Hoffa <wghoffa@us.ibm.com> Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
Diffstat (limited to 'src/usr')
-rw-r--r--src/usr/isteps/istep07/call_mss_freq.C49
1 files changed, 48 insertions, 1 deletions
diff --git a/src/usr/isteps/istep07/call_mss_freq.C b/src/usr/isteps/istep07/call_mss_freq.C
index 024afea9b..63e46465d 100644
--- a/src/usr/isteps/istep07/call_mss_freq.C
+++ b/src/usr/isteps/istep07/call_mss_freq.C
@@ -5,7 +5,7 @@
/* */
/* OpenPOWER HostBoot Project */
/* */
-/* Contributors Listed Below - COPYRIGHT 2015,2017 */
+/* Contributors Listed Below - COPYRIGHT 2015,2018 */
/* [+] International Business Machines Corp. */
/* */
/* */
@@ -74,15 +74,39 @@ void* call_mss_freq( void *io_pArgs )
{
IStepError l_StepError;
errlHndl_t l_err = NULL;
+ bool l_isMemdLoaded = false;
TRACDCOMP( ISTEPS_TRACE::g_trac_isteps_trace, "call_mss_freq entry" );
+ do
+ {
+
TARGETING::TargetHandleList l_membufTargetList;
getAllChips(l_membufTargetList, TYPE_MEMBUF);
TRACFCOMP(ISTEPS_TRACE::g_trac_isteps_trace, "call_mss_freq: %d membufs found",
l_membufTargetList.size());
+ #ifdef CONFIG_SECUREBOOT
+ // Load MEMD so that vpd_supported_freqs can use it.
+ l_err = loadSecureSection(PNOR::MEMD);
+ if (l_err)
+ {
+ TRACFCOMP(ISTEPS_TRACE::g_trac_isteps_trace,
+ ERR_MRK "Failed in call to loadSecureSection for section "
+ "PNOR:MEMD");
+
+ // Create istep error and link it to PLID of original error
+ l_StepError.addErrorDetails(l_err);
+ errlCommit(l_err, ISTEP_COMP_ID);
+ break;
+ }
+ else
+ {
+ l_isMemdLoaded = true;
+ }
+ #endif
+
for (const auto & l_membuf_target : l_membufTargetList)
{
TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace,
@@ -299,6 +323,29 @@ void* call_mss_freq( void *io_pArgs )
}
}
+ } while(0);
+
+ #ifdef CONFIG_SECUREBOOT
+ if(l_isMemdLoaded)
+ {
+ // Should not have any uncommitted errors at this point.
+ assert(l_err == NULL, "call_mss_freq - unexpected uncommitted"
+ "error found");
+
+ l_err = unloadSecureSection(PNOR::MEMD);
+ if (l_err)
+ {
+ TRACFCOMP(ISTEPS_TRACE::g_trac_isteps_trace,
+ ERR_MRK "Failed in call to unloadSecureSection for section "
+ "PNOR:MEMD");
+
+ // Create istep error and link it to PLID of original error
+ l_StepError.addErrorDetails(l_err);
+ errlCommit(l_err, ISTEP_COMP_ID);
+ }
+ }
+ #endif
+
TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace, "call_mss_freq exit" );
OpenPOWER on IntegriCloud