Revision: 19021
          http://sourceforge.net/p/edk2/code/19021
Author:   vanjeff
Date:     2015-11-30 03:20:15 +0000 (Mon, 30 Nov 2015)
Log Message:
-----------
ArmPlatformPkg: Use SerialDxe in MdeModulePkg instead of EmbeddedPkg

It is also to integrate PL011SerialPortExtLib to PL011SerialPortLib.

(Sync patch r18971 from main trunk.)

Cc: Michael D Kinney <[email protected]>
Cc: Liming Gao <[email protected]>
Cc: Leif Lindholm <[email protected]>
Cc: Ard Biesheuvel <[email protected]>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Star Zeng <[email protected]>
Reviewed-by: Ard Biesheuvel <[email protected]>

Revision Links:
--------------
    http://sourceforge.net/p/edk2/code/18971

Modified Paths:
--------------
    branches/UDK2015/ArmPlatformPkg/ArmJunoPkg/ArmJuno.dsc
    branches/UDK2015/ArmPlatformPkg/ArmJunoPkg/ArmJuno.fdf
    branches/UDK2015/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-CTA15-A7.dsc
    branches/UDK2015/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-CTA15-A7.fdf
    branches/UDK2015/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-FVP-AArch64.dsc
    branches/UDK2015/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-FVP-AArch64.fdf
    
branches/UDK2015/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-RTSM-A15_MPCore.dsc
    
branches/UDK2015/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-RTSM-A15_MPCore.fdf
    branches/UDK2015/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress.dsc.inc
    
branches/UDK2015/ArmPlatformPkg/Library/PL011SerialPortLib/PL011SerialPortLib.c

Removed Paths:
-------------
    
branches/UDK2015/ArmPlatformPkg/Library/PL011SerialPortLib/PL011SerialPortExtLib.c
    
branches/UDK2015/ArmPlatformPkg/Library/PL011SerialPortLib/PL011SerialPortExtLib.inf

Modified: branches/UDK2015/ArmPlatformPkg/ArmJunoPkg/ArmJuno.dsc
===================================================================
--- branches/UDK2015/ArmPlatformPkg/ArmJunoPkg/ArmJuno.dsc      2015-11-30 
03:19:26 UTC (rev 19020)
+++ branches/UDK2015/ArmPlatformPkg/ArmJunoPkg/ArmJuno.dsc      2015-11-30 
03:20:15 UTC (rev 19021)
@@ -1,5 +1,6 @@
 #
 #  Copyright (c) 2013-2015, ARM Limited. All rights reserved.
+#  Copyright (c) 2015, Intel Corporation. All rights reserved.<BR>
 #
 #  This program and the accompanying materials
 #  are licensed and made available under the terms and conditions of the BSD 
License
@@ -218,7 +219,7 @@
   MdeModulePkg/Universal/Console/ConSplitterDxe/ConSplitterDxe.inf
   MdeModulePkg/Universal/Console/GraphicsConsoleDxe/GraphicsConsoleDxe.inf
   MdeModulePkg/Universal/Console/TerminalDxe/TerminalDxe.inf
-  EmbeddedPkg/SerialDxe/SerialDxe.inf
+  MdeModulePkg/Universal/SerialDxe/SerialDxe.inf
 
   MdeModulePkg/Universal/Variable/RuntimeDxe/VariableRuntimeDxe.inf {
     <LibraryClasses>

Modified: branches/UDK2015/ArmPlatformPkg/ArmJunoPkg/ArmJuno.fdf
===================================================================
--- branches/UDK2015/ArmPlatformPkg/ArmJunoPkg/ArmJuno.fdf      2015-11-30 
03:19:26 UTC (rev 19020)
+++ branches/UDK2015/ArmPlatformPkg/ArmJunoPkg/ArmJuno.fdf      2015-11-30 
03:20:15 UTC (rev 19021)
@@ -1,5 +1,6 @@
 #
 #  Copyright (c) 2013-2015, ARM Limited. All rights reserved.
+#  Copyright (c) 2015, Intel Corporation. All rights reserved.<BR>
 #
 #  This program and the accompanying materials
 #  are licensed and made available under the terms and conditions of the BSD 
License
@@ -123,7 +124,7 @@
   INF MdeModulePkg/Universal/Console/ConSplitterDxe/ConSplitterDxe.inf
   INF MdeModulePkg/Universal/Console/GraphicsConsoleDxe/GraphicsConsoleDxe.inf
   INF MdeModulePkg/Universal/Console/TerminalDxe/TerminalDxe.inf
-  INF EmbeddedPkg/SerialDxe/SerialDxe.inf
+  INF MdeModulePkg/Universal/SerialDxe/SerialDxe.inf
 
   INF ArmPkg/Drivers/ArmGic/ArmGicDxe.inf
   INF ArmPkg/Drivers/TimerDxe/TimerDxe.inf

Modified: 
branches/UDK2015/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-CTA15-A7.dsc
===================================================================
--- branches/UDK2015/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-CTA15-A7.dsc     
2015-11-30 03:19:26 UTC (rev 19020)
+++ branches/UDK2015/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-CTA15-A7.dsc     
2015-11-30 03:20:15 UTC (rev 19021)
@@ -1,5 +1,6 @@
 #
 #  Copyright (c) 2012-2015, ARM Limited. All rights reserved.
+#  Copyright (c) 2015, Intel Corporation. All rights reserved.<BR>
 #
 #  This program and the accompanying materials
 #  are licensed and made available under the terms and conditions of the BSD 
License
@@ -247,7 +248,7 @@
   MdeModulePkg/Universal/Console/ConSplitterDxe/ConSplitterDxe.inf
   MdeModulePkg/Universal/Console/GraphicsConsoleDxe/GraphicsConsoleDxe.inf
   MdeModulePkg/Universal/Console/TerminalDxe/TerminalDxe.inf
-  EmbeddedPkg/SerialDxe/SerialDxe.inf
+  MdeModulePkg/Universal/SerialDxe/SerialDxe.inf
 
   MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseDxe.inf
 

Modified: 
branches/UDK2015/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-CTA15-A7.fdf
===================================================================
--- branches/UDK2015/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-CTA15-A7.fdf     
2015-11-30 03:19:26 UTC (rev 19020)
+++ branches/UDK2015/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-CTA15-A7.fdf     
2015-11-30 03:20:15 UTC (rev 19021)
@@ -1,5 +1,6 @@
 #
 #  Copyright (c) 2012-2015, ARM Limited. All rights reserved.
+#  Copyright (c) 2015, Intel Corporation. All rights reserved.<BR>
 #
 #  This program and the accompanying materials
 #  are licensed and made available under the terms and conditions of the BSD 
License
@@ -91,7 +92,7 @@
   INF MdeModulePkg/Universal/Console/ConSplitterDxe/ConSplitterDxe.inf
   INF MdeModulePkg/Universal/Console/GraphicsConsoleDxe/GraphicsConsoleDxe.inf
   INF MdeModulePkg/Universal/Console/TerminalDxe/TerminalDxe.inf
-  INF EmbeddedPkg/SerialDxe/SerialDxe.inf
+  INF MdeModulePkg/Universal/SerialDxe/SerialDxe.inf
 
   INF ArmPkg/Drivers/ArmGic/ArmGicDxe.inf
   INF ArmPkg/Drivers/TimerDxe/TimerDxe.inf

Modified: 
branches/UDK2015/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-FVP-AArch64.dsc
===================================================================
--- branches/UDK2015/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-FVP-AArch64.dsc  
2015-11-30 03:19:26 UTC (rev 19020)
+++ branches/UDK2015/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-FVP-AArch64.dsc  
2015-11-30 03:20:15 UTC (rev 19021)
@@ -1,5 +1,6 @@
 #
 #  Copyright (c) 2011-2015, ARM Limited. All rights reserved.
+#  Copyright (c) 2015, Intel Corporation. All rights reserved.<BR>
 #
 #  This program and the accompanying materials
 #  are licensed and made available under the terms and conditions of the BSD 
License
@@ -267,7 +268,7 @@
   MdeModulePkg/Universal/Console/ConSplitterDxe/ConSplitterDxe.inf
   MdeModulePkg/Universal/Console/GraphicsConsoleDxe/GraphicsConsoleDxe.inf
   MdeModulePkg/Universal/Console/TerminalDxe/TerminalDxe.inf
-  EmbeddedPkg/SerialDxe/SerialDxe.inf
+  MdeModulePkg/Universal/SerialDxe/SerialDxe.inf
 
   MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseDxe.inf
 

Modified: 
branches/UDK2015/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-FVP-AArch64.fdf
===================================================================
--- branches/UDK2015/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-FVP-AArch64.fdf  
2015-11-30 03:19:26 UTC (rev 19020)
+++ branches/UDK2015/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-FVP-AArch64.fdf  
2015-11-30 03:20:15 UTC (rev 19021)
@@ -1,5 +1,6 @@
 #
 #  Copyright (c) 2011 - 2015, ARM Limited. All rights reserved.
+#  Copyright (c) 2015, Intel Corporation. All rights reserved.<BR>
 #
 #  This program and the accompanying materials
 #  are licensed and made available under the terms and conditions of the BSD 
License
@@ -155,7 +156,7 @@
   INF MdeModulePkg/Universal/Console/ConSplitterDxe/ConSplitterDxe.inf
   INF MdeModulePkg/Universal/Console/GraphicsConsoleDxe/GraphicsConsoleDxe.inf
   INF MdeModulePkg/Universal/Console/TerminalDxe/TerminalDxe.inf
-  INF EmbeddedPkg/SerialDxe/SerialDxe.inf
+  INF MdeModulePkg/Universal/SerialDxe/SerialDxe.inf
 
   INF ArmPkg/Drivers/ArmGic/ArmGicDxe.inf
   INF ArmPkg/Drivers/TimerDxe/TimerDxe.inf

Modified: 
branches/UDK2015/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-RTSM-A15_MPCore.dsc
===================================================================
--- 
branches/UDK2015/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-RTSM-A15_MPCore.dsc  
    2015-11-30 03:19:26 UTC (rev 19020)
+++ 
branches/UDK2015/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-RTSM-A15_MPCore.dsc  
    2015-11-30 03:20:15 UTC (rev 19021)
@@ -1,5 +1,6 @@
 #
 #  Copyright (c) 2011-2015, ARM Limited. All rights reserved.
+#  Copyright (c) 2015, Intel Corporation. All rights reserved.<BR>
 #
 #  This program and the accompanying materials
 #  are licensed and made available under the terms and conditions of the BSD 
License
@@ -259,7 +260,7 @@
   MdeModulePkg/Universal/Console/ConSplitterDxe/ConSplitterDxe.inf
   MdeModulePkg/Universal/Console/GraphicsConsoleDxe/GraphicsConsoleDxe.inf
   MdeModulePkg/Universal/Console/TerminalDxe/TerminalDxe.inf
-  EmbeddedPkg/SerialDxe/SerialDxe.inf
+  MdeModulePkg/Universal/SerialDxe/SerialDxe.inf
 
   MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseDxe.inf
 

Modified: 
branches/UDK2015/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-RTSM-A15_MPCore.fdf
===================================================================
--- 
branches/UDK2015/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-RTSM-A15_MPCore.fdf  
    2015-11-30 03:19:26 UTC (rev 19020)
+++ 
branches/UDK2015/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-RTSM-A15_MPCore.fdf  
    2015-11-30 03:20:15 UTC (rev 19021)
@@ -1,5 +1,6 @@
 #
 #  Copyright (c) 2011-2015, ARM Limited. All rights reserved.
+#  Copyright (c) 2015, Intel Corporation. All rights reserved.<BR>
 #
 #  This program and the accompanying materials
 #  are licensed and made available under the terms and conditions of the BSD 
License
@@ -156,7 +157,7 @@
   INF MdeModulePkg/Universal/Console/ConSplitterDxe/ConSplitterDxe.inf
   INF MdeModulePkg/Universal/Console/GraphicsConsoleDxe/GraphicsConsoleDxe.inf
   INF MdeModulePkg/Universal/Console/TerminalDxe/TerminalDxe.inf
-  INF EmbeddedPkg/SerialDxe/SerialDxe.inf
+  INF MdeModulePkg/Universal/SerialDxe/SerialDxe.inf
 
   INF ArmPkg/Drivers/ArmGic/ArmGicDxe.inf
   INF ArmPkg/Drivers/TimerDxe/TimerDxe.inf

Modified: branches/UDK2015/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress.dsc.inc
===================================================================
--- branches/UDK2015/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress.dsc.inc  
2015-11-30 03:19:26 UTC (rev 19020)
+++ branches/UDK2015/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress.dsc.inc  
2015-11-30 03:20:15 UTC (rev 19021)
@@ -90,7 +90,6 @@
   # ARM PL011 UART Driver
   PL011UartLib|ArmPlatformPkg/Drivers/PL011Uart/PL011Uart.inf
   
SerialPortLib|ArmPlatformPkg/Library/PL011SerialPortLib/PL011SerialPortLib.inf
-  
SerialPortExtLib|ArmPlatformPkg/Library/PL011SerialPortLib/PL011SerialPortExtLib.inf
   # ARM SP804 Dual Timer Driver
   TimerLib|ArmPlatformPkg/Library/SP804TimerLib/SP804TimerLib.inf
 

Deleted: 
branches/UDK2015/ArmPlatformPkg/Library/PL011SerialPortLib/PL011SerialPortExtLib.c
===================================================================
--- 
branches/UDK2015/ArmPlatformPkg/Library/PL011SerialPortLib/PL011SerialPortExtLib.c
  2015-11-30 03:19:26 UTC (rev 19020)
+++ 
branches/UDK2015/ArmPlatformPkg/Library/PL011SerialPortLib/PL011SerialPortExtLib.c
  2015-11-30 03:20:15 UTC (rev 19021)
@@ -1,137 +0,0 @@
-/** @file
-  Serial I/O Port library functions with no library constructor/destructor
-
-  Copyright (c) 2012-2014, ARM Ltd. All rights reserved.<BR>
-
-  This program and the accompanying materials
-  are licensed and made available under the terms and conditions of the BSD 
License
-  which accompanies this distribution.  The full text of the license may be 
found at
-  http://opensource.org/licenses/bsd-license.php
-
-  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
-  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-
-**/
-
-#include <Base.h>
-
-#include <Library/IoLib.h>
-#include <Library/PcdLib.h>
-#include <Library/SerialPortExtLib.h>
-
-#include <Drivers/PL011Uart.h>
-
-/**
-  Set new attributes to PL011.
-
-  @param  BaudRate                The baud rate of the serial device. If the 
baud rate is not supported,
-                                  the speed will be reduced down to the 
nearest supported one and the
-                                  variable's value will be updated accordingly.
-  @param  ReceiveFifoDepth        The number of characters the device will 
buffer on input. If the specified
-                                  value is not supported, the variable's value 
will be reduced down to the
-                                  nearest supported one.
-  @param  Timeout                 If applicable, the number of microseconds 
the device will wait
-                                  before timing out a Read or a Write 
operation.
-  @param  Parity                  If applicable, this is the EFI_PARITY_TYPE 
that is computed or checked
-                                  as each character is transmitted or 
received. If the device does not
-                                  support parity, the value is the default 
parity value.
-  @param  DataBits                The number of data bits in each character
-  @param  StopBits                If applicable, the EFI_STOP_BITS_TYPE number 
of stop bits per character.
-                                  If the device does not support stop bits, 
the value is the default stop
-                                  bit value.
-
-  @retval EFI_SUCCESS             All attributes were set correctly on the 
serial device.
-  @retval EFI_INVALID_PARAMETERS  One or more of the attributes has an 
unsupported value.
-
-**/
-RETURN_STATUS
-EFIAPI
-SerialPortSetAttributes (
-  IN OUT UINT64              *BaudRate,
-  IN OUT UINT32              *ReceiveFifoDepth,
-  IN OUT UINT32              *Timeout,
-  IN OUT EFI_PARITY_TYPE     *Parity,
-  IN OUT UINT8               *DataBits,
-  IN OUT EFI_STOP_BITS_TYPE  *StopBits
-  )
-{
-  return PL011UartInitializePort (
-        (UINTN)PcdGet64 (PcdSerialRegisterBase),
-        BaudRate,
-        ReceiveFifoDepth,
-        Parity,
-        DataBits,
-        StopBits);
-}
-
-/**
-
-  Assert or deassert the control signals on a serial port.
-  The following control signals are set according their bit settings :
-  . Request to Send
-  . Data Terminal Ready
-
-  @param[in]  Control  The following bits are taken into account :
-                       . EFI_SERIAL_REQUEST_TO_SEND : assert/deassert the
-                         "Request To Send" control signal if this bit is
-                         equal to one/zero.
-                       . EFI_SERIAL_DATA_TERMINAL_READY : assert/deassert
-                         the "Data Terminal Ready" control signal if this
-                         bit is equal to one/zero.
-                       . EFI_SERIAL_HARDWARE_LOOPBACK_ENABLE : enable/disable
-                         the hardware loopback if this bit is equal to
-                         one/zero.
-                       . EFI_SERIAL_SOFTWARE_LOOPBACK_ENABLE : not supported.
-                       . EFI_SERIAL_HARDWARE_FLOW_CONTROL_ENABLE : enable/
-                         disable the hardware flow control based on CTS (Clear
-                         To Send) and RTS (Ready To Send) control signals.
-
-  @retval  RETURN_SUCCESS      The new control bits were set on the serial 
device.
-  @retval  RETURN_UNSUPPORTED  The serial device does not support this 
operation.
-
-**/
-RETURN_STATUS
-EFIAPI
-SerialPortSetControl (
-  IN UINT32  Control
-  )
-{
-  return PL011UartSetControl ((UINTN)PcdGet64 (PcdSerialRegisterBase), 
Control);
-}
-
-/**
-
-  Retrieve the status of the control bits on a serial device.
-
-  @param[out]  Control  Status of the control bits on a serial device :
-
-                        . EFI_SERIAL_DATA_CLEAR_TO_SEND, 
EFI_SERIAL_DATA_SET_READY,
-                          EFI_SERIAL_RING_INDICATE, EFI_SERIAL_CARRIER_DETECT,
-                          EFI_SERIAL_REQUEST_TO_SEND, 
EFI_SERIAL_DATA_TERMINAL_READY
-                          are all related to the DTE (Data Terminal Equipment) 
and
-                          DCE (Data Communication Equipment) modes of 
operation of
-                          the serial device.
-                        . EFI_SERIAL_INPUT_BUFFER_EMPTY : equal to one if the 
receive
-                          buffer is empty, 0 otherwise.
-                        . EFI_SERIAL_OUTPUT_BUFFER_EMPTY : equal to one if the 
transmit
-                          buffer is empty, 0 otherwise.
-                        . EFI_SERIAL_HARDWARE_LOOPBACK_ENABLE : equal to one 
if the
-                          hardware loopback is enabled (the ouput feeds the 
receive
-                          buffer), 0 otherwise.
-                        . EFI_SERIAL_SOFTWARE_LOOPBACK_ENABLE : equal to one 
if a
-                          loopback is accomplished by software, 0 otherwise.
-                        . EFI_SERIAL_HARDWARE_FLOW_CONTROL_ENABLE : equal to 
one if the
-                          hardware flow control based on CTS (Clear To Send) 
and RTS
-                          (Ready To Send) control signals is enabled, 0 
otherwise.
-
-  @retval RETURN_SUCCESS  The control bits were read from the serial device.
-
-**/
-RETURN_STATUS
-EFIAPI
-SerialPortGetControl (
-  OUT UINT32  *Control
-  )
-{
-  return PL011UartGetControl ((UINTN)PcdGet64 (PcdSerialRegisterBase), 
Control);
-}

Deleted: 
branches/UDK2015/ArmPlatformPkg/Library/PL011SerialPortLib/PL011SerialPortExtLib.inf
===================================================================
--- 
branches/UDK2015/ArmPlatformPkg/Library/PL011SerialPortLib/PL011SerialPortExtLib.inf
        2015-11-30 03:19:26 UTC (rev 19020)
+++ 
branches/UDK2015/ArmPlatformPkg/Library/PL011SerialPortLib/PL011SerialPortExtLib.inf
        2015-11-30 03:20:15 UTC (rev 19021)
@@ -1,43 +0,0 @@
-#/** @file
-#
-#  Component description file for PL011SerialPortLib module
-#
-#  Copyright (c) 2011-2012, ARM Ltd. All rights reserved.<BR>
-#
-#  This program and the accompanying materials
-#  are licensed and made available under the terms and conditions of the BSD 
License
-#  which accompanies this distribution.  The full text of the license may be 
found at
-#  http://opensource.org/licenses/bsd-license.php
-#
-#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
-#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR 
IMPLIED.
-#
-#**/
-
-[Defines]
-  INF_VERSION                    = 0x00010005
-  BASE_NAME                      = PL011SerialPortExtLib
-  FILE_GUID                      = 2be281f1-c506-4558-bd98-d6930e6de9d6
-  MODULE_TYPE                    = BASE
-  VERSION_STRING                 = 1.0
-  LIBRARY_CLASS                  = SerialPortExtLib
-
-[Sources.common]
-  PL011SerialPortExtLib.c
-
-[LibraryClasses]
-  PL011UartLib
-  PcdLib
-
-[Packages]
-  EmbeddedPkg/EmbeddedPkg.dec
-  MdePkg/MdePkg.dec
-  MdeModulePkg/MdeModulePkg.dec
-  ArmPlatformPkg/ArmPlatformPkg.dec
-
-[Pcd]
-  gEfiMdeModulePkgTokenSpaceGuid.PcdSerialRegisterBase
-  gEfiMdePkgTokenSpaceGuid.PcdUartDefaultBaudRate
-  gEfiMdePkgTokenSpaceGuid.PcdUartDefaultDataBits
-  gEfiMdePkgTokenSpaceGuid.PcdUartDefaultParity
-  gEfiMdePkgTokenSpaceGuid.PcdUartDefaultStopBits

Modified: 
branches/UDK2015/ArmPlatformPkg/Library/PL011SerialPortLib/PL011SerialPortLib.c
===================================================================
--- 
branches/UDK2015/ArmPlatformPkg/Library/PL011SerialPortLib/PL011SerialPortLib.c 
    2015-11-30 03:19:26 UTC (rev 19020)
+++ 
branches/UDK2015/ArmPlatformPkg/Library/PL011SerialPortLib/PL011SerialPortLib.c 
    2015-11-30 03:20:15 UTC (rev 19021)
@@ -2,7 +2,8 @@
   Serial I/O Port library functions with no library constructor/destructor
 
   Copyright (c) 2008 - 2010, Apple Inc. All rights reserved.<BR>
-  Copyright (c) 2012 - 2013, ARM Ltd. All rights reserved.<BR>
+  Copyright (c) 2012 - 2014, ARM Ltd. All rights reserved.<BR>
+  Copyright (c) 2015, Intel Corporation. All rights reserved.<BR>
 
   This program and the accompanying materials
   are licensed and made available under the terms and conditions of the BSD 
License
@@ -19,7 +20,6 @@
 #include <Library/IoLib.h>
 #include <Library/PcdLib.h>
 #include <Library/SerialPortLib.h>
-#include <Library/SerialPortExtLib.h>
 
 #include <Drivers/PL011Uart.h>
 
@@ -110,4 +110,117 @@
 {
   return PL011UartPoll ((UINTN)PcdGet64 (PcdSerialRegisterBase));
 }
+/**
+  Set new attributes to PL011.
 
+  @param  BaudRate                The baud rate of the serial device. If the 
baud rate is not supported,
+                                  the speed will be reduced down to the 
nearest supported one and the
+                                  variable's value will be updated accordingly.
+  @param  ReceiveFifoDepth        The number of characters the device will 
buffer on input. If the specified
+                                  value is not supported, the variable's value 
will be reduced down to the
+                                  nearest supported one.
+  @param  Timeout                 If applicable, the number of microseconds 
the device will wait
+                                  before timing out a Read or a Write 
operation.
+  @param  Parity                  If applicable, this is the EFI_PARITY_TYPE 
that is computed or checked
+                                  as each character is transmitted or 
received. If the device does not
+                                  support parity, the value is the default 
parity value.
+  @param  DataBits                The number of data bits in each character
+  @param  StopBits                If applicable, the EFI_STOP_BITS_TYPE number 
of stop bits per character.
+                                  If the device does not support stop bits, 
the value is the default stop
+                                  bit value.
+
+  @retval EFI_SUCCESS             All attributes were set correctly on the 
serial device.
+  @retval EFI_INVALID_PARAMETERS  One or more of the attributes has an 
unsupported value.
+
+**/
+RETURN_STATUS
+EFIAPI
+SerialPortSetAttributes (
+  IN OUT UINT64              *BaudRate,
+  IN OUT UINT32              *ReceiveFifoDepth,
+  IN OUT UINT32              *Timeout,
+  IN OUT EFI_PARITY_TYPE     *Parity,
+  IN OUT UINT8               *DataBits,
+  IN OUT EFI_STOP_BITS_TYPE  *StopBits
+  )
+{
+  return PL011UartInitializePort (
+        (UINTN)PcdGet64 (PcdSerialRegisterBase),
+        BaudRate,
+        ReceiveFifoDepth,
+        Parity,
+        DataBits,
+        StopBits);
+}
+
+/**
+
+  Assert or deassert the control signals on a serial port.
+  The following control signals are set according their bit settings :
+  . Request to Send
+  . Data Terminal Ready
+
+  @param[in]  Control  The following bits are taken into account :
+                       . EFI_SERIAL_REQUEST_TO_SEND : assert/deassert the
+                         "Request To Send" control signal if this bit is
+                         equal to one/zero.
+                       . EFI_SERIAL_DATA_TERMINAL_READY : assert/deassert
+                         the "Data Terminal Ready" control signal if this
+                         bit is equal to one/zero.
+                       . EFI_SERIAL_HARDWARE_LOOPBACK_ENABLE : enable/disable
+                         the hardware loopback if this bit is equal to
+                         one/zero.
+                       . EFI_SERIAL_SOFTWARE_LOOPBACK_ENABLE : not supported.
+                       . EFI_SERIAL_HARDWARE_FLOW_CONTROL_ENABLE : enable/
+                         disable the hardware flow control based on CTS (Clear
+                         To Send) and RTS (Ready To Send) control signals.
+
+  @retval  RETURN_SUCCESS      The new control bits were set on the serial 
device.
+  @retval  RETURN_UNSUPPORTED  The serial device does not support this 
operation.
+
+**/
+RETURN_STATUS
+EFIAPI
+SerialPortSetControl (
+  IN UINT32  Control
+  )
+{
+  return PL011UartSetControl ((UINTN)PcdGet64 (PcdSerialRegisterBase), 
Control);
+}
+
+/**
+
+  Retrieve the status of the control bits on a serial device.
+
+  @param[out]  Control  Status of the control bits on a serial device :
+
+                        . EFI_SERIAL_DATA_CLEAR_TO_SEND, 
EFI_SERIAL_DATA_SET_READY,
+                          EFI_SERIAL_RING_INDICATE, EFI_SERIAL_CARRIER_DETECT,
+                          EFI_SERIAL_REQUEST_TO_SEND, 
EFI_SERIAL_DATA_TERMINAL_READY
+                          are all related to the DTE (Data Terminal Equipment) 
and
+                          DCE (Data Communication Equipment) modes of 
operation of
+                          the serial device.
+                        . EFI_SERIAL_INPUT_BUFFER_EMPTY : equal to one if the 
receive
+                          buffer is empty, 0 otherwise.
+                        . EFI_SERIAL_OUTPUT_BUFFER_EMPTY : equal to one if the 
transmit
+                          buffer is empty, 0 otherwise.
+                        . EFI_SERIAL_HARDWARE_LOOPBACK_ENABLE : equal to one 
if the
+                          hardware loopback is enabled (the output feeds the 
receive
+                          buffer), 0 otherwise.
+                        . EFI_SERIAL_SOFTWARE_LOOPBACK_ENABLE : equal to one 
if a
+                          loopback is accomplished by software, 0 otherwise.
+                        . EFI_SERIAL_HARDWARE_FLOW_CONTROL_ENABLE : equal to 
one if the
+                          hardware flow control based on CTS (Clear To Send) 
and RTS
+                          (Ready To Send) control signals is enabled, 0 
otherwise.
+
+  @retval RETURN_SUCCESS  The control bits were read from the serial device.
+
+**/
+RETURN_STATUS
+EFIAPI
+SerialPortGetControl (
+  OUT UINT32  *Control
+  )
+{
+  return PL011UartGetControl ((UINTN)PcdGet64 (PcdSerialRegisterBase), 
Control);
+}


------------------------------------------------------------------------------
Go from Idea to Many App Stores Faster with Intel(R) XDK
Give your users amazing mobile app experiences with Intel(R) XDK.
Use one codebase in this all-in-one HTML5 development environment.
Design, debug & build mobile apps & 2D/3D high-impact games for multiple OSs.
http://pubads.g.doubleclick.net/gampad/clk?id=254741551&iu=/4140
_______________________________________________
edk2-commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/edk2-commits

Reply via email to