summaryrefslogtreecommitdiffstats
path: root/discover/ipmi.h
diff options
context:
space:
mode:
authorMaxim Polyakov <m.polyakov@yadro.com>2019-07-08 12:13:38 +0300
committerJeremy Kerr <jk@ozlabs.org>2019-10-08 14:31:09 +0800
commiteb027e76d13f4fb5915cd5373e4ae78cd5905841 (patch)
tree708c8411a05e19df23288891c634376ec75ba007 /discover/ipmi.h
parent5f8321eb6479113a09c771c49e6781571ec8e2e2 (diff)
downloadtalos-petitboot-eb027e76d13f4fb5915cd5373e4ae78cd5905841.tar.gz
talos-petitboot-eb027e76d13f4fb5915cd5373e4ae78cd5905841.zip
discover/platform-powerpc: add mailbox message structure
Use structure for the IPMI response mailbox message instead of raw byte array as its done in the ipmitool utility: https://github.com/ipmitool/ipmitool/commit/62a04390e10f8e62ce16b7bc95bf6ced419b80eb Signed-off-by: Maxim Polyakov <m.polyakov@yadro.com>
Diffstat (limited to 'discover/ipmi.h')
-rw-r--r--discover/ipmi.h23
1 files changed, 23 insertions, 0 deletions
diff --git a/discover/ipmi.h b/discover/ipmi.h
index c8ccb46..f8672b0 100644
--- a/discover/ipmi.h
+++ b/discover/ipmi.h
@@ -29,6 +29,29 @@ enum ipmi_sensor_ids {
struct ipmi;
+#define CHASSIS_BOOT_MBOX_IANA_SZ 3
+#define CHASSIS_BOOT_MBOX_DATA_SZ 16
+#define CHASSIS_BOOT_MBOX_BLOCK0_DATA_SZ \
+ (CHASSIS_BOOT_MBOX_DATA_SZ - CHASSIS_BOOT_MBOX_IANA_SZ)
+
+typedef struct __attribute__((packed)) {
+ uint8_t iana[CHASSIS_BOOT_MBOX_IANA_SZ];
+ uint8_t data[CHASSIS_BOOT_MBOX_BLOCK0_DATA_SZ];
+} mbox_block0_t;
+
+typedef union {
+ uint8_t data[CHASSIS_BOOT_MBOX_DATA_SZ];
+ mbox_block0_t b0;
+} mbox_t;
+
+typedef struct __attribute__((packed)) {
+ uint8_t cc;
+ uint8_t param_version;
+ uint8_t param_valid;
+ uint8_t block_selector;
+ mbox_t mbox;
+} ipmi_mbox_response_t;
+
static const int ipmi_timeout = 10000; /* milliseconds. */
bool ipmi_present(void);
OpenPOWER on IntegriCloud