public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
From: Yonghong Zhu <yonghong.zhu@intel.com>
To: edk2-devel@lists.01.org
Cc: Liming Gao <liming.gao@intel.com>,
	Michael Kinney <michael.d.kinney@intel.com>,
	Kevin W Shaw <kevin.w.shaw@intel.com>,
	Cohen, Eugene <eugene@hp.com>
Subject: [Patch] FDF spec: Add PI1.5 standalone SMM support in FDF file
Date: Mon, 22 Oct 2018 16:35:52 +0800	[thread overview]
Message-ID: <1540197352-4312-1-git-send-email-yonghong.zhu@intel.com> (raw)

Fixes: https://bugzilla.tianocore.org/show_bug.cgi?id=551
Cc: Liming Gao <liming.gao@intel.com>
Cc: Michael Kinney <michael.d.kinney@intel.com>
Cc: Kevin W Shaw <kevin.w.shaw@intel.com>
Cc: Cohen, Eugene <eugene@hp.com>
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Yonghong Zhu <yonghong.zhu@intel.com>
---
 1_introduction/12_terms.md                        |  9 +++++----
 2_fdf_design_discussion/25_[fv]_sections.md       |  6 +++++-
 3_edk_ii_fdf_file_format/32_fdf_definition.md     |  1 +
 3_edk_ii_fdf_file_format/36_[fv]_sections.md      | 19 ++++++++++++-------
 3_edk_ii_fdf_file_format/37_[capsule]_sections.md | 22 ++++++++++++++--------
 3_edk_ii_fdf_file_format/39_[rule]_sections.md    | 22 +++++++++++++---------
 README.md                                         |  1 +
 7 files changed, 51 insertions(+), 29 deletions(-)

diff --git a/1_introduction/12_terms.md b/1_introduction/12_terms.md
index af33faa..5d9cdc9 100644
--- a/1_introduction/12_terms.md
+++ b/1_introduction/12_terms.md
@@ -1,9 +1,9 @@
 <!--- @file
   1.2 Terms
 
-  Copyright (c) 2006-2017, Intel Corporation. All rights reserved.<BR>
+  Copyright (c) 2006-2018, Intel Corporation. All rights reserved.<BR>
 
   Redistribution and use in source (original document form) and 'compiled'
   forms (converted to PDF, epub, HTML and other formats) with or without
   modification, are permitted provided that the following conditions are met:
 
@@ -218,13 +218,14 @@ A module is either an executable image or a library instance. For a list of
 module types supported by this package, see module type.
 
 **Module Type**
 
 All libraries and components belong to one of the following module types: `BASE`,
-`SEC`, `PEI_CORE`, `PEIM`, `SMM_CORE`, `DXE_CORE`, `DXE_DRIVER`, `DXE_RUNTIME_DRIVER`,
-`DXE_SMM_DRIVER`, `DXE_SAL_DRIVER`, `UEFI_DRIVER`, or `UEFI_APPLICATION`. These
-definitions provide a framework that is consistent with a similar set of
+`SEC`, `PEI_CORE`, `PEIM`, `SMM_CORE`, `SMM_CORE_STANDALONE`, `DXE_CORE`,
+`DXE_DRIVER`, `DXE_RUNTIME_DRIVER`, `DXE_SMM_DRIVER`, `SMM_STANDALONE`,
+`DXE_SAL_DRIVER`, `UEFI_DRIVER`, or `UEFI_APPLICATION`.
+These definitions provide a framework that is consistent with a similar set of
 requirements. A module that is of module type BASE, depends only on headers and
 libraries provided in the MDE, while a module that is of module type DXE_DRIVER
 depends on common DXE components. For a definition of the various module types,
 see module type. The EDK II build system also permits modules of type
 USER_DEFINED. These modules will not be processed by the EDK II Build system.
diff --git a/2_fdf_design_discussion/25_[fv]_sections.md b/2_fdf_design_discussion/25_[fv]_sections.md
index 7b50017..bbf2d1d 100644
--- a/2_fdf_design_discussion/25_[fv]_sections.md
+++ b/2_fdf_design_discussion/25_[fv]_sections.md
@@ -1,9 +1,9 @@
 <!--- @file
   2.5 [FV] Sections
 
-  Copyright (c) 2006-2017, Intel Corporation. All rights reserved.<BR>
+  Copyright (c) 2006-2018, Intel Corporation. All rights reserved.<BR>
 
   Redistribution and use in source (original document form) and 'compiled'
   forms (converted to PDF, epub, HTML and other formats) with or without
   modification, are permitted provided that the following conditions are met:
 
@@ -314,12 +314,16 @@ EFI FV File Types - one and only one of the following:
 * `COMBO_PEIM_DRIVER` - Combined PEIM/DXE driver containing PEI and DXE depex
   sections as well as PE32 and version sections.[^1]
 
 * `SMM_CORE` - Sectioned data containing one or more other sections.
 
+* `SMM_CORE_STANDALONE` - Sectioned data containing one or more other sections.
+
 * `DXE_SMM_DRIVER` - Dispatched by the SMM Core
 
+* `SMM_STANDALONE` - Dispatched by the standalone SMM Core
+
 * `APPLICATION` - Application, so will not be dispatched
 
 * `FV_IMAGE` - File contains an FV image
 
 * `DISPOSABLE` - This section type is not supported by the EDK II build system
diff --git a/3_edk_ii_fdf_file_format/32_fdf_definition.md b/3_edk_ii_fdf_file_format/32_fdf_definition.md
index 4c323c5..fca3f78 100644
--- a/3_edk_ii_fdf_file_format/32_fdf_definition.md
+++ b/3_edk_ii_fdf_file_format/32_fdf_definition.md
@@ -205,10 +205,11 @@ The following are common definitions used by multiple section types.
 <NumValUint16>         ::= {<IntNum>} {<UINT16>}
 <NumValUint32>         ::= {<LongNum>} {<UINT32>}
 <NumValUint64>         ::= {<LongLongNum>} {<UINT64>}
 <ModuleType>           ::= {"BASE"} {"SEC"} {"PEI_CORE"} {"PEIM"}
                            {"DXE_CORE"} {"DXE_DRIVER"} {"SMM_CORE"}
+                           {"SMM_CORE_STANDALONE"} {"SMM_STANDALONE"}
                            {"DXE_RUNTIME_DRIVER"} {"DXE_SAL_DRIVER"}
                            {"DXE_SMM_DRIVER"} {"UEFI_DRIVER"}
                            {"UEFI_APPLICATION"} {"USER_DEFINED"}
 <ModuleTypeList>       ::= <ModuleType> [" " <ModuleType>]*
 <IdentifierName>       ::= <TS> {<MACROVAL>} {<PcdName>} <TS>
diff --git a/3_edk_ii_fdf_file_format/36_[fv]_sections.md b/3_edk_ii_fdf_file_format/36_[fv]_sections.md
index 7796c37..5394ca8 100644
--- a/3_edk_ii_fdf_file_format/36_[fv]_sections.md
+++ b/3_edk_ii_fdf_file_format/36_[fv]_sections.md
@@ -159,10 +159,11 @@ Conditional statements may be used anywhere within this section.
 <type5>             ::= <TS> "FILE" <MTS> "FV_IMAGE" <Eq>
                         <NamedGuidOrPcd> <Options2>
 <FvType1>           ::= {"SEC"} {"PEI_CORE"} {"PEIM"}
 <FvType2>           ::= {"FREEFORM"} {"PEI_DXE_COMBO"} {"DRIVER"}
                         {"DXE_CORE"} {"APPLICATION"} {"SMM_CORE"} {"SMM"}
+                        {"SMM_CORE_STANDALONE"} {"SMM_STANDALONE"}
 <Options1>          ::= [<Use>] [<FileOpts>] <RelocFlags> <MTS>
                         "{" [<EOL>]
                         {<Filename>} {<SectionData>} <TS> <TS> "}" [<EOL>]
 <Options2>          ::= [<Use>] [<FileOpts>] <MTS>
                         "{" [<EOL>]
@@ -240,31 +241,35 @@ Conditional statements may be used anywhere within this section.
                         [<GuidHeaderSize>]
 <GuidAttrPr>        ::= "PROCESSING_REQUIRED" <Eq> <TrueFalse> <MTS>
 <GuidAttrASV>       ::= "AUTH_STATUS_VALID" <Eq> <TrueFalse> <MTS>
 <GuidHeaderSize>    ::= "EXTRA_HEADER_SIZE" <Eq> <Number> <MTS>
 <DepexExpSection>   ::= if ( COMPONENT_TYPE == "LIBRARY"
-                        || LIBRARY_CLASS is declared in defines section of the
-                        INF
+                        || LIBRARY_CLASS is declared in defines section of INF
                         || MODULE_TYPE == "USER_DEFINED" ):
                         [<Depex>]
                         else if ( MODULE_TYPE == "PEIM"
                         || MODULE_TYPE == "DXE_DRIVER"
                         || MODULE_TYPE == "DXE_RUNTIME_DRIVER"
-                        || MODULE_TYPE == "DXE_SAL_DRIVER" || MODULE_TYPE ==
-                        "DXE_SMM_DRIVER" ):
+                        || MODULE_TYPE == "DXE_SAL_DRIVER"
+                        || MODULE_TYPE == "SMM_STANDALONE"
+                        || MODULE_TYPE == "DXE_SMM_DRIVER" ):
                         <Depex>
                         else if ( MODULE_TYPE == "UEFI_APPLICATION"
                         && MODULE_TYPE == "UEFI_DRIVER"
                         && MODULE_TYPE == "PEI_CORE"
                         && MODULE_TYPE == "DXE_CORE"
                         && MODULE_TYPE == "SMM_CORE"
+                        && MODULE_TYPE == "SMM_CORE_STANDALONE"
                         && MODULE_TYPE == "SEC" ):
                         No DEPEX section is permitted
 <Depex>             ::= if (MODULE_TYPE == "PEIM"):
-                        <PeiDepexExp> else if (MODULE_TYPE ==
-                        "DXE_SMM_DRIVER"):
-                        <SmmDepexExp> [<DxeDepexExp>] else:
+                        <PeiDepexExp>
+                        else if (MODULE_TYPE == "DXE_SMM_DRIVER"):
+                        <SmmDepexExp> [<DxeDepexExp>]
+                        else if (MODULE_TYPE == "SMM_STANDALONE"):
+                        <SmmDepexExp>
+                        else:
                         <DxeDepexExp>
 <PeiDepexExp>       ::= <TS> "SECTION" <MTS> [<FfsAlignment>] "PEI_DEPEX_EXP"
                         <Eq> "{" [<EOL>] <PeiDepex> "}" <EOL>
 <PeiDepex>          ::= [<TS> <BoolStmt> {<EOL>} {<MTS>}]
                         [<TS> <DepInstruct> {<EOL>} {<MTS>}]
diff --git a/3_edk_ii_fdf_file_format/37_[capsule]_sections.md b/3_edk_ii_fdf_file_format/37_[capsule]_sections.md
index 03a16ca..f155c3f 100644
--- a/3_edk_ii_fdf_file_format/37_[capsule]_sections.md
+++ b/3_edk_ii_fdf_file_format/37_[capsule]_sections.md
@@ -108,10 +108,11 @@ Conditional statements may be used anywhere within this section.
 <type5>             ::= "FILE" "FV_IMAGE" <Eq> <NamedGuidOrPcd>
                         <Options2>
 <FvType1>           ::= {"SEC"} {"PEI_CORE"} {"PEIM"}
 <FvType2>           ::= {"FREEFORM"} {"PEI_DXE_COMBO"} {"DRIVER"}
                         {"DXE_CORE"} {"APPLICATION"} {"SMM_CORE"} {"SMM"}
+                        {"SMM_CORE_STANDALONE"} {"SMM_STANDALONE"}
 <Options1>          ::= [<Use>] [<FileOpts>] [<RelocFlags>]
                         "{" [<EOL>]
                         <TS> {<Filename>} {<SectionData>} [<EOL>] <TS> "}"
                         <EOL>
 <Options2>          ::= [<Use>] [<FileOpts>]
@@ -248,30 +249,35 @@ Conditional statements may be used anywhere within this section.
                         [<TS> "READ_ENABLED_CAP" <Eq> <TrueFalse> <EOL>]
                         [<TS> "READ_DISABLED_CAP" <Eq> <TrueFalse> <EOL>]
                         [<TS> "READ_STATUS" <Eq> <TrueFalse> <EOL>]
 <FileSystemGuid>    ::= "FileSystemGuid" <Eq> <NamedGuidOrPcd>
 <DepexExpSection>   ::= if ( COMPONENT_TYPE == "LIBRARY"
-                        || LIBRARY_CLASS is declared in defines section of the
-                        INF
+                        || LIBRARY_CLASS is declared in defines section of INF
                         || MODULE_TYPE == "USER_DEFINED" ):
                         [<Depex>]
                         else if ( MODULE_TYPE == "PEIM"
                         || MODULE_TYPE == "DXE_DRIVER"
                         || MODULE_TYPE == "DXE_RUNTIME_DRIVER"
-                        || MODULE_TYPE == "DXE_SAL_DRIVER" || MODULE_TYPE ==
-                        "DXE_SMM_DRIVER" ):
+                        || MODULE_TYPE == "DXE_SAL_DRIVER"
+                        || MODULE_TYPE == "SMM_STANDALONE"
+                        || MODULE_TYPE == "DXE_SMM_DRIVER" ):
                         <Depex>
-                        elif ( MODULE_TYPE == "UEFI_APPLICATION"
+                        else if ( MODULE_TYPE == "UEFI_APPLICATION"
                         || MODULE_TYPE == "UEFI_DRIVER"
                         || MODULE_TYPE == "PEI_CORE"
                         || MODULE_TYPE == "DXE_CORE"
                         || MODULE_TYPE == "SMM_CORE"
+                        || MODULE_TYPE == "SMM_CORE_STANDALONE"
                         || MODULE_TYPE == "SEC"):
                         No DEPEX section is permitted
-<Depex>             ::= if (MODULE_TYPE == PEIM): <PeiDepexExp> elif
-                        (MODULE_TYPE == "DXE_SMM_DRIVER"): <SmmDepexExp>
-                        [<DxeDepexExp>] else:
+<Depex>             ::= if (MODULE_TYPE == PEIM): 
+                        <PeiDepexExp> 
+                        else if (MODULE_TYPE == "DXE_SMM_DRIVER"):
+                        <SmmDepexExp> [<DxeDepexExp>]
+                        else if (MODULE_TYPE == "SMM_STANDALONE"):
+                        <SmmDepexExp>
+                        else:
                         <DxeDepexExp>
 <PeiDepexExp>       ::= "SECTION" <MTS> [<FfsAlignment>]
                         "PEI_DEPEX_EXP"
                         <Eq> "{" [<EOL>] <PeiDepex> "}" <EOL>
 <PeiDepex>          ::= [<BoolStmt> {<EOL>} {<MTS>}]*
diff --git a/3_edk_ii_fdf_file_format/39_[rule]_sections.md b/3_edk_ii_fdf_file_format/39_[rule]_sections.md
index e23b474..e1e104c 100644
--- a/3_edk_ii_fdf_file_format/39_[rule]_sections.md
+++ b/3_edk_ii_fdf_file_format/39_[rule]_sections.md
@@ -59,10 +59,11 @@ Conditional statements may be used anywhere within this section.
                         [<TemplateName>]
 <ModuleType>        ::= {<EdkComponentType>} {<Edk2ModuleType>}
 <Edk2ModuleType>    ::= {"SEC"} {"PEI_CORE"} {"PEIM"} {"SMM_CORE"}
                         {"DXE_CORE"} {"DXE_DRIVER"}
                         {"DXE_SAL_DRIVER"} {"DXE_SMM_DRIVER"}
+                        {"SMM_CORE_STANDALONE"} {"SMM_STANDALONE"}
                         {"DXE_RUNTIME_DRIVER"} {"UEFI_DRIVER"}
                         {"UEFI_APPLICATION"} {"USER_DEFINED"}
 <EdkComponentType>  ::= {"LIBRARY"} {"APPLICATION"} {"AcpiTable"}
                         {"BINARY"} {"BS_DRIVER"} {"LOGO"}
                         {"Legacy16"} {"Microcode"} {"PE32_PEIM"}
@@ -75,30 +76,32 @@ Conditional statements may be used anywhere within this section.
 <FileStatements>    ::= if (MODULE_TYPE == "SEC"
                         || MODULE_TYPE == "PEI_CORE"
                         || MODULE_TYPE == "PEIM"
                         || COMPONENT_TYPE == "PEI_CORE"
                         || COMPONENT_TYPE == "PIC_PEIM"
-                        || COMPONENT_TYPE == "RELOCATABLE_PEIM" ||
-                        COMPONENT_TYPE == "SECURITY_CORE"
+                        || COMPONENT_TYPE == "RELOCATABLE_PEIM"
+                        || COMPONENT_TYPE == "SECURITY_CORE"
                         || COMPONENT_TYPE == "PE32_PEIM" ):
                         <TS> "FILE" <MTS> <FvType1> <Eq>
                         <FileStatement1>
-                        elif (MODULE_TYPE == "DXE_CORE" || MODULE_TYPE ==
-                        "DXE_DRIVER"
-                        || MODULE_TYPE == "DXE_SAL_DRIVER" || MODULE_TYPE ==
-                        "SMM_CORE"
+                        elif (MODULE_TYPE == "DXE_CORE" 
+                        || MODULE_TYPE == "DXE_DRIVER"
+                        || MODULE_TYPE == "DXE_SAL_DRIVER"
+                        || MODULE_TYPE == "SMM_CORE"
+                        || MODULE_TYPE == "SMM_CORE_STANDALONE"
                         || MODULE_TYPE == "DXE_SMM_DRIVER"
+                        || MODULE_TYPE == "SMM_STANDALONE"
                         || MODULE_TYPE == "UEFI_DRIVER"
                         || MODULE_TYPE == "UEFI_APPLICATION"
                         || MODULE_TYPE == "USER_DEFINED"
                         || COMPONENT_TYPE == "BS_DRIVER"
-                        || COMPONENT_TYPE ==
-                        "COMBINED_PEIM_DRIVER"
+                        || COMPONENT_TYPE == "COMBINED_PEIM_DRIVER"
                         || COMPONENT_TYPE == "APPLICATION"):
                         {<FileStatement2>} {<FileStatement3>}
                         elif (MODULE_TYPE == "FV_IMAGE"):
-                        <FileStatement4> else:
+                        <FileStatement4> 
+                        else:
                         <TS> "FILE" <MTS> "NON_FFS_FILE" <Eq>
                         [<NamedGuid>] [<Options>] <EOL>
 <FileStatement1>    ::= <NamedGuid> [<RelocFlags> <MTS>] [<Options>] <EOL>
 <FileStatement2>    ::= <TS> "FILE" <MTS> <FvType2> <Eq> <NamedGuid>
                         [<Options>] <EOL>
@@ -108,10 +111,11 @@ Conditional statements may be used anywhere within this section.
                         <NamedGuid> [<Options>] <EOL>
 <NamedGuid>         ::= {"$(NAMED_GUID)"} {<NamedGuidOrPcd>}
 <FvType1>           ::= {"SEC"} {"PEI_CORE"} {"PEIM"} {"PEI_DXE_COMBO"}
 <FvType2>           ::= {"FREEFORM"} {"DRIVER"} {"DXE_CORE"}
                         {"APPLICATION"} {"SMM_CORE"} {"SMM"}
+                        {"SMM_CORE_STANDALONE"} {"SMM_STANDALONE"}
 <RelocFlags>        ::= {"RELOCS_STRIPPED" <MTS>}
                         {"RELOCS_RETAINED" <MTS>}
 <Options>           ::= [<UseLocal>] [<FileOpts>] <FileSpec>
 <UseLocal>          ::= <KeyString> ["," <KeyString>]
 <KeyString>         ::= <Target> "_" <TagName> "_" <ToolArch>
diff --git a/README.md b/README.md
index 217356a..7c7face 100644
--- a/README.md
+++ b/README.md
@@ -214,5 +214,6 @@ Copyright (c) 2006-2017, Intel Corporation. All rights reserved.
 |            | Add !error statement section                                                                                                                                               |               |
 |            | clean up the <NamedGuidOrPcd> and <NamedGuid> usage in spec                                                                                                                |               |
 |            | document WEAK_ALIGNMENT attribute                                                                                                                                          |               |
 |            | support varstore template generation with a [FV] section                                                                                                                   |               |
 |            | [#1110](https://bugzilla.tianocore.org/show_bug.cgi?id=1110) Extend exclamation statement's keyword to case-insensitive                                                    |               |
+|            | [#551] (https://bugzilla.tianocore.org/show_bug.cgi?id=551) Add PI1.5 standalone SMM support in FDF file                                                                   |               |
-- 
2.6.1.windows.1



             reply	other threads:[~2018-10-22  8:36 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-10-22  8:35 Yonghong Zhu [this message]
  -- strict thread matches above, loose matches on Subject: below --
2018-10-25 12:41 [Patch] FDF spec: Add PI1.5 standalone SMM support in FDF file Yonghong Zhu
2018-10-25 13:26 ` Gao, Liming

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=1540197352-4312-1-git-send-email-yonghong.zhu@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