From aadc64e6a15a4a71339c393a0eb01587cfbd5eb7 Mon Sep 17 00:00:00 2001 From: Evan Lloyd Date: Wed, 15 Jun 2016 13:52:39 +0100 Subject: [PATCH] ArmPlatformPkg: Update PL011 Serial PCDs to Fixed PCDs The PCDs used in the PL011 UART Driver and Serial Port Library are inherently "fixed at build". This change updates the source to use Fixed PCDs for these values. This improves clarity and efficiency. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Sami Mujawar Signed-off-by: Evan Lloyd Tested-by: Ryan Harkin Reviewed-by: Ryan Harkin --- ArmPlatformPkg/Drivers/PL011Uart/PL011Uart.c | 10 ++++----- .../Drivers/PL011Uart/PL011Uart.inf | 4 ++-- .../PL011SerialPortLib/PL011SerialPortLib.c | 22 +++++++++---------- .../PL011SerialPortLib/PL011SerialPortLib.inf | 4 ++-- 4 files changed, 20 insertions(+), 20 deletions(-) diff --git a/ArmPlatformPkg/Drivers/PL011Uart/PL011Uart.c b/ArmPlatformPkg/Drivers/PL011Uart/PL011Uart.c index ab00cae26d..d0f9381e9e 100644 --- a/ArmPlatformPkg/Drivers/PL011Uart/PL011Uart.c +++ b/ArmPlatformPkg/Drivers/PL011Uart/PL011Uart.c @@ -168,17 +168,17 @@ PL011UartInitializePort ( // // If PL011 Integer value has been defined then always ignore the BAUD rate - if (PcdGet32 (PL011UartInteger) != 0) { - MmioWrite32 (UartBase + UARTIBRD, PcdGet32 (PL011UartInteger)); - MmioWrite32 (UartBase + UARTFBRD, PcdGet32 (PL011UartFractional)); + if (FixedPcdGet32 (PL011UartInteger) != 0) { + MmioWrite32 (UartBase + UARTIBRD, FixedPcdGet32 (PL011UartInteger)); + MmioWrite32 (UartBase + UARTFBRD, FixedPcdGet32 (PL011UartFractional)); } else { // If BAUD rate is zero then replace it with the system default value if (*BaudRate == 0) { - *BaudRate = PcdGet32 (PcdSerialBaudRate); + *BaudRate = FixedPcdGet32 (PcdSerialBaudRate); ASSERT (*BaudRate != 0); } - Divisor = (PcdGet32 (PL011UartClkInHz) * 4) / *BaudRate; + Divisor = (FixedPcdGet32 (PL011UartClkInHz) * 4) / *BaudRate; MmioWrite32 (UartBase + UARTIBRD, Divisor >> FRACTION_PART_SIZE_IN_BITS); MmioWrite32 (UartBase + UARTFBRD, Divisor & FRACTION_PART_MASK); } diff --git a/ArmPlatformPkg/Drivers/PL011Uart/PL011Uart.inf b/ArmPlatformPkg/Drivers/PL011Uart/PL011Uart.inf index 18df7c9fb9..5afce36d39 100644 --- a/ArmPlatformPkg/Drivers/PL011Uart/PL011Uart.inf +++ b/ArmPlatformPkg/Drivers/PL011Uart/PL011Uart.inf @@ -2,7 +2,7 @@ # # Component description file for PL011Uart module # -# Copyright (c) 2011-2013, ARM Ltd. All rights reserved.
+# Copyright (c) 2011-2016, ARM Ltd. All rights reserved.
# # This program and the accompanying materials # are licensed and made available under the terms and conditions of the BSD License @@ -34,7 +34,7 @@ MdeModulePkg/MdeModulePkg.dec ArmPlatformPkg/ArmPlatformPkg.dec -[Pcd] +[FixedPcd] gEfiMdeModulePkgTokenSpaceGuid.PcdSerialBaudRate gArmPlatformTokenSpaceGuid.PL011UartClkInHz diff --git a/ArmPlatformPkg/Library/PL011SerialPortLib/PL011SerialPortLib.c b/ArmPlatformPkg/Library/PL011SerialPortLib/PL011SerialPortLib.c index 3b5f1edf68..015f6fbb71 100644 --- a/ArmPlatformPkg/Library/PL011SerialPortLib/PL011SerialPortLib.c +++ b/ArmPlatformPkg/Library/PL011SerialPortLib/PL011SerialPortLib.c @@ -43,14 +43,14 @@ SerialPortInitialize ( UINT8 DataBits; EFI_STOP_BITS_TYPE StopBits; - BaudRate = (UINTN)PcdGet64 (PcdUartDefaultBaudRate); + BaudRate = (UINTN)FixedPcdGet64 (PcdUartDefaultBaudRate); ReceiveFifoDepth = 0; // Use default FIFO depth - Parity = (EFI_PARITY_TYPE)PcdGet8 (PcdUartDefaultParity); - DataBits = PcdGet8 (PcdUartDefaultDataBits); - StopBits = (EFI_STOP_BITS_TYPE) PcdGet8 (PcdUartDefaultStopBits); + Parity = (EFI_PARITY_TYPE)FixedPcdGet8 (PcdUartDefaultParity); + DataBits = FixedPcdGet8 (PcdUartDefaultDataBits); + StopBits = (EFI_STOP_BITS_TYPE) FixedPcdGet8 (PcdUartDefaultStopBits); return PL011UartInitializePort ( - (UINTN)PcdGet64 (PcdSerialRegisterBase), + (UINTN)FixedPcdGet64 (PcdSerialRegisterBase), &BaudRate, &ReceiveFifoDepth, &Parity, @@ -76,7 +76,7 @@ SerialPortWrite ( IN UINTN NumberOfBytes ) { - return PL011UartWrite ((UINTN)PcdGet64 (PcdSerialRegisterBase), Buffer, NumberOfBytes); + return PL011UartWrite ((UINTN)FixedPcdGet64 (PcdSerialRegisterBase), Buffer, NumberOfBytes); } /** @@ -96,7 +96,7 @@ SerialPortRead ( IN UINTN NumberOfBytes ) { - return PL011UartRead ((UINTN)PcdGet64 (PcdSerialRegisterBase), Buffer, NumberOfBytes); + return PL011UartRead ((UINTN)FixedPcdGet64 (PcdSerialRegisterBase), Buffer, NumberOfBytes); } /** @@ -113,7 +113,7 @@ SerialPortPoll ( VOID ) { - return PL011UartPoll ((UINTN)PcdGet64 (PcdSerialRegisterBase)); + return PL011UartPoll ((UINTN)FixedPcdGet64 (PcdSerialRegisterBase)); } /** Set new attributes to PL011. @@ -158,7 +158,7 @@ SerialPortSetAttributes ( ) { return PL011UartInitializePort ( - (UINTN)PcdGet64 (PcdSerialRegisterBase), + (UINTN)FixedPcdGet64 (PcdSerialRegisterBase), BaudRate, ReceiveFifoDepth, Parity, @@ -199,7 +199,7 @@ SerialPortSetControl ( IN UINT32 Control ) { - return PL011UartSetControl ((UINTN)PcdGet64 (PcdSerialRegisterBase), Control); + return PL011UartSetControl ((UINTN)FixedPcdGet64 (PcdSerialRegisterBase), Control); } /** @@ -240,5 +240,5 @@ SerialPortGetControl ( OUT UINT32 *Control ) { - return PL011UartGetControl ((UINTN)PcdGet64 (PcdSerialRegisterBase), Control); + return PL011UartGetControl ((UINTN)FixedPcdGet64 (PcdSerialRegisterBase), Control); } diff --git a/ArmPlatformPkg/Library/PL011SerialPortLib/PL011SerialPortLib.inf b/ArmPlatformPkg/Library/PL011SerialPortLib/PL011SerialPortLib.inf index 3a950d0788..653c0b2dfc 100644 --- a/ArmPlatformPkg/Library/PL011SerialPortLib/PL011SerialPortLib.inf +++ b/ArmPlatformPkg/Library/PL011SerialPortLib/PL011SerialPortLib.inf @@ -2,7 +2,7 @@ # # Component description file for PL011SerialPortLib module # -# Copyright (c) 2011-2012, ARM Ltd. All rights reserved.
+# Copyright (c) 2011-2016, ARM Ltd. All rights reserved.
# # This program and the accompanying materials # are licensed and made available under the terms and conditions of the BSD License @@ -35,7 +35,7 @@ MdeModulePkg/MdeModulePkg.dec ArmPlatformPkg/ArmPlatformPkg.dec -[Pcd] +[FixedPcd] gEfiMdeModulePkgTokenSpaceGuid.PcdSerialRegisterBase gEfiMdePkgTokenSpaceGuid.PcdUartDefaultBaudRate gEfiMdePkgTokenSpaceGuid.PcdUartDefaultDataBits -- 2.39.2