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 | |
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')
-rw-r--r-- | src/include/usr/diag/prdf/prdfWriteHomerFirData.H | 8 | ||||
-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 | ||||
-rw-r--r-- | src/include/usr/hwpf/hwpf_reasoncodes.H | 2 | ||||
-rw-r--r-- | src/include/usr/isteps/istep06list.H | 3 | ||||
-rw-r--r-- | src/include/usr/isteps/istep08list.H | 3 | ||||
-rw-r--r-- | src/include/usr/isteps/istep10list.H | 3 | ||||
-rw-r--r-- | src/include/usr/isteps/istep14list.H | 5 | ||||
-rw-r--r-- | src/include/usr/isteps/istep16list.H | 5 |
10 files changed, 66 insertions, 11 deletions
diff --git a/src/include/usr/diag/prdf/prdfWriteHomerFirData.H b/src/include/usr/diag/prdf/prdfWriteHomerFirData.H index f4e3590f0..7fa3a6d5d 100644 --- a/src/include/usr/diag/prdf/prdfWriteHomerFirData.H +++ b/src/include/usr/diag/prdf/prdfWriteHomerFirData.H @@ -1,7 +1,7 @@ /* IBM_PROLOG_BEGIN_TAG */ /* This is an automatically generated prolog. */ /* */ -/* $Source: src/usr/diag/prdf/occ_firdata/prdfWriteHomerFirData.H $ */ +/* $Source: src/include/usr/diag/prdf/prdfWriteHomerFirData.H $ */ /* */ /* OpenPOWER HostBoot Project */ /* */ @@ -23,6 +23,9 @@ /* */ /* IBM_PROLOG_END_TAG */ +#ifndef __prdfWriteHomerFirData_H +#define __prdfWriteHomerFirData_H + #include <errl/errlentry.H> namespace PRDF @@ -41,9 +44,12 @@ enum HwInitialized_t * the OCC to capture in the event of a system checkstop. * @param i_hBuf SRAM pointer to the beginning of the HOMER data buffer. * @param i_hBufSize Total size of the HOMER data buffer. + * @param i_curHW enum indicating which HW is currently known * @return An error log on failure. NULL on success. */ errlHndl_t writeHomerFirData( uint8_t * i_hBuf, size_t i_hBufSize, const HwInitialized_t i_curHw = ALL_HARDWARE ); }; // end namespace PRDF +#endif // __prdfWriteHomerFirData_H + 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. diff --git a/src/include/usr/hwpf/hwpf_reasoncodes.H b/src/include/usr/hwpf/hwpf_reasoncodes.H index 4ef403eb8..80178275d 100644 --- a/src/include/usr/hwpf/hwpf_reasoncodes.H +++ b/src/include/usr/hwpf/hwpf_reasoncodes.H @@ -83,6 +83,7 @@ namespace fapi MOD_GET_WOF_FREQ_UPLIFT_SELECTED = 0x29, MOD_SET_NEST_FREQ = 0x2A, MOD_FIND_MAX_DMI_SPD = 0x2B, + MOD_OCC_LOAD_HOST_DATA_TO_SRAM = 0x2C, }; /** @@ -143,6 +144,7 @@ namespace fapi RC_NO_SINGLE_NODE = HWPF_COMP_ID | 0x3A, RC_INVALID_ULTRA_TURBO_FREQ = HWPF_COMP_ID | 0x3B, RC_INVALID_WOF_INDEX = HWPF_COMP_ID | 0x3C, + RC_ECMD_INSERT_FAILED = HWPF_COMP_ID | 0x3D, }; /** diff --git a/src/include/usr/isteps/istep06list.H b/src/include/usr/isteps/istep06list.H index 8b55f23a0..761b1f662 100644 --- a/src/include/usr/isteps/istep06list.H +++ b/src/include/usr/isteps/istep06list.H @@ -162,6 +162,9 @@ const DepModInfo g_istep06Dependancies = { DEP_LIB(libpstates.so), DEP_LIB(libcore_activate.so), DEP_LIB(libsecure_boot.so), +#ifdef CONFIG_ENABLE_CHECKSTOP_ANALYSIS + DEP_LIB(libocc.so), +#endif NULL } }; diff --git a/src/include/usr/isteps/istep08list.H b/src/include/usr/isteps/istep08list.H index 0a721c694..90f91f8d5 100644 --- a/src/include/usr/isteps/istep08list.H +++ b/src/include/usr/isteps/istep08list.H @@ -122,6 +122,9 @@ const DepModInfo g_istep08Dependancies = { DEP_LIB(libslave_sbe.so), DEP_LIB(libsbe.so), DEP_LIB(libbuild_winkle_images.so), +#ifdef CONFIG_ENABLE_CHECKSTOP_ANALYSIS + DEP_LIB(libocc.so), +#endif NULL } }; diff --git a/src/include/usr/isteps/istep10list.H b/src/include/usr/isteps/istep10list.H index 3dace26bb..86f12366f 100644 --- a/src/include/usr/isteps/istep10list.H +++ b/src/include/usr/isteps/istep10list.H @@ -170,6 +170,9 @@ const DepModInfo g_istep10Dependancies = { DEP_LIB(libsbe.so), DEP_LIB(libproc_hwreconfig.so), DEP_LIB(libslave_sbe.so), +#ifdef CONFIG_ENABLE_CHECKSTOP_ANALYSIS + DEP_LIB(libocc.so), +#endif #endif NULL } diff --git a/src/include/usr/isteps/istep14list.H b/src/include/usr/isteps/istep14list.H index d4ebcd88f..b8da1fab3 100644 --- a/src/include/usr/isteps/istep14list.H +++ b/src/include/usr/isteps/istep14list.H @@ -5,7 +5,7 @@ /* */ /* OpenPOWER HostBoot Project */ /* */ -/* Contributors Listed Below - COPYRIGHT 2012,2014 */ +/* Contributors Listed Below - COPYRIGHT 2012,2015 */ /* [+] International Business Machines Corp. */ /* */ /* */ @@ -129,6 +129,9 @@ const DepModInfo g_istep14Dependancies = { DEP_LIB(libdram_training.so), DEP_LIB(libdump.so), DEP_LIB(libnest_chiplets.so), +#ifdef CONFIG_ENABLE_CHECKSTOP_ANALYSIS + DEP_LIB(libocc.so), +#endif #endif NULL } diff --git a/src/include/usr/isteps/istep16list.H b/src/include/usr/isteps/istep16list.H index 1dc968c18..bde62884e 100644 --- a/src/include/usr/isteps/istep16list.H +++ b/src/include/usr/isteps/istep16list.H @@ -5,7 +5,7 @@ /* */ /* OpenPOWER HostBoot Project */ /* */ -/* Contributors Listed Below - COPYRIGHT 2012,2014 */ +/* Contributors Listed Below - COPYRIGHT 2012,2015 */ /* [+] International Business Machines Corp. */ /* */ /* */ @@ -91,6 +91,9 @@ const DepModInfo g_istep16Dependancies = { DEP_LIB(libcore_activate.so), DEP_LIB(libbuild_winkle_images.so), DEP_LIB(libnest_chiplets.so), +#ifdef CONFIG_ENABLE_CHECKSTOP_ANALYSIS + DEP_LIB(libocc.so), +#endif NULL } }; |