From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga17.intel.com (mga17.intel.com [192.55.52.151]) by mx.groups.io with SMTP id smtpd.web10.2810.1591757818347753356 for ; Tue, 09 Jun 2020 19:56:58 -0700 Authentication-Results: mx.groups.io; dkim=missing; spf=pass (domain: intel.com, ip: 192.55.52.151, mailfrom: ming.tan@intel.com) IronPort-SDR: baaRbndYM5/mSKjdih3LC7o83krd8lWsRfEQntWPUyGR7P6bXejgz+vrrE0Rfv1Cs7A06Dypah 8IsP9xmphwvA== X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga007.jf.intel.com ([10.7.209.58]) by fmsmga107.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Jun 2020 19:56:57 -0700 IronPort-SDR: fj1smbRA71FHBN0l+MUzX/crfC7fs6Nr+b2pD+0EhKM1zdl1N6dXiRpnQlQIHd4MrtDGUanrz3 ipG4BgvCSOIA== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.73,494,1583222400"; d="scan'208";a="260002444" Received: from shwdejointlab96.ccr.corp.intel.com ([10.239.134.144]) by orsmga007.jf.intel.com with ESMTP; 09 Jun 2020 19:56:55 -0700 From: "Tan, Ming" To: devel@edk2.groups.io Cc: Jian J Wang , Hao A Wu Subject: [PATCH v4 1/4] MdeModulePkg.dec: Change PCDs for status code. Date: Wed, 10 Jun 2020 10:56:31 +0800 Message-Id: <20200610025634.21833-1-ming.tan@intel.com> X-Mailer: git-send-email 2.24.0.windows.2 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit 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 Cc: Hao A Wu Signed-off-by: Ming Tan --- 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|BOOLEAN|0x0001004e - ## Indicates if StatusCode is reported via Serial port.

- # TRUE - Reports StatusCode via Serial port.
- # FALSE - Does not report StatusCode via Serial port.
- # @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.

- # TRUE - Stores StatusCode in memory.
- # FALSE - Does not store StatusCode in memory.
- # @Prompt Enable StatusCode via memory. - gEfiMdeModulePkgTokenSpaceGuid.PcdStatusCodeUseMemory|FALSE|BOOLEAN|0x00010023 - ## Indicates if PEI phase StatusCode will be replayed in DXE phase.

# TRUE - Replays PEI phase StatusCode in DXE phased.
# FALSE - Does not replay PEI phase StatusCode in DXE phase.
@@ -2001,6 +1988,19 @@ [PcdsFixedAtBuild, PcdsPatchableInModule, PcdsDynamic, PcdsDynamicEx] # @Prompt TCG Platform Firmware Profile revision. gEfiMdeModulePkgTokenSpaceGuid.PcdTcgPfpMeasurementRevision|0|UINT32|0x00010077 + ## Indicates if StatusCode is reported via Serial port.

+ # TRUE - Reports StatusCode via Serial port.
+ # FALSE - Does not report StatusCode via Serial port.
+ # @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.

+ # TRUE - Stores StatusCode in memory.
+ # FALSE - Does not store StatusCode in memory.
+ # @Prompt Enable StatusCode via memory. + gEfiMdeModulePkgTokenSpaceGuid.PcdStatusCodeUseMemory|FALSE|BOOLEAN|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.
+ Copyright (c) 2009 - 2020, Intel Corporation. All rights reserved.
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|gEfiMdeModulePkgTokenSpaceGuid.PcdStatusCodeUseMemory ## SOMETIMES_CONSUMES [Depex] diff --git a/MdeModulePkg/Universal/StatusCodeHandler/RuntimeDxe/StatusCodeHandlerRuntimeDxe.c b/MdeModulePkg/Universal/StatusCodeHandler/RuntimeDxe/StatusCodeHandlerRuntimeDxe.c index 79cc48fa55a4..a8c0fe5b7149 100644 --- a/MdeModulePkg/Universal/StatusCodeHandler/RuntimeDxe/StatusCodeHandlerRuntimeDxe.c +++ b/MdeModulePkg/Universal/StatusCodeHandler/RuntimeDxe/StatusCodeHandlerRuntimeDxe.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.
+ Copyright (c) 2006 - 2020, Intel Corporation. All rights reserved.
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/StatusCodeHandlerRuntimeDxe.inf b/MdeModulePkg/Universal/StatusCodeHandler/RuntimeDxe/StatusCodeHandlerRuntimeDxe.inf index d74c2a55dcaf..faadfd9578fe 100644 --- a/MdeModulePkg/Universal/StatusCodeHandler/RuntimeDxe/StatusCodeHandlerRuntimeDxe.inf +++ b/MdeModulePkg/Universal/StatusCodeHandler/RuntimeDxe/StatusCodeHandlerRuntimeDxe.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.
+ Copyright (c) 2009 - 2020, Intel Corporation. All rights reserved.
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.inf b/MdeModulePkg/Universal/StatusCodeHandler/Smm/StatusCodeHandlerSmm.inf index 47d0545f9591..4e24d87e55d1 100644 --- a/MdeModulePkg/Universal/StatusCodeHandler/Smm/StatusCodeHandlerSmm.inf +++ b/MdeModulePkg/Universal/StatusCodeHandler/Smm/StatusCodeHandlerSmm.inf @@ -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