]> git.proxmox.com Git - mirror_edk2.git/blob - MdePkg/Include/IndustryStandard/IpmiNetFnApp.h
MdePkg: Fix ACPI NFIT GUID definitions
[mirror_edk2.git] / MdePkg / Include / IndustryStandard / IpmiNetFnApp.h
1 /** @file
2 IPMI 2.0 definitions from the IPMI Specification Version 2.0, Revision 1.1.
3
4 This file contains all NetFn App commands, including:
5 IPM Device "Global" Commands (Chapter 20)
6 Firmware Firewall & Command Discovery Commands (Chapter 21)
7 BMC Watchdog Timer Commands (Chapter 27)
8 IPMI Messaging Support Commands (Chapter 22)
9 RMCP+ Support and Payload Commands (Chapter 24)
10
11 See IPMI specification, Appendix G, Command Assignments
12 and Appendix H, Sub-function Assignments.
13
14 Copyright (c) 1999 - 2015, Intel Corporation. All rights reserved.<BR>
15 This program and the accompanying materials
16 are licensed and made available under the terms and conditions of the BSD License
17 which accompanies this distribution. The full text of the license may be found at
18 http://opensource.org/licenses/bsd-license.php
19
20 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
21 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
22 **/
23
24 #ifndef _IPMI_NET_FN_APP_H_
25 #define _IPMI_NET_FN_APP_H_
26
27 #pragma pack(1)
28 //
29 // Net function definition for App command
30 //
31 #define IPMI_NETFN_APP 0x06
32
33 //
34 // Below is Definitions for IPM Device "Global" Commands (Chapter 20)
35 //
36
37 //
38 // Definitions for Get Device ID command
39 //
40 #define IPMI_APP_GET_DEVICE_ID 0x1
41
42 //
43 // Constants and Structure definitions for "Get Device ID" command to follow here
44 //
45 typedef struct {
46 UINT8 CompletionCode;
47 UINT8 DeviceId;
48 UINT8 DeviceRevision : 4;
49 UINT8 Reserved : 3;
50 UINT8 DeviceSdr : 1;
51 UINT8 MajorFirmwareRev : 7;
52 UINT8 UpdateMode : 1;
53 UINT8 MinorFirmwareRev;
54 UINT8 SpecificationVersion;
55 UINT8 SensorDeviceSupport : 1;
56 UINT8 SdrRepositorySupport : 1;
57 UINT8 SelDeviceSupport : 1;
58 UINT8 FruInventorySupport : 1;
59 UINT8 IpmbMessageReceiver : 1;
60 UINT8 IpmbMessageGenerator : 1;
61 UINT8 BridgeSupport : 1;
62 UINT8 ChassisSupport : 1;
63 UINT8 ManufacturerId[3];
64 UINT16 ProductId;
65 UINT32 AuxFirmwareRevInfo;
66 } IPMI_GET_DEVICE_ID_RESPONSE;
67
68
69 //
70 // Definitions for Cold Reset command
71 //
72 #define IPMI_APP_COLD_RESET 0x2
73
74 //
75 // Constants and Structure definitions for "Cold Reset" command to follow here
76 //
77
78 //
79 // Definitions for Warm Reset command
80 //
81 #define IPMI_APP_WARM_RESET 0x3
82
83 //
84 // Constants and Structure definitions for "Warm Reset" command to follow here
85 //
86
87 //
88 // Definitions for Get Self Results command
89 //
90 #define IPMI_APP_GET_SELFTEST_RESULTS 0x4
91
92 //
93 // Constants and Structure definitions for "Get Self Test Results" command to follow here
94 //
95 typedef struct {
96 UINT8 CompletionCode;
97 UINT8 Result;
98 UINT8 Param;
99 } IPMI_SELF_TEST_RESULT_RESPONSE;
100
101 #define IPMI_APP_SELFTEST_NO_ERROR 0x55
102 #define IPMI_APP_SELFTEST_NOT_IMPLEMENTED 0x56
103 #define IPMI_APP_SELFTEST_ERROR 0x57
104 #define IPMI_APP_SELFTEST_FATAL_HW_ERROR 0x58
105 #define IPMI_APP_SELFTEST_INACCESSIBLE_SEL 0x80
106 #define IPMI_APP_SELFTEST_INACCESSIBLE_SDR 0x40
107 #define IPMI_APP_SELFTEST_INACCESSIBLE_FRU 0x20
108 #define IPMI_APP_SELFTEST_IPMB_SIGNAL_FAIL 0x10
109 #define IPMI_APP_SELFTEST_SDR_REPOSITORY_EMPTY 0x08
110 #define IPMI_APP_SELFTEST_FRU_CORRUPT 0x04
111 #define IPMI_APP_SELFTEST_FW_BOOTBLOCK_CORRUPT 0x02
112 #define IPMI_APP_SELFTEST_FW_CORRUPT 0x01
113
114 //
115 // Definitions for Manufacturing Test ON command
116 //
117 #define IPMI_APP_MANUFACTURING_TEST_ON 0x5
118
119 //
120 // Constants and Structure definitions for "Manufacturing Test ON" command to follow here
121 //
122
123 //
124 // Definitions for Set ACPI Power State command
125 //
126 #define IPMI_APP_SET_ACPI_POWERSTATE 0x6
127
128 //
129 // Constants and Structure definitions for "Set ACPI Power State" command to follow here
130 //
131 typedef struct {
132 UINT8 AcpiSystemPowerState : 7;
133 UINT8 AcpiSystemStateChange : 1;
134 UINT8 AcpiDevicePowerState : 7;
135 UINT8 AcpiDeviceStateChange : 1;
136 } IPMI_SET_ACPI_POWER_STATE_REQUEST;
137
138 //
139 // Definitions for Get ACPI Power State command
140 //
141 #define IPMI_APP_GET_ACPI_POWERSTATE 0x7
142
143 //
144 // Constants and Structure definitions for "Get ACPI Power State" command to follow here
145 //
146
147 //
148 // Definitions for Get Device GUID command
149 //
150 #define IPMI_APP_GET_DEVICE_GUID 0x8
151
152 //
153 // Constants and Structure definitions for "Get Device GUID" command to follow here
154 //
155 //
156 // Message structure definition for "Get Device Guid" IPMI command
157 //
158 typedef struct {
159 UINT8 CompletionCode;
160 UINT8 Guid[16];
161 } IPMI_GET_DEVICE_GUID_RESPONSE;
162
163 //
164 // Below is Definitions for BMC Watchdog Timer Commands (Chapter 27)
165 //
166
167 //
168 // Definitions for Reset WatchDog Timer command
169 //
170 #define IPMI_APP_RESET_WATCHDOG_TIMER 0x22
171
172 //
173 // Constants and Structure definitions for "Reset WatchDog Timer" command to follow here
174 //
175 typedef struct {
176 UINT8 TimerUse : 3;
177 UINT8 Reserved : 3;
178 UINT8 TimerRunning : 1;
179 UINT8 TimerUseExpirationFlagLog : 1;
180 } IPMI_WATCHDOG_TIMER_USE;
181
182 //
183 // Definitions for Set WatchDog Timer command
184 //
185 #define IPMI_APP_SET_WATCHDOG_TIMER 0x24
186
187 //
188 // Constants and Structure definitions for "Set WatchDog Timer" command to follow here
189 //
190 typedef struct {
191 IPMI_WATCHDOG_TIMER_USE TimerUse;
192 UINT8 TimerActions;
193 UINT8 PretimeoutInterval;
194 UINT8 TimerUseExpirationFlagsClear;
195 UINT16 InitialCountdownValue;
196 } IPMI_SET_WATCHDOG_TIMER_REQUEST;
197
198 //
199 // Definitions for Get WatchDog Timer command
200 //
201 #define IPMI_APP_GET_WATCHDOG_TIMER 0x25
202
203 //
204 // Constants and Structure definitions for "Get WatchDog Timer" command to follow here
205 //
206 typedef struct {
207 UINT8 CompletionCode;
208 IPMI_WATCHDOG_TIMER_USE TimerUse;
209 UINT8 TimerActions;
210 UINT8 PretimeoutInterval;
211 UINT8 TimerUseExpirationFlagsClear;
212 UINT16 InitialCountdownValue;
213 UINT16 PresentCountdownValue;
214 } IPMI_GET_WATCHDOG_TIMER_RESPONSE;
215
216 //
217 // Below is Definitions for IPMI Messaging Support Commands (Chapter 22)
218 //
219
220 //
221 // Definitions for Set BMC Global Enables command
222 //
223 #define IPMI_APP_SET_BMC_GLOBAL_ENABLES 0x2E
224
225 //
226 // Constants and Structure definitions for "Set BMC Global Enables " command to follow here
227 //
228
229 //
230 // Definitions for Get BMC Global Enables command
231 //
232 #define IPMI_APP_GET_BMC_GLOBAL_ENABLES 0x2F
233
234 //
235 // Constants and Structure definitions for "Get BMC Global Enables " command to follow here
236 //
237
238 //
239 // Definitions for Clear Message Flags command
240 //
241 #define IPMI_APP_CLEAR_MESSAGE_FLAGS 0x30
242
243 //
244 // Constants and Structure definitions for "Clear Message Flags" command to follow here
245 //
246
247 //
248 // Definitions for Get Message Flags command
249 //
250 #define IPMI_APP_GET_MESSAGE_FLAGS 0x31
251
252 //
253 // Constants and Structure definitions for "Get Message Flags" command to follow here
254 //
255
256 //
257 // Definitions for Enable Message Channel Receive command
258 //
259 #define IPMI_APP_ENABLE_MESSAGE_CHANNEL_RECEIVE 0x32
260
261 //
262 // Constants and Structure definitions for "Enable Message Channel Receive" command to follow here
263 //
264
265 //
266 // Definitions for Get Message command
267 //
268 #define IPMI_APP_GET_MESSAGE 0x33
269
270 //
271 // Constants and Structure definitions for "Get Message" command to follow here
272 //
273
274 //
275 // Definitions for Send Message command
276 //
277 #define IPMI_APP_SEND_MESSAGE 0x34
278
279 //
280 // Constants and Structure definitions for "Send Message" command to follow here
281 //
282
283 //
284 // Definitions for Read Event Message Buffer command
285 //
286 #define IPMI_APP_READ_EVENT_MSG_BUFFER 0x35
287
288 //
289 // Constants and Structure definitions for "Read Event Message Buffer" command to follow here
290 //
291
292 //
293 // Definitions for Get BT Interface Capabilities command
294 //
295 #define IPMI_APP_GET_BT_INTERFACE_CAPABILITY 0x36
296
297 //
298 // Constants and Structure definitions for "Get BT Interface Capabilities" command to follow here
299 //
300
301 //
302 // Definitions for Get System GUID command
303 //
304 #define IPMI_APP_GET_SYSTEM_GUID 0x37
305
306 //
307 // Constants and Structure definitions for "Get System GUID" command to follow here
308 //
309
310 //
311 // Definitions for Get Channel Authentication Capabilities command
312 //
313 #define IPMI_APP_GET_CHANNEL_AUTHENTICATION_CAPABILITIES 0x38
314
315 //
316 // Constants and Structure definitions for "Get Channel Authentication Capabilities" command to follow here
317 //
318
319 //
320 // Definitions for Get Session Challenge command
321 //
322 #define IPMI_APP_GET_SESSION_CHALLENGE 0x39
323
324 //
325 // Constants and Structure definitions for "Get Session Challenge" command to follow here
326 //
327
328 //
329 // Definitions for Activate Session command
330 //
331 #define IPMI_APP_ACTIVATE_SESSION 0x3A
332
333 //
334 // Constants and Structure definitions for "Activate Session" command to follow here
335 //
336
337 //
338 // Definitions for Set Session Privelege Level command
339 //
340 #define IPMI_APP_SET_SESSION_PRIVELEGE_LEVEL 0x3B
341
342 //
343 // Constants and Structure definitions for "Set Session Privelege Level" command to follow here
344 //
345
346 //
347 // Definitions for Close Session command
348 //
349 #define IPMI_APP_CLOSE_SESSION 0x3C
350
351 //
352 // Constants and Structure definitions for "Close Session" command to follow here
353 //
354
355 //
356 // Definitions for Get Session Info command
357 //
358 #define IPMI_APP_GET_SESSION_INFO 0x3D
359
360 //
361 // Constants and Structure definitions for "Get Session Info" command to follow here
362 //
363
364 //
365 // Definitions for Get Auth Code command
366 //
367 #define IPMI_APP_GET_AUTHCODE 0x3F
368
369 //
370 // Constants and Structure definitions for "Get AuthCode" command to follow here
371 //
372
373 //
374 // Definitions for Set Channel Access command
375 //
376 #define IPMI_APP_SET_CHANNEL_ACCESS 0x40
377
378 //
379 // Constants and Structure definitions for "Set Channel Access" command to follow here
380 //
381
382 //
383 // Definitions for Get Channel Access command
384 //
385 #define IPMI_APP_GET_CHANNEL_ACCESS 0x41
386
387 //
388 // Constants and Structure definitions for "Get Channel Access" command to follow here
389 //
390 typedef struct {
391 UINT8 ChannelNo : 4;
392 UINT8 Reserve1 : 4;
393 UINT8 Reserve2 : 6;
394 UINT8 MemoryType : 2;
395 } IPMI_GET_CHANNEL_ACCESS_REQUEST;
396
397 typedef struct {
398 UINT8 CompletionCode;
399 UINT8 AccessMode : 3;
400 UINT8 UserLevelAuthEnabled : 1;
401 UINT8 MessageAuthEnable : 1;
402 UINT8 Alert : 1;
403 UINT8 Reserve1 : 2;
404 UINT8 ChannelPriviledgeLimit : 4;
405 UINT8 Reserve2 : 4;
406 } IPMI_GET_CHANNEL_ACCESS_RESPONSE;
407
408 //
409 // Definitions for Get Channel Info command
410 //
411 #define IPMI_APP_GET_CHANNEL_INFO 0x42
412
413 //
414 // Constants and Structure definitions for "Get Channel Info" command to follow here
415 //
416 typedef struct {
417 UINT8 CompletionCode;
418 UINT8 ChannelNo : 4;
419 UINT8 Reserve1 : 4;
420 UINT8 ChannelMediumType : 7;
421 UINT8 Reserve2 : 1;
422 UINT8 ChannelProtocolType : 5;
423 UINT8 Reserve3 : 3;
424 UINT8 ActiveSessionCount : 6;
425 UINT8 SessionSupport : 2;
426 UINT8 VendorId[3];
427 UINT16 AuxChannelInfo;
428 } IPMI_GET_CHANNEL_INFO_RESPONSE;
429
430 //
431 // Definitions for Get Channel Info command
432 //
433 #define IPMI_APP_GET_CHANNEL_INFO 0x42
434
435 //
436 // Constants and Structure definitions for "Get Channel Info" command to follow here
437 //
438
439 //
440 // Definitions for Set User Access command
441 //
442 #define IPMI_APP_SET_USER_ACCESS 0x43
443
444 //
445 // Constants and Structure definitions for "Set User Access" command to follow here
446 //
447
448 //
449 // Definitions for Get User Access command
450 //
451 #define IPMI_APP_GET_USER_ACCESS 0x44
452
453 //
454 // Constants and Structure definitions for "Get User Access" command to follow here
455 //
456
457 //
458 // Definitions for Set User Name command
459 //
460 #define IPMI_APP_SET_USER_NAME 0x45
461
462 //
463 // Constants and Structure definitions for "Set User Name" command to follow here
464 //
465
466 //
467 // Definitions for Get User Name command
468 //
469 #define IPMI_APP_GET_USER_NAME 0x46
470
471 //
472 // Constants and Structure definitions for "Get User Name" command to follow here
473 //
474
475 //
476 // Definitions for Set User Password command
477 //
478 #define IPMI_APP_SET_USER_PASSWORD 0x47
479
480 //
481 // Constants and Structure definitions for "Set User Password" command to follow here
482 //
483
484 //
485 // Below is Definitions for RMCP+ Support and Payload Commands (Chapter 24)
486 //
487
488 //
489 // Definitions for Activate Payload command
490 //
491 #define IPMI_APP_ACTIVATE_PAYLOAD 0x48
492
493 //
494 // Constants and Structure definitions for "Activate Payload" command to follow here
495 //
496
497 //
498 // Definitions for De-Activate Payload command
499 //
500 #define IPMI_APP_DEACTIVATE_PAYLOAD 0x49
501
502 //
503 // Constants and Structure definitions for "DeActivate Payload" command to follow here
504 //
505
506 //
507 // Definitions for Get Payload activation Status command
508 //
509 #define IPMI_APP_GET_PAYLOAD_ACTIVATION_STATUS 0x4a
510
511 //
512 // Constants and Structure definitions for "Get Payload activation Status" command to follow here
513 //
514
515 //
516 // Definitions for Get Payload Instance Info command
517 //
518 #define IPMI_APP_GET_PAYLOAD_INSTANCE_INFO 0x4b
519
520 //
521 // Constants and Structure definitions for "Get Payload Instance Info" command to follow here
522 //
523
524 //
525 // Definitions for Set User Payload Access command
526 //
527 #define IPMI_APP_SET_USER_PAYLOAD_ACCESS 0x4C
528
529 //
530 // Constants and Structure definitions for "Set User Payload Access" command to follow here
531 //
532
533 //
534 // Definitions for Get User Payload Access command
535 //
536 #define IPMI_APP_GET_USER_PAYLOAD_ACCESS 0x4D
537
538 //
539 // Constants and Structure definitions for "Get User Payload Access" command to follow here
540 //
541
542 //
543 // Definitions for Get Channel Payload Support command
544 //
545 #define IPMI_APP_GET_CHANNEL_PAYLOAD_SUPPORT 0x4E
546
547 //
548 // Constants and Structure definitions for "Get Channel Payload Support" command to follow here
549 //
550
551 //
552 // Definitions for Get Channel Payload Version command
553 //
554 #define IPMI_APP_GET_CHANNEL_PAYLOAD_VERSION 0x4F
555
556 //
557 // Constants and Structure definitions for "Get Channel Payload Version" command to follow here
558 //
559
560 //
561 // Definitions for Get Channel OEM Payload Info command
562 //
563 #define IPMI_APP_GET_CHANNEL_OEM_PAYLOAD_INFO 0x50
564
565 //
566 // Constants and Structure definitions for "Get Channel OEM Payload Info" command to follow here
567 //
568
569 //
570 // Definitions for Master Write-Read command
571 //
572 #define IPMI_APP_MASTER_WRITE_READ 0x52
573
574 //
575 // Constants and Structure definitions for "Master Write Read" command to follow here
576 //
577
578 //
579 // Definitions for Get Channel Cipher Suites command
580 //
581 #define IPMI_APP_GET_CHANNEL_CIPHER_SUITES 0x54
582
583 //
584 // Constants and Structure definitions for "Get Channel Cipher Suites" command to follow here
585 //
586
587 //
588 // Below is Definitions for RMCP+ Support and Payload Commands (Chapter 24, Section 3)
589 //
590
591 //
592 // Definitions for Suspend-Resume Payload Encryption command
593 //
594 #define IPMI_APP_SUSPEND_RESUME_PAYLOAD_ENCRYPTION 0x55
595
596 //
597 // Constants and Structure definitions for "Suspend-Resume Payload Encryption" command to follow here
598 //
599
600 //
601 // Below is Definitions for IPMI Messaging Support Commands (Chapter 22, Section 25 and 9)
602 //
603
604 //
605 // Definitions for Set Channel Security Keys command
606 //
607 #define IPMI_APP_SET_CHANNEL_SECURITY_KEYS 0x56
608
609 //
610 // Constants and Structure definitions for "Set Channel Security Keys" command to follow here
611 //
612
613 //
614 // Definitions for Get System Interface Capabilities command
615 //
616 #define IPMI_APP_GET_SYSTEM_INTERFACE_CAPABILITIES 0x57
617
618 //
619 // Constants and Structure definitions for "Get System Interface Capabilities" command to follow here
620 //
621
622 #pragma pack()
623 #endif