Reviewed-by: Jian J Wang <jian.j.w...@intel.com> Regards, Jian
> -----Original Message----- > From: Tan, Ming <ming....@intel.com> > Sent: Wednesday, June 17, 2020 3:36 PM > To: devel@edk2.groups.io > Cc: Wang, Jian J <jian.j.w...@intel.com>; Wu, Hao A <hao.a...@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.w...@intel.com> > Cc: Hao A Wu <hao.a...@intel.com> > Signed-off-by: Ming Tan <ming....@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 -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#61418): https://edk2.groups.io/g/devel/message/61418 Mute This Topic: https://groups.io/mt/74933183/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-