summaryrefslogtreecommitdiffstats
path: root/bsps/sparc/leon3/console
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2023-06-15 13:24:28 +0200
committerSebastian Huber <sebastian.huber@embedded-brains.de>2023-07-14 12:21:33 +0200
commit8fdecf6c5589493d3559a79cdd9b752c9065f140 (patch)
tree3d9735c3f9a7e0498ddbdf99d70f7c491c69b269 /bsps/sparc/leon3/console
parentbsps/grlib: Use GRLIB definition of GRSPWROUTER (diff)
downloadrtems-8fdecf6c5589493d3559a79cdd9b752c9065f140.tar.bz2
bsps: Use new APBUART register block API
Diffstat (limited to 'bsps/sparc/leon3/console')
-rw-r--r--bsps/sparc/leon3/console/console.c2
-rw-r--r--bsps/sparc/leon3/console/printk_support.c16
2 files changed, 12 insertions, 6 deletions
diff --git a/bsps/sparc/leon3/console/console.c b/bsps/sparc/leon3/console/console.c
index 24484eb96f..891116b2c4 100644
--- a/bsps/sparc/leon3/console/console.c
+++ b/bsps/sparc/leon3/console/console.c
@@ -81,7 +81,7 @@ static int find_matching_apbuart(struct ambapp_dev *dev, int index, void *arg)
struct ambapp_apb_info *apb = (struct ambapp_apb_info *)dev->devinfo;
/* Extract needed information of one APBUART */
- apbuarts[uarts].regs = (struct apbuart_regs *)apb->start;
+ apbuarts[uarts].regs = (apbuart *)apb->start;
apbuarts[uarts].irq = apb->common.irq;
/* Get APBUART core frequency, it is assumed that it is the same
* as Bus frequency where the UART is situated
diff --git a/bsps/sparc/leon3/console/printk_support.c b/bsps/sparc/leon3/console/printk_support.c
index 9fd1b1a089..cb77c66a96 100644
--- a/bsps/sparc/leon3/console/printk_support.c
+++ b/bsps/sparc/leon3/console/printk_support.c
@@ -35,14 +35,17 @@
*/
#include <bsp.h>
-#include <leon.h>
+#include <bsp/leon3.h>
#include <rtems/bspIo.h>
#include <rtems/sysinit.h>
#include <rtems/score/thread.h>
#include <grlib/apbuart.h>
+#include <grlib/io.h>
+
+#include <grlib/ambapp.h>
int leon3_debug_uart_index __attribute__((weak)) = 0;
-struct apbuart_regs *leon3_debug_uart = NULL;
+apbuart *leon3_debug_uart = NULL;
static void bsp_debug_uart_init(void);
@@ -105,15 +108,18 @@ static void bsp_debug_uart_init(void)
ambapp_find_by_idx, (void *)&i);
if (adev != NULL) {
struct ambapp_apb_info *apb;
+ uint32_t ctrl;
/*
* Found a matching debug console, initialize debug UART if present for
* printk().
*/
apb = (struct ambapp_apb_info *)adev->devinfo;
- leon3_debug_uart = (struct apbuart_regs *)apb->start;
- leon3_debug_uart->ctrl |= APBUART_CTRL_RE | APBUART_CTRL_TE;
- leon3_debug_uart->status = 0;
+ leon3_debug_uart = (apbuart *)apb->start;
+ ctrl = grlib_load_32(&leon3_debug_uart->ctrl);
+ ctrl |= APBUART_CTRL_RE | APBUART_CTRL_TE;
+ grlib_store_32(&leon3_debug_uart->ctrl, ctrl);
+ grlib_store_32(&leon3_debug_uart->status, 0);
BSP_poll_char = bsp_debug_uart_poll_char;
BSP_output_char = bsp_debug_uart_output_char;