From 8d5a8827aabc67cb2a046697e1a750ca8d9cc453 Mon Sep 17 00:00:00 2001 From: Laszlo Ersek Date: Wed, 14 Oct 2015 13:59:20 +0200 Subject: ArmPlatformPkg: PrePeiCore: write early hello message to the serial port (RH) Notes about the RHEL-8.1/20190308-89910a39dcfd [edk2-stable201903] -> RHEL-8.2/20190904-37eef91017ad [edk2-stable201908] rebase: - no change Notes about the RHEL-8.0/20180508-ee3198e672e2 -> RHEL-8.1/20190308-89910a39dcfd rebase: - no change Notes about the RHEL-7.6/ovmf-20180508-2.gitee3198e672e2.el7 -> RHEL-8.0/20180508-ee3198e672e2 rebase: - reorder the rebase changelog in the commit message so that it reads like a blog: place more recent entries near the top - no changes to the patch body Notes about the 20171011-92d07e48907f -> 20180508-ee3198e672e2 rebase: - adapt to upstream commit 7e2a8dfe8a9a ("ArmPlatformPkg/PrePeiCore: seed temporary stack before entering PEI core", 2017-11-09) -- conflict resolution in "ArmPlatformPkg/PrePeiCore/PrePeiCoreUniCore.inf" Notes about the 20170228-c325e41585e3 -> 20171011-92d07e48907f rebase: - no changes Notes about the 20160608b-988715a -> 20170228-c325e41585e3 rebase: - no changes 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. RHBZ: https://bugzilla.redhat.com/show_bug.cgi?id=1270279 Downstream only: . Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Laszlo Ersek (cherry picked from commit b16c4c505ce0e27305235533eac9236aa66f132e) (cherry picked from commit 742e5bf6d5ce5a1e73879d6e5c0dd00feda7a9ac) (cherry picked from commit 93d69eb9393cf05af90676253875c59c1bec67fd) (cherry picked from commit 638594083b191f84f5d9333eb6147a31570f5a5a) (cherry picked from commit f4b7aae411d88b2b83f85d20ef06a4032a57e7de) (cherry picked from commit bb71490fdda3b38fa9f071d281b863f9b64363bf) --- ArmPlatformPkg/PrePeiCore/MainMPCore.c | 5 +++++ ArmPlatformPkg/PrePeiCore/MainUniCore.c | 5 +++++ ArmPlatformPkg/PrePeiCore/PrePeiCore.h | 1 + ArmPlatformPkg/PrePeiCore/PrePeiCoreMPCore.inf | 2 ++ ArmPlatformPkg/PrePeiCore/PrePeiCoreUniCore.inf | 2 ++ 5 files changed, 15 insertions(+) diff --git a/ArmPlatformPkg/PrePeiCore/MainMPCore.c b/ArmPlatformPkg/PrePeiCore/MainMPCore.c index d379ad8b7a..ff1672f94d 100644 --- a/ArmPlatformPkg/PrePeiCore/MainMPCore.c +++ b/ArmPlatformPkg/PrePeiCore/MainMPCore.c @@ -111,6 +111,11 @@ PrimaryMain ( UINTN TemporaryRamBase; UINTN TemporaryRamSize; + if (FixedPcdGetSize (PcdEarlyHelloMessage) > 1) { + SerialPortWrite (FixedPcdGetPtr (PcdEarlyHelloMessage), + FixedPcdGetSize (PcdEarlyHelloMessage) - 1); + } + CreatePpiList (&PpiListSize, &PpiList); // Enable the GIC Distributor diff --git a/ArmPlatformPkg/PrePeiCore/MainUniCore.c b/ArmPlatformPkg/PrePeiCore/MainUniCore.c index 1500d2bd51..5b0790beac 100644 --- a/ArmPlatformPkg/PrePeiCore/MainUniCore.c +++ b/ArmPlatformPkg/PrePeiCore/MainUniCore.c @@ -29,6 +29,11 @@ PrimaryMain ( UINTN TemporaryRamBase; UINTN TemporaryRamSize; + if (FixedPcdGetSize (PcdEarlyHelloMessage) > 1) { + SerialPortWrite (FixedPcdGetPtr (PcdEarlyHelloMessage), + FixedPcdGetSize (PcdEarlyHelloMessage) - 1); + } + CreatePpiList (&PpiListSize, &PpiList); // Adjust the Temporary Ram as the new Ppi List (Common + Platform Ppi Lists) is created at diff --git a/ArmPlatformPkg/PrePeiCore/PrePeiCore.h b/ArmPlatformPkg/PrePeiCore/PrePeiCore.h index 7140c7f5b5..1d69a2b468 100644 --- a/ArmPlatformPkg/PrePeiCore/PrePeiCore.h +++ b/ArmPlatformPkg/PrePeiCore/PrePeiCore.h @@ -15,6 +15,7 @@ #include #include #include +#include #include #include diff --git a/ArmPlatformPkg/PrePeiCore/PrePeiCoreMPCore.inf b/ArmPlatformPkg/PrePeiCore/PrePeiCoreMPCore.inf index f2ac45d171..fc93fda965 100644 --- a/ArmPlatformPkg/PrePeiCore/PrePeiCoreMPCore.inf +++ b/ArmPlatformPkg/PrePeiCore/PrePeiCoreMPCore.inf @@ -67,6 +67,8 @@ gArmPlatformTokenSpaceGuid.PcdCPUCorePrimaryStackSize gArmPlatformTokenSpaceGuid.PcdCPUCoreSecondaryStackSize + gArmPlatformTokenSpaceGuid.PcdEarlyHelloMessage + gArmTokenSpaceGuid.PcdGicDistributorBase gArmTokenSpaceGuid.PcdGicInterruptInterfaceBase gArmTokenSpaceGuid.PcdGicSgiIntId diff --git a/ArmPlatformPkg/PrePeiCore/PrePeiCoreUniCore.inf b/ArmPlatformPkg/PrePeiCore/PrePeiCoreUniCore.inf index 84c319c367..46d1b30978 100644 --- a/ArmPlatformPkg/PrePeiCore/PrePeiCoreUniCore.inf +++ b/ArmPlatformPkg/PrePeiCore/PrePeiCoreUniCore.inf @@ -65,4 +65,6 @@ gArmPlatformTokenSpaceGuid.PcdCPUCorePrimaryStackSize gArmPlatformTokenSpaceGuid.PcdCPUCoreSecondaryStackSize + gArmPlatformTokenSpaceGuid.PcdEarlyHelloMessage + gEfiMdeModulePkgTokenSpaceGuid.PcdInitValueInTempStack -- 2.18.1