public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
* [Patch] FDF spec: Add PI1.5 standalone SMM support in FDF file
@ 2018-10-25 12:41 Yonghong Zhu
  2018-10-25 13:26 ` Gao, Liming
  0 siblings, 1 reply; 3+ messages in thread
From: Yonghong Zhu @ 2018-10-25 12:41 UTC (permalink / raw)
  To: edk2-devel; +Cc: Liming Gao, Michael Kinney, Kevin W Shaw, Cohen, Eugene

V2: Update it to MM_CORE_STANDALONE and MM_STANDALONE

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..abb857b 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`, `MM_CORE_STANDALONE`, `DXE_CORE`,
+`DXE_DRIVER`, `DXE_RUNTIME_DRIVER`, `DXE_SMM_DRIVER`, `MM_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..4d3566d 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.
 
+* `MM_CORE_STANDALONE` - Sectioned data containing one or more other sections.
+
 * `DXE_SMM_DRIVER` - Dispatched by the SMM Core
 
+* `MM_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..db098cf 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"}
+                           {"MM_CORE_STANDALONE"} {"MM_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..2b21906 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"}
+                        {"MM_CORE_STANDALONE"} {"MM_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 == "MM_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 == "MM_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 == "MM_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..c20c73a 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"}
+                        {"MM_CORE_STANDALONE"} {"MM_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 == "MM_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 == "MM_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 == "MM_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..34e767f 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"}
+                        {"MM_CORE_STANDALONE"} {"MM_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 == "MM_CORE_STANDALONE"
                         || MODULE_TYPE == "DXE_SMM_DRIVER"
+                        || MODULE_TYPE == "MM_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"}
+                        {"MM_CORE_STANDALONE"} {"MM_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



^ permalink raw reply related	[flat|nested] 3+ messages in thread
* [Patch] FDF spec: Add PI1.5 standalone SMM support in FDF file
@ 2018-10-22  8:35 Yonghong Zhu
  0 siblings, 0 replies; 3+ messages in thread
From: Yonghong Zhu @ 2018-10-22  8:35 UTC (permalink / raw)
  To: edk2-devel; +Cc: Liming Gao, Michael Kinney, Kevin W Shaw, Cohen, Eugene

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



^ permalink raw reply related	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2018-10-25 13:26 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
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
  -- strict thread matches above, loose matches on Subject: below --
2018-10-22  8:35 Yonghong Zhu

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox