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