summaryrefslogtreecommitdiff
path: root/meta-openbmc-mods/meta-common/recipes-core/interfaces/libmctp/0001-Smbus-changes-for-libmctp.patch
blob: d537b5db7ebf5191182833de68568efebd189343 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
From 8e3ae96546010c5d4f3fce6df9c32aece1093458 Mon Sep 17 00:00:00 2001
From: Nikhil Potade <nikhil.potade@linux.intel.com>
Date: Tue, 19 Feb 2019 14:16:20 +0800
Subject: [PATCH 1/1] Smbus changes for libmctp

Signed-off-by: James Feist <james.feist@linux.intel.com>

---
 core.c    |  2 ++
 libmctp.h | 40 ++++++++++++++++++++++++++++++++++++++++
 2 files changed, 42 insertions(+)

diff --git a/core.c b/core.c
index 6e59993..3b11672 100644
--- a/core.c
+++ b/core.c
@@ -19,6 +19,7 @@
 
 /* Internal data structures */
 
+/* clang-format off */
 struct mctp_bus {
 	mctp_eid_t		eid;
 	struct mctp_binding	*binding;
@@ -58,6 +59,7 @@ struct mctp {
 		ROUTE_BRIDGE,
 	}			route_policy;
 };
+/* clang-format on */
 
 #ifndef BUILD_ASSERT
 #define BUILD_ASSERT(x) \
diff --git a/libmctp.h b/libmctp.h
index 40e5371..766473b 100644
--- a/libmctp.h
+++ b/libmctp.h
@@ -19,6 +19,7 @@ typedef uint8_t mctp_eid_t;
 #define MCTP_EID_BROADCAST 0xff
 
 /* MCTP packet definitions */
+/* clang-format off */
 struct mctp_hdr {
 	uint8_t	ver;
 	uint8_t	dest;
@@ -34,20 +35,57 @@ struct mctp_hdr {
 #define MCTP_HDR_SEQ_MASK	(0x3)
 #define MCTP_HDR_TAG_SHIFT	(0)
 #define MCTP_HDR_TAG_MASK	(0x7)
+/* clang-format on */
 
 /* Baseline Transmission Unit and packet size */
 #define MCTP_BTU		64
 #define MCTP_PACKET_SIZE(unit)	((unit) + sizeof(struct mctp_hdr))
 #define MCTP_BODY_SIZE(unit)	((unit) - sizeof(struct mctp_hdr))
 
+#define MCTP_CONTROL_MESSAGE_TYPE	0x00
+
+enum MCTP_COMMAND_CODE {
+	MCTP_COMMAND_CODE_SET_EID			= 0x01,
+	MCTP_COMMAND_CODE_GET_EID			= 0x02,
+	MCTP_COMMAND_CODE_GET_ENDPOINT_UUID		= 0x03,
+	MCTP_COMMAND_CODE_GET_MCTP_VERSION_SUPPORT	= 0x04,
+	MCTP_COMMAND_CODE_GET_MESSAGE_TYPE_SUPPORT	= 0x05,
+	MCTP_COMMAND_CODE_GET_VENDOR_DEFINED_MSG_SUPPORT= 0x06,
+	MCTP_COMMAND_CODE_RESOLVE_ENDPOINT_ID		= 0x07,
+	MCTP_COMMAND_CODE_ALLOCATE_ENDPOINT_IDS		= 0x08,
+	MCTP_COMMAND_CODE_ROUTING_INFORMATION_UPDATE	= 0x09,
+	MCTP_COMMAND_CODE_GET_ROUTING_TABLE_ENTRIES	= 0x0A,
+	MCTP_COMMAND_CODE_PREPARE_FOR_ENDPOINT_DISCOVERY= 0x0B,
+	MCTP_COMMAND_CODE_ENDPOINT_DISCOVERY		= 0x0C,
+	MCTP_COMMAND_CODE_DISCOVERY_NOTIFY		= 0x0D,
+	MCTP_COMMAND_CODE_GET_NETWORK_ID		= 0x0E,
+	MCTP_COMMAND_CODE_QUERY_HOP			= 0x0F,
+	MCTP_COMMAND_CODE_RESOLVE_UUID			= 0x10,
+	MCTP_COMMAND_CODE_QUERY_RATE_LIMIT		= 0x11,
+	MCTP_COMMAND_CODE_REQUEST_TX_RATE_LIMIT		= 0x12,
+	MCTP_COMMAND_CODE_UPDATE_RATE_LIMIT		= 0x13,
+	MCTP_COMMAND_CODE_QUERY_SUPPORTED_INTERFACES	= 0x14
+};
+
+enum MCTP_CONTROL_MSG_COMPLETION_CODE {
+	MCTP_CONTROL_MSG_STATUS_SUCCESS			= 0x00,
+	MCTP_CONTROL_MSG_STATUS_ERROR			= 0x01,
+	MCTP_CONTROL_MSG_STATUS_ERROR_INVALID_DATA	= 0x02,
+	MCTP_CONTROL_MSG_STATUS_ERROR_INVALID_LENGTH	= 0x03,
+	MCTP_CONTROL_MSG_STATUS_ERROR_NOT_READY		= 0x04,
+	MCTP_CONTROL_MSG_STATUS_ERROR_UNSUPPORTED_CMD	= 0x05
+};
+
 /* packet buffers */
 
+/* clang-format off */
 struct mctp_pktbuf {
 	size_t		start, end, size;
 	size_t		mctp_hdr_off;
 	struct mctp_pktbuf *next;
 	unsigned char	data[];
 };
+/* clang-format on */
 
 struct mctp_binding;
 
@@ -96,6 +134,7 @@ int mctp_message_tx(struct mctp *mctp, mctp_eid_t eid,
 		void *msg, size_t msg_len);
 
 /* hardware bindings */
+/* clang-format off */
 struct mctp_binding {
 	const char *name;
 	uint8_t version;
@@ -108,6 +147,7 @@ struct mctp_binding {
 	mctp_rx_fn control_rx;
 	void *control_rx_data;
 };
+/* clang-format on */
 
 void mctp_binding_set_tx_enabled(struct mctp_binding *binding, bool enable);
 
-- 
2.17.1