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.
Reviewed-by: 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>
# @Prompt Enable PCI bridge IO alignment probe.\r
gEfiMdeModulePkgTokenSpaceGuid.PcdPciBridgeIoAlignmentProbe|FALSE|BOOLEAN|0x0001004e\r
\r
# @Prompt Enable PCI bridge IO alignment probe.\r
gEfiMdeModulePkgTokenSpaceGuid.PcdPciBridgeIoAlignmentProbe|FALSE|BOOLEAN|0x0001004e\r
\r
- ## Indicates if StatusCode is reported via Serial port.<BR><BR>\r
- # TRUE - Reports StatusCode via Serial port.<BR>\r
- # FALSE - Does not report StatusCode via Serial port.<BR>\r
- # @Prompt Enable StatusCode via Serial port.\r
- gEfiMdeModulePkgTokenSpaceGuid.PcdStatusCodeUseSerial|TRUE|BOOLEAN|0x00010022\r
-\r
- ## Indicates if StatusCode is stored in memory.\r
- # The memory is boot time memory in PEI Phase and is runtime memory in DXE Phase.<BR><BR>\r
- # TRUE - Stores StatusCode in memory.<BR>\r
- # FALSE - Does not store StatusCode in memory.<BR>\r
- # @Prompt Enable StatusCode via memory.\r
- gEfiMdeModulePkgTokenSpaceGuid.PcdStatusCodeUseMemory|FALSE|BOOLEAN|0x00010023\r
-\r
## Indicates if PEI phase StatusCode will be replayed in DXE phase.<BR><BR>\r
# TRUE - Replays PEI phase StatusCode in DXE phased.<BR>\r
# FALSE - Does not replay PEI phase StatusCode in DXE phase.<BR>\r
## Indicates if PEI phase StatusCode will be replayed in DXE phase.<BR><BR>\r
# TRUE - Replays PEI phase StatusCode in DXE phased.<BR>\r
# FALSE - Does not replay PEI phase StatusCode in DXE phase.<BR>\r
# @Prompt TCG Platform Firmware Profile revision.\r
gEfiMdeModulePkgTokenSpaceGuid.PcdTcgPfpMeasurementRevision|0|UINT32|0x00010077\r
\r
# @Prompt TCG Platform Firmware Profile revision.\r
gEfiMdeModulePkgTokenSpaceGuid.PcdTcgPfpMeasurementRevision|0|UINT32|0x00010077\r
\r
+ ## Indicates if StatusCode is reported via Serial port.<BR><BR>\r
+ # TRUE - Reports StatusCode via Serial port.<BR>\r
+ # FALSE - Does not report StatusCode via Serial port.<BR>\r
+ # @Prompt Enable StatusCode via Serial port.\r
+ gEfiMdeModulePkgTokenSpaceGuid.PcdStatusCodeUseSerial|TRUE|BOOLEAN|0x00010022\r
+\r
+ ## Indicates if StatusCode is stored in memory.\r
+ # The memory is boot time memory in PEI Phase and is runtime memory in DXE Phase.<BR><BR>\r
+ # TRUE - Stores StatusCode in memory.<BR>\r
+ # FALSE - Does not store StatusCode in memory.<BR>\r
+ # @Prompt Enable StatusCode via memory.\r
+ gEfiMdeModulePkgTokenSpaceGuid.PcdStatusCodeUseMemory|FALSE|BOOLEAN|0x00010023\r
+\r
[PcdsPatchableInModule]\r
## Specify memory size with page number for PEI code when\r
# Loading Module at Fixed Address feature is enabled.\r
[PcdsPatchableInModule]\r
## Specify memory size with page number for PEI code when\r
# Loading Module at Fixed Address feature is enabled.\r
Report Status Code Handler PEIM which produces general handlers and hook them\r
onto the PEI status code router.\r
\r
Report Status Code Handler PEIM which produces general handlers and hook them\r
onto the PEI status code router.\r
\r
- Copyright (c) 2009 - 2018, Intel Corporation. All rights reserved.<BR>\r
+ Copyright (c) 2009 - 2020, Intel Corporation. All rights reserved.<BR>\r
SPDX-License-Identifier: BSD-2-Clause-Patent\r
\r
**/\r
SPDX-License-Identifier: BSD-2-Clause-Patent\r
\r
**/\r
// If enable UseSerial, then initialize serial port.\r
// if enable UseMemory, then initialize memory status code worker.\r
//\r
// If enable UseSerial, then initialize serial port.\r
// if enable UseMemory, then initialize memory status code worker.\r
//\r
- if (FeaturePcdGet (PcdStatusCodeUseSerial)) {\r
+ if (PcdGetBool (PcdStatusCodeUseSerial)) {\r
Status = SerialPortInitialize();\r
ASSERT_EFI_ERROR (Status);\r
Status = RscHandlerPpi->Register (SerialStatusCodeReportWorker);\r
ASSERT_EFI_ERROR (Status);\r
}\r
Status = SerialPortInitialize();\r
ASSERT_EFI_ERROR (Status);\r
Status = RscHandlerPpi->Register (SerialStatusCodeReportWorker);\r
ASSERT_EFI_ERROR (Status);\r
}\r
- if (FeaturePcdGet (PcdStatusCodeUseMemory)) {\r
+ if (PcdGetBool (PcdStatusCodeUseMemory)) {\r
Status = MemoryStatusCodeInitializeWorker ();\r
ASSERT_EFI_ERROR (Status);\r
Status = RscHandlerPpi->Register (MemoryStatusCodeReportWorker);\r
Status = MemoryStatusCodeInitializeWorker ();\r
ASSERT_EFI_ERROR (Status);\r
Status = RscHandlerPpi->Register (MemoryStatusCodeReportWorker);\r
[Ppis]\r
gEfiPeiRscHandlerPpiGuid ## CONSUMES\r
\r
[Ppis]\r
gEfiPeiRscHandlerPpiGuid ## CONSUMES\r
\r
-[FeaturePcd]\r
- gEfiMdeModulePkgTokenSpaceGuid.PcdStatusCodeUseMemory ## CONSUMES\r
- gEfiMdeModulePkgTokenSpaceGuid.PcdStatusCodeUseSerial ## CONSUMES\r
-\r
+ gEfiMdeModulePkgTokenSpaceGuid.PcdStatusCodeUseSerial ## CONSUMES\r
+ gEfiMdeModulePkgTokenSpaceGuid.PcdStatusCodeUseMemory ## CONSUMES\r
gEfiMdeModulePkgTokenSpaceGuid.PcdStatusCodeMemorySize|1|gEfiMdeModulePkgTokenSpaceGuid.PcdStatusCodeUseMemory ## SOMETIMES_CONSUMES\r
\r
[Depex]\r
gEfiMdeModulePkgTokenSpaceGuid.PcdStatusCodeMemorySize|1|gEfiMdeModulePkgTokenSpaceGuid.PcdStatusCodeUseMemory ## SOMETIMES_CONSUMES\r
\r
[Depex]\r
Status Code Handler Driver which produces general handlers and hook them\r
onto the DXE status code router.\r
\r
Status Code Handler Driver which produces general handlers and hook them\r
onto the DXE status code router.\r
\r
- Copyright (c) 2006 - 2019, Intel Corporation. All rights reserved.<BR>\r
+ Copyright (c) 2006 - 2020, Intel Corporation. All rights reserved.<BR>\r
SPDX-License-Identifier: BSD-2-Clause-Patent\r
\r
**/\r
SPDX-License-Identifier: BSD-2-Clause-Patent\r
\r
**/\r
IN VOID *Context\r
)\r
{\r
IN VOID *Context\r
)\r
{\r
- if (FeaturePcdGet (PcdStatusCodeUseSerial)) {\r
+ if (PcdGetBool (PcdStatusCodeUseSerial)) {\r
mRscHandlerProtocol->Unregister (SerialStatusCodeReportWorker);\r
}\r
}\r
mRscHandlerProtocol->Unregister (SerialStatusCodeReportWorker);\r
}\r
}\r
// If enable UseSerial, then initialize serial port.\r
// if enable UseRuntimeMemory, then initialize runtime memory status code worker.\r
//\r
// If enable UseSerial, then initialize serial port.\r
// if enable UseRuntimeMemory, then initialize runtime memory status code worker.\r
//\r
- if (FeaturePcdGet (PcdStatusCodeUseSerial)) {\r
+ if (PcdGetBool (PcdStatusCodeUseSerial)) {\r
//\r
// Call Serial Port Lib API to initialize serial port.\r
//\r
Status = SerialPortInitialize ();\r
ASSERT_EFI_ERROR (Status);\r
}\r
//\r
// Call Serial Port Lib API to initialize serial port.\r
//\r
Status = SerialPortInitialize ();\r
ASSERT_EFI_ERROR (Status);\r
}\r
- if (FeaturePcdGet (PcdStatusCodeUseMemory)) {\r
+ if (PcdGetBool (PcdStatusCodeUseMemory)) {\r
Status = RtMemoryStatusCodeInitializeWorker ();\r
ASSERT_EFI_ERROR (Status);\r
}\r
Status = RtMemoryStatusCodeInitializeWorker ();\r
ASSERT_EFI_ERROR (Status);\r
}\r
//\r
// Dispatch records to devices based on feature flag.\r
//\r
//\r
// Dispatch records to devices based on feature flag.\r
//\r
- if (FeaturePcdGet (PcdStatusCodeUseSerial)) {\r
+ if (PcdGetBool (PcdStatusCodeUseSerial)) {\r
SerialStatusCodeReportWorker (\r
Record[Index].CodeType,\r
Record[Index].Value,\r
SerialStatusCodeReportWorker (\r
Record[Index].CodeType,\r
Record[Index].Value,\r
- if (FeaturePcdGet (PcdStatusCodeUseMemory)) {\r
+ if (PcdGetBool (PcdStatusCodeUseMemory)) {\r
RtMemoryStatusCodeReportWorker (\r
Record[Index].CodeType,\r
Record[Index].Value,\r
RtMemoryStatusCodeReportWorker (\r
Record[Index].CodeType,\r
Record[Index].Value,\r
//\r
InitializationDispatcherWorker ();\r
\r
//\r
InitializationDispatcherWorker ();\r
\r
- if (FeaturePcdGet (PcdStatusCodeUseSerial)) {\r
+ if (PcdGetBool (PcdStatusCodeUseSerial)) {\r
mRscHandlerProtocol->Register (SerialStatusCodeReportWorker, TPL_HIGH_LEVEL);\r
}\r
mRscHandlerProtocol->Register (SerialStatusCodeReportWorker, TPL_HIGH_LEVEL);\r
}\r
- if (FeaturePcdGet (PcdStatusCodeUseMemory)) {\r
+ if (PcdGetBool (PcdStatusCodeUseMemory)) {\r
mRscHandlerProtocol->Register (RtMemoryStatusCodeReportWorker, TPL_HIGH_LEVEL);\r
}\r
\r
mRscHandlerProtocol->Register (RtMemoryStatusCodeReportWorker, TPL_HIGH_LEVEL);\r
}\r
\r
[Protocols]\r
gEfiRscHandlerProtocolGuid ## CONSUMES\r
\r
[Protocols]\r
gEfiRscHandlerProtocolGuid ## CONSUMES\r
\r
gEfiMdeModulePkgTokenSpaceGuid.PcdStatusCodeReplayIn ## CONSUMES\r
gEfiMdeModulePkgTokenSpaceGuid.PcdStatusCodeReplayIn ## CONSUMES\r
- gEfiMdeModulePkgTokenSpaceGuid.PcdStatusCodeUseMemory ## CONSUMES\r
gEfiMdeModulePkgTokenSpaceGuid.PcdStatusCodeUseSerial ## CONSUMES\r
gEfiMdeModulePkgTokenSpaceGuid.PcdStatusCodeUseSerial ## CONSUMES\r
+ gEfiMdeModulePkgTokenSpaceGuid.PcdStatusCodeUseMemory ## CONSUMES\r
gEfiMdeModulePkgTokenSpaceGuid.PcdStatusCodeMemorySize |128| gEfiMdeModulePkgTokenSpaceGuid.PcdStatusCodeUseMemory ## SOMETIMES_CONSUMES\r
\r
[Depex]\r
gEfiMdeModulePkgTokenSpaceGuid.PcdStatusCodeMemorySize |128| gEfiMdeModulePkgTokenSpaceGuid.PcdStatusCodeUseMemory ## SOMETIMES_CONSUMES\r
\r
[Depex]\r
Status Code Handler Driver which produces general handlers and hook them\r
onto the SMM status code router.\r
\r
Status Code Handler Driver which produces general handlers and hook them\r
onto the SMM status code router.\r
\r
- Copyright (c) 2009 - 2018, Intel Corporation. All rights reserved.<BR>\r
+ Copyright (c) 2009 - 2020, Intel Corporation. All rights reserved.<BR>\r
SPDX-License-Identifier: BSD-2-Clause-Patent\r
\r
**/\r
SPDX-License-Identifier: BSD-2-Clause-Patent\r
\r
**/\r
// If enable UseSerial, then initialize serial port.\r
// if enable UseRuntimeMemory, then initialize runtime memory status code worker.\r
//\r
// If enable UseSerial, then initialize serial port.\r
// if enable UseRuntimeMemory, then initialize runtime memory status code worker.\r
//\r
- if (FeaturePcdGet (PcdStatusCodeUseSerial)) {\r
+ if (PcdGetBool (PcdStatusCodeUseSerial)) {\r
//\r
// Call Serial Port Lib API to initialize serial port.\r
//\r
Status = SerialPortInitialize ();\r
ASSERT_EFI_ERROR (Status);\r
}\r
//\r
// Call Serial Port Lib API to initialize serial port.\r
//\r
Status = SerialPortInitialize ();\r
ASSERT_EFI_ERROR (Status);\r
}\r
- if (FeaturePcdGet (PcdStatusCodeUseMemory)) {\r
+ if (PcdGetBool (PcdStatusCodeUseMemory)) {\r
Status = MemoryStatusCodeInitializeWorker ();\r
ASSERT_EFI_ERROR (Status);\r
}\r
Status = MemoryStatusCodeInitializeWorker ();\r
ASSERT_EFI_ERROR (Status);\r
}\r
//\r
InitializationDispatcherWorker ();\r
\r
//\r
InitializationDispatcherWorker ();\r
\r
- if (FeaturePcdGet (PcdStatusCodeUseSerial)) {\r
+ if (PcdGetBool (PcdStatusCodeUseSerial)) {\r
mRscHandlerProtocol->Register (SerialStatusCodeReportWorker);\r
}\r
mRscHandlerProtocol->Register (SerialStatusCodeReportWorker);\r
}\r
- if (FeaturePcdGet (PcdStatusCodeUseMemory)) {\r
+ if (PcdGetBool (PcdStatusCodeUseMemory)) {\r
mRscHandlerProtocol->Register (MemoryStatusCodeReportWorker);\r
}\r
\r
mRscHandlerProtocol->Register (MemoryStatusCodeReportWorker);\r
}\r
\r
[Protocols]\r
gEfiSmmRscHandlerProtocolGuid ## CONSUMES\r
\r
[Protocols]\r
gEfiSmmRscHandlerProtocolGuid ## CONSUMES\r
\r
-[FeaturePcd]\r
- gEfiMdeModulePkgTokenSpaceGuid.PcdStatusCodeUseMemory ## CONSUMES\r
- gEfiMdeModulePkgTokenSpaceGuid.PcdStatusCodeUseSerial ## CONSUMES\r
-\r
+ gEfiMdeModulePkgTokenSpaceGuid.PcdStatusCodeUseSerial ## CONSUMES\r
+ gEfiMdeModulePkgTokenSpaceGuid.PcdStatusCodeUseMemory ## CONSUMES\r
gEfiMdeModulePkgTokenSpaceGuid.PcdStatusCodeMemorySize |128| gEfiMdeModulePkgTokenSpaceGuid.PcdStatusCodeUseMemory ## SOMETIMES_CONSUMES\r
\r
[Depex]\r
gEfiMdeModulePkgTokenSpaceGuid.PcdStatusCodeMemorySize |128| gEfiMdeModulePkgTokenSpaceGuid.PcdStatusCodeUseMemory ## SOMETIMES_CONSUMES\r
\r
[Depex]\r