From: "Kubacki, Michael A" <michael.a.kubacki@intel.com>
To: devel@edk2.groups.io
Cc: Sai Chaganty <rangasai.v.chaganty@intel.com>,
Nate DeSimone <nathaniel.l.desimone@intel.com>,
Liming Gao <liming.gao@intel.com>
Subject: [edk2-platforms][PATCH V2 11/47] TemplateFeaturePkg: Add initial package
Date: Wed, 27 Nov 2019 17:05:38 -0800 [thread overview]
Message-ID: <20191128010614.43628-12-michael.a.kubacki@intel.com> (raw)
In-Reply-To: <20191128010614.43628-1-michael.a.kubacki@intel.com>
This change adds a new package called TemplateFeaturePkg that
should be used as a starting point for the creation of new advanced
feature packages.
TemplateFeaturePkg is not meant to be built or used directly for
functionality. It simply serves as a template to be copied and
modified. The advanced feature package creation process is
described in detail in Features/Intel/Readme.md.
Cc: Sai Chaganty <rangasai.v.chaganty@intel.com>
Cc: Nate DeSimone <nathaniel.l.desimone@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>
---
Features/Intel/TemplateFeaturePkg/TemplateFeaturePkg.dec | 30 ++++++
Features/Intel/TemplateFeaturePkg/Include/TemplateFeature.dsc | 113 ++++++++++++++++++++
Features/Intel/TemplateFeaturePkg/TemplateFeaturePkg.dsc | 30 ++++++
Features/Intel/TemplateFeaturePkg/Include/PostMemory.fdf | 8 ++
Features/Intel/TemplateFeaturePkg/Include/PreMemory.fdf | 8 ++
Features/Intel/TemplateFeaturePkg/Readme.md | 71 ++++++++++++
6 files changed, 260 insertions(+)
diff --git a/Features/Intel/TemplateFeaturePkg/TemplateFeaturePkg.dec b/Features/Intel/TemplateFeaturePkg/TemplateFeaturePkg.dec
new file mode 100644
index 0000000000..b37ce8f34a
--- /dev/null
+++ b/Features/Intel/TemplateFeaturePkg/TemplateFeaturePkg.dec
@@ -0,0 +1,30 @@
+## @file
+# This package provides advanced feature functionality for <TEMPLATE> 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 = TemplateFeaturePkg
+ PACKAGE_GUID = 00000000-0000-0000-0000-000000000000
+ PACKAGE_VERSION = 0.1
+
+[Includes]
+ Include
+
+[LibraryClasses]
+
+[Guids]
+ gTemplateFeaturePkgTokenSpaceGuid = {0x00000000, 0x0000, 0x0000, {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}}
+
+[PcdsFeatureFlag]
+ gTemplateFeaturePkgTokenSpaceGuid.PcdTemplateFeatureEnable|FALSE|BOOLEAN|0xA0000001
diff --git a/Features/Intel/TemplateFeaturePkg/Include/TemplateFeature.dsc b/Features/Intel/TemplateFeaturePkg/Include/TemplateFeature.dsc
new file mode 100644
index 0000000000..6742eddcf9
--- /dev/null
+++ b/Features/Intel/TemplateFeaturePkg/Include/TemplateFeature.dsc
@@ -0,0 +1,113 @@
+## @file
+# This is a build description file for the <TEMPLATE> 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
+
+################################################################################
+#
+# Library Class section - list of all Library Classes needed by this feature.
+#
+################################################################################
+[LibraryClasses]
+
+ ## Note: This comment block should be removed from the template when the
+ # template is used.
+ #
+ # Library classes should have a comment header that describes the type of
+ # package the library is used from for organization purposes.
+ #
+ # For an advanced feature, these are typically:
+ # * Edk2 Packages
+ # * Silicon Initialization Package
+ # * Platform Package
+ # * Feature Package
+ #
+ # The comment header should follow the format:
+ #
+ # #######################################
+ # # Edk2 Packages
+ # #######################################
+
+################################################################################
+#
+# 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]
+ #####################################
+ # <TEMPALTE> 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]
+ #####################################
+ # <TEMPLATE> 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.
+
+###################################################################################################
+#
+# 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/TemplateFeaturePkg/TemplateFeaturePkg.dsc b/Features/Intel/TemplateFeaturePkg/TemplateFeaturePkg.dsc
new file mode 100644
index 0000000000..0ce8debee0
--- /dev/null
+++ b/Features/Intel/TemplateFeaturePkg/TemplateFeaturePkg.dsc
@@ -0,0 +1,30 @@
+## @file
+# This package provides advanced feature functionality for <TEMPLATE> 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 = TemplateFeaturePkg
+ PLATFORM_GUID = 00000000-0000-0000-0000-000000000000
+ 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/TemplateFeature.dsc
diff --git a/Features/Intel/TemplateFeaturePkg/Include/PostMemory.fdf b/Features/Intel/TemplateFeaturePkg/Include/PostMemory.fdf
new file mode 100644
index 0000000000..86225cefbe
--- /dev/null
+++ b/Features/Intel/TemplateFeaturePkg/Include/PostMemory.fdf
@@ -0,0 +1,8 @@
+## @file
+# FDF file for post-memory <TEMPLATE> advanced feature modules.
+#
+# Copyright (c) 2019, Intel Corporation. All rights reserved.<BR>
+#
+# SPDX-License-Identifier: BSD-2-Clause-Patent
+#
+##
diff --git a/Features/Intel/TemplateFeaturePkg/Include/PreMemory.fdf b/Features/Intel/TemplateFeaturePkg/Include/PreMemory.fdf
new file mode 100644
index 0000000000..5ce30af174
--- /dev/null
+++ b/Features/Intel/TemplateFeaturePkg/Include/PreMemory.fdf
@@ -0,0 +1,8 @@
+## @file
+# FDF file for pre-memory <TEMPLATE> advanced feature modules.
+#
+# Copyright (c) 2019, Intel Corporation. All rights reserved.<BR>
+#
+# SPDX-License-Identifier: BSD-2-Clause-Patent
+#
+##
diff --git a/Features/Intel/TemplateFeaturePkg/Readme.md b/Features/Intel/TemplateFeaturePkg/Readme.md
new file mode 100644
index 0000000000..90be279ae3
--- /dev/null
+++ b/Features/Intel/TemplateFeaturePkg/Readme.md
@@ -0,0 +1,71 @@
+# Overview
+* **Feature Name:** <Feature Name>
+* **PI Phase(s) Supported:** <PI Phases Supported>
+* **SMM Required?** <Yes/No>
+
+## Purpose
+Simple overview that describes the purpose of the feature. In general, this should be no longer than one paragraph.
+
+# High-Level Theory of Operation
+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
+A bulleted list of the firmware volumes that feature module(s) are placed in.
+
+## Modules
+A bulleted list of the modules that make up the feature.
+
+## <Module Name>
+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>
+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
+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
+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
+Architecturally defined data structures and flows for the feature.
+
+## Control Flows
+Key control flows for the feature.
+
+## Build Flows
+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
+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
+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
+An ordered list of required activities to achieve desired functionality for the feature.
+
+## Common Optimizations
+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.
--
2.16.2.windows.1
next prev parent reply other threads:[~2019-11-28 1:07 UTC|newest]
Thread overview: 74+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-11-28 1:05 [edk2-platforms][PATCH V2 00/47] Intel Advanced Feature Refactor Kubacki, Michael A
2019-11-28 1:05 ` [edk2-platforms][PATCH V2 01/47] AdvancedFeaturePkg: Package DSC style cleanup Kubacki, Michael A
2019-12-03 8:45 ` Chaganty, Rangasai V
2019-11-28 1:05 ` [edk2-platforms][PATCH V2 02/47] DebugFeaturePkg: " Kubacki, Michael A
2019-11-28 1:05 ` [edk2-platforms][PATCH V2 03/47] UserInterfaceFeaturePkg: " Kubacki, Michael A
2019-11-28 1:05 ` [edk2-platforms][PATCH V2 04/47] Features/Intel: Add Readme.md Kubacki, Michael A
2019-12-03 9:07 ` Chaganty, Rangasai V
2019-12-03 23:57 ` Nate DeSimone
2019-11-28 1:05 ` [edk2-platforms][PATCH V2 05/47] Features/Intel/PowerManagement: " Kubacki, Michael A
2019-12-03 9:14 ` Chaganty, Rangasai V
2019-11-28 1:05 ` [edk2-platforms][PATCH V2 06/47] Features/Intel/OutOfBandManagement: " Kubacki, Michael A
2019-12-03 9:22 ` Chaganty, Rangasai V
2019-12-03 23:57 ` [edk2-devel] " Nate DeSimone
2019-11-28 1:05 ` [edk2-platforms][PATCH V2 07/47] Features/Intel/SystemInformation: " Kubacki, Michael A
2019-12-03 9:30 ` Chaganty, Rangasai V
2019-11-28 1:05 ` [edk2-platforms][PATCH V2 08/47] Features/Intel/Debugging: " Kubacki, Michael A
2019-12-03 9:32 ` Chaganty, Rangasai V
2019-11-28 1:05 ` [edk2-platforms][PATCH V2 09/47] Features/Intel/UserInterface: " Kubacki, Michael A
2019-12-03 9:36 ` Chaganty, Rangasai V
2019-11-28 1:05 ` [edk2-platforms][PATCH V2 10/47] Features/Intel/Network: " Kubacki, Michael A
2019-12-03 9:38 ` Chaganty, Rangasai V
2019-11-28 1:05 ` Kubacki, Michael A [this message]
2019-11-28 1:05 ` [edk2-platforms][PATCH V2 12/47] Features/Intel/S3FeaturePkg: Add initial package Kubacki, Michael A
2019-12-03 23:57 ` [edk2-devel] " Nate DeSimone
2019-11-28 1:05 ` [edk2-platforms][PATCH V2 13/47] Features/Intel/IpmiFeaturePkg: " Kubacki, Michael A
2019-12-03 23:57 ` [edk2-devel] " Nate DeSimone
2019-12-04 7:53 ` Chaganty, Rangasai V
2019-11-28 1:05 ` [edk2-platforms][PATCH V2 14/47] Features/Intel/IpmiFeaturePkg: Add libraries Kubacki, Michael A
2019-12-03 23:57 ` [edk2-devel] " Nate DeSimone
2019-12-04 8:10 ` Chaganty, Rangasai V
2019-11-28 1:05 ` [edk2-platforms][PATCH V2 15/47] Features/Intel/IpmiFeaturePkg: Add modules Kubacki, Michael A
2019-12-03 23:57 ` [edk2-devel] " Nate DeSimone
2019-12-04 8:22 ` Chaganty, Rangasai V
2019-11-28 1:05 ` [edk2-platforms][PATCH V2 16/47] Features/Intel/SmbiosFeaturePkg: Add initial package Kubacki, Michael A
2019-12-03 23:57 ` [edk2-devel] " Nate DeSimone
2019-11-28 1:05 ` [edk2-platforms][PATCH V2 17/47] Features/Intel/SmbiosFeaturePkg: Update default strings Kubacki, Michael A
2019-11-28 1:05 ` [edk2-platforms][PATCH V2 18/47] Features/Intel/AcpiDebugFeaturePkg: Add initial package Kubacki, Michael A
2019-11-28 1:05 ` [edk2-platforms][PATCH V2 19/47] Features/Intel/Usb3DebugFeaturePkg: " Kubacki, Michael A
2019-12-03 23:57 ` [edk2-devel] " Nate DeSimone
2019-11-28 1:05 ` [edk2-platforms][PATCH V2 20/47] Features/Intel/UserAuthFeaturePkg: " Kubacki, Michael A
2019-12-03 23:57 ` [edk2-devel] " Nate DeSimone
2019-11-28 1:05 ` [edk2-platforms][PATCH V2 21/47] Features/Intel/NetworkFeaturePkg: " Kubacki, Michael A
2019-12-03 23:57 ` [edk2-devel] " Nate DeSimone
2019-11-28 1:05 ` [edk2-platforms][PATCH V2 22/47] Features/Intel/AdvancedFeaturePkg: Add package Kubacki, Michael A
2019-12-03 23:57 ` [edk2-devel] " Nate DeSimone
2019-11-28 1:05 ` [edk2-platforms][PATCH V2 23/47] Features/Intel/AdvancedFeaturePkg: Add temporary build workaround Kubacki, Michael A
2019-11-28 1:05 ` [edk2-platforms][PATCH V2 24/47] Features/Intel/AdvancedFeaturePkg: Add FDF include files Kubacki, Michael A
2019-11-28 1:05 ` [edk2-platforms][PATCH V2 25/47] KabylakeOpenBoardPkg/KabylakeRvp3: Add PEI_ARCH and DXE_ARCH Kubacki, Michael A
2019-11-29 6:42 ` [edk2-devel] " Chiu, Chasel
2019-11-28 1:05 ` [edk2-platforms][PATCH V2 26/47] KabylakeOpenBoardPkg/GalagoPro3: " Kubacki, Michael A
2019-11-29 6:43 ` Chiu, Chasel
2019-11-28 1:05 ` [edk2-platforms][PATCH V2 27/47] WhiskeylakeOpenBoardPkg/WhiskeylakeURvp: " Kubacki, Michael A
2019-11-29 6:43 ` [edk2-devel] " Chiu, Chasel
2019-11-28 1:05 ` [edk2-platforms][PATCH V2 28/47] SimicsOpenBoardPkg/BoardX58Ich10: Use " Kubacki, Michael A
2019-11-28 1:05 ` [edk2-platforms][PATCH V2 29/47] MinPlatformPkg: Add FvAdvancedPreMemory Kubacki, Michael A
2019-11-29 6:43 ` [edk2-devel] " Chiu, Chasel
2019-12-03 23:57 ` Nate DeSimone
2019-11-28 1:05 ` [edk2-platforms][PATCH V2 30/47] KabylakeOpenBoardPkg/KabylakeRvp3: " Kubacki, Michael A
2019-11-29 6:45 ` Chiu, Chasel
2019-11-28 1:05 ` [edk2-platforms][PATCH V2 31/47] KabylakeOpenBoardPkg/GalagoPro3: " Kubacki, Michael A
2019-11-29 6:49 ` Chiu, Chasel
2019-11-28 1:05 ` [edk2-platforms][PATCH V2 32/47] WhiskeylakeOpenBoardPkg/WhiskeylakeURvp: " Kubacki, Michael A
2019-11-29 6:50 ` Chiu, Chasel
2019-11-28 1:06 ` [edk2-platforms][PATCH V2 33/47] Platform/Intel: Add advanced feature build support Kubacki, Michael A
2019-11-29 6:52 ` Chiu, Chasel
2019-11-28 1:06 ` [edk2-platforms][PATCH V2 34/47] Platform/Intel/Readme.md Content update Kubacki, Michael A
2019-11-28 1:06 ` [edk2-platforms][PATCH V2 35/47] KabylakeOpenBoardPkg/GalagoPro3: Enable advanced features Kubacki, Michael A
2019-11-29 7:00 ` Chiu, Chasel
2019-11-28 1:06 ` [edk2-platforms][PATCH V2 36/47] KabylakeOpenBoardPkg/KabylakeRvp3: " Kubacki, Michael A
2019-11-29 7:01 ` Chiu, Chasel
2019-11-28 1:06 ` [edk2-platforms][PATCH V2 37/47] WhiskeylakeOpenBoardPkg/WhiskeylakeURvp: " Kubacki, Michael A
2019-11-29 7:02 ` Chiu, Chasel
2019-11-28 1:06 ` [edk2-platforms][PATCH V2 38/47] SimicsOpenBoardPkg: Use new advanced feature refactor Kubacki, Michael A
2019-12-03 23:57 ` [edk2-devel] " Nate DeSimone
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-list from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20191128010614.43628-12-michael.a.kubacki@intel.com \
--to=devel@edk2.groups.io \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox