diff options
Diffstat (limited to 'src/include')
-rw-r--r-- | src/include/runtime/interface.h | 45 | ||||
-rw-r--r-- | src/include/usr/hwpf/hwp/occ/occ.H | 27 | ||||
-rw-r--r-- | src/include/usr/hwpf/hwpf_reasoncodes.H | 1 | ||||
-rw-r--r-- | src/include/usr/targeting/common/util.H | 12 | ||||
-rw-r--r-- | src/include/usr/util/utillidmgr.H | 12 |
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: /** |