summaryrefslogtreecommitdiffstats
path: root/src/include/usr/hwpf/hwp/occ/occ_common.H
diff options
context:
space:
mode:
Diffstat (limited to 'src/include/usr/hwpf/hwp/occ/occ_common.H')
-rw-r--r--src/include/usr/hwpf/hwp/occ/occ_common.H35
1 files changed, 32 insertions, 3 deletions
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