From: "Gao, Liming" <liming.gao@intel.com>
To: "Zhu, Yonghong" <yonghong.zhu@intel.com>,
"edk2-devel@lists.01.org" <edk2-devel@lists.01.org>
Cc: "Kinney, Michael D" <michael.d.kinney@intel.com>,
"Shaw, Kevin W" <kevin.w.shaw@intel.com>, Eugene <eugene@hp.com>
Subject: Re: [Patch] FDF spec: Add PI1.5 standalone SMM support in FDF file
Date: Thu, 25 Oct 2018 13:26:21 +0000 [thread overview]
Message-ID: <4A89E2EF3DFEDB4C8BFDE51014F606A14E35E5BD@SHSMSX104.ccr.corp.intel.com> (raw)
In-Reply-To: <1540471293-14776-1-git-send-email-yonghong.zhu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
> -----Original Message-----
> From: Zhu, Yonghong
> Sent: Thursday, October 25, 2018 8:42 PM
> To: edk2-devel@lists.01.org
> Cc: Gao, Liming <liming.gao@intel.com>; Kinney, Michael D <michael.d.kinney@intel.com>; Shaw, Kevin W <kevin.w.shaw@intel.com>;
> Cohen; Eugene <eugene@hp.com>
> 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 <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
next prev parent reply other threads:[~2018-10-25 13:26 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
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 [this message]
-- strict thread matches above, loose matches on Subject: below --
2018-10-22 8:35 Yonghong Zhu
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=4A89E2EF3DFEDB4C8BFDE51014F606A14E35E5BD@SHSMSX104.ccr.corp.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