On 01/15/16 16:42, Ard Biesheuvel wrote: > SerialDxe was migrated to MdeModulePkg from EmbeddedPkg, and all > users of the latter were moved to the former. However, the new > version is not quite identical to the original, in ways that break > ARM platforms that use the PL011 driver. > > In SerialReset(), the serial port is reset to its default values, > but the defaults used by the new version for ReceiveFifoDepth and > Timeout deviate from the original values. So put them back. > > Contributed-under: TianoCore Contribution Agreement 1.0 > Signed-off-by: Ard Biesheuvel <[email protected]> > --- > MdeModulePkg/Universal/SerialDxe/SerialIo.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/MdeModulePkg/Universal/SerialDxe/SerialIo.c > b/MdeModulePkg/Universal/SerialDxe/SerialIo.c > index de928d1719e9..9e9db28ce5cc 100644 > --- a/MdeModulePkg/Universal/SerialDxe/SerialIo.c > +++ b/MdeModulePkg/Universal/SerialDxe/SerialIo.c > @@ -233,8 +233,8 @@ SerialReset ( > // > // Set the Serial I/O mode > // > - This->Mode->ReceiveFifoDepth = 1; > - This->Mode->Timeout = 0; > + This->Mode->ReceiveFifoDepth = 0; > + This->Mode->Timeout = 1000000; > This->Mode->BaudRate = PcdGet64 (PcdUartDefaultBaudRate); > This->Mode->DataBits = (UINT32) PcdGet8 (PcdUartDefaultDataBits); > This->Mode->Parity = (UINT32) PcdGet8 (PcdUartDefaultParity); >
Great; we seem to agree on what exactly triggered / exposed this issue. Alas :), I tend to disagree with this patch, as a whole. The Timeout change is good, but the ReceiveFifoDepth change would diverge from the UEFI spec. SerialDxe does need a fix: Timeout has to be set to 1 million both in the Reset() protocol member, and in the mSerialIoMode global variable. However, the ReceiveFifoDepth issue has to be fixed in the *client* of the serial IO protocol; that is, TerminalDxe. Thanks Laszlo _______________________________________________ edk2-devel mailing list [email protected] https://lists.01.org/mailman/listinfo/edk2-devel

