1 | ## @file
|
---|
2 | # Redfish Package
|
---|
3 | #
|
---|
4 | # Copyright (c) 2019, Intel Corporation. All rights reserved.<BR>
|
---|
5 | # (C) Copyright 2021 Hewlett Packard Enterprise Development LP<BR>
|
---|
6 | # Copyright (c) 2023, American Megatrends International LLC.
|
---|
7 | # Copyright (c) 2023-2024, NVIDIA CORPORATION & AFFILIATES. All rights reserved.
|
---|
8 | # Copyright (C) 2024 Advanced Micro Devices, Inc. All rights reserved.<BR>
|
---|
9 | #
|
---|
10 | # SPDX-License-Identifier: BSD-2-Clause-Patent
|
---|
11 | ##
|
---|
12 |
|
---|
13 | [Defines]
|
---|
14 | DEC_SPECIFICATION = 0x0001001b
|
---|
15 | PACKAGE_NAME = RedfishPkg
|
---|
16 | PACKAGE_GUID = c432b76e-5232-11e7-9010-005056c00008
|
---|
17 | PACKAGE_VERSION = 1.0
|
---|
18 |
|
---|
19 | [Includes]
|
---|
20 | Include
|
---|
21 |
|
---|
22 | [Includes.Common.Private]
|
---|
23 | PrivateInclude/Crt # Private header files for C RTL.
|
---|
24 | Library/JsonLib # Private header files for jansson
|
---|
25 | # configuration files.
|
---|
26 | # - jansson_config.h
|
---|
27 | # - jansson_private_config.h
|
---|
28 | # jansson.h refers to above two configuration
|
---|
29 | # files for building platform jansson library.
|
---|
30 | Library/JsonLib/jansson/src # For referring to jannson.h
|
---|
31 |
|
---|
32 | [LibraryClasses]
|
---|
33 | ## @libraryclass Platform Redfish Host Interface Library
|
---|
34 | # Platform implementation-specific Redfish Host Interface.
|
---|
35 | RedfishPlatformHostInterfaceLib|Include/Library/RedfishHostInterfaceLib.h
|
---|
36 |
|
---|
37 | ## @libraryclass This library provides UCS2 to UTF8 manipulation
|
---|
38 | # functions.
|
---|
39 | #
|
---|
40 | Ucs2Utf8Lib|Include/Library/BaseUcs2Utf8Lib.h
|
---|
41 |
|
---|
42 | ## @libraryclass Platform Redfish Credential Library
|
---|
43 | # Platform implementation-specific Redfish Credential Interface.
|
---|
44 | RedfishPlatformCredentialLib|Include/Library/RedfishCredentialLib.h
|
---|
45 |
|
---|
46 | ## @libraryclass The helper routines to access REST EX service.
|
---|
47 | # This library is only intended to be used by UEFI network stack modules.
|
---|
48 | RestExLib|Include/Library/RestExLib.h
|
---|
49 |
|
---|
50 | ## @libraryclass Provides the library functions based on third party
|
---|
51 | # jansson library to manipulate JSON data structure.
|
---|
52 | #
|
---|
53 | JsonLib|Include/Library/JsonLib.h
|
---|
54 |
|
---|
55 | ## @libraryclass Provides the library functions to encode/decode
|
---|
56 | # Redfish packet.
|
---|
57 | #
|
---|
58 | RedfishContentCodingLib|Include/Library/RedfishContentCodingLib.h
|
---|
59 |
|
---|
60 | ## @libraryclass Redfish Debug Library
|
---|
61 | # Library provides Redfish debug functions.
|
---|
62 | RedfishDebugLib|Include/Library/RedfishDebugLib.h
|
---|
63 |
|
---|
64 | ## @libraryclass Provides the library functions to parse IFR binary data.
|
---|
65 | #
|
---|
66 | HiiUtilityLib|Include/Library/HiiUtilityLib.h
|
---|
67 |
|
---|
68 | ## @libraryclass Provides the library functions to access Redfish Platform
|
---|
69 | # Config protocol.
|
---|
70 | #
|
---|
71 | RedfishPlatformConfigLib|Include/Library/RedfishPlatformConfigLib.h
|
---|
72 |
|
---|
73 | ## @libraryclass Provides the library functions to access Redfish HTTP
|
---|
74 | # protocol.
|
---|
75 | #
|
---|
76 | RedfishHttpLib|Include/Library/RedfishHttpLib.h
|
---|
77 |
|
---|
78 | [LibraryClasses.Common.Private]
|
---|
79 | ## @libraryclass Provides the private C runtime library functions.
|
---|
80 | # CRT library is currently used by edk2 JsonLib (open source
|
---|
81 | # jansson project) and edk2 RedfishLib (libredfish open source
|
---|
82 | # project).
|
---|
83 | RedfishCrtLib|Include/Library/RedfishCrtLib.h
|
---|
84 |
|
---|
85 | ## @libraryclass Redfish Helper Library
|
---|
86 | # Library provides Redfish helper functions.
|
---|
87 | RedfishLib|Include/Library/RedfishLib.h
|
---|
88 |
|
---|
89 | [Protocols]
|
---|
90 | ## Include/Protocol/EdkIIRedfishCredential.h
|
---|
91 | gEdkIIRedfishCredentialProtocolGuid = { 0x8804377, 0xaf7a, 0x4496, { 0x8a, 0x7b, 0x17, 0x59, 0x0, 0xe9, 0xab, 0x46 } }
|
---|
92 |
|
---|
93 | ## Include/Protocol/Edk2RedfishConfigHandler.h
|
---|
94 | gEdkIIRedfishConfigHandlerProtocolGuid = { 0xbc0fe6bb, 0x2cc9, 0x463e, { 0x90, 0x82, 0xfa, 0x11, 0x76, 0xfc, 0x67, 0xde } }
|
---|
95 |
|
---|
96 | ## Include/Protocol/EdkIIRedfishPlatformConfig.h
|
---|
97 | gEdkIIRedfishPlatformConfigProtocolGuid = { 0X4D94A7C7, 0X4CE4, 0X4A84, { 0X88, 0XC1, 0X33, 0X0C, 0XD4, 0XA3, 0X47, 0X67 } }
|
---|
98 |
|
---|
99 | # Redfish Host Interface ready notification protocol
|
---|
100 | gEdkIIRedfishHostInterfaceReadyProtocolGuid = { 0xC3F6D062, 0x3D38, 0x4EA4, { 0x92, 0xB1, 0xE8, 0xF8, 0x02, 0x27, 0x63, 0xDF } }
|
---|
101 |
|
---|
102 | ## Include/Protocol/EdkIIRedfishHttpProtocol.h
|
---|
103 | gEdkIIRedfishHttpProtocolGuid = { 0x58a0f47e, 0xf45f, 0x4d44, { 0x89, 0x5b, 0x2a, 0xfe, 0xb0, 0x80, 0x15, 0xe2 } }
|
---|
104 |
|
---|
105 | [Guids]
|
---|
106 | gEfiRedfishPkgTokenSpaceGuid = { 0x4fdbccb7, 0xe829, 0x4b4c, { 0x88, 0x87, 0xb2, 0x3f, 0xd7, 0x25, 0x4b, 0x85 }}
|
---|
107 |
|
---|
108 | # Redfish variable guid
|
---|
109 | gEfiRedfishVariableGuid = { 0x85ef8dd3, 0xe606, 0x4b89, { 0x8b, 0xbd, 0x93, 0xbf, 0x5c, 0xbe, 0x1c, 0x18 } }
|
---|
110 |
|
---|
111 | [PcdsFixedAtBuild, PcdsPatchableInModule]
|
---|
112 | #
|
---|
113 | # This PCD is the UEFI device path which is used as the Redfish host interface.
|
---|
114 | #
|
---|
115 | gEfiRedfishPkgTokenSpaceGuid.PcdRedfishRestExServiceDevicePath|{0x0}|REST_EX_SERVICE_DEVICE_PATH_DATA|0x00001000 {
|
---|
116 | <HeaderFiles>
|
---|
117 | Pcd/RestExServiceDevicePath.h
|
---|
118 | <Packages>
|
---|
119 | MdePkg/MdePkg.dec
|
---|
120 | MdeModulePkg/MdeModulePkg.dec
|
---|
121 | RedfishPkg/RedfishPkg.dec
|
---|
122 | }
|
---|
123 | #
|
---|
124 | # This PCD indicates the EFI REST EX access mode to Redfish service.
|
---|
125 | # Default is set to out of band access.
|
---|
126 | #
|
---|
127 | gEfiRedfishPkgTokenSpaceGuid.PcdRedfishRestExServiceAccessModeInBand|FALSE|BOOLEAN|0x00001001
|
---|
128 | #
|
---|
129 | # This PCD indicates the access mode EFI Discover protocol uses to look for the proper EFI REST EX
|
---|
130 | # protocol instance.
|
---|
131 | #
|
---|
132 | gEfiRedfishPkgTokenSpaceGuid.PcdRedfishDiscoverAccessModeInBand|FALSE|BOOLEAN|0x00001002
|
---|
133 | #
|
---|
134 | # This PCD indicates if the EFI REST EX sends chunk request to Redfish service.
|
---|
135 | # Default is set to non chunk mode.
|
---|
136 | #
|
---|
137 | gEfiRedfishPkgTokenSpaceGuid.PcdRedfishRestExChunkRequestMode|FALSE|BOOLEAN|0x00001003
|
---|
138 | #
|
---|
139 | # This PCD indicates if the EFI REST EX adds Expect header to the POST, PATCH, PUT requests to Redfish service.
|
---|
140 | # Default is set to not add.
|
---|
141 | #
|
---|
142 | gEfiRedfishPkgTokenSpaceGuid.PcdRedfishRestExAddingExpect|FALSE|BOOLEAN|0x00001004
|
---|
143 | #
|
---|
144 | # Use PCD to declare the Redfish host nmae becasue there is no
|
---|
145 | # specification for that.
|
---|
146 | #
|
---|
147 | gEfiRedfishPkgTokenSpaceGuid.PcdRedfishHostName|"Redfish service"|VOID*|0x00001005
|
---|
148 | #
|
---|
149 | # Use PCD to declare the Redfish service UUID becasue there is no
|
---|
150 | # specification for that.
|
---|
151 | #
|
---|
152 | gEfiRedfishPkgTokenSpaceGuid.PcdRedfishServiceUuid|L"00000000-0000-0000-0000-000000000000"|VOID*|0x00001006
|
---|
153 | # Use PCD to declare the Redfish service port, default set to port 443.
|
---|
154 | # Platform can overide this value in platform DSC file.
|
---|
155 | #
|
---|
156 | gEfiRedfishPkgTokenSpaceGuid.PcdRedfishServicePort|443|UINT16|0x00001007
|
---|
157 | #
|
---|
158 | # This PCD indicates that if BMC bootstrap credential service will be disabled by BIOS or not.
|
---|
159 | #
|
---|
160 | gEfiRedfishPkgTokenSpaceGuid.PcdRedfishDisableBootstrapCredentialService|FALSE|BOOLEAN|0x00001008
|
---|
161 | #
|
---|
162 | # The EFI_REST_EX_HTTP_CONFIG_DATA.SendReceiveTimeout value that RedfishDiscoverDxe driver
|
---|
163 | # set to EFI_REST_EX_PROTOCOL.
|
---|
164 | #
|
---|
165 | gEfiRedfishPkgTokenSpaceGuid.PcdRedfishSendReceiveTimeout|5000|UINT32|0x00001009
|
---|
166 | #
|
---|
167 | # This PCD string is introduced for platform developer to set the encoding method supported by BMC Redfish.
|
---|
168 | # Currently only "None" and "gzip" are supported.
|
---|
169 | #
|
---|
170 | gEfiRedfishPkgTokenSpaceGuid.PcdRedfishServiceContentEncoding|"None"|VOID*|0x0000100A
|
---|
171 | #
|
---|
172 | # Use below PCDs to control Redfhs HTTP protocol.
|
---|
173 | #
|
---|
174 | ## The number of retry when HTTP GET request failed. If the value is 0, there is no retry enabled.
|
---|
175 | gEfiRedfishPkgTokenSpaceGuid.PcdHttpGetRetry|0|UINT16|0x0000100B
|
---|
176 | ## The number of retry when HTTP PUT request failed. If the value is 0, there is no retry enabled.
|
---|
177 | gEfiRedfishPkgTokenSpaceGuid.PcdHttpPutRetry|0|UINT16|0x0000100C
|
---|
178 | ## The number of retry when HTTP PATCH request failed. If the value is 0, there is no retry enabled.
|
---|
179 | gEfiRedfishPkgTokenSpaceGuid.PcdHttpPatchRetry|0|UINT16|0x0000100D
|
---|
180 | ## The number of retry when HTTP POST request failed. If the value is 0, there is no retry enabled.
|
---|
181 | gEfiRedfishPkgTokenSpaceGuid.PcdHttpPostRetry|0|UINT16|0x0000100E
|
---|
182 | ## The number of retry when HTTP DELETE request failed. If the value is 0, there is no retry enabled.
|
---|
183 | gEfiRedfishPkgTokenSpaceGuid.PcdHttpDeleteRetry|0|UINT16|0x0000100F
|
---|
184 | ## The number of second to wait before driver retry HTTP request. If the value is 0, there is no wait before next retry.
|
---|
185 | gEfiRedfishPkgTokenSpaceGuid.PcdHttpRetryWaitInSecond|1|UINT16|0x00001010
|
---|
186 | ## This is used to disable Redfish HTTP cache function and every request will be sent to Redfish service.
|
---|
187 | gEfiRedfishPkgTokenSpaceGuid.PcdHttpCacheDisabled|FALSE|BOOLEAN|0x00001011
|
---|
188 | #
|
---|
189 | # Redfish debug catagories
|
---|
190 | # To enable the debug message for the entire edk2 Redfish implementation, below PCDs must be set.
|
---|
191 | # DEBUG_MANAGEABILITY must be set PcdDebugPrintErrorLevel.
|
---|
192 | #
|
---|
193 | # 0x0000000000000001 RedfishPlatformConfigDxe driver debug enabled.
|
---|
194 | #
|
---|
195 | gEfiRedfishPkgTokenSpaceGuid.PcdRedfishDebugCategory|0|UINT64|0x00001012
|
---|
196 | #
|
---|
197 | # Redfish RedfishPlatformConfigDxe Debug Properties
|
---|
198 | # 0x00000001 x-UEFI-redfish string database message enabled
|
---|
199 | # 0x00000002 Debug Message for dumping formset
|
---|
200 | # 0x00000004 Debug Message for x-UEFI-redfish searching result
|
---|
201 | # 0x00000008 Debug Message for x-UEFI-redfish Regular Expression searching result
|
---|
202 | #
|
---|
203 | gEfiRedfishPkgTokenSpaceGuid.PcdRedfishPlatformConfigDebugProperty|0|UINT32|0x00001013
|
---|
204 | #
|
---|
205 | # RedfishPlatformConfigDxe feature enablement
|
---|
206 | # 0x00000001 Enable building Redfish Attribute Registry menu path.
|
---|
207 | # 0x00000002 Allow supressed HII option to be exposed on Redfish.
|
---|
208 | #
|
---|
209 | # Redfish RedfishPlatformConfigDxe feature Properties
|
---|
210 | gEfiRedfishPkgTokenSpaceGuid.PcdRedfishPlatformConfigFeatureProperty|0|UINT32|0x00001014
|
---|