diff options
author | Brian Horton <brianh@linux.ibm.com> | 2015-05-20 15:03:29 -0500 |
---|---|---|
committer | A. Patrick Williams III <iawillia@us.ibm.com> | 2015-09-18 20:24:45 -0500 |
commit | f945eb6a6bec1076f1b3db00939e6b083d61dcab (patch) | |
tree | 0aa8105056818d19aa2a975eb8e290163db2db54 /src/include/usr/hwpf/hwp/occ | |
parent | b672d269a8b235d0e4b4555d39192194af1bd55a (diff) | |
download | talos-hostboot-f945eb6a6bec1076f1b3db00939e6b083d61dcab.tar.gz talos-hostboot-f945eb6a6bec1076f1b3db00939e6b083d61dcab.zip |
start occ checkstop handling during IPL
Change-Id: I38e29f0044b982073fc7c24b71b5104515e74024
RTC: 115587
Reviewed-on: http://gfw160.aus.stglabs.ibm.com:8080/gerrit/18883
Tested-by: Jenkins Server
Reviewed-by: A. Patrick Williams III <iawillia@us.ibm.com>
Diffstat (limited to 'src/include/usr/hwpf/hwp/occ')
-rw-r--r-- | src/include/usr/hwpf/hwp/occ/occ.H | 9 | ||||
-rw-r--r-- | src/include/usr/hwpf/hwp/occ/occAccess.H | 4 | ||||
-rw-r--r-- | src/include/usr/hwpf/hwp/occ/occ_common.H | 35 |
3 files changed, 40 insertions, 8 deletions
diff --git a/src/include/usr/hwpf/hwp/occ/occ.H b/src/include/usr/hwpf/hwp/occ/occ.H index 9bf494669..c4dba0996 100644 --- a/src/include/usr/hwpf/hwp/occ/occ.H +++ b/src/include/usr/hwpf/hwp/occ/occ.H @@ -35,17 +35,22 @@ namespace HBOCC { * * @param[out] o_failedOccTarget: Pointer to the target failing * loadnStartAllOccs + * @param[in] i_useSRAM: bool - use SRAM for OCC image, ie during IPL + * true if during IPL, false if at end of IPL (default) * @return errlHndl_t Error log if OCC load failed */ - errlHndl_t loadnStartAllOccs(TARGETING::Target *& o_failedOccTarget); + errlHndl_t loadnStartAllOccs(TARGETING::Target *& o_failedOccTarget, + bool i_useSRAM = false); /** * @brief Starts OCCs on all Processors in the node * This is intended to be used for Open Power. * + * @param[in] i_useSRAM: bool - use SRAM for OCC image, ie during IPL + * true if during IPL, false if at end of IPL (default) * @return errlHndl_t Error log if OCC load failed */ - errlHndl_t activateOCCs(); + errlHndl_t activateOCCs(bool i_useSRAM = false); } //end OCC namespace diff --git a/src/include/usr/hwpf/hwp/occ/occAccess.H b/src/include/usr/hwpf/hwp/occ/occAccess.H index b13f280af..f5de96589 100644 --- a/src/include/usr/hwpf/hwp/occ/occAccess.H +++ b/src/include/usr/hwpf/hwp/occ/occAccess.H @@ -5,7 +5,7 @@ /* */ /* OpenPOWER HostBoot Project */ /* */ -/* Contributors Listed Below - COPYRIGHT 2014 */ +/* Contributors Listed Below - COPYRIGHT 2014,2015 */ /* [+] International Business Machines Corp. */ /* */ /* */ @@ -30,7 +30,6 @@ #include <targeting/common/commontargeting.H> #include <fapi.H> -#ifdef CONFIG_HTMGT namespace HBOCC { @@ -69,6 +68,5 @@ namespace HBOCC ecmdDataBufferBase & i_dataBuf); } //end OCC namespace -#endif // CONFIG_HTMGT #endif diff --git a/src/include/usr/hwpf/hwp/occ/occ_common.H b/src/include/usr/hwpf/hwp/occ/occ_common.H index 7ddb302b7..4dd83cbec 100644 --- a/src/include/usr/hwpf/hwp/occ/occ_common.H +++ b/src/include/usr/hwpf/hwp/occ/occ_common.H @@ -27,6 +27,7 @@ #include <limits.h> #include <errl/errlentry.H> +#include <diag/prdf/prdfWriteHomerFirData.H> namespace HBOCC { @@ -69,7 +70,19 @@ namespace HBOCC // FIR Master NOT_FIR_MASTER = 0x00000000, - IS_FIR_MASTER = 0x00000001 + IS_FIR_MASTER = 0x00000001, + + // SRAM Address for OCC Main App + OCC_SRAM_ADDRESS = 0xFFF80000, + + // SRAM Address and length for FIR HOMER data + OCC_SRAM_FIR_DATA = 0xFFFF5000, + OCC_SRAM_FIR_LENGTH = 0x1000, + + // offsets for OCC loading during IPL + OCC_OFFSET_IPL_FLAG = 0x82, + OCC_OFFSET_FREQ = 0x84, + }; enum occAction_t @@ -78,7 +91,7 @@ namespace HBOCC OCC_STOP, }; /** - * @brief Sets up OCC Host data + * @brief Sets up OCC Host data in Homer * * @param[in] i_proc: target processor to load * @param[in] i_occHostDataVirtAddr Virtual @@ -90,6 +103,19 @@ namespace HBOCC errlHndl_t loadHostDataToHomer(TARGETING::Target* i_proc, void* i_occHostDataVirtAddr); +#ifdef CONFIG_ENABLE_CHECKSTOP_ANALYSIS + /** + * @brief Sets up OCC Host data in SRAM + * + * @param[in] i_proc: target processor to load + * @param[in] i_curHW: enum indicating which HW is currently known + * + * @return errlHndl_t Error log Host data setup failed + */ + errlHndl_t loadHostDataToSRAM(TARGETING::Target* i_proc, + const PRDF::HwInitialized_t i_curHw = PRDF::ALL_HARDWARE); +#endif + /** * @brief Execute procedures and steps required to load * OCC data in a specified processor @@ -101,12 +127,15 @@ namespace HBOCC * proc's OCC image int the homer * @param[in] i_commonPhysAddr: Physical address of common * OCC region + * @param[in] i_useSRAM: bool - use SRAM for OCC image, ie during IPL + * true if duringIPL, false if at end of IPL (default) * @return errlHndl_t Error log if loadOCC failed */ errlHndl_t loadOCC(TARGETING::Target* i_target, uint64_t i_occImgPaddr, uint64_t i_occImgVaddr, - uint64_t i_commonPhysAddr); + uint64_t i_commonPhysAddr, + bool i_useSRAM = false); /** * @brief Start OCC for specified DCM pair of processors. |