public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
From: "Wang, Jian J" <jian.j.wang@intel.com>
To: "Tan, Ming" <ming.tan@intel.com>,
	"devel@edk2.groups.io" <devel@edk2.groups.io>
Cc: "Wu, Hao A" <hao.a.wu@intel.com>
Subject: Re: [PATCH v4 1/4] MdeModulePkg.dec: Change PCDs for status code.
Date: Wed, 17 Jun 2020 06:55:06 +0000	[thread overview]
Message-ID: <SN6PR11MB331276FA7A4BA7BEB3A03E67B69A0@SN6PR11MB3312.namprd11.prod.outlook.com> (raw)
In-Reply-To: <20200610025634.21833-1-ming.tan@intel.com>

Hi Ming,

I'd suggest to keep the type of FeatureFlag for these two PCDs.
So those platforms, which don't want to use dynamic type, have
no need to update it's dsc file.

Regards,
Jian

> -----Original Message-----
> From: Tan, Ming <ming.tan@intel.com>
> Sent: Wednesday, June 10, 2020 10:57 AM
> To: devel@edk2.groups.io
> Cc: Wang, Jian J <jian.j.wang@intel.com>; Wu, Hao A <hao.a.wu@intel.com>
> Subject: [PATCH v4 1/4] MdeModulePkg.dec: Change PCDs for status code.
> 
> REF: https://bugzilla.tianocore.org/show_bug.cgi?id=2786
> 
> In order to support enable/disable report status code through memory
> or serial dynamic, change the following PCDs from [PcdsFeatureFlag] to
> [PcdsFixedAtBuild, PcdsPatchableInModule, PcdsDynamic, PcdsDynamicEx]:
>   PcdStatusCodeUseSerial
>   PcdStatusCodeUseMemory
> The original plaforms can use PcdsFixedAtBuild in .dsc files to save size.
> 
> Cc: Jian J Wang <jian.j.wang@intel.com>
> Cc: Hao A Wu <hao.a.wu@intel.com>
> Signed-off-by: Ming Tan <ming.tan@intel.com>
> ---
> V4: No change for this 1/4 patch, just modify the 2-4/4 patchs.
> V3: Split one patch to several patchs, each Pkg has one patch.
> V2: Change the new type from [PcdsDynamic] to [PcdsFixedAtBuild,
> PcdsPatchableInModule, PcdsDynamic, PcdsDynamicEx]
>     And set to PcdsFixedAtBuild in the original platform .dsc files.
> 
>  MdeModulePkg/MdeModulePkg.dec                 | 26 +++++++++----------
>  .../Pei/StatusCodeHandlerPei.c                |  6 ++---
>  .../Pei/StatusCodeHandlerPei.inf              |  6 ++---
>  .../RuntimeDxe/StatusCodeHandlerRuntimeDxe.c  | 16 ++++++------
>  .../StatusCodeHandlerRuntimeDxe.inf           |  6 ++---
>  .../Smm/StatusCodeHandlerSmm.c                | 10 +++----
>  .../Smm/StatusCodeHandlerSmm.inf              |  6 ++---
>  7 files changed, 35 insertions(+), 41 deletions(-)
> 
> diff --git a/MdeModulePkg/MdeModulePkg.dec
> b/MdeModulePkg/MdeModulePkg.dec
> index 4f44af694862..843e963ad34b 100644
> --- a/MdeModulePkg/MdeModulePkg.dec
> +++ b/MdeModulePkg/MdeModulePkg.dec
> @@ -760,19 +760,6 @@ [PcdsFeatureFlag]
>    # @Prompt Enable PCI bridge IO alignment probe.
> 
> gEfiMdeModulePkgTokenSpaceGuid.PcdPciBridgeIoAlignmentProbe|FALSE|BOO
> LEAN|0x0001004e
> 
> -  ## Indicates if StatusCode is reported via Serial port.<BR><BR>
> -  #   TRUE  - Reports StatusCode via Serial port.<BR>
> -  #   FALSE - Does not report StatusCode via Serial port.<BR>
> -  # @Prompt Enable StatusCode via Serial port.
> -
> gEfiMdeModulePkgTokenSpaceGuid.PcdStatusCodeUseSerial|TRUE|BOOLEAN|
> 0x00010022
> -
> -  ## Indicates if StatusCode is stored in memory.
> -  #  The memory is boot time memory in PEI Phase and is runtime memory in
> DXE Phase.<BR><BR>
> -  #   TRUE  - Stores StatusCode in memory.<BR>
> -  #   FALSE - Does not store StatusCode in memory.<BR>
> -  # @Prompt Enable StatusCode via memory.
> -
> gEfiMdeModulePkgTokenSpaceGuid.PcdStatusCodeUseMemory|FALSE|BOOLEA
> N|0x00010023
> -
>    ## Indicates if PEI phase StatusCode will be replayed in DXE phase.<BR><BR>
>    #   TRUE  - Replays PEI phase StatusCode in DXE phased.<BR>
>    #   FALSE - Does not replay PEI phase StatusCode in DXE phase.<BR>
> @@ -2001,6 +1988,19 @@ [PcdsFixedAtBuild, PcdsPatchableInModule,
> PcdsDynamic, PcdsDynamicEx]
>    # @Prompt TCG Platform Firmware Profile revision.
> 
> gEfiMdeModulePkgTokenSpaceGuid.PcdTcgPfpMeasurementRevision|0|UINT3
> 2|0x00010077
> 
> +  ## Indicates if StatusCode is reported via Serial port.<BR><BR>
> +  #   TRUE  - Reports StatusCode via Serial port.<BR>
> +  #   FALSE - Does not report StatusCode via Serial port.<BR>
> +  # @Prompt Enable StatusCode via Serial port.
> +
> gEfiMdeModulePkgTokenSpaceGuid.PcdStatusCodeUseSerial|TRUE|BOOLEAN|
> 0x00010022
> +
> +  ## Indicates if StatusCode is stored in memory.
> +  #  The memory is boot time memory in PEI Phase and is runtime memory in
> DXE Phase.<BR><BR>
> +  #   TRUE  - Stores StatusCode in memory.<BR>
> +  #   FALSE - Does not store StatusCode in memory.<BR>
> +  # @Prompt Enable StatusCode via memory.
> +
> gEfiMdeModulePkgTokenSpaceGuid.PcdStatusCodeUseMemory|FALSE|BOOLEA
> N|0x00010023
> +
>  [PcdsPatchableInModule]
>    ## Specify memory size with page number for PEI code when
>    #  Loading Module at Fixed Address feature is enabled.
> diff --git
> a/MdeModulePkg/Universal/StatusCodeHandler/Pei/StatusCodeHandlerPei.c
> b/MdeModulePkg/Universal/StatusCodeHandler/Pei/StatusCodeHandlerPei.c
> index 1b07f92f3ce8..9b2ea4ee84d9 100644
> --- a/MdeModulePkg/Universal/StatusCodeHandler/Pei/StatusCodeHandlerPei.c
> +++
> b/MdeModulePkg/Universal/StatusCodeHandler/Pei/StatusCodeHandlerPei.c
> @@ -2,7 +2,7 @@
>    Report Status Code Handler PEIM which produces general handlers and hook
> them
>    onto the PEI status code router.
> 
> -  Copyright (c) 2009 - 2018, Intel Corporation. All rights reserved.<BR>
> +  Copyright (c) 2009 - 2020, Intel Corporation. All rights reserved.<BR>
>    SPDX-License-Identifier: BSD-2-Clause-Patent
> 
>  **/
> @@ -45,13 +45,13 @@ StatusCodeHandlerPeiEntry (
>    // If enable UseSerial, then initialize serial port.
>    // if enable UseMemory, then initialize memory status code worker.
>    //
> -  if (FeaturePcdGet (PcdStatusCodeUseSerial)) {
> +  if (PcdGetBool (PcdStatusCodeUseSerial)) {
>      Status = SerialPortInitialize();
>      ASSERT_EFI_ERROR (Status);
>      Status = RscHandlerPpi->Register (SerialStatusCodeReportWorker);
>      ASSERT_EFI_ERROR (Status);
>    }
> -  if (FeaturePcdGet (PcdStatusCodeUseMemory)) {
> +  if (PcdGetBool (PcdStatusCodeUseMemory)) {
>      Status = MemoryStatusCodeInitializeWorker ();
>      ASSERT_EFI_ERROR (Status);
>      Status = RscHandlerPpi->Register (MemoryStatusCodeReportWorker);
> diff --git
> a/MdeModulePkg/Universal/StatusCodeHandler/Pei/StatusCodeHandlerPei.inf
> b/MdeModulePkg/Universal/StatusCodeHandler/Pei/StatusCodeHandlerPei.inf
> index 8aef9af34a05..64380ddfaccc 100644
> ---
> a/MdeModulePkg/Universal/StatusCodeHandler/Pei/StatusCodeHandlerPei.inf
> +++
> b/MdeModulePkg/Universal/StatusCodeHandler/Pei/StatusCodeHandlerPei.inf
> @@ -53,11 +53,9 @@ [Guids]
>  [Ppis]
>    gEfiPeiRscHandlerPpiGuid                      ## CONSUMES
> 
> -[FeaturePcd]
> -  gEfiMdeModulePkgTokenSpaceGuid.PcdStatusCodeUseMemory ##
> CONSUMES
> -  gEfiMdeModulePkgTokenSpaceGuid.PcdStatusCodeUseSerial ## CONSUMES
> -
>  [Pcd]
> +  gEfiMdeModulePkgTokenSpaceGuid.PcdStatusCodeUseSerial ## CONSUMES
> +  gEfiMdeModulePkgTokenSpaceGuid.PcdStatusCodeUseMemory ##
> CONSUMES
> 
> gEfiMdeModulePkgTokenSpaceGuid.PcdStatusCodeMemorySize|1|gEfiMdeMod
> ulePkgTokenSpaceGuid.PcdStatusCodeUseMemory    ##
> SOMETIMES_CONSUMES
> 
>  [Depex]
> diff --git
> a/MdeModulePkg/Universal/StatusCodeHandler/RuntimeDxe/StatusCodeHandl
> erRuntimeDxe.c
> b/MdeModulePkg/Universal/StatusCodeHandler/RuntimeDxe/StatusCodeHandl
> erRuntimeDxe.c
> index 79cc48fa55a4..a8c0fe5b7149 100644
> ---
> a/MdeModulePkg/Universal/StatusCodeHandler/RuntimeDxe/StatusCodeHandl
> erRuntimeDxe.c
> +++
> b/MdeModulePkg/Universal/StatusCodeHandler/RuntimeDxe/StatusCodeHandl
> erRuntimeDxe.c
> @@ -2,7 +2,7 @@
>    Status Code Handler Driver which produces general handlers and hook them
>    onto the DXE status code router.
> 
> -  Copyright (c) 2006 - 2019, Intel Corporation. All rights reserved.<BR>
> +  Copyright (c) 2006 - 2020, Intel Corporation. All rights reserved.<BR>
>    SPDX-License-Identifier: BSD-2-Clause-Patent
> 
>  **/
> @@ -29,7 +29,7 @@ UnregisterBootTimeHandlers (
>    IN VOID             *Context
>    )
>  {
> -  if (FeaturePcdGet (PcdStatusCodeUseSerial)) {
> +  if (PcdGetBool (PcdStatusCodeUseSerial)) {
>      mRscHandlerProtocol->Unregister (SerialStatusCodeReportWorker);
>    }
>  }
> @@ -80,14 +80,14 @@ InitializationDispatcherWorker (
>    // If enable UseSerial, then initialize serial port.
>    // if enable UseRuntimeMemory, then initialize runtime memory status code
> worker.
>    //
> -  if (FeaturePcdGet (PcdStatusCodeUseSerial)) {
> +  if (PcdGetBool (PcdStatusCodeUseSerial)) {
>      //
>      // Call Serial Port Lib API to initialize serial port.
>      //
>      Status = SerialPortInitialize ();
>      ASSERT_EFI_ERROR (Status);
>    }
> -  if (FeaturePcdGet (PcdStatusCodeUseMemory)) {
> +  if (PcdGetBool (PcdStatusCodeUseMemory)) {
>      Status = RtMemoryStatusCodeInitializeWorker ();
>      ASSERT_EFI_ERROR (Status);
>    }
> @@ -115,7 +115,7 @@ InitializationDispatcherWorker (
>          //
>          // Dispatch records to devices based on feature flag.
>          //
> -        if (FeaturePcdGet (PcdStatusCodeUseSerial)) {
> +        if (PcdGetBool (PcdStatusCodeUseSerial)) {
>            SerialStatusCodeReportWorker (
>              Record[Index].CodeType,
>              Record[Index].Value,
> @@ -124,7 +124,7 @@ InitializationDispatcherWorker (
>              NULL
>              );
>          }
> -        if (FeaturePcdGet (PcdStatusCodeUseMemory)) {
> +        if (PcdGetBool (PcdStatusCodeUseMemory)) {
>            RtMemoryStatusCodeReportWorker (
>              Record[Index].CodeType,
>              Record[Index].Value,
> @@ -171,10 +171,10 @@ StatusCodeHandlerRuntimeDxeEntry (
>    //
>    InitializationDispatcherWorker ();
> 
> -  if (FeaturePcdGet (PcdStatusCodeUseSerial)) {
> +  if (PcdGetBool (PcdStatusCodeUseSerial)) {
>      mRscHandlerProtocol->Register (SerialStatusCodeReportWorker,
> TPL_HIGH_LEVEL);
>    }
> -  if (FeaturePcdGet (PcdStatusCodeUseMemory)) {
> +  if (PcdGetBool (PcdStatusCodeUseMemory)) {
>      mRscHandlerProtocol->Register (RtMemoryStatusCodeReportWorker,
> TPL_HIGH_LEVEL);
>    }
> 
> diff --git
> a/MdeModulePkg/Universal/StatusCodeHandler/RuntimeDxe/StatusCodeHandl
> erRuntimeDxe.inf
> b/MdeModulePkg/Universal/StatusCodeHandler/RuntimeDxe/StatusCodeHandl
> erRuntimeDxe.inf
> index d74c2a55dcaf..faadfd9578fe 100644
> ---
> a/MdeModulePkg/Universal/StatusCodeHandler/RuntimeDxe/StatusCodeHandl
> erRuntimeDxe.inf
> +++
> b/MdeModulePkg/Universal/StatusCodeHandler/RuntimeDxe/StatusCodeHandl
> erRuntimeDxe.inf
> @@ -58,12 +58,10 @@ [Guids]
>  [Protocols]
>    gEfiRscHandlerProtocolGuid                    ## CONSUMES
> 
> -[FeaturePcd]
> +[Pcd]
>    gEfiMdeModulePkgTokenSpaceGuid.PcdStatusCodeReplayIn  ## CONSUMES
> -  gEfiMdeModulePkgTokenSpaceGuid.PcdStatusCodeUseMemory ##
> CONSUMES
>    gEfiMdeModulePkgTokenSpaceGuid.PcdStatusCodeUseSerial ## CONSUMES
> -
> -[Pcd]
> +  gEfiMdeModulePkgTokenSpaceGuid.PcdStatusCodeUseMemory ##
> CONSUMES
>    gEfiMdeModulePkgTokenSpaceGuid.PcdStatusCodeMemorySize |128|
> gEfiMdeModulePkgTokenSpaceGuid.PcdStatusCodeUseMemory   ##
> SOMETIMES_CONSUMES
> 
>  [Depex]
> diff --git
> a/MdeModulePkg/Universal/StatusCodeHandler/Smm/StatusCodeHandlerSmm.
> c
> b/MdeModulePkg/Universal/StatusCodeHandler/Smm/StatusCodeHandlerSmm.
> c
> index f54991ed3f67..20271571ded4 100644
> ---
> a/MdeModulePkg/Universal/StatusCodeHandler/Smm/StatusCodeHandlerSmm.
> c
> +++
> b/MdeModulePkg/Universal/StatusCodeHandler/Smm/StatusCodeHandlerSmm.
> c
> @@ -2,7 +2,7 @@
>    Status Code Handler Driver which produces general handlers and hook them
>    onto the SMM status code router.
> 
> -  Copyright (c) 2009 - 2018, Intel Corporation. All rights reserved.<BR>
> +  Copyright (c) 2009 - 2020, Intel Corporation. All rights reserved.<BR>
>    SPDX-License-Identifier: BSD-2-Clause-Patent
> 
>  **/
> @@ -28,14 +28,14 @@ InitializationDispatcherWorker (
>    // If enable UseSerial, then initialize serial port.
>    // if enable UseRuntimeMemory, then initialize runtime memory status code
> worker.
>    //
> -  if (FeaturePcdGet (PcdStatusCodeUseSerial)) {
> +  if (PcdGetBool (PcdStatusCodeUseSerial)) {
>      //
>      // Call Serial Port Lib API to initialize serial port.
>      //
>      Status = SerialPortInitialize ();
>      ASSERT_EFI_ERROR (Status);
>    }
> -  if (FeaturePcdGet (PcdStatusCodeUseMemory)) {
> +  if (PcdGetBool (PcdStatusCodeUseMemory)) {
>      Status = MemoryStatusCodeInitializeWorker ();
>      ASSERT_EFI_ERROR (Status);
>    }
> @@ -73,10 +73,10 @@ StatusCodeHandlerSmmEntry (
>    //
>    InitializationDispatcherWorker ();
> 
> -  if (FeaturePcdGet (PcdStatusCodeUseSerial)) {
> +  if (PcdGetBool (PcdStatusCodeUseSerial)) {
>      mRscHandlerProtocol->Register (SerialStatusCodeReportWorker);
>    }
> -  if (FeaturePcdGet (PcdStatusCodeUseMemory)) {
> +  if (PcdGetBool (PcdStatusCodeUseMemory)) {
>      mRscHandlerProtocol->Register (MemoryStatusCodeReportWorker);
>    }
> 
> diff --git
> a/MdeModulePkg/Universal/StatusCodeHandler/Smm/StatusCodeHandlerSmm.i
> nf
> b/MdeModulePkg/Universal/StatusCodeHandler/Smm/StatusCodeHandlerSmm.i
> nf
> index 47d0545f9591..4e24d87e55d1 100644
> ---
> a/MdeModulePkg/Universal/StatusCodeHandler/Smm/StatusCodeHandlerSmm.i
> nf
> +++
> b/MdeModulePkg/Universal/StatusCodeHandler/Smm/StatusCodeHandlerSmm.i
> nf
> @@ -53,11 +53,9 @@ [Guids]
>  [Protocols]
>    gEfiSmmRscHandlerProtocolGuid                 ## CONSUMES
> 
> -[FeaturePcd]
> -  gEfiMdeModulePkgTokenSpaceGuid.PcdStatusCodeUseMemory ##
> CONSUMES
> -  gEfiMdeModulePkgTokenSpaceGuid.PcdStatusCodeUseSerial ## CONSUMES
> -
>  [Pcd]
> +  gEfiMdeModulePkgTokenSpaceGuid.PcdStatusCodeUseSerial ## CONSUMES
> +  gEfiMdeModulePkgTokenSpaceGuid.PcdStatusCodeUseMemory ##
> CONSUMES
>    gEfiMdeModulePkgTokenSpaceGuid.PcdStatusCodeMemorySize |128|
> gEfiMdeModulePkgTokenSpaceGuid.PcdStatusCodeUseMemory   ##
> SOMETIMES_CONSUMES
> 
>  [Depex]
> --
> 2.24.0.windows.2


      parent reply	other threads:[~2020-06-17  6:55 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-06-10  2:56 [PATCH v4 1/4] MdeModulePkg.dec: Change PCDs for status code Tan, Ming
2020-06-10  2:56 ` [PATCH v4 2/4] EmulatorPkg/EmulatorPkg.dsc: Change PCDs type about " Tan, Ming
2020-06-10  3:17   ` Ni, Ray
2020-06-10  2:56 ` [PATCH v4 3/4] UefiPayloadPkg/UefiPayloadPkgIa*.dsc: Change some PCDs type Tan, Ming
2020-06-12  0:41   ` Guo Dong
2020-06-10  2:56 ` [PATCH v4 4/4] OvmfPkg/OvmfPkg*.dsc: Change PCDs type about status code Tan, Ming
2020-06-11 14:23   ` Laszlo Ersek
2020-06-17  6:55 ` Wang, Jian J [this message]

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=SN6PR11MB331276FA7A4BA7BEB3A03E67B69A0@SN6PR11MB3312.namprd11.prod.outlook.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