TianoCore EDK2 master
Loading...
Searching...
No Matches
IpmiNetFnApp.h
Go to the documentation of this file.
1
20#ifndef _IPMI_NET_FN_APP_H_
21#define _IPMI_NET_FN_APP_H_
22
23#pragma pack(1)
24//
25// Net function definition for App command
26//
27#define IPMI_NETFN_APP 0x06
28
29//
30// Below is Definitions for IPM Device "Global" Commands (Chapter 20)
31//
32
33//
34// Definitions for Get Device ID command
35//
36#define IPMI_APP_GET_DEVICE_ID 0x1
37
38//
39// Constants and Structure definitions for "Get Device ID" command to follow here
40//
41typedef union {
42 struct {
43 UINT8 DeviceRevision : 4;
44 UINT8 Reserved : 3;
45 UINT8 DeviceSdr : 1;
46 } Bits;
47 UINT8 Uint8;
49
50typedef union {
51 struct {
52 UINT8 MajorFirmwareRev : 7;
53 UINT8 UpdateMode : 1;
54 } Bits;
55 UINT8 Uint8;
57
58typedef union {
59 struct {
60 UINT8 SensorDeviceSupport : 1;
61 UINT8 SdrRepositorySupport : 1;
62 UINT8 SelDeviceSupport : 1;
63 UINT8 FruInventorySupport : 1;
64 UINT8 IpmbMessageReceiver : 1;
65 UINT8 IpmbMessageGenerator : 1;
66 UINT8 BridgeSupport : 1;
67 UINT8 ChassisSupport : 1;
68 } Bits;
69 UINT8 Uint8;
71
72typedef struct {
73 UINT8 CompletionCode;
74 UINT8 DeviceId;
75 IPMI_GET_DEVICE_ID_DEVICE_REV DeviceRevision;
77 UINT8 MinorFirmwareRev;
78 UINT8 SpecificationVersion;
80 UINT8 ManufacturerId[3];
81 UINT16 ProductId;
82 UINT32 AuxFirmwareRevInfo;
84
85//
86// Definitions for Cold Reset command
87//
88#define IPMI_APP_COLD_RESET 0x2
89
90//
91// Constants and Structure definitions for "Cold Reset" command to follow here
92//
93
94//
95// Definitions for Warm Reset command
96//
97#define IPMI_APP_WARM_RESET 0x3
98
99//
100// Constants and Structure definitions for "Warm Reset" command to follow here
101//
102
103//
104// Definitions for Get Self Results command
105//
106#define IPMI_APP_GET_SELFTEST_RESULTS 0x4
107
108//
109// Constants and Structure definitions for "Get Self Test Results" command to follow here
110//
111typedef struct {
112 UINT8 CompletionCode;
113 UINT8 Result;
114 UINT8 Param;
116
117#define IPMI_APP_SELFTEST_NO_ERROR 0x55
118#define IPMI_APP_SELFTEST_NOT_IMPLEMENTED 0x56
119#define IPMI_APP_SELFTEST_ERROR 0x57
120#define IPMI_APP_SELFTEST_FATAL_HW_ERROR 0x58
121#define IPMI_APP_SELFTEST_INACCESSIBLE_SEL 0x80
122#define IPMI_APP_SELFTEST_INACCESSIBLE_SDR 0x40
123#define IPMI_APP_SELFTEST_INACCESSIBLE_FRU 0x20
124#define IPMI_APP_SELFTEST_IPMB_SIGNAL_FAIL 0x10
125#define IPMI_APP_SELFTEST_SDR_REPOSITORY_EMPTY 0x08
126#define IPMI_APP_SELFTEST_FRU_CORRUPT 0x04
127#define IPMI_APP_SELFTEST_FW_BOOTBLOCK_CORRUPT 0x02
128#define IPMI_APP_SELFTEST_FW_CORRUPT 0x01
129
130//
131// Definitions for Manufacturing Test ON command
132//
133#define IPMI_APP_MANUFACTURING_TEST_ON 0x5
134
135//
136// Constants and Structure definitions for "Manufacturing Test ON" command to follow here
137//
138
139//
140// Definitions for Set ACPI Power State command
141//
142#define IPMI_APP_SET_ACPI_POWERSTATE 0x6
143
144//
145// Constants and Structure definitions for "Set ACPI Power State" command to follow here
146//
147
148//
149// Definitions for System Power State
150//
151// Working
152#define IPMI_SYSTEM_POWER_STATE_S0_G0 0x0
153#define IPMI_SYSTEM_POWER_STATE_S1 0x1
154#define IPMI_SYSTEM_POWER_STATE_S2 0x2
155#define IPMI_SYSTEM_POWER_STATE_S3 0x3
156#define IPMI_SYSTEM_POWER_STATE_S4 0x4
157// Soft off
158#define IPMI_SYSTEM_POWER_STATE_S5_G2 0x5
159// Sent when message source cannot differentiate between S4 and S5
160#define IPMI_SYSTEM_POWER_STATE_S4_S5 0x6
161// Mechanical off
162#define IPMI_SYSTEM_POWER_STATE_G3 0x7
163// Sleeping - cannot differentiate between S1-S3
164#define IPMI_SYSTEM_POWER_STATE_SLEEPING 0x8
165// Sleeping - cannot differentiate between S1-S4
166#define IPMI_SYSTEM_POWER_STATE_G1_SLEEPING 0x9
167// S5 entered by override
168#define IPMI_SYSTEM_POWER_STATE_OVERRIDE 0xA
169#define IPMI_SYSTEM_POWER_STATE_LEGACY_ON 0x20
170#define IPMI_SYSTEM_POWER_STATE_LEGACY_OFF 0x21
171#define IPMI_SYSTEM_POWER_STATE_UNKNOWN 0x2A
172#define IPMI_SYSTEM_POWER_STATE_NO_CHANGE 0x7F
173
174//
175// Definitions for Device Power State
176//
177#define IPMI_DEVICE_POWER_STATE_D0 0x0
178#define IPMI_DEVICE_POWER_STATE_D1 0x1
179#define IPMI_DEVICE_POWER_STATE_D2 0x2
180#define IPMI_DEVICE_POWER_STATE_D3 0x3
181#define IPMI_DEVICE_POWER_STATE_UNKNOWN 0x2A
182#define IPMI_DEVICE_POWER_STATE_NO_CHANGE 0x7F
183
184typedef union {
185 struct {
186 UINT8 PowerState : 7;
187 UINT8 StateChange : 1;
188 } Bits;
189 UINT8 Uint8;
191
192typedef struct {
193 IPMI_ACPI_POWER_STATE SystemPowerState;
194 IPMI_ACPI_POWER_STATE DevicePowerState;
196
197//
198// Definitions for Get ACPI Power State command
199//
200#define IPMI_APP_GET_ACPI_POWERSTATE 0x7
201
202//
203// Constants and Structure definitions for "Get ACPI Power State" command to follow here
204//
205
206//
207// Definitions for Get Device GUID command
208//
209#define IPMI_APP_GET_DEVICE_GUID 0x8
210
211//
212// Constants and Structure definitions for "Get Device GUID" command to follow here
213//
214//
215// Message structure definition for "Get Device Guid" IPMI command
216//
217typedef struct {
218 UINT8 CompletionCode;
219 UINT8 Guid[16];
221
222//
223// Below is Definitions for BMC Watchdog Timer Commands (Chapter 27)
224//
225
226//
227// Definitions for Reset WatchDog Timer command
228//
229#define IPMI_APP_RESET_WATCHDOG_TIMER 0x22
230
231//
232// Definitions for Set WatchDog Timer command
233//
234#define IPMI_APP_SET_WATCHDOG_TIMER 0x24
235
236//
237// Constants and Structure definitions for "Set WatchDog Timer" command to follow here
238//
239
240//
241// Definitions for watchdog timer use
242//
243#define IPMI_WATCHDOG_TIMER_BIOS_FRB2 0x1
244#define IPMI_WATCHDOG_TIMER_BIOS_POST 0x2
245#define IPMI_WATCHDOG_TIMER_OS_LOADER 0x3
246#define IPMI_WATCHDOG_TIMER_SMS 0x4
247#define IPMI_WATCHDOG_TIMER_OEM 0x5
248
249//
250// Structure definition for timer Use
251//
252typedef union {
253 struct {
254 UINT8 TimerUse : 3;
255 UINT8 Reserved : 3;
256 UINT8 TimerRunning : 1;
257 UINT8 TimerUseExpirationFlagLog : 1;
258 } Bits;
259 UINT8 Uint8;
261
262//
263// Definitions for watchdog timeout action
264//
265#define IPMI_WATCHDOG_TIMER_ACTION_NO_ACTION 0x0
266#define IPMI_WATCHDOG_TIMER_ACTION_HARD_RESET 0x1
267#define IPMI_WATCHDOG_TIMER_ACTION_POWER_DONW 0x2
268#define IPMI_WATCHDOG_TIMER_ACTION_POWER_CYCLE 0x3
269
270//
271// Definitions for watchdog pre-timeout interrupt
272//
273#define IPMI_WATCHDOG_PRE_TIMEOUT_INTERRUPT_NONE 0x0
274#define IPMI_WATCHDOG_PRE_TIMEOUT_INTERRUPT_SMI 0x1
275#define IPMI_WATCHDOG_PRE_TIMEOUT_INTERRUPT_NMI 0x2
276#define IPMI_WATCHDOG_PRE_TIMEOUT_INTERRUPT_MESSAGING 0x3
277
278//
279// Structure definitions for Timer Actions
280//
281typedef union {
282 struct {
283 UINT8 TimeoutAction : 3;
284 UINT8 Reserved1 : 1;
285 UINT8 PreTimeoutInterrupt : 3;
286 UINT8 Reserved2 : 1;
287 } Bits;
288 UINT8 Uint8;
290
291//
292// Bit definitions for Timer use expiration flags
293//
294#define IPMI_WATCHDOG_TIMER_EXPIRATION_FLAG_BIOS_FRB2 BIT1
295#define IPMI_WATCHDOG_TIMER_EXPIRATION_FLAG_BIOS_POST BIT2
296#define IPMI_WATCHDOG_TIMER_EXPIRATION_FLAG_OS_LOAD BIT3
297#define IPMI_WATCHDOG_TIMER_EXPIRATION_FLAG_SMS_OS BIT4
298#define IPMI_WATCHDOG_TIMER_EXPIRATION_FLAG_OEM BIT5
299
300typedef struct {
302 IPMI_WATCHDOG_TIMER_ACTIONS TimerActions;
303 UINT8 PretimeoutInterval;
304 UINT8 TimerUseExpirationFlagsClear;
305 UINT16 InitialCountdownValue;
307
308//
309// Definitions for Get WatchDog Timer command
310//
311#define IPMI_APP_GET_WATCHDOG_TIMER 0x25
312
313//
314// Constants and Structure definitions for "Get WatchDog Timer" command to follow here
315//
316typedef struct {
317 UINT8 CompletionCode;
319 IPMI_WATCHDOG_TIMER_ACTIONS TimerActions;
320 UINT8 PretimeoutInterval;
321 UINT8 TimerUseExpirationFlagsClear;
322 UINT16 InitialCountdownValue;
323 UINT16 PresentCountdownValue;
325
326//
327// Below is Definitions for IPMI Messaging Support Commands (Chapter 22)
328//
329
330//
331// Definitions for Set BMC Global Enables command
332//
333#define IPMI_APP_SET_BMC_GLOBAL_ENABLES 0x2E
334
335//
336// Constants and Structure definitions for "Set BMC Global Enables " command to follow here
337//
338typedef union {
339 struct {
340 UINT8 ReceiveMessageQueueInterrupt : 1;
341 UINT8 EventMessageBufferFullInterrupt : 1;
342 UINT8 EventMessageBuffer : 1;
343 UINT8 SystemEventLogging : 1;
344 UINT8 Reserved : 1;
345 UINT8 Oem0Enable : 1;
346 UINT8 Oem1Enable : 1;
347 UINT8 Oem2Enable : 1;
348 } Bits;
349 UINT8 Uint8;
351
352typedef struct {
353 IPMI_BMC_GLOBAL_ENABLES SetEnables;
355
356//
357// Definitions for Get BMC Global Enables command
358//
359#define IPMI_APP_GET_BMC_GLOBAL_ENABLES 0x2F
360
361//
362// Constants and Structure definitions for "Get BMC Global Enables " command to follow here
363//
364typedef struct {
365 UINT8 CompletionCode;
366 IPMI_BMC_GLOBAL_ENABLES GetEnables;
368
369//
370// Definitions for Clear Message Flags command
371//
372#define IPMI_APP_CLEAR_MESSAGE_FLAGS 0x30
373
374//
375// Constants and Structure definitions for "Clear Message Flags" command to follow here
376//
377typedef union {
378 struct {
379 UINT8 ReceiveMessageQueue : 1;
380 UINT8 EventMessageBuffer : 1;
381 UINT8 Reserved1 : 1;
382 UINT8 WatchdogPerTimeoutInterrupt : 1;
383 UINT8 Reserved2 : 1;
384 UINT8 Oem0 : 1;
385 UINT8 Oem1 : 1;
386 UINT8 Oem2 : 1;
387 } Bits;
388 UINT8 Uint8;
390
391typedef struct {
392 IPMI_MESSAGE_FLAGS ClearFlags;
394
395//
396// Definitions for Get Message Flags command
397//
398#define IPMI_APP_GET_MESSAGE_FLAGS 0x31
399
400//
401// Constants and Structure definitions for "Get Message Flags" command to follow here
402//
403typedef struct {
404 UINT8 CompletionCode;
405 IPMI_MESSAGE_FLAGS GetFlags;
407
408//
409// Definitions for Enable Message Channel Receive command
410//
411#define IPMI_APP_ENABLE_MESSAGE_CHANNEL_RECEIVE 0x32
412
413//
414// Constants and Structure definitions for "Enable Message Channel Receive" command to follow here
415//
416
417//
418// Definitions for Get Message command
419//
420#define IPMI_APP_GET_MESSAGE 0x33
421
422//
423// Constants and Structure definitions for "Get Message" command to follow here
424//
425typedef union {
426 struct {
427 UINT8 ChannelNumber : 4;
428 UINT8 InferredPrivilegeLevel : 4;
429 } Bits;
430 UINT8 Uint8;
432
433typedef struct {
434 UINT8 CompletionCode;
436 UINT8 MessageData[0];
438
439//
440// Definitions for Send Message command
441//
442#define IPMI_APP_SEND_MESSAGE 0x34
443
444//
445// Constants and Structure definitions for "Send Message" command to follow here
446//
447typedef union {
448 struct {
449 UINT8 ChannelNumber : 4;
450 UINT8 Authentication : 1;
451 UINT8 Encryption : 1;
452 UINT8 Tracking : 2;
453 } Bits;
454 UINT8 Uint8;
456
457typedef struct {
458 UINT8 CompletionCode;
460 UINT8 MessageData[0];
462
463typedef struct {
464 UINT8 CompletionCode;
465 UINT8 ResponseData[0];
467
468//
469// Definitions for Read Event Message Buffer command
470//
471#define IPMI_APP_READ_EVENT_MSG_BUFFER 0x35
472
473//
474// Constants and Structure definitions for "Read Event Message Buffer" command to follow here
475//
476
477//
478// Definitions for Get BT Interface Capabilities command
479//
480#define IPMI_APP_GET_BT_INTERFACE_CAPABILITY 0x36
481
482//
483// Constants and Structure definitions for "Get BT Interface Capabilities" command to follow here
484//
485
486//
487// Definitions for Get System GUID command
488//
489#define IPMI_APP_GET_SYSTEM_GUID 0x37
490
491typedef struct {
492 UINT8 CompletionCode;
493 EFI_GUID SystemUuid;
495
496//
497// Constants and Structure definitions for "Get System GUID" command to follow here
498//
499
500//
501// Definitions for Get Channel Authentication Capabilities command
502//
503#define IPMI_APP_GET_CHANNEL_AUTHENTICATION_CAPABILITIES 0x38
504
505//
506// Constants and Structure definitions for "Get Channel Authentication Capabilities" command to follow here
507//
508
509//
510// Definitions for Get Session Challenge command
511//
512#define IPMI_APP_GET_SESSION_CHALLENGE 0x39
513
514//
515// Constants and Structure definitions for "Get Session Challenge" command to follow here
516//
517
518//
519// Definitions for Activate Session command
520//
521#define IPMI_APP_ACTIVATE_SESSION 0x3A
522
523//
524// Constants and Structure definitions for "Activate Session" command to follow here
525//
526
527//
528// Definitions for Set Session Privelege Level command
529//
530#define IPMI_APP_SET_SESSION_PRIVELEGE_LEVEL 0x3B
531
532//
533// Constants and Structure definitions for "Set Session Privelege Level" command to follow here
534//
535
536//
537// Definitions for Close Session command
538//
539#define IPMI_APP_CLOSE_SESSION 0x3C
540
541//
542// Constants and Structure definitions for "Close Session" command to follow here
543//
544
545//
546// Definitions for Get Session Info command
547//
548#define IPMI_APP_GET_SESSION_INFO 0x3D
549
550//
551// Constants and Structure definitions for "Get Session Info" command to follow here
552//
553
554//
555// Definitions for Get Auth Code command
556//
557#define IPMI_APP_GET_AUTHCODE 0x3F
558
559//
560// Constants and Structure definitions for "Get AuthCode" command to follow here
561//
562
563//
564// Definitions for Set Channel Access command
565//
566#define IPMI_APP_SET_CHANNEL_ACCESS 0x40
567
568//
569// Constants and Structure definitions for "Set Channel Access" command to follow here
570//
571
572//
573// Definitions for Get Channel Access command
574//
575#define IPMI_APP_GET_CHANNEL_ACCESS 0x41
576
577//
578// Constants and Structure definitions for "Get Channel Access" command to follow here
579//
580
581//
582// Definitions for channel access memory type in Get Channel Access command request
583//
584#define IPMI_CHANNEL_ACCESS_MEMORY_TYPE_NON_VOLATILE 0x1
585#define IPMI_CHANNEL_ACCESS_MEMORY_TYPE_PRESENT_VOLATILE_SETTING 0x2
586
587//
588// Definitions for channel access modes in Get Channel Access command response
589//
590#define IPMI_CHANNEL_ACCESS_MODES_DISABLED 0x0
591#define IPMI_CHANNEL_ACCESS_MODES_PRE_BOOT_ONLY 0x1
592#define IPMI_CHANNEL_ACCESS_MODES_ALWAYS_AVAILABLE 0x2
593#define IPMI_CHANNEL_ACCESS_MODES_SHARED 0x3
594
595typedef union {
596 struct {
597 UINT8 ChannelNo : 4;
598 UINT8 Reserved : 4;
599 } Bits;
600 UINT8 Uint8;
602
603typedef union {
604 struct {
605 UINT8 Reserved : 6;
606 UINT8 MemoryType : 2;
607 } Bits;
608 UINT8 Uint8;
610
611typedef struct {
615
616typedef union {
617 struct {
618 UINT8 AccessMode : 3;
619 UINT8 UserLevelAuthEnabled : 1;
620 UINT8 MessageAuthEnable : 1;
621 UINT8 Alert : 1;
622 UINT8 Reserved : 2;
623 } Bits;
624 UINT8 Uint8;
626
627typedef union {
628 struct {
629 UINT8 ChannelPriviledgeLimit : 4;
630 UINT8 Reserved : 4;
631 } Bits;
632 UINT8 Uint8;
634
635typedef struct {
636 UINT8 CompletionCode;
640
641//
642// Definitions for Get Channel Info command
643//
644#define IPMI_APP_GET_CHANNEL_INFO 0x42
645
646//
647// Constants and Structure definitions for "Get Channel Info" command to follow here
648//
649
650//
651// Definitions for channel media type
652//
653// IPMB (I2C)
654#define IPMI_CHANNEL_MEDIA_TYPE_IPMB 0x1
655// ICMB v1.0
656#define IPMI_CHANNEL_MEDIA_TYPE_ICMB_1_0 0x2
657// ICMB v0.9
658#define IPMI_CHANNEL_MEDIA_TYPE_ICMB_0_9 0x3
659// 802.3 LAN
660#define IPMI_CHANNEL_MEDIA_TYPE_802_3_LAN 0x4
661// Asynch. Serial/Modem (RS-232)
662#define IPMI_CHANNEL_MEDIA_TYPE_RS_232 0x5
663// Other LAN
664#define IPMI_CHANNEL_MEDIA_TYPE_OTHER_LAN 0x6
665// PCI SMBus
666#define IPMI_CHANNEL_MEDIA_TYPE_PCI_SM_BUS 0x7
667// SMBus v1.0/1.1
668#define IPMI_CHANNEL_MEDIA_TYPE_SM_BUS_V1 0x8
669// SMBus v2.0
670#define IPMI_CHANNEL_MEDIA_TYPE_SM_BUS_V2 0x9
671// USB 1.x
672#define IPMI_CHANNEL_MEDIA_TYPE_USB1 0xA
673// USB 2.x
674#define IPMI_CHANNEL_MEDIA_TYPE_USB2 0xB
675// System Interface (KCS, SMIC, or BT)
676#define IPMI_CHANNEL_MEDIA_TYPE_SYSTEM_INTERFACE 0xC
677// OEM
678#define IPMI_CHANNEL_MEDIA_TYPE_OEM_START 0x60
679#define IPMI_CHANNEL_MEDIA_TYPE_OEM_END 0x7F
680
681//
682// Definitions for channel protocol type
683//
684// Not available
685#define IPMI_CHANNEL_PROTOCOL_TYPE_NA 0x00
686// IPMB-1.0
687#define IPMI_CHANNEL_PROTOCOL_TYPE_IPMB_1_0 0x01
688// ICMB-1.0
689#define IPMI_CHANNEL_PROTOCOL_TYPE_ICMB_1_0 0x02
690// Reserved
691#define IPMI_CHANNEL_PROTOCOL_TYPE_RESERVED 0x03
692// IPMI SMBUS
693#define IPMI_CHANNEL_PROTOCOL_TYPE_IPMI_SMBUS 0x04
694// KCS
695#define IPMI_CHANNEL_PROTOCOL_TYPE_KCS 0x05
696// SMIC
697#define IPMI_CHANNEL_PROTOCOL_TYPE_SMIC 0x06
698// BT-10
699#define IPMI_CHANNEL_PROTOCOL_TYPE_BT_10 0x07
700// BT-15
701#define IPMI_CHANNEL_PROTOCOL_TYPE_BT_15 0x08
702// TMode
703#define IPMI_CHANNEL_PROTOCOL_TYPE_TMODE 0x09
704
705typedef union {
706 struct {
707 UINT8 ChannelNo : 4;
708 UINT8 Reserved : 4;
709 } Bits;
710 UINT8 Uint8;
712
713typedef union {
714 struct {
715 UINT8 ChannelMediumType : 7;
716 UINT8 Reserved : 1;
717 } Bits;
718 UINT8 Uint8;
720
721typedef union {
722 struct {
723 UINT8 ChannelProtocolType : 5;
724 UINT8 Reserved : 3;
725 } Bits;
726 UINT8 Uint8;
728
729typedef union {
730 struct {
731 UINT8 ActiveSessionCount : 6;
732 UINT8 SessionSupport : 2;
733 } Bits;
734 UINT8 Uint8;
736
737typedef struct {
738 UINT8 CompletionCode;
743 UINT8 VendorId[3];
744 UINT16 AuxChannelInfo;
746
747typedef struct {
750
751//
752// Constants and Structure definitions for "Get Channel Info" command to follow here
753//
754
755//
756// Definitions for Set User Access command
757//
758#define IPMI_APP_SET_USER_ACCESS 0x43
759
760//
761// Constants and Structure definitions for "Set User Access" command to follow here
762//
763
764//
765// Definitions for Get User Access command
766//
767#define IPMI_APP_GET_USER_ACCESS 0x44
768
769//
770// Constants and Structure definitions for "Get User Access" command to follow here
771//
772typedef union {
773 struct {
774 UINT8 ChannelNo : 4;
775 UINT8 Reserved : 4;
776 } Bits;
777 UINT8 Uint8;
779
780typedef union {
781 struct {
782 UINT8 UserId : 6;
783 UINT8 Reserved : 2;
784 } Bits;
785 UINT8 Uint8;
787
788typedef struct {
790 IPMI_USER_ID UserId;
792
793typedef union {
794 struct {
795 UINT8 MaxUserId : 6;
796 UINT8 Reserved : 2;
797 } Bits;
798 UINT8 Uint8;
800
801typedef union {
802 struct {
803 UINT8 CurrentUserId : 6;
804 UINT8 UserIdEnableStatus : 2;
805 } Bits;
806 UINT8 Uint8;
808
809typedef union {
810 struct {
811 UINT8 FixedUserId : 6;
812 UINT8 Reserved : 2;
813 } Bits;
814 UINT8 Uint8;
816
817typedef union {
818 struct {
819 UINT8 UserPrivilegeLimit : 4;
820 UINT8 EnableIpmiMessaging : 1;
821 UINT8 EnableUserLinkAuthetication : 1;
822 UINT8 UserAccessAvailable : 1;
823 UINT8 Reserved : 1;
824 } Bits;
825 UINT8 Uint8;
827
828typedef struct {
829 UINT8 CompletionCode;
835
836//
837// Definitions for Set User Name command
838//
839#define IPMI_APP_SET_USER_NAME 0x45
840
841//
842// Constants and Structure definitions for "Set User Name" command to follow here
843//
844typedef struct {
845 IPMI_USER_ID UserId;
846 UINT8 UserName[16];
848
849//
850// Definitions for Get User Name command
851//
852#define IPMI_APP_GET_USER_NAME 0x46
853
854//
855// Constants and Structure definitions for "Get User Name" command to follow here
856//
857typedef struct {
858 IPMI_USER_ID UserId;
860
861typedef struct {
862 UINT8 CompletionCode;
863 UINT8 UserName[16];
865
866//
867// Definitions for Set User Password command
868//
869#define IPMI_APP_SET_USER_PASSWORD 0x47
870
871//
872// Constants and Structure definitions for "Set User Password" command to follow here
873//
874
875//
876// Definitions for Set User password command operation type
877//
878#define IPMI_SET_USER_PASSWORD_OPERATION_TYPE_DISABLE_USER 0x0
879#define IPMI_SET_USER_PASSWORD_OPERATION_TYPE_ENABLE_USER 0x1
880#define IPMI_SET_USER_PASSWORD_OPERATION_TYPE_SET_PASSWORD 0x2
881#define IPMI_SET_USER_PASSWORD_OPERATION_TYPE_TEST_PASSWORD 0x3
882
883//
884// Definitions for Set user password command password size
885//
886#define IPMI_SET_USER_PASSWORD_PASSWORD_SIZE_16 0x0
887#define IPMI_SET_USER_PASSWORD_PASSWORD_SIZE_20 0x1
888
889typedef union {
890 struct {
891 UINT8 UserId : 6;
892 UINT8 Reserved : 1;
893 UINT8 PasswordSize : 1;
894 } Bits;
895 UINT8 Uint8;
897
898typedef union {
899 struct {
900 UINT8 Operation : 2;
901 UINT8 Reserved : 6;
902 } Bits;
903 UINT8 Uint8;
905
906typedef struct {
909 UINT8 PasswordData[0]; // 16 or 20 bytes, depending on the 'PasswordSize' field
911
912//
913// Below is Definitions for RMCP+ Support and Payload Commands (Chapter 24)
914//
915
916//
917// Definitions for Activate Payload command
918//
919#define IPMI_APP_ACTIVATE_PAYLOAD 0x48
920
921//
922// Constants and Structure definitions for "Activate Payload" command to follow here
923//
924
925//
926// Definitions for De-Activate Payload command
927//
928#define IPMI_APP_DEACTIVATE_PAYLOAD 0x49
929
930//
931// Constants and Structure definitions for "DeActivate Payload" command to follow here
932//
933
934//
935// Definitions for Get Payload activation Status command
936//
937#define IPMI_APP_GET_PAYLOAD_ACTIVATION_STATUS 0x4a
938
939//
940// Constants and Structure definitions for "Get Payload activation Status" command to follow here
941//
942
943//
944// Definitions for Get Payload Instance Info command
945//
946#define IPMI_APP_GET_PAYLOAD_INSTANCE_INFO 0x4b
947
948//
949// Constants and Structure definitions for "Get Payload Instance Info" command to follow here
950//
951
952//
953// Definitions for Set User Payload Access command
954//
955#define IPMI_APP_SET_USER_PAYLOAD_ACCESS 0x4C
956
957//
958// Constants and Structure definitions for "Set User Payload Access" command to follow here
959//
960
961//
962// Definitions for Get User Payload Access command
963//
964#define IPMI_APP_GET_USER_PAYLOAD_ACCESS 0x4D
965
966//
967// Constants and Structure definitions for "Get User Payload Access" command to follow here
968//
969
970//
971// Definitions for Get Channel Payload Support command
972//
973#define IPMI_APP_GET_CHANNEL_PAYLOAD_SUPPORT 0x4E
974
975//
976// Constants and Structure definitions for "Get Channel Payload Support" command to follow here
977//
978
979//
980// Definitions for Get Channel Payload Version command
981//
982#define IPMI_APP_GET_CHANNEL_PAYLOAD_VERSION 0x4F
983
984//
985// Constants and Structure definitions for "Get Channel Payload Version" command to follow here
986//
987
988//
989// Definitions for Get Channel OEM Payload Info command
990//
991#define IPMI_APP_GET_CHANNEL_OEM_PAYLOAD_INFO 0x50
992
993//
994// Constants and Structure definitions for "Get Channel OEM Payload Info" command to follow here
995//
996
997//
998// Definitions for Master Write-Read command
999//
1000#define IPMI_APP_MASTER_WRITE_READ 0x52
1001
1002//
1003// Constants and Structure definitions for "Master Write Read" command to follow here
1004//
1005
1006//
1007// Definitions for Get Channel Cipher Suites command
1008//
1009#define IPMI_APP_GET_CHANNEL_CIPHER_SUITES 0x54
1010
1011//
1012// Constants and Structure definitions for "Get Channel Cipher Suites" command to follow here
1013//
1014
1015//
1016// Below is Definitions for RMCP+ Support and Payload Commands (Chapter 24, Section 3)
1017//
1018
1019//
1020// Definitions for Suspend-Resume Payload Encryption command
1021//
1022#define IPMI_APP_SUSPEND_RESUME_PAYLOAD_ENCRYPTION 0x55
1023
1024//
1025// Constants and Structure definitions for "Suspend-Resume Payload Encryption" command to follow here
1026//
1027
1028//
1029// Below is Definitions for IPMI Messaging Support Commands (Chapter 22, Section 25 and 9)
1030//
1031
1032//
1033// Definitions for Set Channel Security Keys command
1034//
1035#define IPMI_APP_SET_CHANNEL_SECURITY_KEYS 0x56
1036
1037//
1038// Constants and Structure definitions for "Set Channel Security Keys" command to follow here
1039//
1040
1041//
1042// Definitions for Get System Interface Capabilities command
1043//
1044#define IPMI_APP_GET_SYSTEM_INTERFACE_CAPABILITIES 0x57
1045
1046//
1047// Constants and Structure definitions for "Get System Interface Capabilities" command to follow here
1048//
1049
1050#define IPMI_GET_SYSTEM_INTERFACE_CAPABILITIES_INTERFACE_TYPE_SSIF 0x0
1051#define IPMI_GET_SYSTEM_INTERFACE_CAPABILITIES_INTERFACE_TYPE_KCS 0x1
1052#define IPMI_GET_SYSTEM_INTERFACE_CAPABILITIES_INTERFACE_TYPE_SMIC 0x2
1053
1054typedef union {
1055 struct {
1056 UINT8 InterfaceType : 4;
1057 UINT8 Reserved : 4;
1058 } Bits;
1059 UINT8 Uint8;
1061
1062typedef union {
1063 struct {
1064 UINT8 Version : 3;
1065 UINT8 PecSupport : 1;
1066 UINT8 Reserved : 2;
1067 UINT8 TransactionSupport : 2;
1068 } Bits;
1069 UINT8 Uint8;
1071
1072typedef union {
1073 struct {
1074 UINT8 SystemInterfaceVersion : 3;
1075 UINT8 Reserved : 5;
1076 } Bits;
1077 UINT8 Uint8;
1079
1080typedef struct {
1081 UINT8 CompletionCode;
1082 UINT8 Reserved;
1084 UINT8 InputMsgSize;
1085 UINT8 OutputMsgSize;
1087
1088typedef struct {
1089 UINT8 CompletionCode;
1090 UINT8 Reserved;
1092 UINT8 InputMaxMsgSize;
1094
1095//
1096// Response of interface capability of SSIF/KCS/SMIC.
1097//
1098typedef union {
1102
1103//
1104// Definitions for Get System Interface Capabilities command SSIF transaction support
1105//
1106#define IPMI_GET_SYSTEM_INTERFACE_CAPABILITIES_SSIF_TRANSACTION_SUPPORT_SINGLE_PARTITION_RW 0x0
1107#define IPMI_GET_SYSTEM_INTERFACE_CAPABILITIES_SSIF_TRANSACTION_SUPPORT_MULTI_PARTITION_RW 0x1
1108#define IPMI_GET_SYSTEM_INTERFACE_CAPABILITIES_SSIF_TRANSACTION_SUPPORT_MULTI_PARTITION_RW_WITH_MIDDLE 0x2
1109
1110#pragma pack()
1111#endif
Definition: Base.h:213