summaryrefslogtreecommitdiffstats
path: root/src/include/usr/hwpf/hwp/occ
diff options
context:
space:
mode:
authorBrian Horton <brianh@linux.ibm.com>2015-05-20 15:03:29 -0500
committerA. Patrick Williams III <iawillia@us.ibm.com>2015-09-18 20:24:45 -0500
commitf945eb6a6bec1076f1b3db00939e6b083d61dcab (patch)
tree0aa8105056818d19aa2a975eb8e290163db2db54 /src/include/usr/hwpf/hwp/occ
parentb672d269a8b235d0e4b4555d39192194af1bd55a (diff)
downloadtalos-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.H9
-rw-r--r--src/include/usr/hwpf/hwp/occ/occAccess.H4
-rw-r--r--src/include/usr/hwpf/hwp/occ/occ_common.H35
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.
OpenPOWER on IntegriCloud