Reviewed-by: Liming Gao <[email protected]> > -----Original Message----- > From: Zhu, Yonghong > Sent: Thursday, October 25, 2018 8:42 PM > To: [email protected] > Cc: Gao, Liming <[email protected]>; Kinney, Michael D > <[email protected]>; Shaw, Kevin W <[email protected]>; > Cohen; Eugene <[email protected]> > Subject: [Patch] FDF spec: Add PI1.5 standalone SMM support in FDF file > > V2: Update it to MM_CORE_STANDALONE and MM_STANDALONE > > Fixes: https://bugzilla.tianocore.org/show_bug.cgi?id=551 > Cc: Liming Gao <[email protected]> > Cc: Michael Kinney <[email protected]> > Cc: Kevin W Shaw <[email protected]> > Cc: Cohen, Eugene <[email protected]> > Contributed-under: TianoCore Contribution Agreement 1.1 > Signed-off-by: Yonghong Zhu <[email protected]> > --- > 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
_______________________________________________ edk2-devel mailing list [email protected] https://lists.01.org/mailman/listinfo/edk2-devel

