From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by mx.groups.io with SMTP id smtpd.web11.6705.1580203010367634953 for ; Tue, 28 Jan 2020 01:16:50 -0800 Authentication-Results: mx.groups.io; dkim=missing; spf=pass (domain: intel.com, ip: 192.55.52.43, mailfrom: michael.a.kubacki@intel.com) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga005.jf.intel.com ([10.7.209.41]) by fmsmga105.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 28 Jan 2020 01:16:45 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.70,373,1574150400"; d="scan'208";a="401602612" Received: from makuback-desk1.amr.corp.intel.com ([10.7.159.162]) by orsmga005.jf.intel.com with ESMTP; 28 Jan 2020 01:16:45 -0800 From: "Kubacki, Michael A" To: devel@edk2.groups.io Cc: Sai Chaganty , Nate DeSimone Subject: [tianocore-docs][PATCH V1 1/1] edk2-MinimumPlatformSpecification: Advanced Feature section updates Date: Tue, 28 Jan 2020 01:16:32 -0800 Message-Id: <20200128091632.13608-1-michael.a.kubacki@intel.com> X-Mailer: git-send-email 2.16.2.windows.1 This change makes the following updates to Section 8 - Stage VI Advanced Feature Selection: * Remove the advanced feature template * This is no longer provided in the specification but maintained in the Readme.md file in edk2-platforms/Features/Intel/Readme.md * Remove the following advanced feature examples: 1. Network stack feature 2. Signed capsule update feature * These examples are maintained in edk2-platforms/Features/Intel * Update the Advanced Feature description in Section 8.1 to align with the description in edk2-platforms/Features/Intel/Readme.md Cc: Sai Chaganty Cc: Nate DeSimone Signed-off-by: Michael Kubacki --- 8_stage_6_advanced_feature_selection/85_advanced_feature_template.md | 54 -------- 8_stage_6_advanced_feature_selection/86_network_stack_feature_example.md | 136 ------------------- 8_stage_6_advanced_feature_selection/87_signed_capsule_update_enabling_example.md | 137 -------------------- 8_stage_6_advanced_feature_selection/README.md | 113 ++++------------ SUMMARY.md | 3 - 5 files changed, 25 insertions(+), 418 deletions(-) diff --git a/8_stage_6_advanced_feature_selection/85_advanced_feature_template.md b/8_stage_6_advanced_feature_selection/85_advanced_feature_template.md deleted file mode 100644 index 428c731..0000000 --- a/8_stage_6_advanced_feature_selection/85_advanced_feature_template.md +++ /dev/null @@ -1,54 +0,0 @@ - - -## 8.5 Advanced Feature Template - -Define an advanced feature using the following template. The template is -roughly equivalent to preceding stage description sections within this -document, with the addition of common optimization opportunities. This -template should be included in feature review and placed in the feature -root directory as README.md. - -| `Overview` | `An overview of the feature` | -| ------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| **Firmware Volumes** | The binary containers needed for the feature. | -| **Modules** | The EDK II component binaries and static libraries required. | -| **Required Functions** | Functions that are useful for understanding, porting, or debugging the feature and how these key functions are integrated into the Stage I-V required functions. | -| **Configuration** | The configurable parameters for a given feature. | -| **Data Flows** | The architecturally defined data structures and flows for a given feature. | -| **Control Flows** | Key control flows for the feature. | -| **Build Files** | The DSC/FDF for integrating the feature. | -| **Test Point Results** | The test that can verify porting is complete for the feature. | -| **Functional Exit Criteria** | The testable functionality for the feature. | -| **Feature Enabling Checklist** | The required activities to achieve desired functionality for the feature. | -| **Common Optimizations** | Common size or performance tuning options for this feature. | - -###### Table 70 Advanced Feature Template diff --git a/8_stage_6_advanced_feature_selection/86_network_stack_feature_example.md b/8_stage_6_advanced_feature_selection/86_network_stack_feature_example.md deleted file mode 100644 index a4d6ddd..0000000 --- a/8_stage_6_advanced_feature_selection/86_network_stack_feature_example.md +++ /dev/null @@ -1,136 +0,0 @@ - - -## 8.6 Network Stack Feature Example -*** -**Note:** The network stack example is presently incomplete and -no longer accurately represents the latest vision for advanced features. -This section will be updated to provide more accurate examples in the future. -*** -### 8.6.1 Overview - -The UEFI network stack supports IP4 and IP6, UDP, TCP/IP, MFTP, iSCSI, ARP, -DHCP, and PXE. Refer to the UEFI specification for related interfaces. More -details on UEFI networking can be found online such as the following resource -[UEFI Driver Network Boot Devices Guide](https://www.intel.com/content/dam/doc/guide/uefi-driver-networkboot-devices-guide.pdf). - -### 8.6.2 Firmware Volumes - -| `Name` | `Content` | `Compressed` | `Parent FV` | -| --------- | --------- | ------------ | ----------- | -| FvNetwork | Network | Yes | FvAdvanced | - -#### 8.6.3 Modules - -The network stack can be considered a relatively complicated UEFI Driver Model -compliant feature stack. The majority of the modules are board and silicon -independent so no porting is expected for the following components. - -##### 8.6.3.1 UEFI Components (DXE) - -| `Item` | `Producing Package` | `Libraries Consumed` | -| ------------------ | ------------------- | -------------------- | -| SnpDxe.inf | MdeModulePkg | | -| DcpDxe.inf | MdeModulePkg | | -| MnpDxe.inf | MdeModulePkg | | -| VlanConfigDxe.inf | MdeModulePkg | | -| ArpDxe.inf | MdeModulePkg | | -| Dhcp4Dxe.inf | MdeModulePkg | | -| Ip4Dxe.inf | MdeModulePkg | | -| Mtftp4Dxe.inf | MdeModulePkg | | -| Tcp4Dxe.inf | MdeModulePkg | | -| Udp4Dxe.inf | MdeModulePkg | | -| UefiPxeBcDxe.inf | NetworkPkg | | -| IScsiDxe.inf | MdeModulePkg | | -| Ip6Dxe.inf | NetworkPkg | | -| TcpDxe.inf | NetworkPkg | | -| Udp6Dxe.inf | NetworkPkg | | -| Dhcp6Dxe.inf | NetworkPkg | | -| Mtftp6Dxe.inf | NetworkPkg | | -| UndiRuntimeDxe.inf | OptionRomPkg | | - -##### 8.6.3.2 Platform Architecture Libraries - -None - -#### 8.6.4 Required Functions - -None - -### 8.6.5 Configuration - -None. `PcdEfiNetworkSupport` exists to allow user or build to disable network -option ROM dispatch by the PCI Bus driver. That PCD is enabled by default and -is detailed in Common Optimizations. - -### 8.6.6 Data Flows - -None - -### 8.6.7 Control Flows - -None - -### 8.6.8 Build Files - -These are the advanced feature module build files (i.e. INF files) included in -a board to build and include the FvNetwork.fv in the FvAdvanced firmware -volume. - -### 8.6.9 Test Point Results - -There are currently no test points defined for the network stack. - -### 8.6.10 Functional Exit Criteria - -TBD - -### 8.6.11 Feature Enabling Checklist - -TBD - -### 8.6.12 Common Optimizations - -#### 8.6.12.1 Performance - -| `PCD` | `Default` | `Purpose` | -| ---------------------------------------------------- | --------- | -------------------------------------------------------------------------- | -| gEfiMdeModulePkgTokenSpaceGuid.PcdEfiNetworkSupport | TRUE | This causes PciBus driver to skip loading network option ROM if set FALSE. | - -#### 8.6.12.2 Size - -1. Remove IPv4 - -2. Remove PXE - -3. Remove iSCSI - -4. ... diff --git a/8_stage_6_advanced_feature_selection/87_signed_capsule_update_enabling_example.md b/8_stage_6_advanced_feature_selection/87_signed_capsule_update_enabling_example.md deleted file mode 100644 index 9bce739..0000000 --- a/8_stage_6_advanced_feature_selection/87_signed_capsule_update_enabling_example.md +++ /dev/null @@ -1,137 +0,0 @@ - - -## 8.7 Signed Capsule Update Enabling Example -*** -**Note:** The signed capsule update example is presently incomplete and -no longer accurately represents the latest vision for advanced features. -This section will be updated to provide more accurate examples in the future. -*** - -### 8.7.1 Overview - -The Signed Capsule Update stack supports capsule update functionality. Refer -to the UEFI specification for related interfaces. More details on UEFI Signed -Capsule Update can be found online such as the following resource -[A Tour Beyond BIOS - Capsule Update and Recovery in EDK II](https://github.com/tianocoredocs/Docs/raw/master/White_Papers/A_Tour_Beyond_BIOS_Capsule_Update_and_Recovery_in_EDK_II.pdf) - -### 8.7.2 Firmware Volumes - -TBD - -### 8.7.3 Modules - -The signed capsule update stack is a relatively simple feature stack. The -majority of the modules are board and silicon independent so minimal -porting is required. - -#### 8.7.3.1 UEFI Components (DXE) - -The libraries consumed are the subset of libraries required by this -specification. Some libraries are defined in this specification, some are -defined in EDK II documentation. - -| `Item` | `Producing Package` | `Libraries Consumed` | -| ------------------------ | ------------------- | ---------------------- | -| CapsuleRuntime.inf | MdeModulePkg | | -| SystemFirmwareUpdate.inf | SignedCapsulePkg | PlatformFlashAccessLib | - -#### 8.7.3.2 Platform Architecture Libraries - -Board porting will require creation of libraries identified as produced by the -BoardPkg. Depending on the board, there may be existing libraries that are -sufficient for a board, so it is important to assess the utility of existing -library instances when developing board support. - -| `Item` | `API Definition Package` | `Producing Package` | `Description` | -| ------------------------- | ------------------------ | ------------------- | ----------------------------- | -| `PlatformFlashAccessLib` | SignedCapsule Pkg | BoardPkg | Signed Capsule Update details | - -### 8.7.4 Required Functions - -None - -### 8.7.5 Configuration - -| `PCD` | `Purpose` | -| ------------------------------------------------------------ | --------------------------------------------------------------------------------------------------- | -| gEfiMdeModulePkgTokenSpaceGuid. PcdSupportUpdateCapsuleReset | Indicates if the platform can support update capsule across a system reset. | -| gEfiMdeModulePkgTokenSpaceGuid. PcdMaxSizeNonPopulateCapsule | Indicates the maximum size of the capsule image without a reset flag that the platform can support. | -| gEfiMdeModulePkgTokenSpaceGuid. PcdMaxSizePopulateCapsule | Indicates the maximum size of the capsule image with a reset flag that the platform can support. | - -### 8.7.6 Data Flows - -None - -### 8.7.7 Control Flows - -None - -### 8.7.8 Build Files - -These are the advanced feature module build files (i.e. INF files) included in -a board to build and include the FvSignedCapsuleUpdate.fv in the FvAdvanced -firmware volume. - -### 8.7.9 Test Point Results - -There are currently no test points defined for the signed capsule update stack. - -### 8.7.10 Functional Exit Criteria - -TBD - -### 8.7.11 Feature Enabling Checklist - -The following steps should be followed to enable a platform for enabling the -Signed Capsule Update feature stack: - -1. Create a BoardCapsuleLib library class instance - -2. Include BoardCapsuleLib - -3. Include SecureCapsuleUpdate.dsc - -4. Include SecureCapsuleUpdate.fdf - -5. Add FvSecureCapsuleUpdate.fv - -6. Set Set `gMinPlatformPkgTokenSpaceGuid.PcdBootStage` = 6 - -7. Verify if reset is required or optional - -8. Verify PCD default sizes cover required firmware image sizes - -9. Verify functionality as per whitepaper referenced in Overview - -### 8.7.12 Common Optimizations - -None diff --git a/8_stage_6_advanced_feature_selection/README.md b/8_stage_6_advanced_feature_selection/README.md index 9bdd812..2e38dfe 100644 --- a/8_stage_6_advanced_feature_selection/README.md +++ b/8_stage_6_advanced_feature_selection/README.md @@ -1,7 +1,7 @@