The FixedPcdGetSize() macro expands to an integer constant, therefore an optimizing compiler can eliminate the new code, if the platform DSC doesn't override the empty string (size=1) default of PcdEarlyHelloMessage.
Cc: Leif Lindholm <[email protected]> Cc: Ard Biesheuvel <[email protected]> Cc: Drew Jones <[email protected]> Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Laszlo Ersek <[email protected]> --- Notes: v2: - new in v2 [Drew] ArmPlatformPkg/PrePi/PeiMPCore.inf | 2 ++ ArmPlatformPkg/PrePi/PeiUniCore.inf | 2 ++ ArmPlatformPkg/PrePi/MainMPCore.c | 5 +++++ ArmPlatformPkg/PrePi/MainUniCore.c | 5 +++++ 4 files changed, 14 insertions(+) diff --git a/ArmPlatformPkg/PrePi/PeiMPCore.inf b/ArmPlatformPkg/PrePi/PeiMPCore.inf index ac1f8d0..cad4d5a 100755 --- a/ArmPlatformPkg/PrePi/PeiMPCore.inf +++ b/ArmPlatformPkg/PrePi/PeiMPCore.inf @@ -101,6 +101,8 @@ [FixedPcd] gArmPlatformTokenSpaceGuid.PcdCoreCount + gArmPlatformTokenSpaceGuid.PcdEarlyHelloMessage + gEmbeddedTokenSpaceGuid.PcdPrePiCpuMemorySize gEmbeddedTokenSpaceGuid.PcdPrePiCpuIoSize diff --git a/ArmPlatformPkg/PrePi/PeiUniCore.inf b/ArmPlatformPkg/PrePi/PeiUniCore.inf index c566390..c3fbff1 100755 --- a/ArmPlatformPkg/PrePi/PeiUniCore.inf +++ b/ArmPlatformPkg/PrePi/PeiUniCore.inf @@ -94,6 +94,8 @@ [FixedPcd] gArmPlatformTokenSpaceGuid.PcdCoreCount + gArmPlatformTokenSpaceGuid.PcdEarlyHelloMessage + gEmbeddedTokenSpaceGuid.PcdPrePiCpuMemorySize gEmbeddedTokenSpaceGuid.PcdPrePiCpuIoSize diff --git a/ArmPlatformPkg/PrePi/MainMPCore.c b/ArmPlatformPkg/PrePi/MainMPCore.c index bf81373..a08b658 100644 --- a/ArmPlatformPkg/PrePi/MainMPCore.c +++ b/ArmPlatformPkg/PrePi/MainMPCore.c @@ -26,6 +26,11 @@ PrimaryMain ( IN UINT64 StartTimeStamp ) { + if (FixedPcdGetSize (PcdEarlyHelloMessage) > 1) { + SerialPortWrite (FixedPcdGetPtr (PcdEarlyHelloMessage), + FixedPcdGetSize (PcdEarlyHelloMessage) - 1); + } + // Enable the GIC Distributor ArmGicEnableDistributor(PcdGet32(PcdGicDistributorBase)); diff --git a/ArmPlatformPkg/PrePi/MainUniCore.c b/ArmPlatformPkg/PrePi/MainUniCore.c index 43588a5..8d548e7 100644 --- a/ArmPlatformPkg/PrePi/MainUniCore.c +++ b/ArmPlatformPkg/PrePi/MainUniCore.c @@ -22,6 +22,11 @@ PrimaryMain ( IN UINT64 StartTimeStamp ) { + if (FixedPcdGetSize (PcdEarlyHelloMessage) > 1) { + SerialPortWrite (FixedPcdGetPtr (PcdEarlyHelloMessage), + FixedPcdGetSize (PcdEarlyHelloMessage) - 1); + } + DEBUG_CODE_BEGIN(); // On MPCore system, PeiMpCore.inf should be used instead of PeiUniCore.inf ASSERT(ArmIsMpCore() == 0); -- 1.8.3.1 _______________________________________________ edk2-devel mailing list [email protected] https://lists.01.org/mailman/listinfo/edk2-devel

