audk/MdePkg/Include/IndustryStandard/IpmiSerial.h

67 lines
1.8 KiB
C

/** @file
IPMI Serial Definitions
Copyright (c) 2024, ARM Limited. All rights reserved.<BR>
SPDX-License-Identifier: BSD-2-Clause-Patent
@par Revision Reference:
- IPMI Specification
Version 2.0, Rev. 1.1
https://www.intel.com/content/www/us/en/products/docs/servers/ipmi/ipmi-second-gen-interface-spec-v2-rev1-1.html
**/
#ifndef IPMI_SERIAL_H_
#define IPMI_SERIAL_H_
///
/// IPMI Serial Escaped Character Definition
/// Section 14.4.1 & 14.4.2
///
#define BASIC_MODE_START 0xA0
#define BASIC_MODE_STOP 0xA5
#define BASIC_MODE_HANDSHAKE 0xA6
#define BASIC_MODE_ESCAPE 0xAA
#define BASIC_MODE_ESC_CHAR 0x1B
#define BASIC_MODE_START_ENCODED_BYTE 0xB0
#define BASIC_MODE_STOP_ENCODED_BYTE 0xB5
#define BASIC_MODE_HANDSHAKE_ENCODED_BYTE 0xB6
#define BASIC_MODE_ESCAPE_ENCODED_BYTE 0xBA
#define BASIC_MODE_ESC_CHAR_ENCODED_BYTE 0x3B
///
/// IPMI Serial State Machine
///
#define MSG_IDLE 0
#define MSG_IN_PROGRESS 1
///
/// IPMI Serial Message Field Definition
/// Section 14.4.3
///
#define IPMI_MAX_LUN 0x3
#define IPMI_MAX_NETFUNCTION 0x3F
#define IPMI_SERIAL_CONNECTION_HEADER_LENGTH 3
#define IPMI_SERIAL_REQUEST_DATA_HEADER_LENGTH 3
#define IPMI_SERIAL_MAXIMUM_PACKET_SIZE_IN_BYTES 256
#define IPMI_SERIAL_MIN_REQUEST_LENGTH 7
#pragma pack (1)
///
/// IPMI Serial Message Field
/// Section 14.4.3
///
typedef struct {
UINT8 ResponderAddress;
UINT8 ResponderNetFnLun;
UINT8 CheckSum;
UINT8 RequesterAddress;
UINT8 RequesterSeqLun;
UINT8 Command;
UINT8 Data[];
} IPMI_SERIAL_HEADER;
#pragma pack ()
#endif /* IPMI_SERIAL_H_ */