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
138
139
140
141
142
143
144
|
## @file
# Redfish Package
#
# Copyright (c) 2019, Intel Corporation. All rights reserved.<BR>
# (C) Copyright 2021 Hewlett Packard Enterprise Development LP<BR>
# Copyright (c) 2023, American Megatrends International LLC.
# Copyright (c) 2023, NVIDIA CORPORATION & AFFILIATES. All rights reserved.
#
# SPDX-License-Identifier: BSD-2-Clause-Patent
##
[Defines]
DEC_SPECIFICATION = 0x0001001b
PACKAGE_NAME = RedfishPkg
PACKAGE_GUID = c432b76e-5232-11e7-9010-005056c00008
PACKAGE_VERSION = 1.0
[Includes]
Include
[Includes.Common.Private]
PrivateInclude/Crt # Private header files for C RTL.
Library/JsonLib # Private header files for jansson
# configuration files.
# - jansson_config.h
# - jansson_private_config.h
# jansson.h refers to above two configuration
# files for building platform jansson library.
Library/JsonLib/jansson/src # For referring to jannson.h
[LibraryClasses]
## @libraryclass Platform Redfish Host Interface Library
# Platform implementation-specific Redfish Host Interface.
RedfishPlatformHostInterfaceLib|Include/Library/RedfishHostInterfaceLib.h
## @libraryclass This library provides UCS2 to UTF8 manipulation
# functions.
#
Ucs2Utf8Lib|Include/Library/BaseUcs2Utf8Lib.h
## @libraryclass Platform Redfish Credential Library
# Platform implementation-specific Redfish Credential Interface.
RedfishPlatformCredentialLib|Include/Library/RedfishCredentialLib.h
## @libraryclass The helper routines to access REST EX service.
# This library is only intended to be used by UEFI network stack modules.
RestExLib|Include/Library/RestExLib.h
## @libraryclass Provides the library functions based on third party
# jansson library to manipulate JSON data structure.
#
JsonLib|Include/Library/JsonLib.h
## @libraryclass Provides the library functions to encode/decode
# Redfish packet.
#
RedfishContentCodingLib|Include/Library/RedfishContentCodingLib.h
## @libraryclass Redfish Debug Library
# Library provides Redfish debug functions.
RedfishDebugLib|Include/Library/RedfishDebugLib.h
## @libraryclass Provides the library functions to parse IFR binary data.
#
HiiUtilityLib|Include/Library/HiiUtilityLib.h
## @libraryclass Provides the library functions to access Redfish Platform
# Config protocol.
#
RedfishPlatformConfigLib|Include/Library/RedfishPlatformConfigLib.h
[LibraryClasses.Common.Private]
## @libraryclass Provides the private C runtime library functions.
# CRT library is currently used by edk2 JsonLib (open source
# jansson project) and edk2 RedfishLib (libredfish open source
# project).
RedfishCrtLib|Include/Library/RedfishCrtLib.h
## @libraryclass Redfish Helper Library
# Library provides Redfish helper functions.
RedfishLib|Include/Library/RedfishLib.h
[Protocols]
## Include/Protocol/EdkIIRedfishCredential.h
gEdkIIRedfishCredentialProtocolGuid = { 0x8804377, 0xaf7a, 0x4496, { 0x8a, 0x7b, 0x17, 0x59, 0x0, 0xe9, 0xab, 0x46 } }
## Include/Protocol/Edk2RedfishConfigHandler.h
gEdkIIRedfishConfigHandlerProtocolGuid = { 0xbc0fe6bb, 0x2cc9, 0x463e, { 0x90, 0x82, 0xfa, 0x11, 0x76, 0xfc, 0x67, 0xde } }
## Include/Protocol/EdkIIRedfishPlatformConfig.h
gEdkIIRedfishPlatformConfigProtocolGuid = { 0X4D94A7C7, 0X4CE4, 0X4A84, { 0X88, 0XC1, 0X33, 0X0C, 0XD4, 0XA3, 0X47, 0X67 } }
[Guids]
gEfiRedfishPkgTokenSpaceGuid = { 0x4fdbccb7, 0xe829, 0x4b4c, { 0x88, 0x87, 0xb2, 0x3f, 0xd7, 0x25, 0x4b, 0x85 }}
# Redfish variable guid
gEfiRedfishVariableGuid = { 0x85ef8dd3, 0xe606, 0x4b89, { 0x8b, 0xbd, 0x93, 0xbf, 0x5c, 0xbe, 0x1c, 0x18 } }
[PcdsFixedAtBuild, PcdsPatchableInModule]
#
# This PCD is the UEFI device path which is used as the Redfish host interface.
#
gEfiRedfishPkgTokenSpaceGuid.PcdRedfishRestExServiceDevicePath|{0x0}|REST_EX_SERVICE_DEVICE_PATH_DATA|0x00001000 {
<HeaderFiles>
Pcd/RestExServiceDevicePath.h
<Packages>
MdePkg/MdePkg.dec
MdeModulePkg/MdeModulePkg.dec
RedfishPkg/RedfishPkg.dec
}
#
# This PCD indicates the EFI REST EX access mode to Redfish service.
# Default is set to out of band access.
#
gEfiRedfishPkgTokenSpaceGuid.PcdRedfishRestExServiceAccessModeInBand|FALSE|BOOLEAN|0x00001001
#
# This PCD indicates the access mode EFI Discover protocol uses to look for the proper EFI REST EX
# protocol instance.
#
gEfiRedfishPkgTokenSpaceGuid.PcdRedfishDiscoverAccessModeInBand|FALSE|BOOLEAN|0x00001002
#
# This PCD indicates if the EFI REST EX sends chunk request to Redfish service.
# Default is set to non chunk mode.
#
gEfiRedfishPkgTokenSpaceGuid.PcdRedfishRestExChunkRequestMode|FALSE|BOOLEAN|0x00001003
#
# This PCD indicates if the EFI REST EX adds Expect header to the POST, PATCH, PUT requests to Redfish service.
# Default is set to not add.
#
gEfiRedfishPkgTokenSpaceGuid.PcdRedfishRestExAddingExpect|FALSE|BOOLEAN|0x00001004
#
# Use PCD to declare the Redfish host nmae becasue there is no
# specification for that.
#
gEfiRedfishPkgTokenSpaceGuid.PcdRedfishHostName|"Redfish service"|VOID*|0x00001005
#
# Use PCD to declare the Redfish service UUID becasue there is no
# specification for that.
#
gEfiRedfishPkgTokenSpaceGuid.PcdRedfishServiceUuid|L"00000000-0000-0000-0000-000000000000"|VOID*|0x00001006
#
# This PCD indicates that if BMC bootstrap credential service will be disabled by BIOS or not.
#
gEfiRedfishPkgTokenSpaceGuid.PcdRedfishDisableBootstrapCredentialService|FALSE|BOOLEAN|0x00001007
|