summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJoel Sherrill <joel.sherrill@OARcorp.com>2009-03-03 12:20:30 +0000
committerJoel Sherrill <joel.sherrill@OARcorp.com>2009-03-03 12:20:30 +0000
commitb96bd98f46ed8fecd664ddd3e92f57348eb3e7b1 (patch)
treeda3a769b5bb9c1e0ef014824086e71c67501ba06
parent2009-03-02 Joel Sherrill <joel.sherrill@oarcorp.com> (diff)
downloadrtems-b96bd98f46ed8fecd664ddd3e92f57348eb3e7b1.tar.bz2
2009-03-02 Joel Sherrill <joel.sherrill@oarcorp.com>
* Makefile.am, console/console.c: Use shared polled console framework.
-rw-r--r--c/src/lib/libbsp/nios2/nios2_iss/ChangeLog4
-rw-r--r--c/src/lib/libbsp/nios2/nios2_iss/Makefile.am2
-rw-r--r--c/src/lib/libbsp/nios2/nios2_iss/console/console.c169
3 files changed, 25 insertions, 150 deletions
diff --git a/c/src/lib/libbsp/nios2/nios2_iss/ChangeLog b/c/src/lib/libbsp/nios2/nios2_iss/ChangeLog
index 71985f3c18..0aff4e144a 100644
--- a/c/src/lib/libbsp/nios2/nios2_iss/ChangeLog
+++ b/c/src/lib/libbsp/nios2/nios2_iss/ChangeLog
@@ -1,5 +1,9 @@
2009-03-02 Joel Sherrill <joel.sherrill@oarcorp.com>
+ * Makefile.am, console/console.c: Use shared polled console framework.
+
+2009-03-02 Joel Sherrill <joel.sherrill@oarcorp.com>
+
* Makefile.am, preinstall.am, include/bsp.h, startup/setvec.c: Now
compiles again but applications do not link.
diff --git a/c/src/lib/libbsp/nios2/nios2_iss/Makefile.am b/c/src/lib/libbsp/nios2/nios2_iss/Makefile.am
index 90f7949ecd..4a70984dc8 100644
--- a/c/src/lib/libbsp/nios2/nios2_iss/Makefile.am
+++ b/c/src/lib/libbsp/nios2/nios2_iss/Makefile.am
@@ -39,7 +39,7 @@ libbsp_a_SOURCES += ../../shared/bspclean.c ../../shared/bsplibc.c \
# clock
libbsp_a_SOURCES += clock/clock.c ../../../shared/clockdrv_shell.h
# console
-libbsp_a_SOURCES += console/console.c
+libbsp_a_SOURCES += console/console.c ../../shared/console-polled.c
# timer
libbsp_a_SOURCES += timer/timer.c
if HAS_MP
diff --git a/c/src/lib/libbsp/nios2/nios2_iss/console/console.c b/c/src/lib/libbsp/nios2/nios2_iss/console/console.c
index 80deefc6d2..90bff9a46b 100644
--- a/c/src/lib/libbsp/nios2/nios2_iss/console/console.c
+++ b/c/src/lib/libbsp/nios2/nios2_iss/console/console.c
@@ -22,42 +22,6 @@
/* #define JTAG_UART_REGS ((altera_avalon_jtag_uart_regs*)NIOS2_IO_BASE(JTAG_UART_BASE)) */
-#if 0
-#define XOFFchar 0x13
-#define XONchar 0x11
-#endif
-
-/* console_initialize
- *
- * This routine initializes the console IO driver.
- *
- * Input parameters: NONE
- *
- * Output parameters: NONE
- *
- * Return values:
- */
-
-rtems_device_driver console_initialize(
- rtems_device_major_number major,
- rtems_device_minor_number minor,
- void *arg
-)
-{
- rtems_status_code status;
-
- status = rtems_io_register_name(
- "/dev/console",
- major,
- (rtems_device_minor_number) 0
- );
-
- if (status != RTEMS_SUCCESSFUL)
- rtems_fatal_error_occurred(status);
-
- return RTEMS_SUCCESSFUL;
-}
-
/* is_character_ready
*
* If a character is available, this routine reads it and stores
@@ -88,8 +52,7 @@ bool is_character_ready(
return false;
}
-/* inbyte
- *
+/*
* This routine reads a character from the SOURCE.
*
* Input parameters: NONE
@@ -100,18 +63,21 @@ bool is_character_ready(
* character read from SOURCE
*/
-char inbyte( void )
+int console_inbyte_nonblocking(
+ int port
+)
{
- /*
- * Wait until a character is available.
- */
- char ch;
- while(!is_character_ready(&ch));
+ char ch;
+ /*
+ * Wait until a character is available.
+ */
+
+ if (is_character_ready(&ch))
return ch;
+ return -1;
}
-/* outbyte
- *
+/*
* This routine transmits a character out the SOURCE. It may support
* XON/XOFF flow control.
*
@@ -121,19 +87,13 @@ char inbyte( void )
* Output parameters: NONE
*/
-void outbyte(
+void console_outbyte_polled(
+ int port,
char ch
)
{
altera_avalon_jtag_uart_regs *ajur = NIOS2_IO_BASE(JTAG_UART_BASE);
/*
- * Carriage Return/New line translation.
- */
-
- if ( ch == '\n' )
- outbyte( '\r' );
-
- /*
* Wait for the transmitter to be ready.
* Check for flow control requests and process.
* Then output the character.
@@ -145,103 +105,14 @@ void outbyte(
}
/*
- * Open entry point
- */
+ * * To support printk
+ * */
-rtems_device_driver console_open(
- rtems_device_major_number major,
- rtems_device_minor_number minor,
- void * arg
-)
-{
- return RTEMS_SUCCESSFUL;
-}
-
-/*
- * Close entry point
- */
-
-rtems_device_driver console_close(
- rtems_device_major_number major,
- rtems_device_minor_number minor,
- void * arg
-)
-{
- return RTEMS_SUCCESSFUL;
-}
-
-/*
- * read bytes from the serial port. We only have stdin.
- */
-
-rtems_device_driver console_read(
- rtems_device_major_number major,
- rtems_device_minor_number minor,
- void * arg
-)
-{
- rtems_libio_rw_args_t *rw_args;
- char *buffer;
- int maximum;
- int count = 0;
-
- rw_args = (rtems_libio_rw_args_t *) arg;
-
- buffer = rw_args->buffer;
- maximum = rw_args->count;
-
- for (count = 0; count < maximum; count++) {
- buffer[ count ] = inbyte();
- if (buffer[ count ] == '\n' || buffer[ count ] == '\r') {
- buffer[ count++ ] = '\n';
- break;
- }
- }
-
- rw_args->bytes_moved = count;
- return (count >= 0) ? RTEMS_SUCCESSFUL : RTEMS_UNSATISFIED;
-}
-
-/*
- * write bytes to the serial port. Stdout and stderr are the same.
- */
+#include <rtems/bspIo.h>
-rtems_device_driver console_write(
- rtems_device_major_number major,
- rtems_device_minor_number minor,
- void * arg
-)
-{
- int count;
- int maximum;
- rtems_libio_rw_args_t *rw_args;
- char *buffer;
- rw_args = (rtems_libio_rw_args_t *) arg;
+ISS_output_char(char c) { console_outbyte_polled( 0, c ); }
- buffer = rw_args->buffer;
- maximum = rw_args->count;
+BSP_output_char_function_type BSP_output_char = ISS_output_char;
+BSP_polling_getchar_function_type BSP_poll_char = NULL;
- for (count = 0; count < maximum; count++) {
- if ( buffer[ count ] == '\n') {
- outbyte('\r');
- }
- outbyte( buffer[ count ] );
- }
-
- rw_args->bytes_moved = maximum;
- return 0;
-}
-
-/*
- * IO Control entry point
- */
-
-rtems_device_driver console_control(
- rtems_device_major_number major,
- rtems_device_minor_number minor,
- void * arg
-)
-{
- return RTEMS_SUCCESSFUL;
-}