20#ifndef _IPMI_NET_FN_APP_H_
21#define _IPMI_NET_FN_APP_H_
27#define IPMI_NETFN_APP 0x06
36#define IPMI_APP_GET_DEVICE_ID 0x1
43 UINT8 DeviceRevision : 4;
52 UINT8 MajorFirmwareRev : 7;
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;
77 UINT8 MinorFirmwareRev;
78 UINT8 SpecificationVersion;
80 UINT8 ManufacturerId[3];
82 UINT32 AuxFirmwareRevInfo;
88#define IPMI_APP_COLD_RESET 0x2
97#define IPMI_APP_WARM_RESET 0x3
106#define IPMI_APP_GET_SELFTEST_RESULTS 0x4
112 UINT8 CompletionCode;
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
133#define IPMI_APP_MANUFACTURING_TEST_ON 0x5
142#define IPMI_APP_SET_ACPI_POWERSTATE 0x6
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
158#define IPMI_SYSTEM_POWER_STATE_S5_G2 0x5
160#define IPMI_SYSTEM_POWER_STATE_S4_S5 0x6
162#define IPMI_SYSTEM_POWER_STATE_G3 0x7
164#define IPMI_SYSTEM_POWER_STATE_SLEEPING 0x8
166#define IPMI_SYSTEM_POWER_STATE_G1_SLEEPING 0x9
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
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
186 UINT8 PowerState : 7;
187 UINT8 StateChange : 1;
200#define IPMI_APP_GET_ACPI_POWERSTATE 0x7
209#define IPMI_APP_GET_DEVICE_GUID 0x8
218 UINT8 CompletionCode;
229#define IPMI_APP_RESET_WATCHDOG_TIMER 0x22
234#define IPMI_APP_SET_WATCHDOG_TIMER 0x24
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
256 UINT8 TimerRunning : 1;
257 UINT8 TimerUseExpirationFlagLog : 1;
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
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
283 UINT8 TimeoutAction : 3;
285 UINT8 PreTimeoutInterrupt : 3;
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
303 UINT8 PretimeoutInterval;
304 UINT8 TimerUseExpirationFlagsClear;
305 UINT16 InitialCountdownValue;
311#define IPMI_APP_GET_WATCHDOG_TIMER 0x25
317 UINT8 CompletionCode;
320 UINT8 PretimeoutInterval;
321 UINT8 TimerUseExpirationFlagsClear;
322 UINT16 InitialCountdownValue;
323 UINT16 PresentCountdownValue;
333#define IPMI_APP_SET_BMC_GLOBAL_ENABLES 0x2E
340 UINT8 ReceiveMessageQueueInterrupt : 1;
341 UINT8 EventMessageBufferFullInterrupt : 1;
342 UINT8 EventMessageBuffer : 1;
343 UINT8 SystemEventLogging : 1;
345 UINT8 Oem0Enable : 1;
346 UINT8 Oem1Enable : 1;
347 UINT8 Oem2Enable : 1;
359#define IPMI_APP_GET_BMC_GLOBAL_ENABLES 0x2F
365 UINT8 CompletionCode;
372#define IPMI_APP_CLEAR_MESSAGE_FLAGS 0x30
379 UINT8 ReceiveMessageQueue : 1;
380 UINT8 EventMessageBuffer : 1;
382 UINT8 WatchdogPerTimeoutInterrupt : 1;
398#define IPMI_APP_GET_MESSAGE_FLAGS 0x31
404 UINT8 CompletionCode;
411#define IPMI_APP_ENABLE_MESSAGE_CHANNEL_RECEIVE 0x32
420#define IPMI_APP_GET_MESSAGE 0x33
427 UINT8 ChannelNumber : 4;
428 UINT8 InferredPrivilegeLevel : 4;
434 UINT8 CompletionCode;
436 UINT8 MessageData[0];
442#define IPMI_APP_SEND_MESSAGE 0x34
449 UINT8 ChannelNumber : 4;
450 UINT8 Authentication : 1;
451 UINT8 Encryption : 1;
458 UINT8 CompletionCode;
460 UINT8 MessageData[0];
464 UINT8 CompletionCode;
465 UINT8 ResponseData[0];
471#define IPMI_APP_READ_EVENT_MSG_BUFFER 0x35
480#define IPMI_APP_GET_BT_INTERFACE_CAPABILITY 0x36
489#define IPMI_APP_GET_SYSTEM_GUID 0x37
492 UINT8 CompletionCode;
503#define IPMI_APP_GET_CHANNEL_AUTHENTICATION_CAPABILITIES 0x38
512#define IPMI_APP_GET_SESSION_CHALLENGE 0x39
521#define IPMI_APP_ACTIVATE_SESSION 0x3A
530#define IPMI_APP_SET_SESSION_PRIVELEGE_LEVEL 0x3B
539#define IPMI_APP_CLOSE_SESSION 0x3C
548#define IPMI_APP_GET_SESSION_INFO 0x3D
557#define IPMI_APP_GET_AUTHCODE 0x3F
566#define IPMI_APP_SET_CHANNEL_ACCESS 0x40
575#define IPMI_APP_GET_CHANNEL_ACCESS 0x41
584#define IPMI_CHANNEL_ACCESS_MEMORY_TYPE_NON_VOLATILE 0x1
585#define IPMI_CHANNEL_ACCESS_MEMORY_TYPE_PRESENT_VOLATILE_SETTING 0x2
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
606 UINT8 MemoryType : 2;
618 UINT8 AccessMode : 3;
619 UINT8 UserLevelAuthEnabled : 1;
620 UINT8 MessageAuthEnable : 1;
629 UINT8 ChannelPriviledgeLimit : 4;
636 UINT8 CompletionCode;
644#define IPMI_APP_GET_CHANNEL_INFO 0x42
654#define IPMI_CHANNEL_MEDIA_TYPE_IPMB 0x1
656#define IPMI_CHANNEL_MEDIA_TYPE_ICMB_1_0 0x2
658#define IPMI_CHANNEL_MEDIA_TYPE_ICMB_0_9 0x3
660#define IPMI_CHANNEL_MEDIA_TYPE_802_3_LAN 0x4
662#define IPMI_CHANNEL_MEDIA_TYPE_RS_232 0x5
664#define IPMI_CHANNEL_MEDIA_TYPE_OTHER_LAN 0x6
666#define IPMI_CHANNEL_MEDIA_TYPE_PCI_SM_BUS 0x7
668#define IPMI_CHANNEL_MEDIA_TYPE_SM_BUS_V1 0x8
670#define IPMI_CHANNEL_MEDIA_TYPE_SM_BUS_V2 0x9
672#define IPMI_CHANNEL_MEDIA_TYPE_USB1 0xA
674#define IPMI_CHANNEL_MEDIA_TYPE_USB2 0xB
676#define IPMI_CHANNEL_MEDIA_TYPE_SYSTEM_INTERFACE 0xC
678#define IPMI_CHANNEL_MEDIA_TYPE_OEM_START 0x60
679#define IPMI_CHANNEL_MEDIA_TYPE_OEM_END 0x7F
685#define IPMI_CHANNEL_PROTOCOL_TYPE_NA 0x00
687#define IPMI_CHANNEL_PROTOCOL_TYPE_IPMB_1_0 0x01
689#define IPMI_CHANNEL_PROTOCOL_TYPE_ICMB_1_0 0x02
691#define IPMI_CHANNEL_PROTOCOL_TYPE_RESERVED 0x03
693#define IPMI_CHANNEL_PROTOCOL_TYPE_IPMI_SMBUS 0x04
695#define IPMI_CHANNEL_PROTOCOL_TYPE_KCS 0x05
697#define IPMI_CHANNEL_PROTOCOL_TYPE_SMIC 0x06
699#define IPMI_CHANNEL_PROTOCOL_TYPE_BT_10 0x07
701#define IPMI_CHANNEL_PROTOCOL_TYPE_BT_15 0x08
703#define IPMI_CHANNEL_PROTOCOL_TYPE_TMODE 0x09
715 UINT8 ChannelMediumType : 7;
723 UINT8 ChannelProtocolType : 5;
731 UINT8 ActiveSessionCount : 6;
732 UINT8 SessionSupport : 2;
738 UINT8 CompletionCode;
744 UINT16 AuxChannelInfo;
758#define IPMI_APP_SET_USER_ACCESS 0x43
767#define IPMI_APP_GET_USER_ACCESS 0x44
803 UINT8 CurrentUserId : 6;
804 UINT8 UserIdEnableStatus : 2;
811 UINT8 FixedUserId : 6;
819 UINT8 UserPrivilegeLimit : 4;
820 UINT8 EnableIpmiMessaging : 1;
821 UINT8 EnableUserLinkAuthetication : 1;
822 UINT8 UserAccessAvailable : 1;
829 UINT8 CompletionCode;
839#define IPMI_APP_SET_USER_NAME 0x45
852#define IPMI_APP_GET_USER_NAME 0x46
862 UINT8 CompletionCode;
869#define IPMI_APP_SET_USER_PASSWORD 0x47
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
886#define IPMI_SET_USER_PASSWORD_PASSWORD_SIZE_16 0x0
887#define IPMI_SET_USER_PASSWORD_PASSWORD_SIZE_20 0x1
893 UINT8 PasswordSize : 1;
909 UINT8 PasswordData[0];
919#define IPMI_APP_ACTIVATE_PAYLOAD 0x48
928#define IPMI_APP_DEACTIVATE_PAYLOAD 0x49
937#define IPMI_APP_GET_PAYLOAD_ACTIVATION_STATUS 0x4a
946#define IPMI_APP_GET_PAYLOAD_INSTANCE_INFO 0x4b
955#define IPMI_APP_SET_USER_PAYLOAD_ACCESS 0x4C
964#define IPMI_APP_GET_USER_PAYLOAD_ACCESS 0x4D
973#define IPMI_APP_GET_CHANNEL_PAYLOAD_SUPPORT 0x4E
982#define IPMI_APP_GET_CHANNEL_PAYLOAD_VERSION 0x4F
991#define IPMI_APP_GET_CHANNEL_OEM_PAYLOAD_INFO 0x50
1000#define IPMI_APP_MASTER_WRITE_READ 0x52
1009#define IPMI_APP_GET_CHANNEL_CIPHER_SUITES 0x54
1022#define IPMI_APP_SUSPEND_RESUME_PAYLOAD_ENCRYPTION 0x55
1035#define IPMI_APP_SET_CHANNEL_SECURITY_KEYS 0x56
1044#define IPMI_APP_GET_SYSTEM_INTERFACE_CAPABILITIES 0x57
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
1056 UINT8 InterfaceType : 4;
1065 UINT8 PecSupport : 1;
1067 UINT8 TransactionSupport : 2;
1074 UINT8 SystemInterfaceVersion : 3;
1081 UINT8 CompletionCode;
1085 UINT8 OutputMsgSize;
1089 UINT8 CompletionCode;
1092 UINT8 InputMaxMsgSize;
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