diff options
author | Maxim Polyakov <m.polyakov@yadro.com> | 2019-07-08 12:13:38 +0300 |
---|---|---|
committer | Jeremy Kerr <jk@ozlabs.org> | 2019-10-08 14:31:09 +0800 |
commit | eb027e76d13f4fb5915cd5373e4ae78cd5905841 (patch) | |
tree | 708c8411a05e19df23288891c634376ec75ba007 /discover/ipmi.h | |
parent | 5f8321eb6479113a09c771c49e6781571ec8e2e2 (diff) | |
download | talos-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.h | 23 |
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); |