UEFI_Redfish branch is to develop the UEFI Redfish feature. The code base of development is based on the release of edk2-stable201811 tag. Please refer to the patch of Readme.md to get the detailed feature introduction.
Note: The branch will be created by the end of Jan 28th if no objection. Cc: Rothman Michael A <michael.a.roth...@intel.com> Cc: Kinney Michael D <michael.d.kin...@intel.com> Cc: Li Ruth <ruth...@intel.com> Cc: Ye Ting <ting...@intel.com> Cc: Fu Siyuan <siyuan...@intel.com> Cc: Wang Fan <fan.w...@intel.com> Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Wu Jiaxin <jiaxin...@intel.com> --- Readme.md | 114 ++++++++++++++++++++++++++++++++++++++++-------------- 1 file changed, 85 insertions(+), 29 deletions(-) diff --git a/Readme.md b/Readme.md index 1ef0780ee0..b9b5ab38e2 100644 --- a/Readme.md +++ b/Readme.md @@ -1,29 +1,85 @@ -# EDK II Project - -A modern, feature-rich, cross-platform firmware development environment -for the UEFI and PI specifications from www.uefi.org. - -Contributions to the EDK II open source project are covered by the -[TianoCore Contribution Agreement 1.1](Contributions.txt) - -The majority of the content in the EDK II open source project uses a -[BSD 2-Clause License](License.txt). The EDK II open source project contains -the following components that are covered by additional licenses: -* [AppPkg/Applications/Python/Python-2.7.2/Tools/pybench](AppPkg/Applications/Python/Python-2.7.2/Tools/pybench/LICENSE) -* [AppPkg/Applications/Python/Python-2.7.2](AppPkg/Applications/Python/Python-2.7.2/LICENSE) -* [AppPkg/Applications/Python/Python-2.7.10](AppPkg/Applications/Python/Python-2.7.10/LICENSE) -* [BaseTools/Source/C/BrotliCompress](BaseTools/Source/C/BrotliCompress/LICENSE) -* [MdeModulePkg/Library/BrotliCustomDecompressLib](MdeModulePkg/Library/BrotliCustomDecompressLib/LICENSE) -* [OvmfPkg](OvmfPkg/License.txt) -* [CryptoPkg/Library/OpensslLib/openssl](CryptoPkg/Library/OpensslLib/openssl/LICENSE) - -The EDK II Project is composed of packages. The maintainers for each package -are listed in [Maintainers.txt](Maintainers.txt). - -# Resources -* [TianoCore](http://www.tianocore.org) -* [EDK II](https://github.com/tianocore/tianocore.github.io/wiki/EDK-II) -* [Getting Started with EDK II](https://github.com/tianocore/tianocore.github.io/wiki/Getting-Started-with-EDK-II) -* [Mailing Lists](https://github.com/tianocore/tianocore.github.io/wiki/Mailing-Lists) -* [TianoCore Bugzilla](https://bugzilla.tianocore.org) -* [How To Contribute](https://github.com/tianocore/tianocore.github.io/wiki/How-To-Contribute) +This branch is used to develop the **UEFI Redfish Feature**. The code base of development is based on the release of **edk2-stable201811** tag. + +The branch owner: +Fu Siyuan <siyuan...@intel.com>, Ye Ting <ting...@intel.com>, Wang Fan <fan.w...@intel.com>, Wu Jiaxin <jiaxin...@intel.com> + +## Introduction +UEFI Redfish is an efficient and secure solution for end users to remote control and configure UEFI pre-OS environment by leveraging the RESTful API. It's simple for end users to access the data from UEFI firmware defined in JSON format. + +One of the design goals for UEFI Redfish solution is to provide a scalable implementation which allow users to easily add/remove/modify each independent Redfish configure features (RedfishBiosDxe & RedfishBootInfoDxe). This is done by extracting the generic logic to a single UEFI driver model driver (RedfishConfigDxe), and several library instances (DxeRedfishLib & BaseJsonLib). + +#### Supported Features + * Protocols + * EFI RestEx Service Binding Protocol + * EFI RestEx Protocol + * Redfish ConfigHandler Protocol + * Redfish Credential Protocol + + * Configuration Items via UEFI Redfish + * [ISCSI Boot Keywords](http://www.uefi.org/confignamespace). + * HII Opcodes/Questions marked with REST_SYTLE flag or in REST_SYTLE formset. + * BootOrder/BootNext variables. + + * Redfish Schemas + * [AttributeRegistry](https://redfish.dmtf.org/schemas/v1/AttributeRegistry.v1_1_0.json) + * [ComputerSystemCollection](https://redfish.dmtf.org/schemas/ComputerSystemCollection.json) + * [ComputerSystem](https://redfish.dmtf.org/schemas/v1/ComputerSystem.v1_5_0.json) + * [Bios](https://redfish.dmtf.org/schemas/v1/Bios.v1_0_2.json) + * [BootOptionCollection](https://redfish.dmtf.org/schemas/BootOptionCollection.json) + * [BootOption](https://redfish.dmtf.org/schemas/BootOption.v1_0_0.json) + + If any additional Redfish Schema or a new version of above Schemas are required to be supported, please send the email to edk2-devel mailing list by following [edk2-satging process](https://github.com/tianocore/edk2-staging). + +#### Related Modules + The following modules are related to UEFI Redfish solution, **RedfishPkg** is the new package to support UEFI Redfish solution: + * **RedfishPkg\RestExDxe\RestExDxe.inf** - UEFI driver to enable standardized RESTful access to resources from UEFI environment. + + * **RedfishPkg\Library\DxeRedfishLib** - Library to Create/Read/Update/Delete (CRUD) resources and provide basic query abilities by using [URI/RedPath](https://github.com/DMTF/libredfish). + + * **RedfishPkg\Library\BaseJsonLib** - Library to encode/decode JSON data. + + * **RedfishPkg\RedfishConfigDxe\RedfishConfigDxe.inf** - UEFI driver to execute registered Redfish Configuration Handlers: + + * **RedfishPkg\Features\RedfishBiosDxe\RedfishBiosDxe.inf** - DXE driver to register Redfish configuration handler to process "Bios" schema and "AttributeRegistry" schema. + + * **RedfishPkg\Features\Features\RedfishBootInfoDxe\RedfishBootInfoDxe.inf** - DXE driver to register Redfish configuration handler to process Boot property defined in "ComputerSystem" schema. + + * Platform Components for NT32: + * **Nt32Pkg\RedfishPlatformDxe\RedfishPlatformDxe.inf** - UEFI sample platform driver for NT32 to fill the SMBIOS table 42 and publish Redfish Credential info. + + * **Nt32Pkg\Application\RedfishPlatformConfig\RedfishPlatformConfig.inf** - UEFI application for NT32 to publish Redfish Host Interface Record. + + * Misc + * BaseTools - VfrCompile changes to support Rest Style Formset/Flag. + + * MdePkg - Headers related to Rest Style Formset/Flag. + + * MdeModulePkg - Extract more general APIs in UefiHiiLib & DxeHttpLib & DxeNetLib. + + * NetworkPkg - 1) UefiPxeBcDxe & HttpBootDxe: Consume new APIs defined in DxeHttpLib & DxeNetLib. 2) HttpDxe: Cross-Subnet support. 3) IScsiDxe: REST Style FORMSET support. + + * Nt32Pkg - 1) Enable UEFI Redfish feature in NT32 platform. 2) Fix TLS build error with CryptoPkg from edk2-stable201811 tag. + + +## Promote to edk2 Trunk +If a subset feature or a bug fix in this staging branch could meet below requirement, it could be promoted to edk2 trunk and removed from this staging branch: +* Meet all edk2 required quality criteria. +* Support both IA32 and X64 Platform. +* Ready for product integration. + +## Timeline +| Time | Event | Related Modules | +|:----:|:-----:|:--------------:| +| 2019.01 | Initial open source release of UEFI Redfish feature. | Refer to "Related Modules" | +|...|...|...| + +## Related Materials +1. DSP0270 - Redfish Host Interface Specification, 1.0.1 + +2. DSP0266 - Redfish Scalable Platforms Management API Specification, 1.5.0 + +3. UEFI Configuration Namespace Registry - http://www.uefi.org/confignamespace + +4. Redfish Schemas - https://redfish.dmtf.org/schemas/v1/ + +5. UEFI Specification - http://uefi.org/specifications -- 2.17.1.windows.2 _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel