summaryrefslogtreecommitdiffstats
path: root/common/recipes-lib/ipmb/files/ipmb.h
diff options
context:
space:
mode:
authorOri Bernstein <orib@fb.com>2015-09-03 13:06:18 -0700
committerOri Bernstein <orib@fb.com>2015-09-23 18:10:45 -0700
commit67f44805b41a532b7b440773f7ee6d17dc0e97f4 (patch)
treec21a66b12c4d92a765e1ee0d47b96e2a2b9cd0d2 /common/recipes-lib/ipmb/files/ipmb.h
parent2a51b7c1c2165ddb188c511e192b75f0aa0fbead (diff)
downloadast2050-yocto-openbmc-67f44805b41a532b7b440773f7ee6d17dc0e97f4.zip
ast2050-yocto-openbmc-67f44805b41a532b7b440773f7ee6d17dc0e97f4.tar.gz
Openbmc dev snapshot.
Diffstat (limited to 'common/recipes-lib/ipmb/files/ipmb.h')
-rw-r--r--common/recipes-lib/ipmb/files/ipmb.h75
1 files changed, 75 insertions, 0 deletions
diff --git a/common/recipes-lib/ipmb/files/ipmb.h b/common/recipes-lib/ipmb/files/ipmb.h
new file mode 100644
index 0000000..d9bc16b
--- /dev/null
+++ b/common/recipes-lib/ipmb/files/ipmb.h
@@ -0,0 +1,75 @@
+/*
+ *
+ * Copyright 2015-present Facebook. All Rights Reserved.
+ *
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#ifndef __IPMB_H__
+#define __IPMB_H__
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define SOCK_PATH_IPMB "/tmp/ipmb_socket"
+
+#define BMC_SLAVE_ADDR 0x10
+#define BRIDGE_SLAVE_ADDR 0x20
+#define ZERO_CKSUM_CONST 0x100
+
+// rqSA, rsSA, rqSeq, hdrCksum, dataCksum
+#define IPMB_HDR_SIZE 5
+
+// rqSA, NetFn, hdrCksum
+#define IPMB_DATA_OFFSET 3
+
+// Slot#0 is on I2C Bus1
+#define IPMB_BUS_SLOT0 1
+
+#define TIMEOUT_IPMI 4
+#define MAX_IPMB_RES_LEN 255
+
+typedef struct _ipmb_req_t {
+ uint8_t res_slave_addr;
+ uint8_t netfn_lun;
+ uint8_t hdr_cksum;
+ uint8_t req_slave_addr;
+ uint8_t seq_lun;
+ uint8_t cmd;
+ uint8_t data[];
+} ipmb_req_t;
+
+typedef struct _ipmb_res_t {
+ uint8_t req_slave_addr;
+ uint8_t netfn_lun;
+ uint8_t hdr_cksum;
+ uint8_t res_slave_addr;
+ uint8_t seq_lun;
+ uint8_t cmd;
+ uint8_t cc;
+ uint8_t data[];
+} ipmb_res_t;
+
+void lib_ipmb_handle(unsigned char bus_id,
+ unsigned char *request, unsigned char req_len,
+ unsigned char *response, unsigned char *res_len);
+
+#ifdef __cplusplus
+} // extern "C"
+#endif
+
+#endif /* __IPMB_H__ */
OpenPOWER on IntegriCloud