diff options
Diffstat (limited to 'bsps/microblaze/include')
-rw-r--r-- | bsps/microblaze/include/bsp/microblaze-fdt-support.h | 65 | ||||
-rw-r--r-- | bsps/microblaze/include/dev/serial/uartlite.h | 5 | ||||
-rw-r--r-- | bsps/microblaze/include/dev/serial/uartlite_l.h | 18 |
3 files changed, 88 insertions, 0 deletions
diff --git a/bsps/microblaze/include/bsp/microblaze-fdt-support.h b/bsps/microblaze/include/bsp/microblaze-fdt-support.h new file mode 100644 index 0000000000..d4430c5a3a --- /dev/null +++ b/bsps/microblaze/include/bsp/microblaze-fdt-support.h @@ -0,0 +1,65 @@ +/* SPDX-License-Identifier: BSD-2-Clause */ + +/** + * @file + * + * @ingroup RTEMSBSPsMicroblaze + * + * @brief This header file provides support for the device tree. + */ + +/* + * Copyright (C) 2022 On-Line Applications Research Corporation (OAR) + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef LIBBSP_MICROBLAZE_MICROBLAZE_FDT_SUPPORT_H +#define LIBBSP_MICROBLAZE_MICROBLAZE_FDT_SUPPORT_H + +#ifdef __cplusplus +extern "C" { +#endif + +#include <stdint.h> + +/** + * @brief Get the value of a property from a compatible node in the device tree. + * + * @param[in] compatible The 'compatible' string to match against. + * @param[in] prop_name The property name. + * @param[in] default_value The default value to return if no compatible node + * was found or the property was not found. + * + * @return The value of the property or the default value. + */ +uint32_t try_get_prop_from_device_tree( + const char *compatible, + const char *prop_name, + uint32_t default_value +); + +#ifdef __cplusplus +} +#endif + +#endif /* LIBBSP_MICROBLAZE_MICROBLAZE_FDT_SUPPORT_H */ diff --git a/bsps/microblaze/include/dev/serial/uartlite.h b/bsps/microblaze/include/dev/serial/uartlite.h index 6e288d4dc7..f58ae92ef8 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> @@ -48,8 +49,12 @@ typedef struct { rtems_termios_device_context base; uintptr_t address; uint32_t initial_baud; + uint32_t enabled; #ifdef BSP_MICROBLAZE_FPGA_CONSOLE_INTERRUPTS + struct rtems_termios_tty *tty; bool transmitting; + size_t tx_queued; + uint32_t irq; #endif } uart_lite_context; 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__ */ /****************************************************************************/ /** |