Opened 7 years ago
Last modified 7 years ago
#17326 new defect
Serial ports do not work correctly
Reported by: | apianti | Owned by: | |
---|---|---|---|
Component: | EFI | Version: | VirtualBox 5.1.30 |
Keywords: | Cc: | ||
Guest type: | all | Host type: | all |
Description
Only serial ports COM1 and COM2 work in EFI mode. Any other serial port configurations are either not detected or do not perform any requested actions. EFI_SERIAL_IO_PROTOCOL seems to not be reliable in writing to the serial port, timeout happens before the timeout could have possibly passed, set to multiple seconds and it fails instantly. Trying to solve this by writing in a loop produces incorrect results as the size written is incorrectly reported so some data gets written multiple times. Also, garbage is always written to a serial port when the machine is started, sometime during post. This can be proven by assigning COM1 or COM2 to a Raw file output. I have attached an two examples. I have tested this in Windows, Linux, and macOS, so it appears to be a core EFI issue.
Attachments (2)
Change History (5)
by , 7 years ago
Attachment: | Output.1.txt added |
---|
by , 7 years ago
Attachment: | Output.2.txt added |
---|
Another output of serial port connected to raw file output
comment:1 by , 7 years ago
It appears that the returned written size issue is not occurring anymore in VirtualBox 5.2.2 but the rest still applies.
EDIT: I was wrong about this, the timeout problem was just happening less but when it does happen the result is the same. The size is not updated when the result does not appear to be EFI_SUCCESS, and if it is updated, it's not correct. Also there appears to be times when the EFI_SERIAL_IO_PROTOCOL->Write method returns EFI_SUCCESS but writes multiples of some bytes.
comment:3 by , 7 years ago
This is a different but appears related issue. As I said you cannot use any serial port but COM1 or COM2 in EFI mode, the rest produce no EFI_SERIAL_IO_PROTOCOL or they don't work if they do. Garbage is still being written to the serial port in 5.2.2, as I attached above.
Output of serial port connected to raw file output