blob: eab71163aa63981cfebcfa6911c389711ecd05bc [file]
## @file
# Manageabilty Package
# This package provides the implementation of transport interfaces and
# protocols of the system manageability industry standard, such as MCTP,
# PLDM, IPMI, and etc. The design concept of this package is to provide a
# flexble way to integrate a desired transport interface to the particular
# manageability protocol. For example, KCS transport interface for either
# IPMI protocol or MCTP protocol, or both. Refer to the Readme.md under
# ManageabilityPkg.
#
# Copyright (C) 2023-2026 Advanced Micro Devices, Inc. All rights reserved.<BR>
# Copyright (c) 2024, Ampere Computing LLC. All rights reserved.<BR>
# Copyright (c) 2024, NVIDIA CORPORATION & AFFILIATES. All rights reserved.
# SPDX-License-Identifier: BSD-2-Clause-Patent
#
##
[Defines]
DEC_SPECIFICATION = 0x0001001d
PACKAGE_NAME = ManageabilityPkg
PACKAGE_GUID = 36310119-4FB2-4BA3-959D-74C16B849F9E
PACKAGE_VERSION = 1.0
[Includes]
Include
[LibraryClasses]
## @libraryclass Manageability Transport Library
# Manageability Transport Library definitions
ManageabilityTransportLib|Include/Library/ManageabilityTransportLib.h
ManageabilityTransportLib|Include/Library/ManageabilityTransportIpmiLib.h
ManageabilityTransportLib|Include/Library/ManageabilityTransportMctpLib.h
## @libraryclass Manageability Transport Helper Library
# Provide the help functions to use ManageabilityTransportLib
ManageabilityTransportHelperLib|Include/Library/ManageabilityTransportHelperLib.h
## @libraryclass PLDM Protocol Library
# PLDM Protocol Library Definitions
PldmProtocolLib|Include/Library/BasePldmProtocolLib.h
## @libraryclass Platform BMC Ready Library
# Provide the help functions to check the BMC state
PlatformBmcReadyLib|Include/Library/PlatformBmcReadyLib.h
[Guids]
gManageabilityPkgTokenSpaceGuid = { 0xBDEFFF48, 0x1C31, 0x49CD, { 0xA7, 0x6D, 0x92, 0x9E, 0x60, 0xDB, 0xB9, 0xF8 } }
# Manageability Transport Interface type
#
# Manageability Transport KCS
gManageabilityTransportKcsGuid = { 0x5A6E64E9, 0xFD47, 0x4086, { 0xAA, 0xB0, 0x7A, 0x5F, 0xD7, 0x6B, 0x02, 0x2E } }
# Manageability Transport SMBUS I2C
gManageabilityTransportSmbusI2cGuid = { 0x5B174658, 0x8263, 0x4CB8, { 0xA0, 0x0F, 0xD6, 0x82, 0xE6, 0xBC, 0x74, 0x93 } }
# Manageability Transport PCI VDM
gManageabilityTransportPciVdmGuid = { 0x388021A7, 0xFB59, 0x4811, { 0x9D, 0xA7, 0xD5, 0x63, 0x7D, 0x04, 0xA7, 0x2F } }
# Manageability Transport MCTP
gManageabilityTransportMctpGuid = { 0x6798448D, 0x1200, 0x4577, { 0x82, 0x50, 0xA9, 0x83, 0xBA, 0x2B, 0x45, 0xD9 } }
# Manageability Transport SERIAL
gManageabilityTransportSerialGuid = { 0xEF437878, 0x34DD, 0x4879, { 0x8F, 0xD3, 0xB6, 0x0A, 0x40, 0x3C, 0xD0, 0x63 } }
# Manageability Protocol Specification
#
# Manageability Protocol IPMI
gManageabilityProtocolIpmiGuid = { 0x36ACA47C, 0xCC80, 0x473B, { 0xAB, 0xEC, 0xF3, 0x98, 0xFF, 0x87, 0x74, 0x5B } }
# Manageability Protocol MCTP
# MCTP is a transport interface but also a protocol that can be transmitted over other transport interfaces.
gManageabilityProtocolMctpGuid = { 0x76FED8F1, 0x0BE5, 0x4269, { 0xA3, 0x1A, 0x38, 0x0F, 0x54, 0xF1, 0xA1, 0x8A } }
# Manageability Protocol PLDM
gManageabilityProtocolPldmGuid = { 0x3958090D, 0x69DD, 0x4868, { 0x9C, 0x41, 0xC9, 0xAC, 0x31, 0xB5, 0x25, 0xC5 } }
# Manageability variable Guid
gManageabilityVariableGuid = { 0xac4cf43f, 0x3f64, 0x416a, { 0x96, 0x1d, 0x03, 0x1b, 0x53, 0x5b, 0x91, 0x5f } }
[Protocols]
gEdkiiPldmProtocolGuid = { 0x60997616, 0xDB70, 0x4B5F, { 0x86, 0xA4, 0x09, 0x58, 0xA3, 0x71, 0x47, 0xB4 } }
gEdkiiPldmSmbiosTransferProtocolGuid = { 0xFA431C3C, 0x816B, 0x4B32, { 0xA3, 0xE0, 0xAD, 0x9B, 0x7F, 0x64, 0x27, 0x2E } }
gEdkiiMctpProtocolGuid = { 0xE93465C1, 0x9A31, 0x4C96, { 0x92, 0x56, 0x22, 0x0A, 0xE1, 0x80, 0xB4, 0x1B } }
## Include/Protocol/IpmiBlobTransfer.h
gEdkiiIpmiBlobTransferProtocolGuid = { 0x05837c75, 0x1d65, 0x468b, { 0xb1, 0xc2, 0x81, 0xaf, 0x9a, 0x31, 0x5b, 0x2c } }
[PcdsFixedAtBuild]
## This value is the MCTP Interface source and destination endpoint ID for transmiting MCTP message.
# @Prompt MCTP source endpoint ID
gManageabilityPkgTokenSpaceGuid.PcdMctpSourceEndpointId|0|UINT8|0x00000001
# @Prompt MCTP destination endpoint ID
gManageabilityPkgTokenSpaceGuid.PcdMctpDestinationEndpointId|0|UINT8|0x00000002
## This is the value of MCTP KCS I/O base address mode
# @Prompt MCTP KCS I/O base address mode
gManageabilityPkgTokenSpaceGuid.PcdMctpKcsMemoryMappedIo|0|BOOLEAN|0x00000003
## This is the value of MCTP KCS I/O base address
# @Prompt MCTP KCS (Memory mapped) I/O base address
gManageabilityPkgTokenSpaceGuid.PcdMctpKcsBaseAddress|0xca2|UINT32|0x00000004
## This value is the PLDM source and destination terminus ID for transmiting PLDM message.
# @Prompt PLDM source terminus ID
gManageabilityPkgTokenSpaceGuid.PcdPldmSourceTerminusId|0|UINT8|0x00000040
# @Prompt PLDM destination terminus ID
gManageabilityPkgTokenSpaceGuid.PcdPldmDestinationEndpointId|0|UINT8|0x00000041
## This is the value of SOL channels supported on platform.
# @Prompt SOL channel number
gManageabilityPkgTokenSpaceGuid.PcdMaxSolChannels|3|UINT8|0x00000100
[PcdsFeatureFlag]
gManageabilityPkgTokenSpaceGuid.PcdManageabilityDxeIpmiEnable|FALSE|BOOLEAN|0x10000001
gManageabilityPkgTokenSpaceGuid.PcdManageabilitySmmIpmiEnable|FALSE|BOOLEAN|0x10000002
gManageabilityPkgTokenSpaceGuid.PcdManageabilityPeiIpmiEnable|FALSE|BOOLEAN|0x10000003
gManageabilityPkgTokenSpaceGuid.PcdManageabilityDxePldmEnable|FALSE|BOOLEAN|0x10000004
gManageabilityPkgTokenSpaceGuid.PcdManageabilityDxeMctpEnable|FALSE|BOOLEAN|0x10000005
gManageabilityPkgTokenSpaceGuid.PcdManageabilityDxePldmSmbiosTransferEnable|FALSE|BOOLEAN|0x10000006
gManageabilityPkgTokenSpaceGuid.PcdManageabilityDxeIpmiFru|FALSE|BOOLEAN|0x10000007
gManageabilityPkgTokenSpaceGuid.PcdManageabilityDxeIpmiOsWdt|FALSE|BOOLEAN|0x10000008
gManageabilityPkgTokenSpaceGuid.PcdManageabilityDxeIpmiSolStatus|FALSE|BOOLEAN|0x10000009
gManageabilityPkgTokenSpaceGuid.PcdManageabilityDxeIpmiBmcElog|FALSE|BOOLEAN|0x1000000A
gManageabilityPkgTokenSpaceGuid.PcdManageabilityDxeIpmiFrb|FALSE|BOOLEAN|0x1000000B
gManageabilityPkgTokenSpaceGuid.PcdManageabilityPeiIpmiFrb|FALSE|BOOLEAN|0x1000000C
gManageabilityPkgTokenSpaceGuid.PcdManageabilityDxeIpmiBmcAcpi|FALSE|BOOLEAN|0x1000000D
gManageabilityPkgTokenSpaceGuid.PcdManageabilityDxeIpmiSmbiosTransferEnable|FALSE|BOOLEAN|0x1000000E
[PcdsDynamic, PcdsDynamicEx]
gManageabilityPkgTokenSpaceGuid.PcdFRB2EnabledFlag|TRUE|BOOLEAN|0x20000001
## This is the timeout value in milliseconds, default set to 360 milliseconds
# @Prompt IPMI Fault Resilient Booting timeout value in milliseconds.
gManageabilityPkgTokenSpaceGuid.PcdFRBTimeoutValue|360|UINT16|0x20000002
## The BlobId of SMBIOS Blob in OpenBMC Phosphor Blob Transfer architecture
gManageabilityPkgTokenSpaceGuid.PcdBmcSmbiosBlobTransferId|"/smbios"|VOID*|0x20000003
## When this PCD is set to TRUE, IpmiSmbiosTransferDxe only sends SMBIOS table to
# BMC when SMBIOS table is changed.
gManageabilityPkgTokenSpaceGuid.PcdSendSmbiosOnChanged|TRUE|BOOLEAN|0x20000004