summaryrefslogtreecommitdiffstats
path: root/apphandler.h
blob: a17ee7f8032bc4da6ddeb8f1c1b7bd067e2b1706 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
#ifndef __HOST_IPMI_APP_HANDLER_H__
#define __HOST_IPMI_APP_HANDLER_H__

#include <stdint.h>

// 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
OpenPOWER on IntegriCloud