From 5a9b3eb8e5fbbc0a49f80630039d58712aacfab8 Mon Sep 17 00:00:00 2001 From: Ard Biesheuvel Date: Mon, 17 Dec 2018 19:51:45 +0100 Subject: [PATCH] ArmPlatformPkg/PL011SerialPortLib: use untyped PCD for register base MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Use an untyped PCD reference for PcdSerialRegisterBase, so that the library gets built without hardcoded values, permitting modules to override the default serial port. This allows SerialDxe to use a different serial port from the one used for DEBUG output (which often gets occluded due to the console driver clearing the screen). Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Ard Biesheuvel Reviewed-by: Philippe Mathieu-Daudé Reviewed-by: Leif Lindholm --- .../PL011SerialPortLib/PL011SerialPortLib.c | 14 +++++++------- .../PL011SerialPortLib/PL011SerialPortLib.inf | 4 +++- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/ArmPlatformPkg/Library/PL011SerialPortLib/PL011SerialPortLib.c b/ArmPlatformPkg/Library/PL011SerialPortLib/PL011SerialPortLib.c index 212991d638..d576f79c3e 100644 --- a/ArmPlatformPkg/Library/PL011SerialPortLib/PL011SerialPortLib.c +++ b/ArmPlatformPkg/Library/PL011SerialPortLib/PL011SerialPortLib.c @@ -48,7 +48,7 @@ SerialPortInitialize ( StopBits = (EFI_STOP_BITS_TYPE) FixedPcdGet8 (PcdUartDefaultStopBits); return PL011UartInitializePort ( - (UINTN)FixedPcdGet64 (PcdSerialRegisterBase), + (UINTN)PcdGet64 (PcdSerialRegisterBase), PL011UartClockGetFreq(), &BaudRate, &ReceiveFifoDepth, @@ -75,7 +75,7 @@ SerialPortWrite ( IN UINTN NumberOfBytes ) { - return PL011UartWrite ((UINTN)FixedPcdGet64 (PcdSerialRegisterBase), Buffer, NumberOfBytes); + return PL011UartWrite ((UINTN)PcdGet64 (PcdSerialRegisterBase), Buffer, NumberOfBytes); } /** @@ -95,7 +95,7 @@ SerialPortRead ( IN UINTN NumberOfBytes ) { - return PL011UartRead ((UINTN)FixedPcdGet64 (PcdSerialRegisterBase), Buffer, NumberOfBytes); + return PL011UartRead ((UINTN)PcdGet64 (PcdSerialRegisterBase), Buffer, NumberOfBytes); } /** @@ -111,7 +111,7 @@ SerialPortPoll ( VOID ) { - return PL011UartPoll ((UINTN)FixedPcdGet64 (PcdSerialRegisterBase)); + return PL011UartPoll ((UINTN)PcdGet64 (PcdSerialRegisterBase)); } /** Set new attributes to PL011. @@ -156,7 +156,7 @@ SerialPortSetAttributes ( ) { return PL011UartInitializePort ( - (UINTN)FixedPcdGet64 (PcdSerialRegisterBase), + (UINTN)PcdGet64 (PcdSerialRegisterBase), PL011UartClockGetFreq(), BaudRate, ReceiveFifoDepth, @@ -198,7 +198,7 @@ SerialPortSetControl ( IN UINT32 Control ) { - return PL011UartSetControl ((UINTN)FixedPcdGet64 (PcdSerialRegisterBase), Control); + return PL011UartSetControl ((UINTN)PcdGet64 (PcdSerialRegisterBase), Control); } /** @@ -239,5 +239,5 @@ SerialPortGetControl ( OUT UINT32 *Control ) { - return PL011UartGetControl ((UINTN)FixedPcdGet64 (PcdSerialRegisterBase), Control); + return PL011UartGetControl ((UINTN)PcdGet64 (PcdSerialRegisterBase), Control); } diff --git a/ArmPlatformPkg/Library/PL011SerialPortLib/PL011SerialPortLib.inf b/ArmPlatformPkg/Library/PL011SerialPortLib/PL011SerialPortLib.inf index 5ce5b2f530..bca7bed875 100644 --- a/ArmPlatformPkg/Library/PL011SerialPortLib/PL011SerialPortLib.inf +++ b/ArmPlatformPkg/Library/PL011SerialPortLib/PL011SerialPortLib.inf @@ -36,8 +36,10 @@ MdeModulePkg/MdeModulePkg.dec ArmPlatformPkg/ArmPlatformPkg.dec -[FixedPcd] +[Pcd] gEfiMdeModulePkgTokenSpaceGuid.PcdSerialRegisterBase + +[FixedPcd] gEfiMdePkgTokenSpaceGuid.PcdUartDefaultBaudRate gEfiMdePkgTokenSpaceGuid.PcdUartDefaultDataBits gEfiMdePkgTokenSpaceGuid.PcdUartDefaultParity -- 2.39.2