diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2014-10-07 08:29:16 +0200 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2014-10-07 16:35:20 +0200 |
commit | 6ec438e8a323cf623cdaecce6f2b3b52b062881a (patch) | |
tree | 8cd71b9fb974897a825b36ea1f070dd4405af46f /c/src/lib/libbsp/powerpc/qoriq/startup/bspstart.c | |
parent | bsps: Add Termios console driver initialization (diff) | |
download | rtems-6ec438e8a323cf623cdaecce6f2b3b52b062881a.tar.bz2 |
libchip/serial: Add alternative NS16550 driver
Use the Termios device API.
Diffstat (limited to 'c/src/lib/libbsp/powerpc/qoriq/startup/bspstart.c')
-rw-r--r-- | c/src/lib/libbsp/powerpc/qoriq/startup/bspstart.c | 40 |
1 files changed, 24 insertions, 16 deletions
diff --git a/c/src/lib/libbsp/powerpc/qoriq/startup/bspstart.c b/c/src/lib/libbsp/powerpc/qoriq/startup/bspstart.c index 5785078c41..43caabbfae 100644 --- a/c/src/lib/libbsp/powerpc/qoriq/startup/bspstart.c +++ b/c/src/lib/libbsp/powerpc/qoriq/startup/bspstart.c @@ -24,7 +24,7 @@ #include <rtems/config.h> #include <rtems/counter.h> -#include <libchip/serial.h> +#include <libchip/ns16550.h> #include <libcpu/powerpc-utility.h> @@ -36,6 +36,7 @@ #include <bsp/linker-symbols.h> #include <bsp/mmu.h> #include <bsp/qoriq.h> +#include <bsp/console-termios.h> LINKER_SYMBOL(bsp_exc_vector_base); @@ -50,6 +51,7 @@ void BSP_panic(char *s) rtems_interrupt_level level; rtems_interrupt_disable(level); + (void) level; printk("%s PANIC %s\n", rtems_get_version_string(), s); @@ -63,6 +65,7 @@ void _BSP_Fatal_error(unsigned n) rtems_interrupt_level level; rtems_interrupt_disable(level); + (void) level; printk("%s PANIC ERROR %u\n", rtems_get_version_string(), n); @@ -75,15 +78,12 @@ void bsp_start(void) { unsigned long i = 0; - ppc_cpu_id_t myCpu; - ppc_cpu_revision_t myCpuRevision; - /* * Get CPU identification dynamically. Note that the get_ppc_cpu_type() function * store the result in global variables so that it can be used latter... */ - myCpu = get_ppc_cpu_type(); - myCpuRevision = get_ppc_cpu_revision(); + get_ppc_cpu_type(); + get_ppc_cpu_revision(); /* Initialize some device driver parameters */ #ifdef HAS_UBOOT @@ -93,16 +93,24 @@ void bsp_start(void) rtems_counter_initialize_converter(BSP_bus_frequency / 8); /* Initialize some console parameters */ - for (i = 0; i < Console_Configuration_Count; ++i) { - console_tbl *ct = &Console_Configuration_Ports[i]; - - ct->ulClock = BSP_bus_frequency; - - #ifdef HAS_UBOOT - if (ct->deviceType == SERIAL_NS16550) { - ct->pDeviceParams = (void *) bsp_uboot_board_info.bi_baudrate; - } - #endif + for (i = 0; i < console_device_count; ++i) { + const console_device *dev = &console_device_table[i]; + const rtems_termios_device_handler *ns16550 = + #ifdef BSP_USE_UART_INTERRUPTS + &ns16550_handler_interrupt; + #else + &ns16550_handler_polled; + #endif + + if (dev->handler == ns16550) { + ns16550_context *ctx = (ns16550_context *) dev->context; + + ctx->clock = BSP_bus_frequency; + + #ifdef HAS_UBOOT + ctx->initial_baud = bsp_uboot_board_info.bi_baudrate; + #endif + } } /* Disable decrementer */ |