summaryrefslogtreecommitdiffstats
path: root/include/ipmi.h
diff options
context:
space:
mode:
authorAlistair Popple <alistair@popple.id.au>2014-10-23 16:14:09 +1100
committerBenjamin Herrenschmidt <benh@kernel.crashing.org>2014-10-30 16:35:51 +1100
commitb2a374da98aa710b4c55556f9a9047d4d4a8665d (patch)
tree31055569f5e456f721f011d2646be7ee6b1e9f57 /include/ipmi.h
parentb118964db9acd6a36ae1ffe70c09715479a58095 (diff)
downloadtalos-skiboot-b2a374da98aa710b4c55556f9a9047d4d4a8665d.tar.gz
talos-skiboot-b2a374da98aa710b4c55556f9a9047d4d4a8665d.zip
ipmi: Add an opal interface to the ipmi stack
This patch adds two opal calls (opal_ipmi_send and opal_ipmi_recv) to allow an operating system to send and receive arbitrary ipmi messages to the BMC. Signed-off-by: Alistair Popple <alistair@popple.id.au> Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Diffstat (limited to 'include/ipmi.h')
-rw-r--r--include/ipmi.h13
1 files changed, 13 insertions, 0 deletions
diff --git a/include/ipmi.h b/include/ipmi.h
index 95435153..42906e64 100644
--- a/include/ipmi.h
+++ b/include/ipmi.h
@@ -18,6 +18,7 @@
#define __IPMI_H
#include <stdint.h>
+#include <ccan/list/list.h>
#include <stdbool.h>
/*
@@ -108,8 +109,14 @@
#define IPMI_DEFAULT_INTERFACE 0
+#define IPMI_MAX_REQ_SIZE 64
+#define IPMI_MAX_RESP_SIZE 64
+
struct ipmi_backend;
struct ipmi_msg {
+ /* Can be used by command implementations to track requests */
+ struct list_node link;
+
struct ipmi_backend *backend;
uint8_t netfn;
uint8_t cmd;
@@ -128,12 +135,15 @@ struct ipmi_msg {
};
struct ipmi_backend {
+ uint64_t opal_event_ipmi_recv;
struct ipmi_msg *(*alloc_msg)(size_t, size_t);
void (*free_msg)(struct ipmi_msg *);
int (*queue_msg)(struct ipmi_msg *);
int (*dequeue_msg)(struct ipmi_msg *);
};
+extern struct ipmi_backend *ipmi_backend;
+
/* Initialise the IPMI interface */
void ipmi_init(void);
@@ -166,4 +176,7 @@ void ipmi_register_backend(struct ipmi_backend *backend);
/* Register rtc ipmi commands with as opal callbacks. */
void ipmi_rtc_init(void);
+/* Register ipmi host interface access callbacks */
+void ipmi_opal_init(void);
+
#endif
OpenPOWER on IntegriCloud