EfiResetSystemLib|ArmPlatformPkg/ArmRealViewEbPkg/Library/ResetSystemLib/ResetSystemLib.inf\r
RealTimeClockLib|ArmPlatformPkg/Library/PL031RealTimeClockLib/PL031RealTimeClockLib.inf\r
SerialPortLib|ArmPlatformPkg/Library/PL011SerialPortLib/PL011SerialPortLib.inf\r
+ SerialPortExtLib|ArmPlatformPkg/Library/PL011SerialPortLib/PL011SerialPortExtLib.inf\r
TimerLib|ArmPlatformPkg/Library/SP804TimerLib/SP804TimerLib.inf \r
# ARM PL011 UART Driver\r
PL011UartLib|ArmPlatformPkg/Drivers/PL011Uart/PL011Uart.inf\r
# 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
--- /dev/null
+/** @file\r
+ Serial I/O Port library functions with no library constructor/destructor\r
+\r
+ Copyright (c) 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
+#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 UINT64 BaudRate,\r
+ IN UINT32 ReceiveFifoDepth,\r
+ IN UINT32 Timeout,\r
+ IN EFI_PARITY_TYPE Parity,\r
+ IN UINT8 DataBits,\r
+ IN 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
+ Set the serial device control bits.\r
+\r
+ @param Control Control bits which are to be set on the serial device.\r
+\r
+ @retval EFI_SUCCESS The new control bits were set on the serial device.\r
+ @retval EFI_UNSUPPORTED The serial device does not support this operation.\r
+ @retval EFI_DEVICE_ERROR The serial device is not functioning correctly.\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
+ Get the serial device control bits.\r
+\r
+ @param Control Control signals read from the serial device.\r
+\r
+ @retval EFI_SUCCESS The control bits were read from the serial device.\r
+ @retval EFI_DEVICE_ERROR The serial device is not functioning correctly.\r
+\r
+**/\r
+RETURN_STATUS\r
+EFIAPI\r
+SerialPortGetControl (\r
+ OUT UINT32 *Control\r
+ )\r
+{\r
+ return PL011UartGetControl ((UINTN)PcdGet64 (PcdSerialRegisterBase), Control);\r
+}\r
+\r
--- /dev/null
+#/** @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
return PL011UartPoll ((UINTN)PcdGet64 (PcdSerialRegisterBase));\r
}\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 computer 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 UINT64 BaudRate,\r
- IN UINT32 ReceiveFifoDepth,\r
- IN UINT32 Timeout,\r
- IN EFI_PARITY_TYPE Parity,\r
- IN UINT8 DataBits,\r
- IN 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
- Set the serial device control bits.\r
-\r
- @param Control Control bits which are to be set on the serial device.\r
-\r
- @retval EFI_SUCCESS The new control bits were set on the serial device.\r
- @retval EFI_UNSUPPORTED The serial device does not support this operation.\r
- @retval EFI_DEVICE_ERROR The serial device is not functioning correctly.\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
- Get the serial device control bits.\r
-\r
- @param Control Control signals read from the serial device.\r
-\r
- @retval EFI_SUCCESS The control bits were read from the serial device.\r
- @retval EFI_DEVICE_ERROR The serial device is not functioning correctly.\r
-\r
-**/\r
-RETURN_STATUS\r
-EFIAPI\r
-SerialPortGetControl (\r
- OUT UINT32 *Control\r
- )\r
-{\r
- return PL011UartGetControl((UINTN)PcdGet64 (PcdSerialRegisterBase), Control);\r
-}\r
PrePiLib|EmbeddedPkg/Library/PrePiLib/PrePiLib.inf\r
\r
SerialPortLib|Omap35xxPkg/Library/SerialPortLib/SerialPortLib.inf\r
+ SerialPortExtLib|EmbeddedPkg/Library/TemplateSerialPortExtLib/TemplateSerialPortExtLib.inf \r
SemihostLib|ArmPkg/Library/SemihostLib/SemihostLib.inf\r
\r
RealTimeClockLib|Omap35xxPkg/Library/RealTimeClockLib/RealTimeClockLib.inf\r
#\r
#\r
# Copyright (c) 2007, Intel Corporation. All rights reserved.<BR>\r
+# Copyright (c) 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
PrePiLib|EmbeddedPkg/Library/PrePiLib/PrePiLib.inf\r
\r
SerialPortLib|EmbeddedPkg/Library/TemplateSerialPortLib/TemplateSerialPortLib.inf\r
+ SerialPortExtLib|EmbeddedPkg/Library/TemplateSerialPortExtLib/TemplateSerialPortExtLib.inf\r
RealTimeClockLib|EmbeddedPkg/Library/TemplateRealTimeClockLib/TemplateRealTimeClockLib.inf\r
EfiResetSystemLib|EmbeddedPkg/Library/TemplateResetSystemLib/TemplateResetSystemLib.inf\r
GdbSerialLib|EmbeddedPkg/Library/GdbSerialLib/GdbSerialLib.inf\r
--- /dev/null
+/** @file\r
+ Extended Serial I/O Port library functions\r
+\r
+ Copyright (c) 2012, ARM Ltd. All rights reserved.\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/SerialPortLib.h>\r
+#include <Library/SerialPortExtLib.h>\r
+\r
+/**\r
+ Set the serial device control bits.\r
+\r
+ @return Always return RETURN_UNSUPPORTED.\r
+\r
+**/\r
+RETURN_STATUS\r
+EFIAPI\r
+SerialPortSetControl (\r
+ IN UINT32 Control\r
+ )\r
+{\r
+ return RETURN_UNSUPPORTED;\r
+}\r
+\r
+/**\r
+ Get the serial device control bits.\r
+\r
+ @param Control Control signals read from the serial device.\r
+\r
+ @retval EFI_SUCCESS The control bits were read from the serial device.\r
+ @retval EFI_DEVICE_ERROR The serial device is not functioning correctly.\r
+\r
+**/\r
+RETURN_STATUS\r
+EFIAPI\r
+SerialPortGetControl (\r
+ OUT UINT32 *Control\r
+ )\r
+{\r
+ if (SerialPortPoll ()) {\r
+ // If a character is pending don't set EFI_SERIAL_INPUT_BUFFER_EMPTY\r
+ *Control = EFI_SERIAL_OUTPUT_BUFFER_EMPTY;\r
+ } else {\r
+ *Control = EFI_SERIAL_INPUT_BUFFER_EMPTY | EFI_SERIAL_OUTPUT_BUFFER_EMPTY;\r
+ }\r
+ return EFI_SUCCESS;\r
+}\r
+\r
+/**\r
+ Set the serial device attributes.\r
+\r
+ @return Always return RETURN_UNSUPPORTED.\r
+\r
+**/\r
+RETURN_STATUS\r
+EFIAPI\r
+SerialPortSetAttributes (\r
+ IN UINT64 BaudRate,\r
+ IN UINT32 ReceiveFifoDepth,\r
+ IN UINT32 Timeout,\r
+ IN EFI_PARITY_TYPE Parity,\r
+ IN UINT8 DataBits,\r
+ IN EFI_STOP_BITS_TYPE StopBits\r
+ )\r
+{\r
+ return RETURN_UNSUPPORTED;\r
+}\r
+\r
--- /dev/null
+#/** @file\r
+# Template for Extended Serial Port Library for UEFI drivers\r
+#\r
+# Copyright (c) 2006, Intel Corporation. All rights reserved.<BR>\r
+# Copyright (c) 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
+# 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
+\r
+[Defines]\r
+ INF_VERSION = 0x00010005\r
+ BASE_NAME = TemplateSerialPortExtLib\r
+ FILE_GUID = 231fe752-40ac-40b0-8d23-4e341309b964\r
+ MODULE_TYPE = BASE\r
+ VERSION_STRING = 1.0\r
+ LIBRARY_CLASS = SerialPortExtLib\r
+\r
+\r
+#\r
+# VALID_ARCHITECTURES = ARM IA32 X64 IPF EBC\r
+#\r
+\r
+[Sources.common]\r
+ TemplateSerialPortExtLib.c\r
+\r
+[Packages]\r
+ MdePkg/MdePkg.dec\r
+ EmbeddedPkg/EmbeddedPkg.dec\r
+\r
\r
\r
#include <Library/SerialPortLib.h>\r
-#include <Library/SerialPortExtLib.h>\r
\r
/**\r
\r
return RETURN_UNSUPPORTED;\r
}\r
\r
-/**\r
- Set the serial device control bits.\r
-\r
- @return Always return EFI_UNSUPPORTED.\r
-\r
-**/\r
-RETURN_STATUS\r
-EFIAPI\r
-SerialPortSetControl (\r
- IN UINT32 Control\r
- )\r
-{\r
- return RETURN_UNSUPPORTED;\r
-}\r
-\r
-/**\r
- Get the serial device control bits.\r
-\r
- @param Control Control signals read from the serial device.\r
-\r
- @retval EFI_SUCCESS The control bits were read from the serial device.\r
- @retval EFI_DEVICE_ERROR The serial device is not functioning correctly.\r
-\r
-**/\r
-RETURN_STATUS\r
-EFIAPI\r
-SerialPortGetControl (\r
- OUT UINT32 *Control\r
- )\r
-{\r
- if (SerialPortPoll ()) {\r
- // If a character is pending don't set EFI_SERIAL_INPUT_BUFFER_EMPTY\r
- *Control = EFI_SERIAL_OUTPUT_BUFFER_EMPTY;\r
- } else {\r
- *Control = EFI_SERIAL_INPUT_BUFFER_EMPTY | EFI_SERIAL_OUTPUT_BUFFER_EMPTY;\r
- }\r
- return EFI_SUCCESS;\r
-}\r
-\r
-/**\r
- Set the serial device attributes.\r
-\r
- @return Always return EFI_UNSUPPORTED.\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 RETURN_UNSUPPORTED;\r
-}\r
-\r
/**\r
Write data to serial device.\r
\r
#/** @file\r
-# Memory Status Code Library for UEFI drivers\r
+# Template for Serial Port Library for UEFI drivers\r
#\r
-# Lib to provide memory journal status code reporting Routines\r
# Copyright (c) 2006, Intel Corporation. All rights reserved.<BR>\r
+# Copyright (c) 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
INF_VERSION = 0x00010005\r
BASE_NAME = TemplateSerialPortLib\r
FILE_GUID = A9133571-AD4B-4457-94A8-A9CC2CE7574F\r
- MODULE_TYPE = PEIM\r
+ MODULE_TYPE = BASE\r
VERSION_STRING = 1.0\r
LIBRARY_CLASS = SerialPortLib\r
\r
\r
#\r
-# VALID_ARCHITECTURES = IA32 X64 IPF EBC\r
+# VALID_ARCHITECTURES = ARM IA32 X64 IPF EBC\r
#\r
\r
[Sources.common]\r
DebugLib\r
UefiDriverEntryPoint\r
SerialPortLib\r
+ SerialPortExtLib\r
\r
[Protocols]\r
gEfiSerialIoProtocolGuid \r
#include <Base.h>\r
#include <Library/DebugLib.h>\r
#include <Library/SerialPortLib.h>\r
-#include <Library/SerialPortExtLib.h>\r
#include <Library/PcdLib.h>\r
#include <Library/IoLib.h>\r
#include <Library/OmapLib.h>\r
}\r
}\r
\r
-/**\r
- Set the serial device control bits.\r
-\r
- @return Always return EFI_UNSUPPORTED.\r
-\r
-**/\r
-RETURN_STATUS\r
-EFIAPI\r
-SerialPortSetControl (\r
- IN UINT32 Control\r
- )\r
-{\r
- return RETURN_SUCCESS;\r
-}\r
-\r
-/**\r
- Get the serial device control bits.\r
-\r
- @param Control Control signals read from the serial device.\r
-\r
- @retval EFI_SUCCESS The control bits were read from the serial device.\r
- @retval EFI_DEVICE_ERROR The serial device is not functioning correctly.\r
-\r
-**/\r
-RETURN_STATUS\r
-EFIAPI\r
-SerialPortGetControl (\r
- OUT UINT32 *Control\r
- )\r
-{\r
- return RETURN_SUCCESS;\r
-}\r
-\r
-\r
-/**\r
- Set the serial device attributes.\r
-\r
- @return Always return EFI_UNSUPPORTED.\r
-\r
-**/\r
-RETURN_STATUS\r
-EFIAPI\r
-SerialPortSetAttributes (\r
- IN UINT64 BaudRate,\r
- IN UINT32 ReceiveFifoDepth,\r
- IN UINT32 Timeout,\r
- IN EFI_PARITY_TYPE Parity,\r
- IN UINT8 DataBits,\r
- IN EFI_STOP_BITS_TYPE StopBits\r
- )\r
-{\r
- return RETURN_SUCCESS;\r
-}\r
-\r
INF_VERSION = 0x00010005\r
BASE_NAME = BeagleBoardSerialPortLib\r
FILE_GUID = 97546cbd-c0ff-4c48-ab0b-e4f58862acd3\r
- MODULE_TYPE = PEIM\r
+ MODULE_TYPE = BASE\r
VERSION_STRING = 1.0\r
LIBRARY_CLASS = SerialPortLib\r
\r
\r
#\r
-# VALID_ARCHITECTURES = IA32 X64 IPF EBC\r
+# VALID_ARCHITECTURES = ARM IA32 X64 IPF EBC\r
#\r
\r
[Sources.common]\r