[PATCH] bsps/microblaze: Fix console interrupt build errors
Chris Johns
chrisj at rtems.org
Tue Oct 25 03:20:00 UTC 2022
OK to push
Chris
On 25/10/2022 12:36 pm, Alex White wrote:
> 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 +
> .../microblaze/include/dev/serial/uartlite_l.h | 18 ++++++++++++++++++
> bsps/microblaze/shared/dev/serial/uartlite.c | 3 ++-
> 3 files changed, 21 insertions(+), 1 deletion(-)
>
> 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 <bspopts.h>
> #include <rtems/termiostypes.h>
>
> #include <dev/serial/uartlite_l.h>
> 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 <bsp/irq.h>
> #include <dev/serial/uartlite.h>
> +#include <bspopts.h>
>
> #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 );
> }
> }
More information about the devel
mailing list