diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2018-11-07 11:08:50 +0100 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2018-11-07 11:09:51 +0100 |
commit | 2faea99ac26573623ff09759131cc5607ecb5bae (patch) | |
tree | f41489dc6f6276fd50cdf8d7ea13c1ec106e9aac /bsps | |
parent | termios: Move default lock functions (diff) | |
download | rtems-2faea99ac26573623ff09759131cc5607ecb5bae.tar.bz2 |
bsp/realview-pbx-a9: Fix printk() support
Avoid dependencies on the Termios support in case only printk() is used
by the application.
Diffstat (limited to 'bsps')
-rw-r--r-- | bsps/arm/realview-pbx-a9/console/console-config.c | 37 | ||||
-rw-r--r-- | bsps/arm/realview-pbx-a9/console/console-polled.c | 48 | ||||
-rw-r--r-- | bsps/arm/realview-pbx-a9/include/bsp/console.h | 32 |
3 files changed, 84 insertions, 33 deletions
diff --git a/bsps/arm/realview-pbx-a9/console/console-config.c b/bsps/arm/realview-pbx-a9/console/console-config.c index 66dcfa6803..6375a4db25 100644 --- a/bsps/arm/realview-pbx-a9/console/console-config.c +++ b/bsps/arm/realview-pbx-a9/console/console-config.c @@ -16,17 +16,10 @@ #include <rtems/bspIo.h> #include <bsp.h> -#include <bsp/irq.h> -#include <bsp/arm-pl011.h> #include <bsp/arm-pl050.h> +#include <bsp/console.h> #include <bsp/console-termios.h> - -static arm_pl011_context pl011_context = { - .base = RTEMS_TERMIOS_DEVICE_CONTEXT_INITIALIZER("PL011"), - .regs = (volatile pl011 *) 0x10009000, - .irq = RVPBXA9_IRQ_UART_0, - .initial_baud = 115200 -}; +#include <bsp/irq.h> static arm_pl050_context pl050_context = { .base = RTEMS_TERMIOS_DEVICE_CONTEXT_INITIALIZER("PL050"), @@ -35,34 +28,12 @@ static arm_pl050_context pl050_context = { .initial_baud = 115200 }; -static void output_char(char c) -{ - arm_pl011_write_polled(&pl011_context.base, c); -} - -static bool pl011_probe(rtems_termios_device_context *base) -{ - BSP_output_char = output_char; - - return arm_pl011_probe(base); -} - -static void output_char_init(char c) -{ - pl011_probe(&pl011_context.base); - output_char(c); -} - -BSP_output_char_function_type BSP_output_char = output_char_init; - -BSP_polling_getchar_function_type BSP_poll_char = NULL; - const console_device console_device_table[] = { { .device_file = "/dev/ttyS0", - .probe = pl011_probe, + .probe = rvpbx_pl011_probe, .handler = &arm_pl011_fns, - .context = &pl011_context.base + .context = &rvpbx_pl011_context.base }, { .device_file = SERIAL_MOUSE_DEVICE_PS2, .probe = console_device_probe_default, diff --git a/bsps/arm/realview-pbx-a9/console/console-polled.c b/bsps/arm/realview-pbx-a9/console/console-polled.c new file mode 100644 index 0000000000..53d5288e68 --- /dev/null +++ b/bsps/arm/realview-pbx-a9/console/console-polled.c @@ -0,0 +1,48 @@ +/* + * Copyright (c) 2013, 2018 embedded brains GmbH. All rights reserved. + * + * embedded brains GmbH + * Dornierstr. 4 + * 82178 Puchheim + * Germany + * <info@embedded-brains.de> + * + * The license and distribution terms for this file may be + * found in the file LICENSE in this distribution or at + * http://www.rtems.org/license/LICENSE. + */ + +#include <bsp/console.h> +#include <bsp.h> +#include <bsp/irq.h> + +#include <rtems/bspIo.h> + +arm_pl011_context rvpbx_pl011_context = { + .base = RTEMS_TERMIOS_DEVICE_CONTEXT_INITIALIZER("PL011"), + .regs = (volatile pl011 *) 0x10009000, + .irq = RVPBXA9_IRQ_UART_0, + .initial_baud = 115200 +}; + +static void output_char(char c) +{ + arm_pl011_write_polled(&rvpbx_pl011_context.base, c); +} + +bool rvpbx_pl011_probe(rtems_termios_device_context *base) +{ + BSP_output_char = output_char; + + return arm_pl011_probe(base); +} + +static void output_char_init(char c) +{ + rvpbx_pl011_probe(&rvpbx_pl011_context.base); + output_char(c); +} + +BSP_output_char_function_type BSP_output_char = output_char_init; + +BSP_polling_getchar_function_type BSP_poll_char = NULL; diff --git a/bsps/arm/realview-pbx-a9/include/bsp/console.h b/bsps/arm/realview-pbx-a9/include/bsp/console.h new file mode 100644 index 0000000000..da2e4099e2 --- /dev/null +++ b/bsps/arm/realview-pbx-a9/include/bsp/console.h @@ -0,0 +1,32 @@ +/* + * Copyright (c) 2018 embedded brains GmbH. All rights reserved. + * + * embedded brains GmbH + * Dornierstr. 4 + * 82178 Puchheim + * Germany + * <info@embedded-brains.de> + * + * The license and distribution terms for this file may be + * found in the file LICENSE in this distribution or at + * http://www.rtems.org/license/LICENSE. + */ + +#ifndef LIBBSP_ARM_REALVIEW_PBX_A9_BSP_CONSOLE_H +#define LIBBSP_ARM_REALVIEW_PBX_A9_BSP_CONSOLE_H + +#include <bsp/arm-pl011.h> + +#ifdef __cplusplus +extern "C" { +#endif /* __cplusplus */ + +extern arm_pl011_context rvpbx_pl011_context; + +bool rvpbx_pl011_probe(rtems_termios_device_context *base); + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#endif /* LIBBSP_ARM_REALVIEW_PBX_A9_BSP_CONSOLE_H */ |