]> git.proxmox.com Git - mirror_edk2.git/blobdiff - ArmVirtPkg/Library/FdtPL011SerialPortLib/FdtPL011SerialPortLib.c
MdeModulePkg/Include: Add IOMMU_PPI.
[mirror_edk2.git] / ArmVirtPkg / Library / FdtPL011SerialPortLib / FdtPL011SerialPortLib.c
index b73ab8f48a9df7f0924cd9a5f7bc6e0f16f3151f..05d3547fda913169ee10b120d17f648cd9ad4122 100644 (file)
@@ -81,8 +81,14 @@ FdtPL011SerialPortLibInitialize (
   StopBits = (EFI_STOP_BITS_TYPE) PcdGet8 (PcdUartDefaultStopBits);\r
 \r
   return PL011UartInitializePort (\r
-           mSerialBaseAddress, &BaudRate, &ReceiveFifoDepth,\r
-           &Parity, &DataBits, &StopBits);\r
+           mSerialBaseAddress,\r
+           FixedPcdGet32 (PL011UartClkInHz),\r
+           &BaudRate,\r
+           &ReceiveFifoDepth,\r
+           &Parity,\r
+           &DataBits,\r
+           &StopBits\r
+           );\r
 }\r
 \r
 /**\r
@@ -194,7 +200,23 @@ SerialPortSetAttributes (
   IN OUT EFI_STOP_BITS_TYPE *StopBits\r
   )\r
 {\r
-  return RETURN_UNSUPPORTED;\r
+  RETURN_STATUS Status;\r
+\r
+  if (mSerialBaseAddress == 0) {\r
+    Status = RETURN_UNSUPPORTED;\r
+  } else {\r
+    Status = PL011UartInitializePort (\r
+               mSerialBaseAddress,\r
+               FixedPcdGet32 (PL011UartClkInHz),\r
+               BaudRate,\r
+               ReceiveFifoDepth,\r
+               Parity,\r
+               DataBits,\r
+               StopBits\r
+               );\r
+  }\r
+\r
+  return Status;\r
 }\r
 \r
 /**\r
@@ -213,7 +235,15 @@ SerialPortSetControl (
   IN UINT32 Control\r
   )\r
 {\r
-  return RETURN_UNSUPPORTED;\r
+  RETURN_STATUS Status;\r
+\r
+  if (mSerialBaseAddress == 0) {\r
+    Status = RETURN_UNSUPPORTED;\r
+  } else {\r
+    Status = PL011UartSetControl (mSerialBaseAddress, Control);\r
+  }\r
+\r
+  return Status;\r
 }\r
 \r
 /**\r
@@ -232,6 +262,14 @@ SerialPortGetControl (
   OUT UINT32 *Control\r
   )\r
 {\r
-  return RETURN_UNSUPPORTED;\r
+  RETURN_STATUS Status;\r
+\r
+  if (mSerialBaseAddress == 0) {\r
+    Status = RETURN_UNSUPPORTED;\r
+  } else {\r
+    Status = PL011UartGetControl (mSerialBaseAddress, Control);\r
+  }\r
+\r
+  return Status;\r
 }\r
 \r