* grub-core/term/serial.c: Add option for enabling/disabling

RTS/CTS flow control.
This commit is contained in:
Vladimir Serbinenko 2013-11-08 18:20:20 +01:00
parent 2dc1eb6cbf
commit 9f8acdaa5d
8 changed files with 48 additions and 17 deletions

View file

@ -107,20 +107,22 @@ do_real_config (struct grub_serial_port *port)
| stop_bits[port->config.stop_bits]);
grub_outb (status, port->port + UART_LCR);
/* On Loongson machines serial port has only 3 wires. */
#ifndef GRUB_MACHINE_MIPS_LOONGSON
/* Enable the FIFO. */
grub_outb (UART_ENABLE_FIFO_TRIGGER1, port->port + UART_FCR);
if (port->config.rtscts)
{
/* Enable the FIFO. */
grub_outb (UART_ENABLE_FIFO_TRIGGER1, port->port + UART_FCR);
/* Turn on DTR and RTS. */
grub_outb (UART_ENABLE_DTRRTS, port->port + UART_MCR);
#else
/* Enable the FIFO. */
grub_outb (UART_ENABLE_FIFO_TRIGGER14, port->port + UART_FCR);
/* Turn on DTR and RTS. */
grub_outb (UART_ENABLE_DTRRTS, port->port + UART_MCR);
}
else
{
/* Enable the FIFO. */
grub_outb (UART_ENABLE_FIFO_TRIGGER14, port->port + UART_FCR);
/* Turn on DTR, RTS, and OUT2. */
grub_outb (UART_ENABLE_DTRRTS | UART_ENABLE_OUT2, port->port + UART_MCR);
#endif
/* Turn on DTR, RTS, and OUT2. */
grub_outb (UART_ENABLE_DTRRTS | UART_ENABLE_OUT2, port->port + UART_MCR);
}
/* Drain the input buffer. */
endtime = grub_get_time_ms () + 1000;