summaryrefslogtreecommitdiff
path: root/ManageabilityPkg/ManageabilityPkg.dec
blob: 23ed17f18d385c29c7514c3576d0d8d094b50af8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
## @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

[Includes.Common.Private]
  PrivateInclude

[LibraryClasses.Common.Private]
  ##  @libraryclass Private manageability Transport Library
  #   Manageability Transport Library definitions
  ManageabilityTransportLib|PrivateInclude/Library/ManageabilityTransportLib.h
  ManageabilityTransportLib|PrivateInclude/Library/ManageabilityTransportIpmiLib.h
  ManageabilityTransportLib|PrivateInclude/Library/ManageabilityTransportMctpLib.h

[LibraryClasses]
  ##  @libraryclass Manageability Transport Helper Library
  #   Provide the help functions to use ManageabilityTransportLib
  ManageabilityTransportHelperLib|PrivateInclude/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 is the timeout value for the KCS status check.
  # @Prompt KCS interface status check timeout in microseconds.
  gManageabilityPkgTokenSpaceGuid.PcdKcsStatusCheckTimeout|5000000|UINT64|0x00000005

  ## 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