OpenCore  1.0.4
OpenCore Bootloader
Loading...
Searching...
No Matches
HeciMsg.h
Go to the documentation of this file.
1
10#ifndef HECI_MSG_H
11#define HECI_MSG_H
12
13//
14// All HECI bus messages are implemented using the HECI message format described in
15// section 6.1; The HostAddress and MEAddress fields in the HECI_MESSAGE_HEADER
16// will be 0x0 and 0x0, respectively.
17//
18#define HBM_HOST_ADDRESS 0x00
19#define HBM_ME_ADDRESS 0x00
20#define HBM_CLIENT_ADDRESS 0x01
21
22//
23// See: Table 9-2 - HECI Bus Message Command Summary, HECI Version 0x0001
24// Page 76
25//
26#define HOST_VERSION_REQUEST 0x01
27#define HOST_STOP_REQUEST 0x02
28#define ME_STOP_REQUEST 0x03
29#define HOST_ENUMERATION_REQUEST 0x04
30#define HOST_CLIENT_PROPERTIES_REQUEST 0x05
31#define CLIENT_CONNECT_REQUEST 0x06
32#define CLIENT_DISCONNECT_REQUEST 0x07
33#define FLOW_CONTROL 0x08
34#define CLIENT_CONNECTION_RESET_REQUEST 0x09
35
36#pragma pack(1)
37
38//
39// See: 7.2 General Format of HECI Bus Messages
40// Page 44
41//
42
43typedef union {
44 UINT8 Data;
45 struct {
46 UINT8 Command : 7;
47 UINT8 IsResponse : 1;
48 } Fields;
50
51typedef struct {
53 UINT8 CommandSpecificData[];
55
56//
57// HOST_VERSION_REQUEST
58// See: 7.6 Host Version Request
59// Page 45
60//
61
62typedef struct {
66
72
78
83
84//
85// HOST_STOP_REQUEST
86// See: 7.8 Host Stop Request
87// Page 48
88//
89
90typedef struct {
92 UINT8 Reason;
93 UINT8 Reserved[2];
95
100
105
106//
107// ME_STOP_REQUEST
108// See: 7.10 ME Stop Request
109// Page 49
110//
111
112typedef struct {
114 UINT8 Reason;
115 UINT8 Reserved[2];
117
118//
119// HOST_ENUMERATION_REQUEST
120// See: 7.11 Host Enumeration Request
121// Page 49
122//
123
128
129typedef struct {
131 UINT8 Reserved[3];
132 UINT8 ValidAddresses[32];
134
135#define HBM_ME_CLIENT_MAX 256
136
141
142//
143// HOST_CLIENT_PROPERTIES_REQUEST
144// See: 7.13 Host Client Properties Request
145// Page 52
146//
147
153
162
170
175
176//
177// CLIENT_CONNECT_REQUEST
178// See: 7.15 Client Connect Request
179// Page 54
180//
181
188
195
200
201#define HBM_CLIENT_CONNECT_SUCCESS 0x00
202#define HBM_CLIENT_CONNECT_NOT_FOUND 0x01
203#define HBM_CLIENT_CONNECT_ALREADY_CONNECTED 0x02
204#define HBM_CLIENT_CONNECT_OUT_OF_RESOURCES 0x03
205#define HBM_CLIENT_CONNECT_INVALID_PARAMETER 0x04
206
207//
208// CLIENT_DISCONNECT_REQUEST
209// See: 7.17 Client Disconnect Request
210// Page 56
211//
212
219
220typedef struct {
224 UINT8 Status;
225 //
226 // This field is added only for HECI 2.
227 // It is not clear whether it is valid to pass it to HECI 1.
228 //
229 UINT32 Reserved;
231
236
237//
238// FLOW_CONTROL
239// See: 7.19 Flow Control
240// Page 57
241//
242
249
250//
251// HBM_CLIENT_CONNECTION_RESET_REQUEST
252// See: 7.20 Client Connection Reset Request
253// Page 58
254//
255
262
269
274
275#pragma pack()
276
277#endif // HECI_MSG_H
UINT8 Reserved[430]
Definition Apm.h:39
HBM_COMMAND Command
Definition HeciMsg.h:244
UINT8 HostAddress
Definition HeciMsg.h:246
HECI_CLIENT_PROPERTIES ClientProperties
Definition HeciMsg.h:168
HBM_COMMAND Command
Definition HeciMsg.h:91
HBM_COMMAND Command
Definition HeciMsg.h:97
HBM_VERSION HostVersion
Definition HeciMsg.h:70
HBM_COMMAND Command
Definition HeciMsg.h:68
HBM_VERSION MeMaxVersion
Definition HeciMsg.h:76
HBM_COMMAND Command
Definition HeciMsg.h:113
UINT8 MajorVersion
Definition HeciMsg.h:64
UINT8 MinorVersion
Definition HeciMsg.h:63
HBM_COMMAND Command
Definition HeciMsg.h:52
HBM_CLIENT_CONNECT_REQUEST Request
Definition HeciMsg.h:197
HBM_CLIENT_CONNECT_RESPONSE Response
Definition HeciMsg.h:198
HBM_CLIENT_CONNECTION_RESET_REQUEST Request
Definition HeciMsg.h:271
HBM_CLIENT_CONNECTION_RESET_RESPONSE Response
Definition HeciMsg.h:272
HBM_CLIENT_DISCONNECT_RESPONSE Response
Definition HeciMsg.h:234
HBM_CLIENT_DISCONNECT_REQUEST Request
Definition HeciMsg.h:233
UINT8 IsResponse
Definition HeciMsg.h:47
UINT8 Data
Definition HeciMsg.h:44
UINT8 Command
Definition HeciMsg.h:46
HBM_HOST_CLIENT_PROPERTIES_REQUEST Request
Definition HeciMsg.h:172
HBM_HOST_CLIENT_PROPERTIES_RESPONSE Response
Definition HeciMsg.h:173
HBM_HOST_ENUMERATION_RESPONSE Response
Definition HeciMsg.h:139
HBM_HOST_ENUMERATION_REQUEST Request
Definition HeciMsg.h:138
HBM_HOST_STOP_REQUEST Request
Definition HeciMsg.h:102
HBM_HOST_STOP_RESPONSE Response
Definition HeciMsg.h:103
HBM_HOST_VERSION_RESPONSE Response
Definition HeciMsg.h:81
HBM_HOST_VERSION_REQUEST Request
Definition HeciMsg.h:80