unsigned char serial_getc(void) { if (initial == 0) { serial_init(); initial = 1; } while((UART16550_READ(UART_LSR) & 0x1) == 0); return UART16550_READ(UART_RX); }
uint8 getDebugChar(void) { if (!remoteDebugInitialized) { remoteDebugInitialized = 1; debugInit(UART16550_BAUD_115200, UART16550_DATA_8BIT, UART16550_PARITY_NONE, UART16550_STOP_1BIT); } while ((UART16550_READ(OFS_LINE_STATUS) & 0x1) == 0); return UART16550_READ(OFS_RCV_BUFFER); }
uint8 getDebugChar(void) { if (!remoteDebugInitialized) { remoteDebugInitialized = 1; debugInit(UART16550_BAUD_115200, UART16550_DATA_8BIT, UART16550_PARITY_NONE, UART16550_STOP_1BIT); } while((UART16550_READ(UART_LSR) & 0x1) == 0); return UART16550_READ(UART_RX); }
void serial_putc(unsigned char c) { if (initial == 0) { serial_init(); initial = 1; } while ((UART16550_READ(UART_LSR)&0x40) == 0); UART16550_WRITE(UART_TX, c); return ; }
int putDebugChar(uint8 byte) { if (!remoteDebugInitialized) { remoteDebugInitialized = 1; debugInit(UART16550_BAUD_115200, UART16550_DATA_8BIT, UART16550_PARITY_NONE, UART16550_STOP_1BIT); } while ((UART16550_READ(OFS_LINE_STATUS) & 0x20) == 0); UART16550_WRITE(OFS_SEND_BUFFER, byte); return 1; }
int putDebugChar(u8 byte) { if (!remoteDebugInitialized) { remoteDebugInitialized = 1; debugInit(UART16550_BAUD_115200, UART16550_DATA_8BIT, UART16550_PARITY_NONE, UART16550_STOP_1BIT); } while ((UART16550_READ(UART_LSR) & 0x40) == 0); UART16550_WRITE(UART_TX, byte); return 1; }
void debugInit(u32 baud, u8 data, u8 parity, u8 stop) { if (UART16550_READ(UART_MOD_CNTRL) != 0x3) UART16550_WRITE(UART_MOD_CNTRL, 3); calc_clock(); /* disable interrupts */ UART16550_WRITE(UART_IER, 0); /* set up baud rate */ { u32 divisor; /* set divisor */ divisor = get_au1x00_uart_baud_base() / baud; UART16550_WRITE(UART_CLK, divisor & 0xffff); } /* set data format */ UART16550_WRITE(UART_LCR, (data | parity | stop)); }
static inline uint8 readDebugChar(int line) { return UART16550_READ(line,OFS_RCV_BUFFER); }
static uint8 testDebugChar(int line) { return (UART16550_READ(line,OFS_LINE_STATUS) & 0x1) ; }
int serial_tstc(volatile struct NS16550 *com_port) { return((UART16550_READ(UART_LSR) & LSR_DR) != 0); }
unsigned char serial_getc(volatile struct NS16550 *com_port) { while((UART16550_READ(UART_LSR) & 0x1) == 0); return UART16550_READ(UART_RX); }
void serial_putc(volatile struct NS16550 *com_port, unsigned char c) { while ((UART16550_READ(UART_LSR)&0x40) == 0); UART16550_WRITE(UART_TX, c); }
/* platform serial_putc */ static void _ath_serial_putc(char byte) { if (byte == '\n') _ath_serial_putc ('\r'); while (((UART16550_READ(OFS_LINE_STATUS)) & 0x20) == 0x0); UART16550_WRITE(OFS_SEND_BUFFER, byte); }
void Uart16550Put(uint8 byte) { while ((UART16550_READ(OFS_LINE_STATUS) &0x20) == 0); UART16550_WRITE(OFS_SEND_BUFFER, byte); }
uint8 Uart16550GetPoll() { while((UART16550_READ(OFS_LINE_STATUS) & 0x1) == 0); return UART16550_READ(OFS_RCV_BUFFER); }
static inline uint8 getDebugstate(int line) { return UART16550_READ(line,OFS_LINE_STATUS) ; }
int serial_tstc(void) { return ((UART16550_READ(UART_LSR) & LSR_DR) != 0); }
static int putDebugChar(int line,uint8 byte) { while ((UART16550_READ(line,OFS_LINE_STATUS) & 0x20) == 0); UART16550_WRITE(line,OFS_SEND_BUFFER, byte); return 1; }
static uint8 getDebugChar(int line) { while ((UART16550_READ(line,OFS_LINE_STATUS) & 0x1) == 0); return UART16550_READ(line,OFS_RCV_BUFFER); }