#ifndef __HOST_IPMI_APP_HANDLER_H__ #define __HOST_IPMI_APP_HANDLER_H__ #include // These are per skiboot ipmi-sel code // OEM_SEL type with Timestamp #define SEL_OEM_ID_0 0x55 // SEL type is OEM and -not- general SEL #define SEL_RECORD_TYPE_OEM 0xC0 // Minor command for soft shurdown #define SOFT_OFF 0x00 // Major command for Any kind of power ops #define CMD_POWER 0x04 // IPMI commands for App net functions. enum ipmi_netfn_app_cmds { // Get capability bits IPMI_CMD_GET_DEVICE_ID = 0x01, IPMI_CMD_SET_ACPI = 0x06, IPMI_CMD_GET_DEVICE_GUID = 0x08, IPMI_CMD_RESET_WD = 0x22, IPMI_CMD_SET_WD = 0x24, IPMI_CMD_SET_BMC_GLOBAL_ENABLES = 0x2E, IPMI_CMD_GET_MSG_FLAGS = 0x31, IPMI_CMD_READ_EVENT = 0x35, IPMI_CMD_GET_CAP_BIT = 0x36, IPMI_CMD_GET_CHAN_INFO = 0x42, }; // A Mechanism to tell host to shtudown hosts by sending this PEM SEL. Really // the only used fields by skiboot are: // id[0] / id[1] for ID_0 , ID_1 // type : SEL_RECORD_TYPE_OEM as standard SELs are ignored by skiboot // cmd : CMD_POWER for power functions // data[0], specific commands. example Soft power off. power cycle, etc. struct oem_sel_timestamped { /* SEL header */ uint8_t id[2]; uint8_t type; uint8_t manuf_id[3]; uint8_t timestamp[4]; /* OEM SEL data (6 bytes) follows */ uint8_t netfun; uint8_t cmd; uint8_t data[4]; }; #endif