summaryrefslogtreecommitdiffstats
path: root/src/include
diff options
context:
space:
mode:
Diffstat (limited to 'src/include')
-rw-r--r--src/include/runtime/interface.h45
-rw-r--r--src/include/usr/hwpf/hwp/occ/occ.H27
-rw-r--r--src/include/usr/hwpf/hwpf_reasoncodes.H1
-rw-r--r--src/include/usr/targeting/common/util.H12
-rw-r--r--src/include/usr/util/utillidmgr.H12
5 files changed, 92 insertions, 5 deletions
diff --git a/src/include/runtime/interface.h b/src/include/runtime/interface.h
index 4ff5e0687..eccf39bbd 100644
--- a/src/include/runtime/interface.h
+++ b/src/include/runtime/interface.h
@@ -150,6 +150,51 @@ typedef struct runtimeInterfaces
*/
void (*cxxtestExecute)(void*);
+ /** Get a list of lids numbers of the lids known to HostBoot
+ *
+ * @param[out] o_num - the number of lids in the list
+ * @return a pointer to the list
+ */
+ const uint32_t * (*get_lid_list)(size_t * o_num);
+
+ /** Load OCC Image and common data into mainstore, also setup OCC BARSs
+ *
+ * @param[in] i_homer_addr_phys - The physical mainstore address of the
+ * start of the HOMER image
+ * @param[in] i_homer_addr_va - Virtual memory address of the HOMER image
+ * @param[in] i_common_addr_phys - The physical mainstore address of the
+ * OCC common area.
+ * @param[in] i_common_addr_va - Virtual memory address of the common area
+ * @param[in] i_proc_chip - The processor chip id
+ * @return 0 on success else return code
+ */
+ int(*loadOCC)(uint64_t i_homer_addr_phys,
+ uint64_t i_homer_addr_va,
+ uint64_t i_common_addr_phys,
+ uint64_t i_common_addr_va,
+ uint64_t i_proc_chip);
+
+ /** Start OCC on all chips, by module
+ *
+ * @param[in] i_proc_chip - Array of functional processor chip ids
+ * @Note The caller must include a complete modules worth of chips
+ * @param[in] i_num_chips - Number of chips in the array
+ * @return 0 on success else return code
+ */
+ int (*startOCCs)(uint64_t* i_proc_chip,
+ size_t i_num_chips);
+
+ /** Stop OCC hold OCCs in reset
+ *
+ * @param[in] i_proc_chip - Array of functional processor chip ids
+ * @Note The caller must include a complete modules worth of chips
+ * @param[in] i_num_chips - Number of chips in the array
+ * @return 0 on success else return code
+ */
+ int (*stopOCCs)(uint64_t* i_proc_chip,
+ size_t i_num_chips);
+
+
// Reserve some space for future growth.
void (*reserved[32])(void);
diff --git a/src/include/usr/hwpf/hwp/occ/occ.H b/src/include/usr/hwpf/hwp/occ/occ.H
index 3d1de46e0..f80c6411a 100644
--- a/src/include/usr/hwpf/hwp/occ/occ.H
+++ b/src/include/usr/hwpf/hwp/occ/occ.H
@@ -1,11 +1,11 @@
/* IBM_PROLOG_BEGIN_TAG */
/* This is an automatically generated prolog. */
/* */
-/* $Source: src/include/usr/hwpf/hwp/occ.H $ */
+/* $Source: src/include/usr/hwpf/hwp/occ/occ.H $ */
/* */
/* IBM CONFIDENTIAL */
/* */
-/* COPYRIGHT International Business Machines Corp. 2013 */
+/* COPYRIGHT International Business Machines Corp. 2013,2014 */
/* */
/* p1 */
/* */
@@ -23,8 +23,30 @@
#ifndef OCC_H_
#define OCC_H_
+#include <limits.h>
+#include <errl/errlentry.H>
+
namespace HBOCC {
+ struct occHostConfigDataArea_t
+ {
+ uint32_t version;
+ uint32_t nestFrequency;
+ };
+
+ enum
+ {
+ OccHostDataVersion = 1,
+ OCC_LIDID = 0x81e00430,
+ OCC_IBSCOM_RANGE_IN_MB = MEGABYTE,
+ };
+
+ enum occAction_t
+ {
+ OCC_START,
+ OCC_STOP,
+ };
+
/**
* @brief Starts OCCs on all Processors in the node
* This is intended to be used for AVP testing.
@@ -33,7 +55,6 @@ namespace HBOCC {
*/
errlHndl_t loadnStartAllOccs();
-
} //end OCC namespace
#endif
diff --git a/src/include/usr/hwpf/hwpf_reasoncodes.H b/src/include/usr/hwpf/hwpf_reasoncodes.H
index e3d41c75d..36b74686b 100644
--- a/src/include/usr/hwpf/hwpf_reasoncodes.H
+++ b/src/include/usr/hwpf/hwpf_reasoncodes.H
@@ -117,6 +117,7 @@ namespace fapi
RC_HOST_TIMER_EXPIRED = HWPF_COMP_ID | 0x2A,
RC_HOST_TIMER_THREAD_FAIL = HWPF_COMP_ID | 0x2B,
RC_NULL_POINTER = HWPF_COMP_ID | 0x2C,
+
RC_RT_WAKEUP_FAILED = HWPF_COMP_ID | 0x2D,
};
diff --git a/src/include/usr/targeting/common/util.H b/src/include/usr/targeting/common/util.H
index 34b95784e..090d3cfbb 100644
--- a/src/include/usr/targeting/common/util.H
+++ b/src/include/usr/targeting/common/util.H
@@ -5,7 +5,7 @@
/* */
/* IBM CONFIDENTIAL */
/* */
-/* COPYRIGHT International Business Machines Corp. 2012,2013 */
+/* COPYRIGHT International Business Machines Corp. 2012,2014 */
/* */
/* p1 */
/* */
@@ -147,6 +147,16 @@ bool is_avp_load(void);
*/
uint64_t get_top_mem_addr(void);
+/**
+ * Order two processor targets by NODE_ID then CHIP_ID.
+ * @param[in] First processor target
+ * @param[in] Second processor target
+ * @return true if first target < second target
+ */
+bool orderByNodeAndPosition( Target* i_firstProc,
+ Target* i_secondProc);
+
+
}
#endif // __TARGETING_COMMON_UTIL_H
diff --git a/src/include/usr/util/utillidmgr.H b/src/include/usr/util/utillidmgr.H
index 53560faa8..93556c0ea 100644
--- a/src/include/usr/util/utillidmgr.H
+++ b/src/include/usr/util/utillidmgr.H
@@ -5,7 +5,7 @@
/* */
/* IBM CONFIDENTIAL */
/* */
-/* COPYRIGHT International Business Machines Corp. 2013 */
+/* COPYRIGHT International Business Machines Corp. 2013,2014 */
/* */
/* p1 */
/* */
@@ -129,6 +129,16 @@ class UtilLidMgr
*/
errlHndl_t getLid(void* i_dest, size_t i_destSize);
+#ifdef __HOSTBOOT_RUNTIME
+ /**
+ * @brief Get a list of LID numbers
+ * @param[out] number of entrees in the list
+ * @return pointer to the list
+ */
+ static
+ const uint32_t * getLidList(size_t * o_num);
+#endif
+
protected:
/**
OpenPOWER on IntegriCloud