1 #pragma once 2 3 #include <stdint.h> 4 5 // These are per skiboot ipmi-sel code 6 7 // OEM_SEL type with Timestamp 8 #define SEL_OEM_ID_0 0x55 9 // SEL type is OEM and -not- general SEL 10 #define SEL_RECORD_TYPE_OEM 0xC0 11 // Minor command for soft shurdown 12 #define SOFT_OFF 0x00 13 // Major command for Any kind of power ops 14 #define CMD_POWER 0x04 15 // Major command for the heartbeat operation (verify host is alive) 16 #define CMD_HEARTBEAT 0xFF 17 18 // IPMI commands used via System Interface functions. 19 enum ipmi_netfn_system_intf_cmds 20 { 21 IPMI_CMD_SET_BMC_GLOBAL_ENABLES = 0x2E, 22 IPMI_CMD_GET_BMC_GLOBAL_ENABLES = 0x2F, 23 IPMI_CMD_GET_MSG_FLAGS = 0x31, 24 IPMI_CMD_READ_EVENT = 0x35, 25 }; 26 27 // A Mechanism to tell host to shtudown hosts by sending this PEM SEL. Really 28 // the only used fields by skiboot are: 29 // id[0] / id[1] for ID_0 , ID_1 30 // type : SEL_RECORD_TYPE_OEM as standard SELs are ignored by skiboot 31 // cmd : CMD_POWER for power functions 32 // data[0], specific commands. example Soft power off. power cycle, etc. 33 struct oem_sel_timestamped 34 { 35 /* SEL header */ 36 uint8_t id[2]; 37 uint8_t type; 38 uint8_t manuf_id[3]; 39 uint8_t timestamp[4]; 40 /* OEM SEL data (6 bytes) follows */ 41 uint8_t netfun; 42 uint8_t cmd; 43 uint8_t data[4]; 44 }; 45