]> git.proxmox.com Git - mirror_edk2.git/commitdiff
ArmPlatformPkg: Use SerialDxe in MdeModulePkg instead of EmbeddedPkg
authorStar Zeng <star.zeng@intel.com>
Thu, 26 Nov 2015 08:51:05 +0000 (08:51 +0000)
committerlzeng14 <lzeng14@Edk2>
Thu, 26 Nov 2015 08:51:05 +0000 (08:51 +0000)
It is also to integrate PL011SerialPortExtLib to PL011SerialPortLib.

Cc: Michael D Kinney <michael.d.kinney@intel.com>
Cc: Liming Gao <liming.gao@intel.com>
Cc: Leif Lindholm <leif.lindholm@linaro.org>
Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Star Zeng <star.zeng@intel.com>
Reviewed-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@18971 6f19259b-4bc3-4df7-8a09-765794883524

12 files changed:
ArmPlatformPkg/ArmJunoPkg/ArmJuno.dsc
ArmPlatformPkg/ArmJunoPkg/ArmJuno.fdf
ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-CTA15-A7.dsc
ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-CTA15-A7.fdf
ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-FVP-AArch64.dsc
ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-FVP-AArch64.fdf
ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-RTSM-A15_MPCore.dsc
ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-RTSM-A15_MPCore.fdf
ArmPlatformPkg/ArmVExpressPkg/ArmVExpress.dsc.inc
ArmPlatformPkg/Library/PL011SerialPortLib/PL011SerialPortExtLib.c [deleted file]
ArmPlatformPkg/Library/PL011SerialPortLib/PL011SerialPortExtLib.inf [deleted file]
ArmPlatformPkg/Library/PL011SerialPortLib/PL011SerialPortLib.c

index f5af4267fee60577dc3330f3674213c2ef71f1d0..ba838c706361c108cee5f4796c1dedcd54ec7914 100644 (file)
@@ -1,5 +1,6 @@
 #\r
 #  Copyright (c) 2013-2015, ARM Limited. All rights reserved.\r
+#  Copyright (c) 2015, Intel Corporation. All rights reserved.<BR>\r
 #\r
 #  This program and the accompanying materials\r
 #  are licensed and made available under the terms and conditions of the BSD License\r
   MdeModulePkg/Universal/Console/ConSplitterDxe/ConSplitterDxe.inf\r
   MdeModulePkg/Universal/Console/GraphicsConsoleDxe/GraphicsConsoleDxe.inf\r
   MdeModulePkg/Universal/Console/TerminalDxe/TerminalDxe.inf\r
-  EmbeddedPkg/SerialDxe/SerialDxe.inf\r
+  MdeModulePkg/Universal/SerialDxe/SerialDxe.inf\r
 \r
   MdeModulePkg/Universal/Variable/RuntimeDxe/VariableRuntimeDxe.inf {\r
     <LibraryClasses>\r
index c8f5831093a77cd792b78f1a2f08c8a7314a96e7..51b1180e7a470bde06a622798e77b55a84c0948e 100644 (file)
@@ -1,5 +1,6 @@
 #\r
 #  Copyright (c) 2013-2015, ARM Limited. All rights reserved.\r
+#  Copyright (c) 2015, Intel Corporation. All rights reserved.<BR>\r
 #\r
 #  This program and the accompanying materials\r
 #  are licensed and made available under the terms and conditions of the BSD License\r
@@ -123,7 +124,7 @@ FvNameGuid         = B73FE497-B92E-416e-8326-45AD0D270092
   INF MdeModulePkg/Universal/Console/ConSplitterDxe/ConSplitterDxe.inf\r
   INF MdeModulePkg/Universal/Console/GraphicsConsoleDxe/GraphicsConsoleDxe.inf\r
   INF MdeModulePkg/Universal/Console/TerminalDxe/TerminalDxe.inf\r
-  INF EmbeddedPkg/SerialDxe/SerialDxe.inf\r
+  INF MdeModulePkg/Universal/SerialDxe/SerialDxe.inf\r
 \r
   INF ArmPkg/Drivers/ArmGic/ArmGicDxe.inf\r
   INF ArmPkg/Drivers/TimerDxe/TimerDxe.inf\r
index c76d729a0d88a127a51a5783c16a4bf1705887fb..5503bbc300025fe4be24ea218097b9c653ea636b 100644 (file)
@@ -1,5 +1,6 @@
 #\r
 #  Copyright (c) 2012-2015, ARM Limited. All rights reserved.\r
+#  Copyright (c) 2015, Intel Corporation. All rights reserved.<BR>\r
 #\r
 #  This program and the accompanying materials\r
 #  are licensed and made available under the terms and conditions of the BSD License\r
   MdeModulePkg/Universal/Console/ConSplitterDxe/ConSplitterDxe.inf\r
   MdeModulePkg/Universal/Console/GraphicsConsoleDxe/GraphicsConsoleDxe.inf\r
   MdeModulePkg/Universal/Console/TerminalDxe/TerminalDxe.inf\r
-  EmbeddedPkg/SerialDxe/SerialDxe.inf\r
+  MdeModulePkg/Universal/SerialDxe/SerialDxe.inf\r
 \r
   MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseDxe.inf\r
 \r
index 576b3408e008ac9e6b509e376d77dbf94ce81a61..5f4f5aaf4998dc9350eab7156bb5820f39caaa35 100644 (file)
@@ -1,5 +1,6 @@
 #\r
 #  Copyright (c) 2012-2015, ARM Limited. All rights reserved.\r
+#  Copyright (c) 2015, Intel Corporation. All rights reserved.<BR>\r
 #\r
 #  This program and the accompanying materials\r
 #  are licensed and made available under the terms and conditions of the BSD License\r
@@ -91,7 +92,7 @@ FvNameGuid         = 73dcb643-3862-4904-9076-a94af1890243
   INF MdeModulePkg/Universal/Console/ConSplitterDxe/ConSplitterDxe.inf\r
   INF MdeModulePkg/Universal/Console/GraphicsConsoleDxe/GraphicsConsoleDxe.inf\r
   INF MdeModulePkg/Universal/Console/TerminalDxe/TerminalDxe.inf\r
-  INF EmbeddedPkg/SerialDxe/SerialDxe.inf\r
+  INF MdeModulePkg/Universal/SerialDxe/SerialDxe.inf\r
 \r
   INF ArmPkg/Drivers/ArmGic/ArmGicDxe.inf\r
   INF ArmPkg/Drivers/TimerDxe/TimerDxe.inf\r
index ec29e65e3de52cd42ec6c3bdf51bdd00561939b5..74fac1642d08148f7453dba9b48caf6b7f7f9f2a 100644 (file)
@@ -1,5 +1,6 @@
 #\r
 #  Copyright (c) 2011-2015, ARM Limited. All rights reserved.\r
+#  Copyright (c) 2015, Intel Corporation. All rights reserved.<BR>\r
 #\r
 #  This program and the accompanying materials\r
 #  are licensed and made available under the terms and conditions of the BSD License\r
   MdeModulePkg/Universal/Console/ConSplitterDxe/ConSplitterDxe.inf\r
   MdeModulePkg/Universal/Console/GraphicsConsoleDxe/GraphicsConsoleDxe.inf\r
   MdeModulePkg/Universal/Console/TerminalDxe/TerminalDxe.inf\r
-  EmbeddedPkg/SerialDxe/SerialDxe.inf\r
+  MdeModulePkg/Universal/SerialDxe/SerialDxe.inf\r
 \r
   MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseDxe.inf\r
 \r
index 9b54e3967466b08e2aa56497cee5640814bb919d..53837d4a72adacbdfc680575b7644d609f456a80 100644 (file)
@@ -1,5 +1,6 @@
 #\r
 #  Copyright (c) 2011 - 2015, ARM Limited. All rights reserved.\r
+#  Copyright (c) 2015, Intel Corporation. All rights reserved.<BR>\r
 #\r
 #  This program and the accompanying materials\r
 #  are licensed and made available under the terms and conditions of the BSD License\r
@@ -158,7 +159,7 @@ FvNameGuid         = 87940482-fc81-41c3-87e6-399cf85ac8a0
   INF MdeModulePkg/Universal/Console/ConSplitterDxe/ConSplitterDxe.inf\r
   INF MdeModulePkg/Universal/Console/GraphicsConsoleDxe/GraphicsConsoleDxe.inf\r
   INF MdeModulePkg/Universal/Console/TerminalDxe/TerminalDxe.inf\r
-  INF EmbeddedPkg/SerialDxe/SerialDxe.inf\r
+  INF MdeModulePkg/Universal/SerialDxe/SerialDxe.inf\r
 \r
   INF ArmPkg/Drivers/ArmGic/ArmGicDxe.inf\r
   INF ArmPkg/Drivers/TimerDxe/TimerDxe.inf\r
index 72103e26568cb37531f371cc84ed8a4c25e26795..a8e326902e11ec211eae5f78a16cf7bb36e3dcc4 100644 (file)
@@ -1,5 +1,6 @@
 #\r
 #  Copyright (c) 2011-2015, ARM Limited. All rights reserved.\r
+#  Copyright (c) 2015, Intel Corporation. All rights reserved.<BR>\r
 #\r
 #  This program and the accompanying materials\r
 #  are licensed and made available under the terms and conditions of the BSD License\r
   MdeModulePkg/Universal/Console/ConSplitterDxe/ConSplitterDxe.inf\r
   MdeModulePkg/Universal/Console/GraphicsConsoleDxe/GraphicsConsoleDxe.inf\r
   MdeModulePkg/Universal/Console/TerminalDxe/TerminalDxe.inf\r
-  EmbeddedPkg/SerialDxe/SerialDxe.inf\r
+  MdeModulePkg/Universal/SerialDxe/SerialDxe.inf\r
 \r
   MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseDxe.inf\r
 \r
index b65dd9d533a8d612495b4059b2c361b8b834b085..ee50af2115d506ed2906879112f63b077a9160a4 100644 (file)
@@ -1,5 +1,6 @@
 #\r
 #  Copyright (c) 2011-2015, ARM Limited. All rights reserved.\r
+#  Copyright (c) 2015, Intel Corporation. All rights reserved.<BR>\r
 #\r
 #  This program and the accompanying materials\r
 #  are licensed and made available under the terms and conditions of the BSD License\r
@@ -156,7 +157,7 @@ FvNameGuid         = 12c68be9-0996-49d3-8c5b-4957379027ee
   INF MdeModulePkg/Universal/Console/ConSplitterDxe/ConSplitterDxe.inf\r
   INF MdeModulePkg/Universal/Console/GraphicsConsoleDxe/GraphicsConsoleDxe.inf\r
   INF MdeModulePkg/Universal/Console/TerminalDxe/TerminalDxe.inf\r
-  INF EmbeddedPkg/SerialDxe/SerialDxe.inf\r
+  INF MdeModulePkg/Universal/SerialDxe/SerialDxe.inf\r
 \r
   INF ArmPkg/Drivers/ArmGic/ArmGicDxe.inf\r
   INF ArmPkg/Drivers/TimerDxe/TimerDxe.inf\r
index 4fce05b1bf3bf5f32c2a45d74209cf0cd8e3eba1..ced19853149259b5766583dc80f8cc168fed976e 100644 (file)
@@ -95,7 +95,6 @@
   # ARM PL011 UART Driver\r
   PL011UartLib|ArmPlatformPkg/Drivers/PL011Uart/PL011Uart.inf\r
   SerialPortLib|ArmPlatformPkg/Library/PL011SerialPortLib/PL011SerialPortLib.inf\r
-  SerialPortExtLib|ArmPlatformPkg/Library/PL011SerialPortLib/PL011SerialPortExtLib.inf\r
   # ARM SP804 Dual Timer Driver\r
   TimerLib|ArmPlatformPkg/Library/SP804TimerLib/SP804TimerLib.inf\r
 \r
diff --git a/ArmPlatformPkg/Library/PL011SerialPortLib/PL011SerialPortExtLib.c b/ArmPlatformPkg/Library/PL011SerialPortLib/PL011SerialPortExtLib.c
deleted file mode 100644 (file)
index 44fe78f..0000000
+++ /dev/null
@@ -1,137 +0,0 @@
-/** @file\r
-  Serial I/O Port library functions with no library constructor/destructor\r
-\r
-  Copyright (c) 2012-2014, ARM Ltd. All rights reserved.<BR>\r
-\r
-  This program and the accompanying materials\r
-  are licensed and made available under the terms and conditions of the BSD License\r
-  which accompanies this distribution.  The full text of the license may be found at\r
-  http://opensource.org/licenses/bsd-license.php\r
-\r
-  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
-  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
-\r
-**/\r
-\r
-#include <Base.h>\r
-\r
-#include <Library/IoLib.h>\r
-#include <Library/PcdLib.h>\r
-#include <Library/SerialPortExtLib.h>\r
-\r
-#include <Drivers/PL011Uart.h>\r
-\r
-/**\r
-  Set new attributes to PL011.\r
-\r
-  @param  BaudRate                The baud rate of the serial device. If the baud rate is not supported,\r
-                                  the speed will be reduced down to the nearest supported one and the\r
-                                  variable's value will be updated accordingly.\r
-  @param  ReceiveFifoDepth        The number of characters the device will buffer on input. If the specified\r
-                                  value is not supported, the variable's value will be reduced down to the\r
-                                  nearest supported one.\r
-  @param  Timeout                 If applicable, the number of microseconds the device will wait\r
-                                  before timing out a Read or a Write operation.\r
-  @param  Parity                  If applicable, this is the EFI_PARITY_TYPE that is computed or checked\r
-                                  as each character is transmitted or received. If the device does not\r
-                                  support parity, the value is the default parity value.\r
-  @param  DataBits                The number of data bits in each character\r
-  @param  StopBits                If applicable, the EFI_STOP_BITS_TYPE number of stop bits per character.\r
-                                  If the device does not support stop bits, the value is the default stop\r
-                                  bit value.\r
-\r
-  @retval EFI_SUCCESS             All attributes were set correctly on the serial device.\r
-  @retval EFI_INVALID_PARAMETERS  One or more of the attributes has an unsupported value.\r
-\r
-**/\r
-RETURN_STATUS\r
-EFIAPI\r
-SerialPortSetAttributes (\r
-  IN OUT UINT64              *BaudRate,\r
-  IN OUT UINT32              *ReceiveFifoDepth,\r
-  IN OUT UINT32              *Timeout,\r
-  IN OUT EFI_PARITY_TYPE     *Parity,\r
-  IN OUT UINT8               *DataBits,\r
-  IN OUT EFI_STOP_BITS_TYPE  *StopBits\r
-  )\r
-{\r
-  return PL011UartInitializePort (\r
-        (UINTN)PcdGet64 (PcdSerialRegisterBase),\r
-        BaudRate,\r
-        ReceiveFifoDepth,\r
-        Parity,\r
-        DataBits,\r
-        StopBits);\r
-}\r
-\r
-/**\r
-\r
-  Assert or deassert the control signals on a serial port.\r
-  The following control signals are set according their bit settings :\r
-  . Request to Send\r
-  . Data Terminal Ready\r
-\r
-  @param[in]  Control  The following bits are taken into account :\r
-                       . EFI_SERIAL_REQUEST_TO_SEND : assert/deassert the\r
-                         "Request To Send" control signal if this bit is\r
-                         equal to one/zero.\r
-                       . EFI_SERIAL_DATA_TERMINAL_READY : assert/deassert\r
-                         the "Data Terminal Ready" control signal if this\r
-                         bit is equal to one/zero.\r
-                       . EFI_SERIAL_HARDWARE_LOOPBACK_ENABLE : enable/disable\r
-                         the hardware loopback if this bit is equal to\r
-                         one/zero.\r
-                       . EFI_SERIAL_SOFTWARE_LOOPBACK_ENABLE : not supported.\r
-                       . EFI_SERIAL_HARDWARE_FLOW_CONTROL_ENABLE : enable/\r
-                         disable the hardware flow control based on CTS (Clear\r
-                         To Send) and RTS (Ready To Send) control signals.\r
-\r
-  @retval  RETURN_SUCCESS      The new control bits were set on the serial device.\r
-  @retval  RETURN_UNSUPPORTED  The serial device does not support this operation.\r
-\r
-**/\r
-RETURN_STATUS\r
-EFIAPI\r
-SerialPortSetControl (\r
-  IN UINT32  Control\r
-  )\r
-{\r
-  return PL011UartSetControl ((UINTN)PcdGet64 (PcdSerialRegisterBase), Control);\r
-}\r
-\r
-/**\r
-\r
-  Retrieve the status of the control bits on a serial device.\r
-\r
-  @param[out]  Control  Status of the control bits on a serial device :\r
-\r
-                        . EFI_SERIAL_DATA_CLEAR_TO_SEND, EFI_SERIAL_DATA_SET_READY,\r
-                          EFI_SERIAL_RING_INDICATE, EFI_SERIAL_CARRIER_DETECT,\r
-                          EFI_SERIAL_REQUEST_TO_SEND, EFI_SERIAL_DATA_TERMINAL_READY\r
-                          are all related to the DTE (Data Terminal Equipment) and\r
-                          DCE (Data Communication Equipment) modes of operation of\r
-                          the serial device.\r
-                        . EFI_SERIAL_INPUT_BUFFER_EMPTY : equal to one if the receive\r
-                          buffer is empty, 0 otherwise.\r
-                        . EFI_SERIAL_OUTPUT_BUFFER_EMPTY : equal to one if the transmit\r
-                          buffer is empty, 0 otherwise.\r
-                        . EFI_SERIAL_HARDWARE_LOOPBACK_ENABLE : equal to one if the\r
-                          hardware loopback is enabled (the ouput feeds the receive\r
-                          buffer), 0 otherwise.\r
-                        . EFI_SERIAL_SOFTWARE_LOOPBACK_ENABLE : equal to one if a\r
-                          loopback is accomplished by software, 0 otherwise.\r
-                        . EFI_SERIAL_HARDWARE_FLOW_CONTROL_ENABLE : equal to one if the\r
-                          hardware flow control based on CTS (Clear To Send) and RTS\r
-                          (Ready To Send) control signals is enabled, 0 otherwise.\r
-\r
-  @retval RETURN_SUCCESS  The control bits were read from the serial device.\r
-\r
-**/\r
-RETURN_STATUS\r
-EFIAPI\r
-SerialPortGetControl (\r
-  OUT UINT32  *Control\r
-  )\r
-{\r
-  return PL011UartGetControl ((UINTN)PcdGet64 (PcdSerialRegisterBase), Control);\r
-}\r
diff --git a/ArmPlatformPkg/Library/PL011SerialPortLib/PL011SerialPortExtLib.inf b/ArmPlatformPkg/Library/PL011SerialPortLib/PL011SerialPortExtLib.inf
deleted file mode 100644 (file)
index 723cc97..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-#/** @file\r
-#\r
-#  Component description file for PL011SerialPortLib module\r
-#\r
-#  Copyright (c) 2011-2012, ARM Ltd. All rights reserved.<BR>\r
-#\r
-#  This program and the accompanying materials\r
-#  are licensed and made available under the terms and conditions of the BSD License\r
-#  which accompanies this distribution.  The full text of the license may be found at\r
-#  http://opensource.org/licenses/bsd-license.php\r
-#\r
-#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
-#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
-#\r
-#**/\r
-\r
-[Defines]\r
-  INF_VERSION                    = 0x00010005\r
-  BASE_NAME                      = PL011SerialPortExtLib\r
-  FILE_GUID                      = 2be281f1-c506-4558-bd98-d6930e6de9d6\r
-  MODULE_TYPE                    = BASE\r
-  VERSION_STRING                 = 1.0\r
-  LIBRARY_CLASS                  = SerialPortExtLib\r
-\r
-[Sources.common]\r
-  PL011SerialPortExtLib.c\r
-\r
-[LibraryClasses]\r
-  PL011UartLib\r
-  PcdLib\r
-\r
-[Packages]\r
-  EmbeddedPkg/EmbeddedPkg.dec\r
-  MdePkg/MdePkg.dec\r
-  MdeModulePkg/MdeModulePkg.dec\r
-  ArmPlatformPkg/ArmPlatformPkg.dec\r
-\r
-[Pcd]\r
-  gEfiMdeModulePkgTokenSpaceGuid.PcdSerialRegisterBase\r
-  gEfiMdePkgTokenSpaceGuid.PcdUartDefaultBaudRate\r
-  gEfiMdePkgTokenSpaceGuid.PcdUartDefaultDataBits\r
-  gEfiMdePkgTokenSpaceGuid.PcdUartDefaultParity\r
-  gEfiMdePkgTokenSpaceGuid.PcdUartDefaultStopBits\r
index d4f7fc96f6d4893dfe1c5592920bec443ede9fd5..7497b5eb7f19fbce6ef0bb7eda34a1b0a2b9ea69 100644 (file)
@@ -2,7 +2,8 @@
   Serial I/O Port library functions with no library constructor/destructor\r
 \r
   Copyright (c) 2008 - 2010, Apple Inc. All rights reserved.<BR>\r
-  Copyright (c) 2012 - 2013, ARM Ltd. All rights reserved.<BR>\r
+  Copyright (c) 2012 - 2014, ARM Ltd. All rights reserved.<BR>\r
+  Copyright (c) 2015, Intel Corporation. All rights reserved.<BR>\r
 \r
   This program and the accompanying materials\r
   are licensed and made available under the terms and conditions of the BSD License\r
@@ -19,7 +20,6 @@
 #include <Library/IoLib.h>\r
 #include <Library/PcdLib.h>\r
 #include <Library/SerialPortLib.h>\r
-#include <Library/SerialPortExtLib.h>\r
 \r
 #include <Drivers/PL011Uart.h>\r
 \r
@@ -110,4 +110,117 @@ SerialPortPoll (
 {\r
   return PL011UartPoll ((UINTN)PcdGet64 (PcdSerialRegisterBase));\r
 }\r
+/**\r
+  Set new attributes to PL011.\r
+\r
+  @param  BaudRate                The baud rate of the serial device. If the baud rate is not supported,\r
+                                  the speed will be reduced down to the nearest supported one and the\r
+                                  variable's value will be updated accordingly.\r
+  @param  ReceiveFifoDepth        The number of characters the device will buffer on input. If the specified\r
+                                  value is not supported, the variable's value will be reduced down to the\r
+                                  nearest supported one.\r
+  @param  Timeout                 If applicable, the number of microseconds the device will wait\r
+                                  before timing out a Read or a Write operation.\r
+  @param  Parity                  If applicable, this is the EFI_PARITY_TYPE that is computed or checked\r
+                                  as each character is transmitted or received. If the device does not\r
+                                  support parity, the value is the default parity value.\r
+  @param  DataBits                The number of data bits in each character\r
+  @param  StopBits                If applicable, the EFI_STOP_BITS_TYPE number of stop bits per character.\r
+                                  If the device does not support stop bits, the value is the default stop\r
+                                  bit value.\r
+\r
+  @retval EFI_SUCCESS             All attributes were set correctly on the serial device.\r
+  @retval EFI_INVALID_PARAMETERS  One or more of the attributes has an unsupported value.\r
+\r
+**/\r
+RETURN_STATUS\r
+EFIAPI\r
+SerialPortSetAttributes (\r
+  IN OUT UINT64              *BaudRate,\r
+  IN OUT UINT32              *ReceiveFifoDepth,\r
+  IN OUT UINT32              *Timeout,\r
+  IN OUT EFI_PARITY_TYPE     *Parity,\r
+  IN OUT UINT8               *DataBits,\r
+  IN OUT EFI_STOP_BITS_TYPE  *StopBits\r
+  )\r
+{\r
+  return PL011UartInitializePort (\r
+        (UINTN)PcdGet64 (PcdSerialRegisterBase),\r
+        BaudRate,\r
+        ReceiveFifoDepth,\r
+        Parity,\r
+        DataBits,\r
+        StopBits);\r
+}\r
+\r
+/**\r
+\r
+  Assert or deassert the control signals on a serial port.\r
+  The following control signals are set according their bit settings :\r
+  . Request to Send\r
+  . Data Terminal Ready\r
+\r
+  @param[in]  Control  The following bits are taken into account :\r
+                       . EFI_SERIAL_REQUEST_TO_SEND : assert/deassert the\r
+                         "Request To Send" control signal if this bit is\r
+                         equal to one/zero.\r
+                       . EFI_SERIAL_DATA_TERMINAL_READY : assert/deassert\r
+                         the "Data Terminal Ready" control signal if this\r
+                         bit is equal to one/zero.\r
+                       . EFI_SERIAL_HARDWARE_LOOPBACK_ENABLE : enable/disable\r
+                         the hardware loopback if this bit is equal to\r
+                         one/zero.\r
+                       . EFI_SERIAL_SOFTWARE_LOOPBACK_ENABLE : not supported.\r
+                       . EFI_SERIAL_HARDWARE_FLOW_CONTROL_ENABLE : enable/\r
+                         disable the hardware flow control based on CTS (Clear\r
+                         To Send) and RTS (Ready To Send) control signals.\r
+\r
+  @retval  RETURN_SUCCESS      The new control bits were set on the serial device.\r
+  @retval  RETURN_UNSUPPORTED  The serial device does not support this operation.\r
+\r
+**/\r
+RETURN_STATUS\r
+EFIAPI\r
+SerialPortSetControl (\r
+  IN UINT32  Control\r
+  )\r
+{\r
+  return PL011UartSetControl ((UINTN)PcdGet64 (PcdSerialRegisterBase), Control);\r
+}\r
+\r
+/**\r
 \r
+  Retrieve the status of the control bits on a serial device.\r
+\r
+  @param[out]  Control  Status of the control bits on a serial device :\r
+\r
+                        . EFI_SERIAL_DATA_CLEAR_TO_SEND, EFI_SERIAL_DATA_SET_READY,\r
+                          EFI_SERIAL_RING_INDICATE, EFI_SERIAL_CARRIER_DETECT,\r
+                          EFI_SERIAL_REQUEST_TO_SEND, EFI_SERIAL_DATA_TERMINAL_READY\r
+                          are all related to the DTE (Data Terminal Equipment) and\r
+                          DCE (Data Communication Equipment) modes of operation of\r
+                          the serial device.\r
+                        . EFI_SERIAL_INPUT_BUFFER_EMPTY : equal to one if the receive\r
+                          buffer is empty, 0 otherwise.\r
+                        . EFI_SERIAL_OUTPUT_BUFFER_EMPTY : equal to one if the transmit\r
+                          buffer is empty, 0 otherwise.\r
+                        . EFI_SERIAL_HARDWARE_LOOPBACK_ENABLE : equal to one if the\r
+                          hardware loopback is enabled (the output feeds the receive\r
+                          buffer), 0 otherwise.\r
+                        . EFI_SERIAL_SOFTWARE_LOOPBACK_ENABLE : equal to one if a\r
+                          loopback is accomplished by software, 0 otherwise.\r
+                        . EFI_SERIAL_HARDWARE_FLOW_CONTROL_ENABLE : equal to one if the\r
+                          hardware flow control based on CTS (Clear To Send) and RTS\r
+                          (Ready To Send) control signals is enabled, 0 otherwise.\r
+\r
+  @retval RETURN_SUCCESS  The control bits were read from the serial device.\r
+\r
+**/\r
+RETURN_STATUS\r
+EFIAPI\r
+SerialPortGetControl (\r
+  OUT UINT32  *Control\r
+  )\r
+{\r
+  return PL011UartGetControl ((UINTN)PcdGet64 (PcdSerialRegisterBase), Control);\r
+}\r