-/** @file\r
- IPMI 2.0 definitions from the IPMI Specification Version 2.0, Revision 1.1.\r
-\r
- This file contains all NetFn App commands, including:\r
- IPM Device "Global" Commands (Chapter 20)\r
- Firmware Firewall & Command Discovery Commands (Chapter 21)\r
- BMC Watchdog Timer Commands (Chapter 27)\r
- IPMI Messaging Support Commands (Chapter 22)\r
- RMCP+ Support and Payload Commands (Chapter 24)\r
-\r
- See IPMI specification, Appendix G, Command Assignments\r
- and Appendix H, Sub-function Assignments.\r
-\r
- Copyright (c) 1999 - 2015, Intel Corporation. All rights reserved.<BR>\r
- This program and the accompanying materials\r
- are licensed and made available under the terms and conditions of the BSD License\r
- which accompanies this distribution. The full text of the license may be found at\r
- http://opensource.org/licenses/bsd-license.php\r
-\r
- THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
- WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
-**/\r
-\r
-#ifndef _IPMINETFNAPPDEFINITIONS_H_\r
-#define _IPMINETFNAPPDEFINITIONS_H_\r
-\r
-#pragma pack(1)\r
-//\r
-// Net function definition for App command\r
-//\r
-#define IPMI_NETFN_APP 0x06\r
-\r
-//\r
-// Below is Definitions for IPM Device "Global" Commands (Chapter 20)\r
-//\r
-\r
-//\r
-// Definitions for Get Device ID command\r
-//\r
-#define IPMI_APP_GET_DEVICE_ID 0x1\r
-\r
-//\r
-// Constants and Structure definitions for "Get Device ID" command to follow here\r
-//\r
-typedef struct {\r
- UINT8 DeviceId;\r
- UINT8 DeviceRevision : 4;\r
- UINT8 Reserved : 3;\r
- UINT8 DeviceSdr : 1;\r
- UINT8 MajorFirmwareRev : 7;\r
- UINT8 UpdateMode : 1;\r
- UINT8 MinorFirmwareRev;\r
- UINT8 SpecificationVersion;\r
- UINT8 SensorDeviceSupport : 1;\r
- UINT8 SdrRepositorySupport : 1;\r
- UINT8 SelDeviceSupport : 1;\r
- UINT8 FruInventorySupport : 1;\r
- UINT8 IpmbMessageReceiver : 1;\r
- UINT8 IpmbMessageGenerator : 1;\r
- UINT8 BridgeSupport : 1;\r
- UINT8 ChassisSupport : 1;\r
- UINT8 ManufacturerId[3];\r
- UINT16 ProductId;\r
- UINT32 AuxFirmwareRevInfo;\r
-} IPMI_MSG_GET_DEVICE_ID_RSP;\r
-\r
-\r
-//\r
-// Definitions for Cold Reset command\r
-//\r
-#define IPMI_APP_COLD_RESET 0x2\r
-\r
-//\r
-// Constants and Structure definitions for "Cold Reset" command to follow here\r
-//\r
-\r
-//\r
-// Definitions for Warm Reset command\r
-//\r
-#define IPMI_APP_WARM_RESET 0x3\r
-\r
-//\r
-// Constants and Structure definitions for "Warm Reset" command to follow here\r
-//\r
-\r
-//\r
-// Definitions for Get Self Results command\r
-//\r
-#define IPMI_APP_GET_SELFTEST_RESULTS 0x4\r
-\r
-//\r
-// Constants and Structure definitions for "Get Self Results" command to follow here\r
-//\r
-typedef struct {\r
- UINT8 Result;\r
- UINT8 Param;\r
-} IPMI_MSG_SELFTEST_RESULT_RSP;\r
-\r
-#define IPMI_APP_SELFTEST_NO_ERROR 0x55\r
-#define IPMI_APP_SELFTEST_NOT_IMPLEMENTED 0x56\r
-#define IPMI_APP_SELFTEST_ERROR 0x57\r
-#define IPMI_APP_SELFTEST_FATAL_HW_ERROR 0x58\r
-#define IPMI_APP_SELFTEST_INACCESSIBLE_SEL 0x80\r
-#define IPMI_APP_SELFTEST_INACCESSIBLE_SDR 0x40\r
-#define IPMI_APP_SELFTEST_INACCESSIBLE_FRU 0x20\r
-#define IPMI_APP_SELFTEST_IPMB_SIGNAL_FAIL 0x10\r
-#define IPMI_APP_SELFTEST_SDR_REPOSITORY_EMPTY 0x08\r
-#define IPMI_APP_SELFTEST_FRU_CORRUPT 0x04\r
-#define IPMI_APP_SELFTEST_FW_BOOTBLOCK_CORRUPT 0x02\r
-#define IPMI_APP_SELFTEST_FW_CORRUPT 0x01\r
-\r
-//\r
-// Definitions for Manufacturing Test ON command\r
-//\r
-#define IPMI_APP_MANUFACTURING_TEST_ON 0x5\r
-\r
-//\r
-// Constants and Structure definitions for "Manufacturing Test ON" command to follow here\r
-//\r
-\r
-//\r
-// Definitions for Set ACPI Power State command\r
-//\r
-#define IPMI_APP_SET_ACPI_POWERSTATE 0x6\r
-\r
-//\r
-// Constants and Structure definitions for "Set ACPI Power State" command to follow here\r
-//\r
-typedef struct {\r
- UINT8 SystemPowerState : 7;\r
- UINT8 SystemStateChange : 1;\r
- UINT8 DevicePowerState : 7;\r
- UINT8 DeviceStateChange : 1;\r
-} IPMI_ACPI_POWER_STATE;\r
-\r
-//\r
-// Definitions for Get ACPI Power State command\r
-//\r
-#define IPMI_APP_GET_ACPI_POWERSTATE 0x7\r
-\r
-//\r
-// Constants and Structure definitions for "Get ACPI Power State" command to follow here\r
-//\r
-\r
-//\r
-// Definitions for Get Device GUID command\r
-//\r
-#define IPMI_APP_GET_DEVICE_GUID 0x8\r
-\r
-//\r
-// Constants and Structure definitions for "Get Device GUID" command to follow here\r
-//\r
-//\r
-// Message structure definition for "Get Device Guid" IPMI command\r
-//\r
-typedef struct {\r
- UINT8 Guid[16];\r
-} IPMI_MSG_GET_DEVICE_GUID_RSP;\r
-\r
-//\r
-// Below is Definitions for BMC Watchdog Timer Commands (Chapter 27)\r
-//\r
-\r
-//\r
-// Definitions for Reset WatchDog Timer command\r
-//\r
-#define IPMI_APP_RESET_WATCHDOG_TIMER 0x22\r
-\r
-//\r
-// Constants and Structure definitions for "Reset WatchDog Timer" command to follow here\r
-//\r
-typedef struct {\r
- UINT8 TimerUse : 3;\r
- UINT8 Reserved : 3;\r
- UINT8 TimerRunning : 1;\r
- UINT8 TimerUseExpirationFlagLog : 1;\r
-} IPMI_WATCHDOG_TIMER_USE;\r
-\r
-//\r
-// Definitions for Set WatchDog Timer command\r
-//\r
-#define IPMI_APP_SET_WATCHDOG_TIMER 0x24\r
-\r
-//\r
-// Constants and Structure definitions for "Set WatchDog Timer" command to follow here\r
-//\r
-typedef struct {\r
- IPMI_WATCHDOG_TIMER_USE TimerUse;\r
- UINT8 TimerActions;\r
- UINT8 PretimeoutInterval;\r
- UINT8 TimerUseExpirationFlagsClear;\r
- UINT16 InitialCountdownValue;\r
-} IPMI_SET_WATCHDOG_TIMER;\r
-\r
-//\r
-// Definitions for Get WatchDog Timer command\r
-//\r
-#define IPMI_APP_GET_WATCHDOG_TIMER 0x25\r
-\r
-//\r
-// Constants and Structure definitions for "Get WatchDog Timer" command to follow here\r
-//\r
-typedef struct {\r
- IPMI_WATCHDOG_TIMER_USE TimerUse;\r
- UINT8 TimerActions;\r
- UINT8 PretimeoutInterval;\r
- UINT8 TimerUseExpirationFlagsClear;\r
- UINT16 InitialCountdownValue;\r
- UINT16 PresentCountdownValue;\r
-} IPMI_WATCHDOG_TIMER;\r
-\r
-//\r
-// The following srucure is temporary, need to be removed later\r
-//\r
-typedef struct {\r
- UINT8 TimerUse : 3;\r
- UINT8 Reserved1 : 3;\r
- UINT8 StartTimer : 1;\r
- UINT8 DontLog : 1;\r
- union {\r
- struct {\r
- UINT8 TimeoutAction : 3;\r
- UINT8 Reserved2 : 1;\r
- UINT8 PreTimeoutIntr : 3;\r
- UINT8 Reserved3 : 1;\r
- } Byte2Bmp;\r
- UINT8 Data8;\r
- } Byte2;\r
-\r
- UINT8 PreTimeoutInterval;\r
- UINT8 ExpirationReserved1 : 1;\r
- UINT8 BiosFrb2TimerExpirationFlag : 1;\r
- UINT8 BiosPostTimerExpirationFlag : 1;\r
- UINT8 OsLoadTimerExpirationFlag : 1;\r
- UINT8 ExpirationReserved2 : 4;\r
- UINT16 Timeout;\r
- UINT16 CurrCountdown;\r
- UINT16 Reserved4;\r
-} IPMI_FRB_TIMER;\r
-\r
-//\r
-// Below is Definitions for IPMI Messaging Support Commands (Chapter 22)\r
-//\r
-\r
-//\r
-// Definitions for Set BMC Global Enables command\r
-//\r
-#define IPMI_APP_SET_BMC_GLOBAL_ENABLES 0x2E\r
-\r
-//\r
-// Constants and Structure definitions for "Set BMC Global Enables " command to follow here\r
-//\r
-\r
-//\r
-// Definitions for Get BMC Global Enables command\r
-//\r
-#define IPMI_APP_GET_BMC_GLOBAL_ENABLES 0x2F\r
-\r
-//\r
-// Constants and Structure definitions for "Get BMC Global Enables " command to follow here\r
-//\r
-\r
-//\r
-// Definitions for Clear Message Flags command\r
-//\r
-#define IPMI_APP_CLEAR_MESSAGE_FLAGS 0x30\r
-\r
-//\r
-// Constants and Structure definitions for "Clear Message Flags" command to follow here\r
-//\r
-\r
-//\r
-// Definitions for Get Message Flags command\r
-//\r
-#define IPMI_APP_GET_MESSAGE_FLAGS 0x31\r
-\r
-//\r
-// Constants and Structure definitions for "Get Message Flags" command to follow here\r
-//\r
-\r
-//\r
-// Definitions for Enable Message Channel Receive command\r
-//\r
-#define IPMI_APP_ENABLE_MESSAGE_CHANNEL_RECEIVE 0x32\r
-\r
-//\r
-// Constants and Structure definitions for "Enable Message Channel Receive" command to follow here\r
-//\r
-\r
-//\r
-// Definitions for Get Message command\r
-//\r
-#define IPMI_APP_GET_MESSAGE 0x33\r
-\r
-//\r
-// Constants and Structure definitions for "Get Message" command to follow here\r
-//\r
-\r
-//\r
-// Definitions for Send Message command\r
-//\r
-#define IPMI_APP_SEND_MESSAGE 0x34\r
-\r
-//\r
-// Constants and Structure definitions for "Send Message" command to follow here\r
-//\r
-\r
-//\r
-// Definitions for Read Event Message Buffer command\r
-//\r
-#define IPMI_APP_READ_EVENT_MSG_BUFFER 0x35\r
-\r
-//\r
-// Constants and Structure definitions for "Read Event Message Buffer" command to follow here\r
-//\r
-\r
-//\r
-// Definitions for Get BT Interface Capabilities command\r
-//\r
-#define IPMI_APP_GET_BT_INTERFACE_CAPABILITY 0x36\r
-\r
-//\r
-// Constants and Structure definitions for "Get BT Interface Capabilities" command to follow here\r
-//\r
-\r
-//\r
-// Definitions for Get System GUID command\r
-//\r
-#define IPMI_APP_GET_SYSTEM_GUID 0x37\r
-\r
-//\r
-// Constants and Structure definitions for "Get System GUID" command to follow here\r
-//\r
-\r
-//\r
-// Definitions for Get Channel Authentication Capabilities command\r
-//\r
-#define IPMI_APP_GET_CHANNEL_AUTHENTICATION_CAPABILITIES 0x38\r
-\r
-//\r
-// Constants and Structure definitions for "Get Channel Authentication Capabilities" command to follow here\r
-//\r
-\r
-//\r
-// Definitions for Get Session Challenge command\r
-//\r
-#define IPMI_APP_GET_SESSION_CHALLENGE 0x39\r
-\r
-//\r
-// Constants and Structure definitions for "Get Session Challenge" command to follow here\r
-//\r
-\r
-//\r
-// Definitions for Activate Session command\r
-//\r
-#define IPMI_APP_ACTIVATE_SESSION 0x3A\r
-\r
-//\r
-// Constants and Structure definitions for "Activate Session" command to follow here\r
-//\r
-\r
-//\r
-// Definitions for Set Session Privelege Level command\r
-//\r
-#define IPMI_APP_SET_SESSION_PRIVELEGE_LEVEL 0x3B\r
-\r
-//\r
-// Constants and Structure definitions for "Set Session Privelege Level" command to follow here\r
-//\r
-\r
-//\r
-// Definitions for Close Session command\r
-//\r
-#define IPMI_APP_CLOSE_SESSION 0x3C\r
-\r
-//\r
-// Constants and Structure definitions for "Close Session" command to follow here\r
-//\r
-\r
-//\r
-// Definitions for Get Session Info command\r
-//\r
-#define IPMI_APP_GET_SESSION_INFO 0x3D\r
-\r
-//\r
-// Constants and Structure definitions for "Get Session Info" command to follow here\r
-//\r
-\r
-//\r
-// Definitions for Get Auth Code command\r
-//\r
-#define IPMI_APP_GET_AUTHCODE 0x3F\r
-\r
-//\r
-// Constants and Structure definitions for "Get AuthCode" command to follow here\r
-//\r
-\r
-//\r
-// Definitions for Set Channel Access command\r
-//\r
-#define IPMI_APP_SET_CHANNEL_ACCESS 0x40\r
-\r
-//\r
-// Constants and Structure definitions for "Set Channel Access" command to follow here\r
-//\r
-\r
-//\r
-// Definitions for Get Channel Access command\r
-//\r
-#define IPMI_APP_GET_CHANNEL_ACCESS 0x41\r
-\r
-//\r
-// Constants and Structure definitions for "Get Channel Access" command to follow here\r
-//\r
-typedef struct {\r
- UINT8 ChannelNo : 4;\r
- UINT8 Reserve1 : 4;\r
- UINT8 Reserve2 : 6;\r
- UINT8 MemoryType : 2;\r
-} IPMI_GET_CHANNEL_ACCESS_COMMAND;\r
-\r
-typedef struct {\r
- UINT8 AccessMode : 3;\r
- UINT8 UserLevelAuthEnabled : 1;\r
- UINT8 MessageAuthEnable : 1;\r
- UINT8 Alert : 1;\r
- UINT8 Reserve1 : 2;\r
- UINT8 ChannelPriviledgeLimit : 4;\r
- UINT8 Reserve2 : 4;\r
-} IPMI_GET_CHANNEL_ACCESS_RESPONSE;\r
-\r
-//\r
-// Definitions for Get Channel Info command\r
-//\r
-#define IPMI_APP_GET_CHANNEL_INFO 0x42\r
-\r
-//\r
-// Constants and Structure definitions for "Get Channel Info" command to follow here\r
-//\r
-typedef struct {\r
- UINT8 ChannelNo : 4;\r
- UINT8 Reserve1 : 4;\r
- UINT8 ChannelMediumType : 7;\r
- UINT8 Reserve2 : 1;\r
- UINT8 ChannelProtocolType : 5;\r
- UINT8 Reserve3 : 3;\r
- UINT8 ActiveSessionCount : 6;\r
- UINT8 SessionSupport : 2;\r
- UINT32 VendorId : 24;\r
- UINT16 AuxChannelInfo : 16;\r
- UINT8 Dummy;\r
-} IPMI_CHANNEL_INFO;\r
-\r
-//\r
-// Definitions for Get Channel Info command\r
-//\r
-#define IPMI_APP_GET_CHANNEL_INFO 0x42\r
-\r
-//\r
-// Constants and Structure definitions for "Get Channel Info" command to follow here\r
-//\r
-\r
-//\r
-// Definitions for Set User Access command\r
-//\r
-#define IPMI_APP_SET_USER_ACCESS 0x43\r
-\r
-//\r
-// Constants and Structure definitions for "Set User Access" command to follow here\r
-//\r
-\r
-//\r
-// Definitions for Get User Access command\r
-//\r
-#define IPMI_APP_GET_USER_ACCESS 0x44\r
-\r
-//\r
-// Constants and Structure definitions for "Get User Access" command to follow here\r
-//\r
-\r
-//\r
-// Definitions for Set User Name command\r
-//\r
-#define IPMI_APP_SET_USER_NAME 0x45\r
-\r
-//\r
-// Constants and Structure definitions for "Set User Name" command to follow here\r
-//\r
-\r
-//\r
-// Definitions for Get User Name command\r
-//\r
-#define IPMI_APP_GET_USER_NAME 0x46\r
-\r
-//\r
-// Constants and Structure definitions for "Get User Name" command to follow here\r
-//\r
-\r
-//\r
-// Definitions for Set User Password command\r
-//\r
-#define IPMI_APP_SET_USER_PASSWORD 0x47\r
-\r
-//\r
-// Constants and Structure definitions for "Set User Password" command to follow here\r
-//\r
-\r
-//\r
-// Below is Definitions for RMCP+ Support and Payload Commands (Chapter 24)\r
-//\r
-\r
-//\r
-// Definitions for Activate Payload command\r
-//\r
-#define IPMI_APP_ACTIVATE_PAYLOAD 0x48\r
-\r
-//\r
-// Constants and Structure definitions for "Activate Payload" command to follow here\r
-//\r
-\r
-//\r
-// Definitions for De-Activate Payload command\r
-//\r
-#define IPMI_APP_DEACTIVATE_PAYLOAD 0x49\r
-\r
-//\r
-// Constants and Structure definitions for "DeActivate Payload" command to follow here\r
-//\r
-\r
-//\r
-// Definitions for Get Payload activation Status command\r
-//\r
-#define IPMI_APP_GET_PAYLOAD_ACTIVATION_STATUS 0x4a\r
-\r
-//\r
-// Constants and Structure definitions for "Get Payload activation Status" command to follow here\r
-//\r
-\r
-//\r
-// Definitions for Get Payload Instance Info command\r
-//\r
-#define IPMI_APP_GET_PAYLOAD_INSTANCE_INFO 0x4b\r
-\r
-//\r
-// Constants and Structure definitions for "Get Payload Instance Info" command to follow here\r
-//\r
-\r
-//\r
-// Definitions for Set User Payload Access command\r
-//\r
-#define IPMI_APP_SET_USER_PAYLOAD_ACCESS 0x4C\r
-\r
-//\r
-// Constants and Structure definitions for "Set User Payload Access" command to follow here\r
-//\r
-\r
-//\r
-// Definitions for Get User Payload Access command\r
-//\r
-#define IPMI_APP_GET_USER_PAYLOAD_ACCESS 0x4D\r
-\r
-//\r
-// Constants and Structure definitions for "Get User Payload Access" command to follow here\r
-//\r
-\r
-//\r
-// Definitions for Get Channel Payload Support command\r
-//\r
-#define IPMI_APP_GET_CHANNEL_PAYLOAD_SUPPORT 0x4E\r
-\r
-//\r
-// Constants and Structure definitions for "Get Channel Payload Support" command to follow here\r
-//\r
-\r
-//\r
-// Definitions for Get Channel Payload Version command\r
-//\r
-#define IPMI_APP_GET_CHANNEL_PAYLOAD_VERSION 0x4F\r
-\r
-//\r
-// Constants and Structure definitions for "Get Channel Payload Version" command to follow here\r
-//\r
-\r
-//\r
-// Definitions for Get Channel OEM Payload Info command\r
-//\r
-#define IPMI_APP_GET_CHANNEL_OEM_PAYLOAD_INFO 0x50\r
-\r
-//\r
-// Constants and Structure definitions for "Get Channel OEM Payload Info" command to follow here\r
-//\r
-\r
-//\r
-// Definitions for Master Write-Read command\r
-//\r
-#define IPMI_APP_MASTER_WRITE_READ 0x52\r
-\r
-//\r
-// Constants and Structure definitions for "Master Write Read" command to follow here\r
-//\r
-\r
-//\r
-// Definitions for Get Channel Cipher Suites command\r
-//\r
-#define IPMI_APP_GET_CHANNEL_CIPHER_SUITES 0x54\r
-\r
-//\r
-// Constants and Structure definitions for "Get Channel Cipher Suites" command to follow here\r
-//\r
-\r
-//\r
-// Below is Definitions for RMCP+ Support and Payload Commands (Chapter 24, Section 3)\r
-//\r
-\r
-//\r
-// Definitions for Suspend-Resume Payload Encryption command\r
-//\r
-#define IPMI_APP_SUSPEND_RESUME_PAYLOAD_ENCRYPTION 0x55\r
-\r
-//\r
-// Constants and Structure definitions for "Suspend-Resume Payload Encryption" command to follow here\r
-//\r
-\r
-//\r
-// Below is Definitions for IPMI Messaging Support Commands (Chapter 22, Section 25 and 9)\r
-//\r
-\r
-//\r
-// Definitions for Set Channel Security Keys command\r
-//\r
-#define IPMI_APP_SET_CHANNEL_SECURITY_KEYS 0x56\r
-\r
-//\r
-// Constants and Structure definitions for "Set Channel Security Keys" command to follow here\r
-//\r
-\r
-//\r
-// Definitions for Get System Interface Capabilities command\r
-//\r
-#define IPMI_APP_GET_SYSTEM_INTERFACE_CAPABILITIES 0x57\r
-\r
-//\r
-// Constants and Structure definitions for "Get System Interface Capabilities" command to follow here\r
-//\r
-\r
-#pragma pack()\r
-#endif\r