summaryrefslogtreecommitdiff
path: root/Features
diff options
context:
space:
mode:
authorMichael Kubacki <michael.a.kubacki@intel.com>2019-10-21 18:51:40 -0700
committerMichael Kubacki <michael.a.kubacki@intel.com>2019-12-06 17:37:59 -0800
commitde1908f80b5470331a4fb0dee0ef468a5e51c4d4 (patch)
tree5a81b42102f56ccada6a2699e629c833ff6bf33b /Features
parent0110a8cf76966d632881a6570f764a42af577ab9 (diff)
Features/Intel/NetworkFeaturePkg: 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 this package inclues the content from edk2/NetworkPkg. In the future, it is preferred to move the source code from NetworkPkg to NetworkFeaturePkg. Cc: Sai Chaganty <rangasai.v.chaganty@intel.com> Cc: Liming Gao <liming.gao@intel.com> Signed-off-by: Michael Kubacki <michael.a.kubacki@intel.com> Reviewed-by: Nate DeSimone <nathaniel.l.desimone@intel.com>
Diffstat (limited to 'Features')
-rw-r--r--Features/Intel/Network/NetworkFeaturePkg/Include/NetworkFeature.dsc152
-rw-r--r--Features/Intel/Network/NetworkFeaturePkg/Include/PostMemory.fdf10
-rw-r--r--Features/Intel/Network/NetworkFeaturePkg/Include/PreMemory.fdf8
-rw-r--r--Features/Intel/Network/NetworkFeaturePkg/NetworkFeaturePkg.dec30
-rw-r--r--Features/Intel/Network/NetworkFeaturePkg/NetworkFeaturePkg.dsc30
-rw-r--r--Features/Intel/Network/NetworkFeaturePkg/Readme.md100
6 files changed, 330 insertions, 0 deletions
diff --git a/Features/Intel/Network/NetworkFeaturePkg/Include/NetworkFeature.dsc b/Features/Intel/Network/NetworkFeaturePkg/Include/NetworkFeature.dsc
new file mode 100644
index 00000000..c59c21ee
--- /dev/null
+++ b/Features/Intel/Network/NetworkFeaturePkg/Include/NetworkFeature.dsc
@@ -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 this feature.
+#
+# The DEC files are used by the utilities that parse DSC and
+# INF files to generate AutoGen.c and AutoGen.h files
+# for the build infrastructure.
+#
+# Copyright (c) 2019, Intel Corporation. All rights reserved.<BR>
+#
+# SPDX-License-Identifier: BSD-2-Clause-Patent
+#
+##
+
+################################################################################
+#
+# Defines Section - statements that will be processed to create a Makefile.
+#
+################################################################################
+[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 feature.
+#
+################################################################################
+[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.inf
+ DebugLib|MdePkg/Library/BaseDebugLibNull/BaseDebugLibNull.inf
+ DevicePathLib|MdePkg/Library/UefiDevicePathLib/UefiDevicePathLib.inf
+ FileExplorerLib|MdeModulePkg/Library/FileExplorerLib/FileExplorerLib.inf
+ 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/BasePeCoffGetEntryPointLib.inf
+ PerformanceLib|MdePkg/Library/BasePerformanceLibNull/BasePerformanceLibNull.inf
+ PrintLib|MdePkg/Library/BasePrintLib/BasePrintLib.inf
+ ReportStatusCodeLib|MdePkg/Library/BaseReportStatusCodeLibNull/BaseReportStatusCodeLibNull.inf
+ SafeIntLib|MdePkg/Library/BaseSafeIntLib/BaseSafeIntLib.inf
+ SortLib|MdeModulePkg/Library/UefiSortLib/UefiSortLib.inf
+ TimerLib|MdePkg/Library/BaseTimerLibNullTemplate/BaseTimerLibNullTemplate.inf
+ TlsLib|CryptoPkg/Library/TlsLib/TlsLib.inf
+ UefiBootManagerLib|MdeModulePkg/Library/UefiBootManagerLib/UefiBootManagerLib.inf
+ UefiBootServicesTableLib|MdePkg/Library/UefiBootServicesTableLib/UefiBootServicesTableLib.inf
+ UefiDriverEntryPoint|MdePkg/Library/UefiDriverEntryPoint/UefiDriverEntryPoint.inf
+ UefiHiiServicesLib|MdeModulePkg/Library/UefiHiiServicesLib/UefiHiiServicesLib.inf
+ UefiLib|MdePkg/Library/UefiLib/UefiLib.inf
+ UefiRuntimeServicesTableLib|MdePkg/Library/UefiRuntimeServicesTableLib/UefiRuntimeServicesTableLib.inf
+
+[LibraryClasses.common.SEC,LibraryClasses.common.PEI_CORE,LibraryClasses.common.PEIM]
+ #######################################
+ # Edk2 Packages
+ #######################################
+ HobLib|MdePkg/Library/PeiHobLib/PeiHobLib.inf
+ MemoryAllocationLib|MdePkg/Library/PeiMemoryAllocationLib/PeiMemoryAllocationLib.inf
+ PcdLib|MdePkg/Library/PeiPcdLib/PeiPcdLib.inf
+
+[LibraryClasses.common.DXE_CORE,LibraryClasses.common.DXE_SMM_DRIVER,LibraryClasses.common.SMM_CORE,LibraryClasses.common.DXE_DRIVER,LibraryClasses.common.DXE_RUNTIME_DRIVER,LibraryClasses.common.UEFI_DRIVER,LibraryClasses.common.UEFI_APPLICATION]
+ #######################################
+ # Edk2 Packages
+ #######################################
+ DxeServicesLib|MdePkg/Library/DxeServicesLib/DxeServicesLib.inf
+ DxeServicesTableLib|MdePkg/Library/DxeServicesTableLib/DxeServicesTableLib.inf
+ HobLib|MdePkg/Library/DxeHobLib/DxeHobLib.inf
+ MemoryAllocationLib|MdePkg/Library/UefiMemoryAllocationLib/UefiMemoryAllocationLib.inf
+ PcdLib|MdePkg/Library/DxePcdLib/DxePcdLib.inf
+
+################################################################################
+#
+# Component section - list of all components that need built for this feature.
+#
+# Note: The EDK II DSC file is not used to specify how compiled binary images get placed
+# into firmware volume images. This section is just a list of modules 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 PI specification.
+# There may also be modules listed in this section that are not required in the FDF file,
+# When a module listed here is excluded from FDF file, then UEFI-compliant binary will be
+# generated for it, but the binary will not be put into any firmware volume.
+#
+################################################################################
+#
+# Feature PEI Components
+#
+
+# @todo: Change below line to [Components.$(PEI_ARCH)] after https://bugzilla.tianocore.org/show_bug.cgi?id=2308
+# is completed.
+[Components.IA32]
+ #####################################
+ # Network Feature Package
+ #####################################
+
+ # Add library instances here that are not included in package 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://bugzilla.tianocore.org/show_bug.cgi?id=2308
+# is completed.
+[Components.X64]
+ #####################################
+ # Network Feature Package
+ #####################################
+
+ # Add library instances here that are not included in package 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 process. They can be
+# applied for any modules or only those modules with the specific
+# module style (EDK or EDKII) specified in [Components] section.
+#
+# For advanced features, it is recommended to enable [BuildOptions] in
+# the applicable INF file so it does not affect the whole board package
+# build when this DSC file is active.
+#
+###################################################################################################
+[BuildOptions]
diff --git a/Features/Intel/Network/NetworkFeaturePkg/Include/PostMemory.fdf b/Features/Intel/Network/NetworkFeaturePkg/Include/PostMemory.fdf
new file mode 100644
index 00000000..819b839d
--- /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.<BR>
+#
+# SPDX-License-Identifier: BSD-2-Clause-Patent
+#
+##
+
+!include NetworkPkg/Network.fdf.inc
diff --git a/Features/Intel/Network/NetworkFeaturePkg/Include/PreMemory.fdf b/Features/Intel/Network/NetworkFeaturePkg/Include/PreMemory.fdf
new file mode 100644
index 00000000..25f17be4
--- /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.<BR>
+#
+# SPDX-License-Identifier: BSD-2-Clause-Patent
+#
+##
diff --git a/Features/Intel/Network/NetworkFeaturePkg/NetworkFeaturePkg.dec b/Features/Intel/Network/NetworkFeaturePkg/NetworkFeaturePkg.dec
new file mode 100644
index 00000000..670b76e5
--- /dev/null
+++ b/Features/Intel/Network/NetworkFeaturePkg/NetworkFeaturePkg.dec
@@ -0,0 +1,30 @@
+## @file
+# This package provides advanced feature functionality for Network support.
+# This package should only depend on EDK II Core packages, IntelSiliconPkg, and MinPlatformPkg.
+#
+# The DEC files are used by the utilities that parse DSC and
+# INF files to generate AutoGen.c and AutoGen.h files
+# for the build infrastructure.
+#
+# Copyright (c) 2019, Intel Corporation. All rights reserved.<BR>
+#
+# SPDX-License-Identifier: BSD-2-Clause-Patent
+#
+##
+
+[Defines]
+ DEC_SPECIFICATION = 0x00010017
+ PACKAGE_NAME = NetworkFeaturePkg
+ PACKAGE_GUID = CA1BF91C-8B5E-40C2-9C4C-DD250D2170A9
+ PACKAGE_VERSION = 0.1
+
+[Includes]
+ Include
+
+[LibraryClasses]
+
+[Guids]
+ gNetworkFeaturePkgTokenSpaceGuid = {0x990904ed, 0xb62a, 0x4b46, {0xa2, 0x9d, 0xe4, 0x09, 0xa6, 0x7f, 0x54, 0x68}}
+
+[PcdsFeatureFlag]
+ gNetworkFeaturePkgTokenSpaceGuid.PcdNetworkFeatureEnable|FALSE|BOOLEAN|0xA0000001
diff --git a/Features/Intel/Network/NetworkFeaturePkg/NetworkFeaturePkg.dsc b/Features/Intel/Network/NetworkFeaturePkg/NetworkFeaturePkg.dsc
new file mode 100644
index 00000000..199686fa
--- /dev/null
+++ b/Features/Intel/Network/NetworkFeaturePkg/NetworkFeaturePkg.dsc
@@ -0,0 +1,30 @@
+## @file
+# This package provides advanced feature functionality for Network support.
+# This package should only depend on EDK II Core packages, IntelSiliconPkg, and MinPlatformPkg.
+#
+# The DEC files are used by the utilities that parse DSC and
+# INF files to generate AutoGen.c and AutoGen.h files
+# for the build infrastructure.
+#
+# Copyright (c) 2019, Intel Corporation. All rights reserved.<BR>
+#
+# SPDX-License-Identifier: BSD-2-Clause-Patent
+#
+##
+
+[Defines]
+ PLATFORM_NAME = NetworkFeaturePkg
+ PLATFORM_GUID = 63D1D82C-965C-44A7-B90D-C8AA42E59152
+ PLATFORM_VERSION = 0.1
+ DSC_SPECIFICATION = 0x00010005
+ OUTPUT_DIRECTORY = Build/$(PLATFORM_NAME)
+ SUPPORTED_ARCHITECTURES = IA32|X64
+ BUILD_TARGETS = DEBUG|RELEASE|NOOPT
+ SKUID_IDENTIFIER = DEFAULT
+ PEI_ARCH = IA32
+ DXE_ARCH = X64
+
+#
+# This package always builds the feature.
+#
+!include Include/NetworkFeature.dsc
diff --git a/Features/Intel/Network/NetworkFeaturePkg/Readme.md b/Features/Intel/Network/NetworkFeaturePkg/Readme.md
new file mode 100644
index 00000000..6c670b00
--- /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 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 Introduction](https://github.com/tianocore/tianocore.github.io/wiki/Network-io)
+* [Tianocore Network I/O Getting Started Guide](https://github.com/tianocore/tianocore.github.io/wiki/NetworkPkg-Getting-Started-Guide)
+* [NetworkPkg Readme.txt](https://raw.githubusercontent.com/tianocore-docs/Docs/master/User_Docs/Readme_NetworkPkg.txt)
+* [NetworkPkg source code in edk2](https://github.com/tianocore/edk2/tree/master/NetworkPkg)
+
+## Purpose
+This feature enables a UEFI network driver stack using the [NetworkPkg](https://github.com/tianocore/edk2/tree/master/NetworkPkg)
+in EDK II. This feature provides drivers for the following network capabilities:
+* 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 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.
+
+## <Module Name>
+*_TODO_*
+Each module in the feature should have a section that describes the module in a level of detail that is useful
+to better understand the module source code.
+
+## <Library Name>
+*_TODO_*
+Each library in the feature should have a section that describes the library in a level of detail that is useful
+to better understand the library 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 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 to provide more background on configuration
+options than possible elsewhere.
+
+## 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 require non-standard tool configuration. If the
+standard flow in the feature 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 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 integrator can reference to ensure the feature is
+functional on their board.
+
+## Feature Enabling Checklist
+*_TODO_*
+An ordered list of required activities to achieve desired functionality for 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 should be left empty.