From 8322634459ac602d9fbcca30e96b24ff098acb3c Mon Sep 17 00:00:00 2001 From: Leif Lindholm Date: Wed, 3 May 2017 14:48:15 +0100 Subject: Platform,Silicon: Import Hisilicon D02,D03,D05 and HiKey Imported from commit efd798c1eb of https://git.linaro.org/uefi/OpenPlatformPkg.git Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Leif Lindholm --- .../Include/Protocol/IpmiInterfaceProtocol.h | 99 ++++++++++++++++++++++ 1 file changed, 99 insertions(+) create mode 100644 Silicon/Hisilicon/Include/Protocol/IpmiInterfaceProtocol.h (limited to 'Silicon/Hisilicon/Include/Protocol/IpmiInterfaceProtocol.h') diff --git a/Silicon/Hisilicon/Include/Protocol/IpmiInterfaceProtocol.h b/Silicon/Hisilicon/Include/Protocol/IpmiInterfaceProtocol.h new file mode 100644 index 0000000000..c5f0f8551c --- /dev/null +++ b/Silicon/Hisilicon/Include/Protocol/IpmiInterfaceProtocol.h @@ -0,0 +1,99 @@ +/** @file +* +* Copyright (c) 2016, Hisilicon Limited. All rights reserved. +* Copyright (c) 2016, Linaro Limited. All rights reserved. +* +* 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_INTERFACE_PROTOCOL_H_ +#define _IPMI_INTERFACE_PROTOCOL_H_ + +#define IPMI_INTERFACE_PROTOCOL_GUID \ + {0xa37e200e, 0xda90, 0x473b, {0x8b, 0xb5, 0x1d, 0x7b, 0x11, 0xba, 0x32, 0x33}} + +typedef struct _IPMI_INTERFACE_PROTOCOL IPMI_INTERFACE_PROTOCOL; + +// +// Structure to store IPMI Network Function, LUN and command +// +typedef struct { + UINT8 Lun : 2; + UINT8 NetFn : 6; + UINT8 Cmd; +} IPMI_CMD_HEADER; + +// +// System Interface Type +// +typedef enum { + IPMI_SYSTEM_INTERFACE_UNKNOWN, + IPMI_SYSTEM_INTERFACE_KCS, + IPMI_SYSTEM_INTERFACE_SMIC, + IPMI_SYSTEM_INTERFACE_BT, + IPMI_SYSTEM_INTERFACE_SSIF, + IPMI_SYSTEM_INTERFACE_MAX_TYPE +} IPMI_SYSTEM_INTERFACE_TYPE; + +// +// System Interface Address Type +// +typedef enum { + IPMI_MEMORY, + IPMI_IO, + IPMI_MAX_INTERFACE_ADDRESS_TYPE +} IPMI_INTERFACE_ADDRESS_TYPE; + +typedef +EFI_STATUS +(EFIAPI *IPMI_INTERFACE_PROTOCOL_EXECUTE_IPMI_CMD) ( + IN IPMI_INTERFACE_PROTOCOL *This, + IN IPMI_CMD_HEADER Request, + IN VOID *SendData OPTIONAL, + IN UINT8 SendLength, + OUT VOID *RecvData, + OUT UINT8 *RecvLength, + OUT UINT16 *StatusCodes OPTIONAL +); +typedef +IPMI_SYSTEM_INTERFACE_TYPE +(EFIAPI *IPMI_INTERFACE_PROTOCOL_GET_IPMI_INTERFACE_TYPE) ( + IN IPMI_INTERFACE_PROTOCOL *This +); +typedef +UINT16 +(EFIAPI *IPMI_INTERFACE_PROTOCOL_GET_IPMI_BASE_ADDRESS) ( + IN IPMI_INTERFACE_PROTOCOL *This +); +typedef +IPMI_INTERFACE_ADDRESS_TYPE +(EFIAPI *IPMI_INTERFACE_PROTOCOL_GET_IPMI_BASE_ADDRESS_TYPE) ( + IN IPMI_INTERFACE_PROTOCOL *This +); +typedef +UINT8 +(EFIAPI *IPMI_INTERFACE_PROTOCOL_GET_IPMI_VERSION) ( + IN IPMI_INTERFACE_PROTOCOL *This +); + +// +// Structure of IPMI_INTERFACE_PROTOCOL +// +struct _IPMI_INTERFACE_PROTOCOL{ + IPMI_INTERFACE_PROTOCOL_EXECUTE_IPMI_CMD ExecuteIpmiCmd; + IPMI_INTERFACE_PROTOCOL_GET_IPMI_INTERFACE_TYPE GetIpmiInterfaceType; + IPMI_INTERFACE_PROTOCOL_GET_IPMI_BASE_ADDRESS GetIpmiBaseAddress; + IPMI_INTERFACE_PROTOCOL_GET_IPMI_BASE_ADDRESS_TYPE GetIpmiBaseAddressType; + IPMI_INTERFACE_PROTOCOL_GET_IPMI_VERSION GetIpmiVersion; +} ; + +extern EFI_GUID gIpmiInterfaceProtocolGuid; + +#endif -- cgit v1.2.3