On 11/17/15 10:35, Star Zeng wrote: > It is also to add GetControl/SetControl/SetAttributes implementation > for EarlyFdtPL011SerialPortLib and FdtPL011SerialPortLib. > > Cc: Michael D Kinney <michael.d.kin...@intel.com> > Cc: Liming Gao <liming....@intel.com> > Cc: Laszlo Ersek <ler...@redhat.com> > Cc: Ard Biesheuvel <ard.biesheu...@linaro.org> > Contributed-under: TianoCore Contribution Agreement 1.0 > Signed-off-by: Star Zeng <star.z...@intel.com> > --- > ArmVirtPkg/ArmVirt.dsc.inc | 1 - > ArmVirtPkg/ArmVirtQemu.dsc | 2 +- > ArmVirtPkg/ArmVirtQemu.fdf | 2 +- > ArmVirtPkg/ArmVirtXen.dsc | 3 +- > ArmVirtPkg/ArmVirtXen.fdf | 3 +- > .../EarlyFdtPL011SerialPortLib.c | 82 +++++++++++++++++- > .../FdtPL011SerialPortLib/FdtPL011SerialPortLib.c | 99 > ++++++++++++++++++++++ > 7 files changed, 186 insertions(+), 6 deletions(-)
I think that the FdtPL011SerialPortLib changes (i.e., the C file changes) should be in a separate patch. For the DSC and FDF changes only: Reviewed-by: Laszlo Ersek <ler...@redhat.com> I'll leave the review of the separate patch (with the C file changes) to Ard. Thanks Laszlo > > diff --git a/ArmVirtPkg/ArmVirt.dsc.inc b/ArmVirtPkg/ArmVirt.dsc.inc > index 8626919..b5821a8 100644 > --- a/ArmVirtPkg/ArmVirt.dsc.inc > +++ b/ArmVirtPkg/ArmVirt.dsc.inc > @@ -101,7 +101,6 @@ [LibraryClasses.common] > # ARM PL011 UART Driver > PL011UartLib|ArmPlatformPkg/Drivers/PL011Uart/PL011Uart.inf > > SerialPortLib|ArmVirtPkg/Library/FdtPL011SerialPortLib/FdtPL011SerialPortLib.inf > - > SerialPortExtLib|EmbeddedPkg/Library/SerialPortExtLibNull/SerialPortExtLibNull.inf > > # > # Uncomment (and comment out the next line) For RealView Debugger. The > Standard IO window > diff --git a/ArmVirtPkg/ArmVirtQemu.dsc b/ArmVirtPkg/ArmVirtQemu.dsc > index 995be89..32c82c7 100644 > --- a/ArmVirtPkg/ArmVirtQemu.dsc > +++ b/ArmVirtPkg/ArmVirtQemu.dsc > @@ -284,7 +284,7 @@ [Components.common] > 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 > > diff --git a/ArmVirtPkg/ArmVirtQemu.fdf b/ArmVirtPkg/ArmVirtQemu.fdf > index 89a4015..738e3db 100644 > --- a/ArmVirtPkg/ArmVirtQemu.fdf > +++ b/ArmVirtPkg/ArmVirtQemu.fdf > @@ -134,7 +134,7 @@ [FV.FvMain] > 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 > diff --git a/ArmVirtPkg/ArmVirtXen.dsc b/ArmVirtPkg/ArmVirtXen.dsc > index ac37cd2..32e0afc 100644 > --- a/ArmVirtPkg/ArmVirtXen.dsc > +++ b/ArmVirtPkg/ArmVirtXen.dsc > @@ -1,6 +1,7 @@ > # > # Copyright (c) 2011-2015, ARM Limited. All rights reserved. > # Copyright (c) 2014, Linaro 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 > @@ -198,7 +199,7 @@ [Components.common] > > MdeModulePkg/Universal/Console/ConPlatformDxe/ConPlatformDxe.inf > MdeModulePkg/Universal/Console/TerminalDxe/TerminalDxe.inf > - EmbeddedPkg/SerialDxe/SerialDxe.inf > + MdeModulePkg/Universal/SerialDxe/SerialDxe.inf > > MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseDxe.inf > > diff --git a/ArmVirtPkg/ArmVirtXen.fdf b/ArmVirtPkg/ArmVirtXen.fdf > index 97cab4b..7290147 100644 > --- a/ArmVirtPkg/ArmVirtXen.fdf > +++ b/ArmVirtPkg/ArmVirtXen.fdf > @@ -1,6 +1,7 @@ > # > # Copyright (c) 2011-2015, ARM Limited. All rights reserved. > # Copyright (c) 2014, Linaro 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 > @@ -134,7 +135,7 @@ [FV.FvMain] > # > INF MdeModulePkg/Universal/Console/ConPlatformDxe/ConPlatformDxe.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 > diff --git > a/ArmVirtPkg/Library/FdtPL011SerialPortLib/EarlyFdtPL011SerialPortLib.c > b/ArmVirtPkg/Library/FdtPL011SerialPortLib/EarlyFdtPL011SerialPortLib.c > index ba6d277..c02579a 100644 > --- a/ArmVirtPkg/Library/FdtPL011SerialPortLib/EarlyFdtPL011SerialPortLib.c > +++ b/ArmVirtPkg/Library/FdtPL011SerialPortLib/EarlyFdtPL011SerialPortLib.c > @@ -4,6 +4,7 @@ > Copyright (c) 2008 - 2010, Apple Inc. All rights reserved.<BR> > Copyright (c) 2012 - 2013, ARM Ltd. All rights reserved.<BR> > Copyright (c) 2014, Linaro 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/PcdLib.h> > #include <Library/SerialPortLib.h> > -#include <Library/SerialPortExtLib.h> > #include <libfdt.h> > > #include <Drivers/PL011Uart.h> > @@ -183,3 +183,83 @@ SerialPortPoll ( > { > return FALSE; > } > + > +/** > + Sets the control bits on a serial device. > + > + @param[in] Control Sets the bits of Control that are settable. > + > + @retval RETURN_SUCCESS The new control bits were set on the serial > device. > + @retval RETURN_UNSUPPORTED The serial device does not support this > operation. > + @retval RETURN_DEVICE_ERROR The serial device is not functioning > correctly. > + > +**/ > +RETURN_STATUS > +EFIAPI > +SerialPortSetControl ( > + IN UINT32 Control > + ) > +{ > + return RETURN_UNSUPPORTED; > +} > + > +/** > + Retrieve the status of the control bits on a serial device. > + > + @param[out] Control A pointer to return the current control > signals from the serial device. > + > + @retval RETURN_SUCCESS The control bits were read from the serial > device. > + @retval RETURN_UNSUPPORTED The serial device does not support this > operation. > + @retval RETURN_DEVICE_ERROR The serial device is not functioning > correctly. > + > +**/ > +RETURN_STATUS > +EFIAPI > +SerialPortGetControl ( > + OUT UINT32 *Control > + ) > +{ > + return RETURN_UNSUPPORTED; > +} > + > +/** > + Sets the baud rate, receive FIFO depth, transmit/receice time out, parity, > + data buts, and stop bits on a serial device. > + > + @param BaudRate The requested baud rate. A BaudRate value of 0 > will use the > + device's default interface speed. > + @param ReveiveFifoDepth The requested depth of the FIFO on the receive > side of the > + serial interface. A ReceiveFifoDepth value of 0 > will use > + the device's default FIFO depth. > + @param Timeout The requested time out for a single character in > microseconds. > + This timeout applies to both the transmit and > receive side of the > + interface. A Timeout value of 0 will use the > device's default time > + out value. > + @param Parity The type of parity to use on this serial device. > A Parity value of > + DefaultParity will use the device's default > parity value. > + @param DataBits The number of data bits to use on the serial > device. A DataBits > + vaule of 0 will use the device's default data > bit setting. > + @param StopBits The number of stop bits to use on this serial > device. A StopBits > + value of DefaultStopBits will use the device's > default number of > + stop bits. > + > + @retval RETURN_SUCCESS The new attributes were set on the > serial device. > + @retval RETURN_UNSUPPORTED The serial device does not support this > operation. > + @retval RETURN_INVALID_PARAMETER One or more of the attributes has an > unsupported value. > + @retval RETURN_DEVICE_ERROR The serial device is not functioning > correctly. > + > +**/ > +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 RETURN_UNSUPPORTED; > +} > + > diff --git a/ArmVirtPkg/Library/FdtPL011SerialPortLib/FdtPL011SerialPortLib.c > b/ArmVirtPkg/Library/FdtPL011SerialPortLib/FdtPL011SerialPortLib.c > index aced666..2d065fe 100644 > --- a/ArmVirtPkg/Library/FdtPL011SerialPortLib/FdtPL011SerialPortLib.c > +++ b/ArmVirtPkg/Library/FdtPL011SerialPortLib/FdtPL011SerialPortLib.c > @@ -5,6 +5,7 @@ > Copyright (c) 2012 - 2013, ARM Ltd. All rights reserved.<BR> > Copyright (c) 2014, Linaro Ltd. All rights reserved.<BR> > Copyright (c) 2014, Red Hat, Inc.<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 > @@ -148,3 +149,101 @@ SerialPortPoll ( > } > return FALSE; > } > + > +/** > + Sets the baud rate, receive FIFO depth, transmit/receice time out, parity, > + data buts, and stop bits on a serial device. > + > + @param BaudRate The requested baud rate. A BaudRate value of 0 > will use the > + device's default interface speed. > + @param ReveiveFifoDepth The requested depth of the FIFO on the receive > side of the > + serial interface. A ReceiveFifoDepth value of 0 > will use > + the device's default FIFO depth. > + @param Timeout The requested time out for a single character in > microseconds. > + This timeout applies to both the transmit and > receive side of the > + interface. A Timeout value of 0 will use the > device's default time > + out value. > + @param Parity The type of parity to use on this serial device. > A Parity value of > + DefaultParity will use the device's default > parity value. > + @param DataBits The number of data bits to use on the serial > device. A DataBits > + vaule of 0 will use the device's default data > bit setting. > + @param StopBits The number of stop bits to use on this serial > device. A StopBits > + value of DefaultStopBits will use the device's > default number of > + stop bits. > + > + @retval RETURN_SUCCESS The new attributes were set on the > serial device. > + @retval RETURN_UNSUPPORTED The serial device does not support this > operation. > + @retval RETURN_INVALID_PARAMETER One or more of the attributes has an > unsupported value. > + @retval RETURN_DEVICE_ERROR The serial device is not functioning > correctly. > + > +**/ > +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 > + ) > +{ > + if (mSerialBaseAddress != 0) { > + return PL011UartInitializePort ( > + mSerialBaseAddress, > + BaudRate, > + ReceiveFifoDepth, > + Parity, > + DataBits, > + StopBits); > + } else { > + return RETURN_UNSUPPORTED; > + } > +} > + > +/** > + Sets the control bits on a serial device. > + > + @param Control Sets the bits of Control that are settable. > + > + @retval RETURN_SUCCESS The new control bits were set on the serial > device. > + @retval RETURN_UNSUPPORTED The serial device does not support this > operation. > + @retval RETURN_DEVICE_ERROR The serial device is not functioning > correctly. > + > +**/ > +RETURN_STATUS > +EFIAPI > +SerialPortSetControl ( > + IN UINT32 Control > + ) > +{ > + if (mSerialBaseAddress != 0) { > + return PL011UartSetControl (mSerialBaseAddress, Control); > + } else { > + return RETURN_UNSUPPORTED; > + } > +} > + > +/** > + Retrieve the status of the control bits on a serial device. > + > + @param Control A pointer to return the current control > signals from the serial device. > + > + @retval RETURN_SUCCESS The control bits were read from the serial > device. > + @retval RETURN_UNSUPPORTED The serial device does not support this > operation. > + @retval RETURN_DEVICE_ERROR The serial device is not functioning > correctly. > + > +**/ > +RETURN_STATUS > +EFIAPI > +SerialPortGetControl ( > + OUT UINT32 *Control > + ) > +{ > + if (mSerialBaseAddress != 0) { > + return PL011UartGetControl (mSerialBaseAddress, Control); > + } else { > + return RETURN_UNSUPPORTED; > + } > +} > + > _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel