public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
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



  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