mirror of
https://github.com/ipxe/ipxe
synced 2026-01-31 03:30:54 +03:00
[uart] Remove ability to use frame formats other than 8n1
In the context of serial consoles, the use of any frame formats other than the standard 8 data bits, no parity, and one stop bit is so rare as to be nonexistent. Remove the almost certainly unused support for custom frame formats. Signed-off-by: Michael Brown <mcb30@ipxe.org>
This commit is contained in:
@@ -46,13 +46,6 @@ FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL );
|
||||
#define GDBSERIAL_BAUD COMSPEED
|
||||
#endif
|
||||
|
||||
/* UART line control register value */
|
||||
#ifdef COMPRESERVE
|
||||
#define GDBSERIAL_LCR 0
|
||||
#else
|
||||
#define GDBSERIAL_LCR UART_LCR_WPS ( COMDATA, COMPARITY, COMSTOP )
|
||||
#endif
|
||||
|
||||
/** GDB serial UART */
|
||||
static struct uart gdbserial_uart;
|
||||
|
||||
@@ -90,7 +83,7 @@ static int gdbserial_init ( int argc, char **argv ) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
if ( ! gdbserial_configure ( port, GDBSERIAL_BAUD, GDBSERIAL_LCR ) ) {
|
||||
if ( ! gdbserial_configure ( port, GDBSERIAL_BAUD ) ) {
|
||||
printf ( "serial: unable to configure\n" );
|
||||
return 1;
|
||||
}
|
||||
@@ -106,13 +99,13 @@ struct gdb_transport serial_gdb_transport __gdb_transport = {
|
||||
};
|
||||
|
||||
struct gdb_transport * gdbserial_configure ( unsigned int port,
|
||||
unsigned int baud, uint8_t lcr ) {
|
||||
unsigned int baud ) {
|
||||
int rc;
|
||||
|
||||
if ( ( rc = uart_select ( &gdbserial_uart, port ) ) != 0 )
|
||||
return NULL;
|
||||
|
||||
if ( ( rc = uart_init ( &gdbserial_uart, baud, lcr ) ) != 0 )
|
||||
if ( ( rc = uart_init ( &gdbserial_uart, baud ) ) != 0 )
|
||||
return NULL;
|
||||
|
||||
return &serial_gdb_transport;
|
||||
|
||||
@@ -58,13 +58,6 @@ FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL );
|
||||
#define CONSOLE_BAUD COMSPEED
|
||||
#endif
|
||||
|
||||
/* UART line control register value */
|
||||
#ifdef COMPRESERVE
|
||||
#define CONSOLE_LCR 0
|
||||
#else
|
||||
#define CONSOLE_LCR UART_LCR_WPS ( COMDATA, COMPARITY, COMSTOP )
|
||||
#endif
|
||||
|
||||
/** Serial console UART */
|
||||
struct uart serial_console;
|
||||
|
||||
@@ -149,10 +142,9 @@ static void serial_init ( void ) {
|
||||
}
|
||||
|
||||
/* Initialise UART */
|
||||
if ( ( rc = uart_init ( &serial_console, CONSOLE_BAUD,
|
||||
CONSOLE_LCR ) ) != 0 ) {
|
||||
DBG ( "Could not initialise UART %d baud %d LCR %#02x: %s\n",
|
||||
CONSOLE_PORT, CONSOLE_BAUD, CONSOLE_LCR, strerror ( rc ));
|
||||
if ( ( rc = uart_init ( &serial_console, CONSOLE_BAUD ) ) != 0 ) {
|
||||
DBG ( "Could not initialise UART %d baud %d: %s\n",
|
||||
CONSOLE_PORT, CONSOLE_BAUD, strerror ( rc ) );
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -107,10 +107,9 @@ int uart_exists ( struct uart *uart ) {
|
||||
*
|
||||
* @v uart UART
|
||||
* @v baud Baud rate, or zero to leave unchanged
|
||||
* @v lcr Line control register value, or zero to leave unchanged
|
||||
* @ret rc Return status code
|
||||
*/
|
||||
int uart_init ( struct uart *uart, unsigned int baud, uint8_t lcr ) {
|
||||
int uart_init ( struct uart *uart, unsigned int baud ) {
|
||||
uint8_t dlm;
|
||||
uint8_t dll;
|
||||
int rc;
|
||||
@@ -120,10 +119,7 @@ int uart_init ( struct uart *uart, unsigned int baud, uint8_t lcr ) {
|
||||
return rc;
|
||||
|
||||
/* Configure divisor and line control register, if applicable */
|
||||
if ( ! lcr )
|
||||
lcr = uart_read ( uart, UART_LCR );
|
||||
uart->lcr = lcr;
|
||||
uart_write ( uart, UART_LCR, ( lcr | UART_LCR_DLAB ) );
|
||||
uart_write ( uart, UART_LCR, ( UART_LCR_8N1 | UART_LCR_DLAB ) );
|
||||
if ( baud ) {
|
||||
uart->divisor = ( UART_MAX_BAUD / baud );
|
||||
dlm = ( ( uart->divisor >> 8 ) & 0xff );
|
||||
@@ -135,7 +131,7 @@ int uart_init ( struct uart *uart, unsigned int baud, uint8_t lcr ) {
|
||||
dll = uart_read ( uart, UART_DLL );
|
||||
uart->divisor = ( ( dlm << 8 ) | dll );
|
||||
}
|
||||
uart_write ( uart, UART_LCR, ( lcr & ~UART_LCR_DLAB ) );
|
||||
uart_write ( uart, UART_LCR, UART_LCR_8N1 );
|
||||
|
||||
/* Disable interrupts */
|
||||
uart_write ( uart, UART_IER, 0 );
|
||||
|
||||
Reference in New Issue
Block a user