]> git.zerfleddert.de Git - rsbs2/blob - bmc/ipmb.h
implement all remaining IPMB queries seen on the wire
[rsbs2] / bmc / ipmb.h
1 #define IPMB_APP_GET_DEVICE_ID 0x01
2 #define IPMB_APP_GET_WATCHDOG_TIMER 0x25
3
4 #define IPMB_CHASSIS_GET_STATUS 0x01
5 #define IPMB_CHASSIS_CONTROL 0x02
6
7 #define IPMB_SE_PLATFORM_EVENT 0x02
8
9 #define IPMB_STORAGE_RESERVE_SDR 0x22
10 #define IPMB_STORAGE_GET_SDR 0x23
11 #define IPMB_STORAGE_GET_SEL_INFO 0x40
12 #define IPMB_STORAGE_GET_SEL_ALLOCATION 0x41
13 #define IPMB_STORAGE_GET_SEL_ENTRY 0x43
14 #define IPMB_STORAGE_GET_SEL_TIME 0x48
15
16 #define IPMB_NETFN_CHASSIS 0x00
17 #define IPMB_NETFN_BRIDGE 0x02
18 #define IPMB_NETFN_SENSOR_EVENT 0x04
19 #define IPMB_NETFN_APP 0x06
20 #define IPMB_NETFN_FIRMWARE 0x08
21 #define IPMB_NETFN_STORAGE 0x0a
22
23 #define IPMB_CC_NORMALLY 0x00
24 #define IPMB_CC_BUSY 0xc0
25 #define IPMB_CC_INVALID 0xc1
26 #define IPMB_CC_ERROR 0xff
27
28 /* ipmb1010ltd.pdf page 27 (33) */
29 struct ipmb_req {
30 uint8_t rsSA;
31 uint8_t netFn;
32 uint8_t rsLUN;
33 uint8_t rqSA;
34 uint8_t rqSEQ;
35 uint8_t rqLUN;
36 uint8_t cmd;
37 unsigned char *data;
38 uint8_t datalen;
39 };
40
41 struct ipmb_resp {
42 uint8_t rqSA;
43 uint8_t netFn;
44 uint8_t rqLUN;
45 uint8_t rsSA;
46 uint8_t rqSEQ;
47 uint8_t rsLUN;
48 uint8_t cmd;
49 };
50
51 void decode_ipmb_pkt(unsigned char *buf, int len);
Impressum, Datenschutz