From c3e14019c8877f647254dde3e806ea303c6cf0ab Mon Sep 17 00:00:00 2001 From: Alex White Date: Mon, 24 Oct 2022 08:37:16 -0500 Subject: bsps/microblaze: Fix console interrupt build errors This fixes build errors seen when building with console interrupts enabled. A few places were missing bspopts.h includes, and one of the UART functions was not defined. --- bsps/microblaze/include/dev/serial/uartlite.h | 1 + bsps/microblaze/include/dev/serial/uartlite_l.h | 18 ++++++++++++++++++ bsps/microblaze/shared/dev/serial/uartlite.c | 3 ++- 3 files changed, 21 insertions(+), 1 deletion(-) (limited to 'bsps') diff --git a/bsps/microblaze/include/dev/serial/uartlite.h b/bsps/microblaze/include/dev/serial/uartlite.h index 6e288d4dc7..2fda3796b3 100644 --- a/bsps/microblaze/include/dev/serial/uartlite.h +++ b/bsps/microblaze/include/dev/serial/uartlite.h @@ -36,6 +36,7 @@ #ifndef LIBBSP_MICROBLAZE_SHARED_UARTLITE_H #define LIBBSP_MICROBLAZE_SHARED_UARTLITE_H +#include #include #include diff --git a/bsps/microblaze/include/dev/serial/uartlite_l.h b/bsps/microblaze/include/dev/serial/uartlite_l.h index 8c0598e191..834fbb5f75 100644 --- a/bsps/microblaze/include/dev/serial/uartlite_l.h +++ b/bsps/microblaze/include/dev/serial/uartlite_l.h @@ -234,6 +234,24 @@ static inline void Xil_Out32(UINTPTR Addr, u32 Value) ((XUartLite_GetStatusReg((BaseAddress)) & XUL_SR_RX_FIFO_VALID_DATA) != \ XUL_SR_RX_FIFO_VALID_DATA) +#ifdef __rtems__ +/****************************************************************************/ +/** +* +* Check to see if the transmitter is empty. +* +* @param BaseAddress is the base address of the device +* +* @return TRUE if the transmitter is empty, FALSE otherwise. +* +* @note C-style Signature: +* int XUartLite_IsTransmitEmpty(u32 BaseAddress); +* +*****************************************************************************/ +#define XUartLite_IsTransmitEmpty(BaseAddress) \ + ((XUartLite_GetStatusReg((BaseAddress)) & XUL_SR_TX_FIFO_EMPTY) == \ + XUL_SR_TX_FIFO_EMPTY) +#endif /* __rtems__ */ /****************************************************************************/ /** diff --git a/bsps/microblaze/shared/dev/serial/uartlite.c b/bsps/microblaze/shared/dev/serial/uartlite.c index 7387e22635..a5fc4fe82b 100644 --- a/bsps/microblaze/shared/dev/serial/uartlite.c +++ b/bsps/microblaze/shared/dev/serial/uartlite.c @@ -35,6 +35,7 @@ #include #include +#include #ifdef BSP_MICROBLAZE_FPGA_CONSOLE_INTERRUPTS static void microblaze_uart_interrupt( void *arg ) @@ -47,7 +48,7 @@ static void microblaze_uart_interrupt( void *arg ) rtems_termios_enqueue_raw_characters( tty, &c, 1 ); } - while ( ctx->transmitting && !XUartLite_IsTransmitEmpty( ctx ) ) { + while ( ctx->transmitting && !XUartLite_IsTransmitEmpty( ctx->address ) ) { rtems_termios_dequeue_characters( tty, 1 ); } } -- cgit v1.2.3