\r
#include <Library/IoLib.h>\r
#include <Library/PcdLib.h>\r
+#include <Library/PL011UartClockLib.h>\r
+#include <Library/PL011UartLib.h>\r
#include <Library/SerialPortLib.h>\r
\r
-#include <Drivers/PL011Uart.h>\r
+/** Initialise the serial device hardware with default settings.\r
\r
-\r
-/**\r
-\r
- Programmed hardware of Serial port.\r
-\r
- @return Always return RETURN_UNSUPPORTED.\r
-\r
-**/\r
+ @retval RETURN_SUCCESS The serial device was initialised.\r
+ @retval RETURN_INVALID_PARAMETER One or more of the default settings\r
+ has an unsupported value.\r
+ **/\r
RETURN_STATUS\r
EFIAPI\r
SerialPortInitialize (\r
UINT8 DataBits;\r
EFI_STOP_BITS_TYPE StopBits;\r
\r
- BaudRate = (UINTN)FixedPcdGet64 (PcdUartDefaultBaudRate);\r
+ BaudRate = FixedPcdGet64 (PcdUartDefaultBaudRate);\r
ReceiveFifoDepth = 0; // Use default FIFO depth\r
Parity = (EFI_PARITY_TYPE)FixedPcdGet8 (PcdUartDefaultParity);\r
DataBits = FixedPcdGet8 (PcdUartDefaultDataBits);\r
StopBits = (EFI_STOP_BITS_TYPE) FixedPcdGet8 (PcdUartDefaultStopBits);\r
\r
return PL011UartInitializePort (\r
- (UINTN)FixedPcdGet64 (PcdSerialRegisterBase),\r
- FixedPcdGet32 (PL011UartClkInHz),\r
+ (UINTN)PcdGet64 (PcdSerialRegisterBase),\r
+ PL011UartClockGetFreq(),\r
&BaudRate,\r
&ReceiveFifoDepth,\r
&Parity,\r
IN UINTN NumberOfBytes\r
)\r
{\r
- return PL011UartWrite ((UINTN)FixedPcdGet64 (PcdSerialRegisterBase), Buffer, NumberOfBytes);\r
+ return PL011UartWrite ((UINTN)PcdGet64 (PcdSerialRegisterBase), Buffer, NumberOfBytes);\r
}\r
\r
/**\r
IN UINTN NumberOfBytes\r
)\r
{\r
- return PL011UartRead ((UINTN)FixedPcdGet64 (PcdSerialRegisterBase), Buffer, NumberOfBytes);\r
+ return PL011UartRead ((UINTN)PcdGet64 (PcdSerialRegisterBase), Buffer, NumberOfBytes);\r
}\r
\r
/**\r
Check to see if any data is available to be read from the debug device.\r
\r
- @retval EFI_SUCCESS At least one byte of data is available to be read\r
- @retval EFI_NOT_READY No data is available to be read\r
- @retval EFI_DEVICE_ERROR The serial device is not functioning properly\r
+ @retval TRUE At least one byte of data is available to be read\r
+ @retval FALSE No data is available to be read\r
\r
**/\r
BOOLEAN\r
VOID\r
)\r
{\r
- return PL011UartPoll ((UINTN)FixedPcdGet64 (PcdSerialRegisterBase));\r
+ return PL011UartPoll ((UINTN)PcdGet64 (PcdSerialRegisterBase));\r
}\r
/**\r
Set new attributes to PL011.\r
)\r
{\r
return PL011UartInitializePort (\r
- (UINTN)FixedPcdGet64 (PcdSerialRegisterBase),\r
- FixedPcdGet32 (PL011UartClkInHz),\r
+ (UINTN)PcdGet64 (PcdSerialRegisterBase),\r
+ PL011UartClockGetFreq(),\r
BaudRate,\r
ReceiveFifoDepth,\r
Parity,\r
IN UINT32 Control\r
)\r
{\r
- return PL011UartSetControl ((UINTN)FixedPcdGet64 (PcdSerialRegisterBase), Control);\r
+ return PL011UartSetControl ((UINTN)PcdGet64 (PcdSerialRegisterBase), Control);\r
}\r
\r
/**\r
OUT UINT32 *Control\r
)\r
{\r
- return PL011UartGetControl ((UINTN)FixedPcdGet64 (PcdSerialRegisterBase), Control);\r
+ return PL011UartGetControl ((UINTN)PcdGet64 (PcdSerialRegisterBase), Control);\r
}\r