summaryrefslogtreecommitdiffstats
path: root/c/src/lib/libbsp/mips/csb350/console
diff options
context:
space:
mode:
authorJay Monkman <jtm@smoothsmoothie.com>2005-02-25 05:18:07 +0000
committerJay Monkman <jtm@smoothsmoothie.com>2005-02-25 05:18:07 +0000
commit7cde240ce85e3f5ffd69e970e36dd722a87c02c5 (patch)
treebf10fa3feefe87805981929c5a05a6a66c86567b /c/src/lib/libbsp/mips/csb350/console
parent2005-02-24 Jay Monkman (diff)
downloadrtems-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.c89
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;
+