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 <[email protected]>
> Sent: Wednesday, June 10, 2020 10:57 AM
> To: [email protected]
> Cc: Wang, Jian J <[email protected]>; Wu, Hao A <[email protected]>
> 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 <[email protected]>
> Cc: Hao A Wu <[email protected]>
> Signed-off-by: Ming Tan <[email protected]>
> ---
> 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


-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.

View/Reply Online (#61377): https://edk2.groups.io/g/devel/message/61377
Mute This Topic: https://groups.io/mt/74789485/21656
Group Owner: [email protected]
Unsubscribe: https://edk2.groups.io/g/devel/unsub  [[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to