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 v5 1/1] MdeModulePkg.dec: Change PCDs for status code.
Date: Wed, 17 Jun 2020 14:42:40 +0000	[thread overview]
Message-ID: <SN6PR11MB331298061645DADA2FF4DFDFB69A0@SN6PR11MB3312.namprd11.prod.outlook.com> (raw)
In-Reply-To: <20200617073556.54429-1-ming.tan@intel.com>

Reviewed-by: Jian J Wang <jian.j.wang@intel.com>

Regards,
Jian

> -----Original Message-----
> From: Tan, Ming <ming.tan@intel.com>
> Sent: Wednesday, June 17, 2020 3:36 PM
> To: devel@edk2.groups.io
> Cc: Wang, Jian J <jian.j.wang@intel.com>; Wu, Hao A <hao.a.wu@intel.com>
> Subject: [PATCH v5 1/1] 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.
> Currently do not remove the old pcd type to keep compatible.
> 
> 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>
> ---
> V5: Do not remove th old pcd type to keep compatible, and change to
> standalone patch.
> 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                    | 13 +++++++++++++
>  .../StatusCodeHandler/Pei/StatusCodeHandlerPei.c |  6 +++---
>  .../Pei/StatusCodeHandlerPei.inf                 |  6 ++----
>  .../RuntimeDxe/StatusCodeHandlerRuntimeDxe.c     | 16 ++++++++--------
>  .../RuntimeDxe/StatusCodeHandlerRuntimeDxe.inf   |  6 ++----
>  .../StatusCodeHandler/Smm/StatusCodeHandlerSmm.c | 10 +++++-----
>  .../Smm/StatusCodeHandlerSmm.inf                 |  6 ++----
>  7 files changed, 35 insertions(+), 28 deletions(-)
> 
> diff --git a/MdeModulePkg/MdeModulePkg.dec
> b/MdeModulePkg/MdeModulePkg.dec
> index 4f44af694862..bd369d1f230e 100644
> --- a/MdeModulePkg/MdeModulePkg.dec
> +++ b/MdeModulePkg/MdeModulePkg.dec
> @@ -2001,6 +2001,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


  reply	other threads:[~2020-06-17 14:42 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-06-17  7:35 [PATCH v5 1/1] MdeModulePkg.dec: Change PCDs for status code Tan, Ming
2020-06-17 14:42 ` Wang, Jian J [this message]
2020-06-17 16:47   ` [edk2-devel] " Michael D Kinney
2020-06-18  0:40     ` Tan, Ming
2020-06-18  0:57     ` Wang, Jian J
2020-06-18  1:46       ` Michael D Kinney
2020-06-18  2:25         ` Wang, Jian J

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=SN6PR11MB331298061645DADA2FF4DFDFB69A0@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