diff options
author | Jay Monkman <jtm@smoothsmoothie.com> | 2005-02-25 05:18:07 +0000 |
---|---|---|
committer | Jay Monkman <jtm@smoothsmoothie.com> | 2005-02-25 05:18:07 +0000 |
commit | 7cde240ce85e3f5ffd69e970e36dd722a87c02c5 (patch) | |
tree | bf10fa3feefe87805981929c5a05a6a66c86567b /c/src/lib/libbsp/mips/csb350/console | |
parent | 2005-02-24 Jay Monkman (diff) | |
download | rtems-7cde240ce85e3f5ffd69e970e36dd722a87c02c5.tar.bz2 |
2005-02-24 Jay Monkman <jtm@lopingdog.com>
* acinclude.m4: Added csb350 to list of BSPs.
* csb350/Makefile.am, csb350/README, csb350/bsp_specs,
csb350/configure.ac, csb350/times, csb350/clock/clockdrv.c,
csb350/console/console-io.c, csb350/include/bsp.h,
csb350/include/tm27.h, csb350/network/network.c, csb350/start/regs.S,
csb350/start/start.S, csb350/startup/bspclean.c,
csb350/startup/bspstart.c, csb350/startup/linkcmds,
csb350/timer/timer.c: New BSP.
Diffstat (limited to 'c/src/lib/libbsp/mips/csb350/console')
-rw-r--r-- | c/src/lib/libbsp/mips/csb350/console/console-io.c | 89 |
1 files changed, 89 insertions, 0 deletions
diff --git a/c/src/lib/libbsp/mips/csb350/console/console-io.c b/c/src/lib/libbsp/mips/csb350/console/console-io.c new file mode 100644 index 0000000000..4474a220f7 --- /dev/null +++ b/c/src/lib/libbsp/mips/csb350/console/console-io.c @@ -0,0 +1,89 @@ +/* + * This file contains the hardware specific portions of the TTY driver + * for the serial ports on the csb350. + * + * Logic based on the jmr3904-io.c file in newlib 1.8.2 + * + * COPYRIGHT (c) 1989-2000. + * On-Line Applications Research Corporation (OAR). + * + * The license and distribution terms for this file may be + * found in the file LICENSE in this distribution or at + * http://www.OARcorp.com/rtems/license.html. + * + * $Id$ + */ + +#include <bsp.h> +#include <rtems/libio.h> +#include <libcpu/au1x00.h> + +/* + * console_initialize_hardware + * + * This routine initializes the console hardware. + * + */ + +void console_initialize_hardware(void) +{ + uart0->fifoctrl = 0xf1; /* enable fifo, max sizes */ + au_sync(); +} + + +/* + * console_outbyte_polled + * + * This routine transmits a character using polling. + */ + +void console_outbyte_polled( + int port, + char ch +) +{ + volatile int i; + + /* wait for the fifo to make room */ + while ((uart0->linestat & 0x20) == 0) { + continue; + } + + uart0->txdata = ch; + au_sync(); +} + +/* + * console_inbyte_nonblocking + * + * This routine polls for a character. + */ + +int console_inbyte_nonblocking( + int port +) +{ + unsigned char c; + + if (uart0->linestat & 1) { + c = (char)uart0->rxdata; + return c; + } else { + return -1; + } +} + +#include <rtems/bspIo.h> + +void csb250_output_char(char c) +{ + console_outbyte_polled( 0, c ); + if (c == '\n') { + console_outbyte_polled( 0, '\r' ); + } +} + +BSP_output_char_function_type BSP_output_char = csb250_output_char; +BSP_polling_getchar_function_type BSP_poll_char = NULL; + |