summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSachin Gupta <sgupta2m@in.ibm.com>2018-09-20 23:08:25 -0500
committerSachin Gupta <sgupta2m@in.ibm.com>2018-09-24 01:30:21 -0500
commit0ee0a590013ec72b7eb5bc96e2c8d18d307cbca0 (patch)
tree0e70ddf9dc1f786fc25491622e62305658f532ef
parentc9b485103576156aba29c2d32e6fc9e1f0948304 (diff)
downloadtalos-sbe-0ee0a590013ec72b7eb5bc96e2c8d18d307cbca0.tar.gz
talos-sbe-0ee0a590013ec72b7eb5bc96e2c8d18d307cbca0.zip
Only call lpc init procedure on slave procs in mnfg mode
Change-Id: Ifb4ecc7e86721359fc4e3d513c8abf160da4fca8 Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/66449 Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com> Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com> Reviewed-by: MURULIDHAR NATARAJU <murulidhar@in.ibm.com> Reviewed-by: RAJA DAS <rajadas2@in.ibm.com> Reviewed-by: Sachin Gupta <sgupta2m@in.ibm.com> (cherry picked from commit c108818dacc005336883abd1bbe971607d84328d) Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/66503
-rw-r--r--src/sbefw/app/power/ipl_table.C18
-rw-r--r--src/sbefw/core/sberegaccess.H14
2 files changed, 30 insertions, 2 deletions
diff --git a/src/sbefw/app/power/ipl_table.C b/src/sbefw/app/power/ipl_table.C
index ca3298bf..21b70a58 100644
--- a/src/sbefw/app/power/ipl_table.C
+++ b/src/sbefw/app/power/ipl_table.C
@@ -189,6 +189,7 @@ ReturnCode istepWithCoreConditional( voidfuncptr_t i_hwp);
ReturnCode istepWithEqConditional( voidfuncptr_t i_hwp);
ReturnCode istepNestFreq( voidfuncptr_t i_hwp);
ReturnCode istepCacheInitf( voidfuncptr_t i_hwp );
+ReturnCode istepLpcInit( voidfuncptr_t i_hwp );
//MPIPL Specific
ReturnCode istepWithCoreSetBlock( voidfuncptr_t i_hwp );
@@ -301,7 +302,7 @@ static istepMap_t g_istep3PtrTbl[] =
ISTEP_MAP( istepWithProc, p9_sbe_io_initf ),
ISTEP_MAP( istepWithProc, p9_sbe_startclock_chiplets ),
ISTEP_MAP( istepWithProc, p9_sbe_scominit ),
- ISTEP_MAP( istepWithProc, p9_sbe_lpc_init ),
+ ISTEP_MAP( istepLpcInit, p9_sbe_lpc_init ),
ISTEP_MAP( istepWithProc, p9_sbe_fabricinit ),
ISTEP_MAP( istepCheckSbeMaster, NULL ),
ISTEP_MAP( istepWithProc, p9_sbe_mcs_setup ),
@@ -640,6 +641,21 @@ ReturnCode istepLoadBootLoader( voidfuncptr_t i_hwp)
//----------------------------------------------------------------------------
+ReturnCode istepLpcInit( voidfuncptr_t i_hwp)
+{
+ ReturnCode rc = FAPI2_RC_SUCCESS;
+ // Only call lpc init if we are on master proc or
+ // are in mnfg mode.
+ if( !(SbeRegAccess::theSbeRegAccess().isSbeSlave()) ||
+ (SbeRegAccess::theSbeRegAccess().isMnfgMode()))
+ {
+ rc = istepWithProc(i_hwp);
+ }
+ return rc;
+}
+
+//----------------------------------------------------------------------------
+
ReturnCode istepStartInstruction( voidfuncptr_t i_hwp)
{
ReturnCode rc = FAPI2_RC_SUCCESS;
diff --git a/src/sbefw/core/sberegaccess.H b/src/sbefw/core/sberegaccess.H
index b2d7e1d7..56f4775f 100644
--- a/src/sbefw/core/sberegaccess.H
+++ b/src/sbefw/core/sberegaccess.H
@@ -146,6 +146,17 @@ class SbeRegAccess
}
/**
+ * @brief Check if we are in mnfg mode
+ *
+ * @return true if in mnfg mode, false otherwise
+ *
+ */
+ inline bool isMnfgMode() const
+ {
+ return iv_mnfgMode;
+ }
+
+ /**
* @brief Check if SBE should directly go to runtime state
*
* @return true if SBE should go directly to runtime state,
@@ -296,7 +307,8 @@ class SbeRegAccess
uint64_t iv_mbx3DontCare1 : 5;
uint64_t iv_disableScomFiltering : 1;
uint64_t iv_disableInvalidScomAddrCheck : 1;
- uint64_t iv_mbx3DontCare2 : 19;
+ uint64_t iv_mnfgMode : 1;
+ uint64_t iv_mbx3DontCare2 : 18;
uint64_t iv_mbx3Unused : 32;
};
uint64_t iv_mbx3;
OpenPOWER on IntegriCloud