From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga07.intel.com (mga07.intel.com [134.134.136.100]) by mx.groups.io with SMTP id smtpd.web10.449.1575417473772775427 for ; Tue, 03 Dec 2019 15:57:53 -0800 Authentication-Results: mx.groups.io; dkim=missing; spf=pass (domain: intel.com, ip: 134.134.136.100, mailfrom: nathaniel.l.desimone@intel.com) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga007.jf.intel.com ([10.7.209.58]) by orsmga105.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 03 Dec 2019 15:57:53 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.69,275,1571727600"; d="scan'208";a="201192668" Received: from orsmsx109.amr.corp.intel.com ([10.22.240.7]) by orsmga007.jf.intel.com with ESMTP; 03 Dec 2019 15:57:53 -0800 Received: from orsmsx151.amr.corp.intel.com (10.22.226.38) by ORSMSX109.amr.corp.intel.com (10.22.240.7) with Microsoft SMTP Server (TLS) id 14.3.439.0; Tue, 3 Dec 2019 15:57:53 -0800 Received: from orsmsx114.amr.corp.intel.com ([169.254.8.67]) by ORSMSX151.amr.corp.intel.com ([169.254.7.41]) with mapi id 14.03.0439.000; Tue, 3 Dec 2019 15:57:52 -0800 From: "Nate DeSimone" To: "devel@edk2.groups.io" , "Kubacki, Michael A" CC: "Chaganty, Rangasai V" , "Gao, Liming" Subject: Re: [edk2-devel] [edk2-platforms][PATCH V2 21/47] Features/Intel/NetworkFeaturePkg: Add initial package Thread-Topic: [edk2-devel] [edk2-platforms][PATCH V2 21/47] Features/Intel/NetworkFeaturePkg: Add initial package Thread-Index: AQHVpYioOmJx1rHr7EywN0vv+rfP5aepH1Gg Date: Tue, 3 Dec 2019 23:57:51 +0000 Message-ID: <02A34F284D1DA44BB705E61F7180EF0AB5C13E59@ORSMSX114.amr.corp.intel.com> References: <20191128010614.43628-1-michael.a.kubacki@intel.com> <20191128010614.43628-22-michael.a.kubacki@intel.com> In-Reply-To: <20191128010614.43628-22-michael.a.kubacki@intel.com> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-version: 11.2.0.6 dlp-reaction: no-action x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiYjI4NGNjNzMtYjdlOC00ZWRlLWEyNTktNmMwYjlmZTIyNDZiIiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX05UIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE3LjEwLjE4MDQuNDkiLCJUcnVzdGVkTGFiZWxIYXNoIjoiRzBSUk80YmpBM3JQSDN4ZDM3MFJiRTlMV01uODNhQ1FYMmVHN0prNHVaK3IzcXM5QUtmaDhXQWlFdHh3c2NxSiJ9 x-ctpclassification: CTP_NT x-originating-ip: [10.22.254.138] MIME-Version: 1.0 Return-Path: nathaniel.l.desimone@intel.com Content-Language: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Reviewed-by: Nate DeSimone -----Original Message----- From: devel@edk2.groups.io On Behalf Of Kubacki, Mi= chael A Sent: Wednesday, November 27, 2019 5:06 PM To: devel@edk2.groups.io Cc: Chaganty, Rangasai V ; Gao, Liming Subject: [edk2-devel] [edk2-platforms][PATCH V2 21/47] Features/Intel/Netw= orkFeaturePkg: Add initial package Adds a new feature package for the Network feature. The Network feature code is actually in edk2/NetworkPkg at this time so th= is package inclues the content from edk2/NetworkPkg. In the future, it is p= referred to move the source code from NetworkPkg to NetworkFeaturePkg. Cc: Sai Chaganty Cc: Liming Gao Signed-off-by: Michael Kubacki --- Features/Intel/Network/NetworkFeaturePkg/NetworkFeaturePkg.dec | 30= ++++ Features/Intel/Network/NetworkFeaturePkg/Include/NetworkFeature.dsc | 152= ++++++++++++++++++++ Features/Intel/Network/NetworkFeaturePkg/NetworkFeaturePkg.dsc | 30= ++++ Features/Intel/Network/NetworkFeaturePkg/Include/PostMemory.fdf | 10= ++ Features/Intel/Network/NetworkFeaturePkg/Include/PreMemory.fdf | 8= ++ Features/Intel/Network/NetworkFeaturePkg/Readme.md | 100= +++++++++++++ 6 files changed, 330 insertions(+) diff --git a/Features/Intel/Network/NetworkFeaturePkg/NetworkFeaturePkg.de= c b/Features/Intel/Network/NetworkFeaturePkg/NetworkFeaturePkg.dec new file mode 100644 index 0000000000..670b76e52f --- /dev/null +++ b/Features/Intel/Network/NetworkFeaturePkg/NetworkFeaturePkg.dec @@ -0,0 +1,30 @@ +## @file +# This package provides advanced feature functionality for Network suppor= t. +# This package should only depend on EDK II Core packages, IntelSiliconPk= g, and MinPlatformPkg. +# +# The DEC files are used by the utilities that parse DSC and # INF=20 +files to generate AutoGen.c and AutoGen.h files # for the build=20 +infrastructure. +# +# Copyright (c) 2019, Intel Corporation. All rights reserved.
# #=20 +SPDX-License-Identifier: BSD-2-Clause-Patent # ## + +[Defines] + DEC_SPECIFICATION =3D 0x00010017 + PACKAGE_NAME =3D NetworkFeaturePkg + PACKAGE_GUID =3D CA1BF91C-8B5E-40C2-9C4C-DD250D2170A9 + PACKAGE_VERSION =3D 0.1 + +[Includes] + Include + +[LibraryClasses] + +[Guids] + gNetworkFeaturePkgTokenSpaceGuid =3D {0x990904ed, 0xb62a, 0x4b46,=20 +{0xa2, 0x9d, 0xe4, 0x09, 0xa6, 0x7f, 0x54, 0x68}} + +[PcdsFeatureFlag] + +gNetworkFeaturePkgTokenSpaceGuid.PcdNetworkFeatureEnable|FALSE|BOOLEAN| +0xA0000001 diff --git a/Features/Intel/Network/NetworkFeaturePkg/Include/NetworkFeatu= re.dsc b/Features/Intel/Network/NetworkFeaturePkg/Include/NetworkFeature.ds= c new file mode 100644 index 0000000000..c59c21ee6c --- /dev/null +++ b/Features/Intel/Network/NetworkFeaturePkg/Include/NetworkFeature.ds +++ c @@ -0,0 +1,152 @@ +## @file +# This is a build description file for the Network advanced feature. +# This file should be included into another package DSC file to build thi= s feature. +# +# The DEC files are used by the utilities that parse DSC and # INF=20 +files to generate AutoGen.c and AutoGen.h files # for the build=20 +infrastructure. +# +# Copyright (c) 2019, Intel Corporation. All rights reserved.
# #=20 +SPDX-License-Identifier: BSD-2-Clause-Patent # ## + +####################################################################### +######### +# +# Defines Section - statements that will be processed to create a Makefil= e. +# +####################################################################### +######### +[Defines] +!ifndef $(PEI_ARCH) + !error "PEI_ARCH must be specified to build this feature!" +!endif +!ifndef $(DXE_ARCH) + !error "DXE_ARCH must be specified to build this feature!" +!endif + + !include NetworkPkg/NetworkDefines.dsc.inc + +####################################################################### +######### +# +# PCD Section - list of EDK II PCD Entries modified by the feature. +# +####################################################################### +######### +[PcdsFixedAtBuild] + !include NetworkPkg/NetworkPcds.dsc.inc + +####################################################################### +######### +# +# Library Class section - list of all Library Classes needed by this feat= ure. +# +####################################################################### +######### +[LibraryClasses] + !include NetworkPkg/NetworkLibs.dsc.inc + + ####################################### + # Edk2 Packages + ####################################### + BaseCryptLib|CryptoPkg/Library/BaseCryptLib/BaseCryptLib.inf + BaseLib|MdePkg/Library/BaseLib/BaseLib.inf + + BaseMemoryLib|MdePkg/Library/BaseMemoryLibRepStr/BaseMemoryLibRepStr.i + nf DebugLib|MdePkg/Library/BaseDebugLibNull/BaseDebugLibNull.inf + DevicePathLib|MdePkg/Library/UefiDevicePathLib/UefiDevicePathLib.inf + + FileExplorerLib|MdeModulePkg/Library/FileExplorerLib/FileExplorerLib.i + nf HiiLib|MdeModulePkg/Library/UefiHiiLib/UefiHiiLib.inf + IntrinsicLib|CryptoPkg/Library/IntrinsicLib/IntrinsicLib.inf + OpensslLib|CryptoPkg/Library/OpensslLib/OpensslLib.inf + PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf + + PeCoffGetEntryPointLib|MdePkg/Library/BasePeCoffGetEntryPointLib/BaseP + eCoffGetEntryPointLib.inf + PerformanceLib|MdePkg/Library/BasePerformanceLibNull/BasePerformanceLi + bNull.inf PrintLib|MdePkg/Library/BasePrintLib/BasePrintLib.inf + + ReportStatusCodeLib|MdePkg/Library/BaseReportStatusCodeLibNull/BaseRep + ortStatusCodeLibNull.inf + SafeIntLib|MdePkg/Library/BaseSafeIntLib/BaseSafeIntLib.inf + SortLib|MdeModulePkg/Library/UefiSortLib/UefiSortLib.inf + + TimerLib|MdePkg/Library/BaseTimerLibNullTemplate/BaseTimerLibNullTempl + ate.inf TlsLib|CryptoPkg/Library/TlsLib/TlsLib.inf + + UefiBootManagerLib|MdeModulePkg/Library/UefiBootManagerLib/UefiBootMan + agerLib.inf + UefiBootServicesTableLib|MdePkg/Library/UefiBootServicesTableLib/UefiB + ootServicesTableLib.inf + UefiDriverEntryPoint|MdePkg/Library/UefiDriverEntryPoint/UefiDriverEnt + ryPoint.inf + UefiHiiServicesLib|MdeModulePkg/Library/UefiHiiServicesLib/UefiHiiServ + icesLib.inf UefiLib|MdePkg/Library/UefiLib/UefiLib.inf + + UefiRuntimeServicesTableLib|MdePkg/Library/UefiRuntimeServicesTableLib + /UefiRuntimeServicesTableLib.inf + +[LibraryClasses.common.SEC,LibraryClasses.common.PEI_CORE,LibraryClasse +s.common.PEIM] + ####################################### + # Edk2 Packages + ####################################### + HobLib|MdePkg/Library/PeiHobLib/PeiHobLib.inf + +MemoryAllocationLib|MdePkg/Library/PeiMemoryAllocationLib/PeiMemoryAllo +cationLib.inf + PcdLib|MdePkg/Library/PeiPcdLib/PeiPcdLib.inf + +[LibraryClasses.common.DXE_CORE,LibraryClasses.common.DXE_SMM_DRIVER,Li +braryClasses.common.SMM_CORE,LibraryClasses.common.DXE_DRIVER,LibraryCl +asses.common.DXE_RUNTIME_DRIVER,LibraryClasses.common.UEFI_DRIVER,Libra +ryClasses.common.UEFI_APPLICATION] + ####################################### + # Edk2 Packages + ####################################### + DxeServicesLib|MdePkg/Library/DxeServicesLib/DxeServicesLib.inf + +DxeServicesTableLib|MdePkg/Library/DxeServicesTableLib/DxeServicesTable +Lib.inf + HobLib|MdePkg/Library/DxeHobLib/DxeHobLib.inf + +MemoryAllocationLib|MdePkg/Library/UefiMemoryAllocationLib/UefiMemoryAl +locationLib.inf + PcdLib|MdePkg/Library/DxePcdLib/DxePcdLib.inf + +####################################################################### +######### +# +# Component section - list of all components that need built for this fea= ture. +# +# Note: The EDK II DSC file is not used to specify how compiled binary im= ages get placed +# into firmware volume images. This section is just a list of modul= es to compile from +# source into UEFI-compliant binaries. +# It is the FDF file that contains information on combining binary = files into firmware +# volume images, whose concept is beyond UEFI and is described in P= I specification. +# There may also be modules listed in this section that are not req= uired in the FDF file, +# When a module listed here is excluded from FDF file, then UEFI-co= mpliant binary will be +# generated for it, but the binary will not be put into any firmwar= e volume. +# +####################################################################### +######### +# +# Feature PEI Components +# + +# @todo: Change below line to [Components.$(PEI_ARCH)] after https://bugz= illa.tianocore.org/show_bug.cgi?id=3D2308 +# is completed. +[Components.IA32] + ##################################### + # Network Feature Package + ##################################### + + # Add library instances here that are not included in package=20 + components and should be tested # in the package build. + + # Add components here that should be included in the package build. + +# +# Feature DXE Components +# + +# @todo: Change below line to [Components.$(DXE_ARCH)] after https://bugz= illa.tianocore.org/show_bug.cgi?id=3D2308 +# is completed. +[Components.X64] + ##################################### + # Network Feature Package + ##################################### + + # Add library instances here that are not included in package=20 + components and should be tested # in the package build. + + # Add components here that should be included in the package build. + !include NetworkPkg/NetworkComponents.dsc.inc + +####################################################################### +############################ +# +# BuildOptions Section - Define the module specific tool chain flags that= should be used as +# the default flags for a module. These flags are = appended to any +# standard flags that are defined by the build pro= cess. They can be +# applied for any modules or only those modules wi= th the specific +# module style (EDK or EDKII) specified in [Compon= ents] section. +# +# For advanced features, it is recommended to enab= le [BuildOptions] in +# the applicable INF file so it does not affect th= e whole board package +# build when this DSC file is active. +# +####################################################################### +############################ +[BuildOptions] diff --git a/Features/Intel/Network/NetworkFeaturePkg/NetworkFeaturePkg.ds= c b/Features/Intel/Network/NetworkFeaturePkg/NetworkFeaturePkg.dsc new file mode 100644 index 0000000000..199686fa09 --- /dev/null +++ b/Features/Intel/Network/NetworkFeaturePkg/NetworkFeaturePkg.dsc @@ -0,0 +1,30 @@ +## @file +# This package provides advanced feature functionality for Network suppor= t. +# This package should only depend on EDK II Core packages, IntelSiliconPk= g, and MinPlatformPkg. +# +# The DEC files are used by the utilities that parse DSC and # INF=20 +files to generate AutoGen.c and AutoGen.h files # for the build=20 +infrastructure. +# +# Copyright (c) 2019, Intel Corporation. All rights reserved.
# #=20 +SPDX-License-Identifier: BSD-2-Clause-Patent # ## + +[Defines] + PLATFORM_NAME =3D NetworkFeaturePkg + PLATFORM_GUID =3D 63D1D82C-965C-44A7-B90D-C8AA42E59152 + PLATFORM_VERSION =3D 0.1 + DSC_SPECIFICATION =3D 0x00010005 + OUTPUT_DIRECTORY =3D Build/$(PLATFORM_NAME) + SUPPORTED_ARCHITECTURES =3D IA32|X64 + BUILD_TARGETS =3D DEBUG|RELEASE|NOOPT + SKUID_IDENTIFIER =3D DEFAULT + PEI_ARCH =3D IA32 + DXE_ARCH =3D X64 + +# +# This package always builds the feature. +# +!include Include/NetworkFeature.dsc diff --git a/Features/Intel/Network/NetworkFeaturePkg/Include/PostMemory.f= df b/Features/Intel/Network/NetworkFeaturePkg/Include/PostMemory.fdf new file mode 100644 index 0000000000..819b839d60 --- /dev/null +++ b/Features/Intel/Network/NetworkFeaturePkg/Include/PostMemory.fdf @@ -0,0 +1,10 @@ +## @file +# FDF file for post-memory Network advanced feature modules. +# +# Copyright (c) 2019, Intel Corporation. All rights reserved.
# #=20 +SPDX-License-Identifier: BSD-2-Clause-Patent # ## + +!include NetworkPkg/Network.fdf.inc diff --git a/Features/Intel/Network/NetworkFeaturePkg/Include/PreMemory.fd= f b/Features/Intel/Network/NetworkFeaturePkg/Include/PreMemory.fdf new file mode 100644 index 0000000000..25f17be40f --- /dev/null +++ b/Features/Intel/Network/NetworkFeaturePkg/Include/PreMemory.fdf @@ -0,0 +1,8 @@ +## @file +# FDF file for pre-memory Network advanced feature modules. +# +# Copyright (c) 2019, Intel Corporation. All rights reserved.
# #=20 +SPDX-License-Identifier: BSD-2-Clause-Patent # ## diff --git a/Features/Intel/Network/NetworkFeaturePkg/Readme.md b/Features= /Intel/Network/NetworkFeaturePkg/Readme.md new file mode 100644 index 0000000000..6c670b005c --- /dev/null +++ b/Features/Intel/Network/NetworkFeaturePkg/Readme.md @@ -0,0 +1,100 @@ +# Overview +* **Feature Name:** Network +* **PI Phase(s) Supported:** DXE +* **SMM Required?** No + +_Note:_ Network feature support is currently provided by including=20 +files exposed by NetworkPkg. In the future, it is preferable to relocate = the source code in NetworkPkg to NetworkFeaturePkg. + +More Information: +* [Tianocore Network I/O=20 +Introduction](https://github.com/tianocore/tianocore.github.io/wiki/Net +work-io) +* [Tianocore Network I/O Getting Started=20 +Guide](https://github.com/tianocore/tianocore.github.io/wiki/NetworkPkg +-Getting-Started-Guide) +* [NetworkPkg=20 +Readme.txt](https://raw.githubusercontent.com/tianocore-docs/Docs/maste +r/User_Docs/Readme_NetworkPkg.txt) +* [NetworkPkg source code in=20 +edk2](https://github.com/tianocore/edk2/tree/master/NetworkPkg) + +## Purpose +This feature enables a UEFI network driver stack using the=20 +[NetworkPkg](https://github.com/tianocore/edk2/tree/master/NetworkPkg) +in EDK II. This feature provides drivers for the following network capabi= lities: +* IPv6 network stack support +* IPsec driver +* PXE driver +* iSCSI driver +* Necessary shell applications for network configuration + +# High-Level Theory of Operation +*_TODO_* +A description of how the device works at a high-level. + +The description should not be constrained to implementation details but= =20 +provide a simple mental model of how the feature is supposed to work. + +## Firmware Volumes +*_TODO_* +A bulleted list of the firmware volumes that feature module(s) are placed= in. + +## Modules +*_TODO_* +A bulleted list of the modules that make up the feature. + +## +*_TODO_* +Each module in the feature should have a section that describes the=20 +module in a level of detail that is useful to better understand the modul= e source code. + +## +*_TODO_* +Each library in the feature should have a section that describes the=20 +library in a level of detail that is useful to better understand the libr= ary source code. + +## Key Functions +*_TODO_* +A bulleted list of key functions for interacting with the feature. + +Not all features need to be listed. Only functions exposed through=20 +external interfaces that are important for feature users to be aware of. + +## Configuration +*_TODO_* +Information that is useful for configuring the feature. + +Not all configuration options need to be listed. This section is used=20 +to provide more background on configuration options than possible elsewhe= re. + +## Data Flows +*_TODO_* +Architecturally defined data structures and flows for the feature. + +## Control Flows +*_TODO_* +Key control flows for the feature. + +## Build Flows +*_TODO_* +Any special build flows should be described in this section. + +This is particularly useful for features that use custom build tools or= =20 +require non-standard tool configuration. If the standard flow in the feat= ure package template is used, this section may be empty. + +## Test Point Results +*_TODO_* +The test(s) that can verify porting is complete for the feature. + +Each feature must describe at least one test point to verify the=20 +feature is successful. If the test point is not implemented, this should = be stated. + +## Functional Exit Criteria +*_TODO_* +The testable functionality for the feature. + +This section should provide an ordered list of criteria that a board=20 +integrator can reference to ensure the feature is functional on their boa= rd. + +## Feature Enabling Checklist +*_TODO_* +An ordered list of required activities to achieve desired functionality f= or the feature. + +## Common Optimizations +*_TODO_* +Common size or performance tuning options for this feature. + +This section is recommended but not required. If not used, the contents s= hould be left empty. -- 2.16.2.windows.1