mirror of https://github.com/ipxe/ipxe.git
Allow serial port options to be specified in a relatively friendly format.
parent
6ca5e85a3b
commit
64e1df4af6
|
@ -28,7 +28,7 @@
|
||||||
#if ! COMPRESERVE
|
#if ! COMPRESERVE
|
||||||
#define COMSPEED 9600 /* Baud rate */
|
#define COMSPEED 9600 /* Baud rate */
|
||||||
#define COMDATA 8 /* Data bits */
|
#define COMDATA 8 /* Data bits */
|
||||||
#define COMPARITY N /* Parity */
|
#define COMPARITY 0 /* Parity: 0=None, 1=Odd, 2=Even */
|
||||||
#define COMSTOP 1 /* Stop bits */
|
#define COMSTOP 1 /* Stop bits */
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
|
@ -16,22 +16,35 @@
|
||||||
#include "init.h"
|
#include "init.h"
|
||||||
#include "io.h"
|
#include "io.h"
|
||||||
#include "timer.h"
|
#include "timer.h"
|
||||||
|
#include "config/serial.h"
|
||||||
|
|
||||||
/* Set default values if none specified */
|
/* Set default values if none specified */
|
||||||
|
|
||||||
#ifndef COMCONSOLE
|
#ifndef COMCONSOLE
|
||||||
#define COMCONSOLE ( 0x3f8 )
|
#define COMCONSOLE 0x3f8
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef CONSPEED
|
#ifndef COMSPEED
|
||||||
#define CONSPEED ( 9600 )
|
#define COMSPEED 9600
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef COMDATA
|
||||||
|
#define COMDATA 8
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef COMPARITY
|
||||||
|
#define COMPARITY N
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef COMSTOP
|
||||||
|
#define COMSTOP 1
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#undef UART_BASE
|
#undef UART_BASE
|
||||||
#define UART_BASE COMCONSOLE
|
#define UART_BASE ( COMCONSOLE )
|
||||||
|
|
||||||
#undef UART_BAUD
|
#undef UART_BAUD
|
||||||
#define UART_BAUD CONSPEED
|
#define UART_BAUD ( COMSPEED )
|
||||||
|
|
||||||
#if ((115200%UART_BAUD) != 0)
|
#if ((115200%UART_BAUD) != 0)
|
||||||
#error Bad ttys0 baud rate
|
#error Bad ttys0 baud rate
|
||||||
|
@ -40,12 +53,9 @@
|
||||||
#define COMBRD (115200/UART_BAUD)
|
#define COMBRD (115200/UART_BAUD)
|
||||||
|
|
||||||
/* Line Control Settings */
|
/* Line Control Settings */
|
||||||
#ifndef COMPARM
|
#define UART_LCS ( ( ( (COMDATA) - 5 ) << 0 ) | \
|
||||||
/* Set 8bit, 1 stop bit, no parity */
|
( ( (COMPARITY) ) << 3 ) | \
|
||||||
#define COMPARM 0x03
|
( ( (COMSTOP) - 1 ) << 2 ) )
|
||||||
#endif
|
|
||||||
|
|
||||||
#define UART_LCS COMPARM
|
|
||||||
|
|
||||||
/* Data */
|
/* Data */
|
||||||
#define UART_RBR 0x00
|
#define UART_RBR 0x00
|
||||||
|
@ -133,7 +143,7 @@ static int serial_ischar ( void ) {
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* int serial_init(void);
|
* int serial_init(void);
|
||||||
* Initialize port UART_BASE to speed CONSPEED, line settings 8N1.
|
* Initialize port UART_BASE to speed COMSPEED, line settings 8N1.
|
||||||
*/
|
*/
|
||||||
static void serial_init ( void ) {
|
static void serial_init ( void ) {
|
||||||
int status;
|
int status;
|
||||||
|
@ -150,7 +160,7 @@ static void serial_init ( void ) {
|
||||||
uart_writeb(lcs, UART_BASE + UART_LCR);
|
uart_writeb(lcs, UART_BASE + UART_LCR);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* Set Baud Rate Divisor to CONSPEED, and test to see if the
|
/* Set Baud Rate Divisor to COMSPEED, and test to see if the
|
||||||
* serial port appears to be present.
|
* serial port appears to be present.
|
||||||
*/
|
*/
|
||||||
uart_writeb(0x80 | lcs, UART_BASE + UART_LCR);
|
uart_writeb(0x80 | lcs, UART_BASE + UART_LCR);
|
||||||
|
|
Loading…
Reference in New Issue