diff options
Diffstat (limited to 'src/include')
-rw-r--r-- | src/include/usr/ipmi/ipmi_reasoncodes.H | 2 | ||||
-rw-r--r-- | src/include/usr/ipmi/ipmisensor.H | 66 | ||||
-rw-r--r-- | src/include/usr/isteps/istep_reasoncodes.H | 2 | ||||
-rw-r--r-- | src/include/usr/util/utilsemipersist.H | 6 |
4 files changed, 74 insertions, 2 deletions
diff --git a/src/include/usr/ipmi/ipmi_reasoncodes.H b/src/include/usr/ipmi/ipmi_reasoncodes.H index c8931bdb0..972391675 100644 --- a/src/include/usr/ipmi/ipmi_reasoncodes.H +++ b/src/include/usr/ipmi/ipmi_reasoncodes.H @@ -42,6 +42,7 @@ namespace IPMI MOD_IPMISENSOR_TYPE = 0x08, // IPMI::getSensorType MOD_IPMISENSOR_ENTITY_ID = 0x09, // IPMI::getSensorEntityId MOD_IPMISENSOR_NAME = 0x0A, // IPMI::getSensorName + MOD_IPMISENSOR_REBOOTCNTRL = 0x0B, // IPMI::SENSOR getRebootControl }; enum IPMIReasonCode @@ -61,6 +62,7 @@ namespace IPMI RC_SENSOR_NOT_FOUND = IPMI_COMP_ID | 0x0d, RC_INVALID_VPD_DATA = IPMI_COMP_ID | 0x0e, RC_INVALID_SENSOR_NUMBER = IPMI_COMP_ID | 0x0f, + RC_INVALID_SENSOR_SETTING = IPMI_COMP_ID | 0x10, }; }; diff --git a/src/include/usr/ipmi/ipmisensor.H b/src/include/usr/ipmi/ipmisensor.H index 5b59a45c5..15499ce13 100644 --- a/src/include/usr/ipmi/ipmisensor.H +++ b/src/include/usr/ipmi/ipmisensor.H @@ -635,6 +635,72 @@ namespace SENSOR }; /** + * @class RebootControlSensor + * + * @brief Specialized class for the system reboot control + * + * @par Detailed Description: + * Provides the functionality needed to enable/disable auto reboot + * control controlled by the BMC. + * + * Usage: + * RebootControlSensor l_rbotCtl; + * l_rbotCtl.setRebootControl( autoRebootSetting::ENABLE_REBOOTS ); + * l_rbotCtl.setRebootControl( autoRebootSetting::DISABLE_REBOOTS ); + * + */ + class RebootControlSensor : public SensorBase + { + + public: + /** + * @enum autoRebootSetting + * enum to define the contr + */ + enum autoRebootSetting + { + DISABLE_REBOOTS = 0x00, // keep current state + ENABLE_REBOOTS = 0x01, // allow reboot for FIRDATA analysis + }; + + /** + * @brief Constructor for the RebootControlSensor + * + * The system target holds the IPMI sensor number for this sensor. + * + */ + RebootControlSensor(); + + /** + * @brief Destructor for the RebootControlSensor + * + */ + ~RebootControlSensor(); + + /** + * @brief Set reboots to enabled or disabled + * + * @param[in] i_setting - enable/disable + * + * @return Errorlog handle + * + */ + errlHndl_t setRebootControl( autoRebootSetting i_setting ); + + /** + * @brief get the value of the reboot control from the BMC. + * + * @param[o] i_setting - reboot control value + * + * @return Errorlog handle + * + */ + errlHndl_t getRebootControl( autoRebootSetting& o_setting ); + + }; + + + /** * @class StatusSensor * * @brief Specialized class to handle DIMM, PROC and Core status. diff --git a/src/include/usr/isteps/istep_reasoncodes.H b/src/include/usr/isteps/istep_reasoncodes.H index cd6f47bdc..5895c11ee 100644 --- a/src/include/usr/isteps/istep_reasoncodes.H +++ b/src/include/usr/isteps/istep_reasoncodes.H @@ -62,6 +62,7 @@ namespace ISTEP MOD_SBE_PERFORM_UPDATE_CHECK = 0x1A, MOD_SBE_GET_FFDC_HANDLER = 0x1C, MOD_SET_IPL_PARMS = 0x1D, + MOD_OCC_XSTOP_HANDLER = 0x1E, }; /** @@ -123,6 +124,7 @@ namespace ISTEP RC_NO_FFDC_RETURNED = ISTEP_COMP_ID | 0x33, RC_RETURNED_FFDC = ISTEP_COMP_ID | 0x34, RC_P9N_DD1_NOT_SUPPORTED = ISTEP_COMP_ID | 0x35, + RC_PREVENT_REBOOT_IN_MFG_TERM_MODE = ISTEP_COMP_ID | 0x36, }; }; diff --git a/src/include/usr/util/utilsemipersist.H b/src/include/usr/util/utilsemipersist.H index 82943825e..9e56536d1 100644 --- a/src/include/usr/util/utilsemipersist.H +++ b/src/include/usr/util/utilsemipersist.H @@ -51,12 +51,14 @@ namespace Util enum { PERSIST_MAGIC = 0x48425f56, // HB_V + MFG_TERM_REBOOT_ENABLE = 0x4d464754, // MFGT }; struct semiPersistData_t { - uint32_t magic; //HB_V - uint32_t reboot_cnt; // Number of reboots with valid data + uint32_t magic; //HB_V + uint32_t reboot_cnt; // Number of reboots with valid data + uint32_t mfg_term_reboot; // Manufacturing Terminate set for reboot semiPersistData_t(): magic(0), reboot_cnt(0) {}; } PACKED; |