diff options
author | Joel Sherrill <joel.sherrill@OARcorp.com> | 2004-11-10 23:51:17 +0000 |
---|---|---|
committer | Joel Sherrill <joel.sherrill@OARcorp.com> | 2004-11-10 23:51:17 +0000 |
commit | e79a194755c89fc9330ce74d6af450fa7c18c802 (patch) | |
tree | 8b4ba416f0d5996b89bb1a342e8b40b84d86b42e /c/src/lib/libbsp/powerpc/shared/console | |
parent | 2004-11-10 Richard Campbell <richard.campbell@oarcorp.com> (diff) | |
download | rtems-e79a194755c89fc9330ce74d6af450fa7c18c802.tar.bz2 |
2004-11-10 Richard Campbell <richard.campbell@oarcorp.com>
* Makefile.am, bootloader/misc.c, bootloader/pci.c, bootloader/pci.h,
console/console.c, console/inch.c, console/reboot.c, console/uart.c,
console/uart.h, irq/irq.c, irq/irq.h, irq/irq_init.c,
motorola/motorola.c, motorola/motorola.h, openpic/openpic.c,
openpic/openpic.h, pci/detect_raven_bridge.c, pci/pci.c,
start/start.S, startup/bspstart.c, vectors/vectors_init.c,
vme/vmeconfig.c: Add MVME2100 BSP and MPC8240 support. There was also
a significant amount of spelling and whitespace cleanup.
* tod/todcfg.c: New file.
Diffstat (limited to 'c/src/lib/libbsp/powerpc/shared/console')
-rw-r--r-- | c/src/lib/libbsp/powerpc/shared/console/console.c | 35 | ||||
-rw-r--r-- | c/src/lib/libbsp/powerpc/shared/console/inch.c | 2 | ||||
-rw-r--r-- | c/src/lib/libbsp/powerpc/shared/console/reboot.c | 2 | ||||
-rw-r--r-- | c/src/lib/libbsp/powerpc/shared/console/uart.c | 33 | ||||
-rw-r--r-- | c/src/lib/libbsp/powerpc/shared/console/uart.h | 3 |
5 files changed, 59 insertions, 16 deletions
diff --git a/c/src/lib/libbsp/powerpc/shared/console/console.c b/c/src/lib/libbsp/powerpc/shared/console/console.c index 510cd6ede5..9a86ebf97b 100644 --- a/c/src/lib/libbsp/powerpc/shared/console/console.c +++ b/c/src/lib/libbsp/powerpc/shared/console/console.c @@ -132,8 +132,8 @@ console_initialize(rtems_device_major_number major, printk("Error registering %s!\n",nm); rtems_fatal_error_occurred (status); } - } + return RTEMS_SUCCESSFUL; } /* console_initialize */ @@ -172,22 +172,35 @@ console_open(rtems_device_major_number major, { rtems_status_code status; static rtems_termios_callbacks cb = - { - console_first_open, /* firstOpen */ - console_last_close, /* lastClose */ - NULL, /* pollRead */ - BSP_uart_termios_write_com, /* write */ - conSetAttr, /* setAttributes */ - NULL, /* stopRemoteTx */ - NULL, /* startRemoteTx */ - 1 /* outputUsesInterrupts */ +#if defined(USE_POLLED_IO) + { + NULL, /* firstOpen */ + NULL, /* lastClose */ + NULL, /* pollRead */ + BSP_uart_termios_write_polled, /* write */ + conSetAttr, /* setAttributes */ + NULL, /* stopRemoteTx */ + NULL, /* startRemoteTx */ + 0 /* outputUsesInterrupts */ }; +#else + { + console_first_open, /* firstOpen */ + console_last_close, /* lastClose */ + NULL, /* pollRead */ + BSP_uart_termios_write_com, /* write */ + conSetAttr, /* setAttributes */ + NULL, /* stopRemoteTx */ + NULL, /* startRemoteTx */ + 1 /* outputUsesInterrupts */ + }; +#endif status = rtems_termios_open (major, minor, arg, &cb); if(status != RTEMS_SUCCESSFUL) { - printk("Error openning console device\n"); + printk("Error opening console device\n"); return status; } diff --git a/c/src/lib/libbsp/powerpc/shared/console/inch.c b/c/src/lib/libbsp/powerpc/shared/console/inch.c index 42c3cc7df7..eede297349 100644 --- a/c/src/lib/libbsp/powerpc/shared/console/inch.c +++ b/c/src/lib/libbsp/powerpc/shared/console/inch.c @@ -20,6 +20,7 @@ */ #include <bsp.h> +#ifdef BSP_KBD_IOBASE #include <bsp/irq.h> #include "console.inl" @@ -296,3 +297,4 @@ _IBMPC_inch_sleep(void) return c; } /* _IBMPC_inch */ +#endif diff --git a/c/src/lib/libbsp/powerpc/shared/console/reboot.c b/c/src/lib/libbsp/powerpc/shared/console/reboot.c index b6a760b532..2ea5422bd5 100644 --- a/c/src/lib/libbsp/powerpc/shared/console/reboot.c +++ b/c/src/lib/libbsp/powerpc/shared/console/reboot.c @@ -16,5 +16,7 @@ void rtemsReboot(void) printk("Printing a stack trace for your convenience :-)\n"); CPU_print_stack(); /* shutdown and reboot */ +#if defined(BSP_KBD_IOBASE) kbd_outb(0x4, 0xFE); /* use keyboard controler to do the job... */ +#endif } /* rtemsReboot */ diff --git a/c/src/lib/libbsp/powerpc/shared/console/uart.c b/c/src/lib/libbsp/powerpc/shared/console/uart.c index 2532bef720..dc09a73608 100644 --- a/c/src/lib/libbsp/powerpc/shared/console/uart.c +++ b/c/src/lib/libbsp/powerpc/shared/console/uart.c @@ -200,8 +200,8 @@ BSP_uart_set_baud(int uart, int baud) /* * This function may be called whenever TERMIOS parameters - * are changed, so we have to make sire that baud change is - * indeed required + * are changed, so we have to make sure that baud change is + * indeed required. */ if(baud == uart_data[uart].baud) @@ -458,8 +458,14 @@ uart_noop(const rtems_irq_connect_data *unused) static int uart_isr_is_on(const rtems_irq_connect_data *irq) { -int uart = (irq->name == BSP_ISA_UART_COM1_IRQ) ? + int uart; + +#if defined(mvme2100) + uart = BSP_UART_COM1; +#else + uart = (irq->name == BSP_ISA_UART_COM1_IRQ) ? BSP_UART_COM1 : BSP_UART_COM2; +#endif return uread(uart,IER); } @@ -467,8 +473,12 @@ static int doit(int uart, rtems_irq_hdl handler, int (*p)(const rtems_irq_connect_data*)) { rtems_irq_connect_data d={0}; +#if defined(mvme2100) + d.name = BSP_UART_COM1_IRQ; +#else d.name = (uart == BSP_UART_COM1) ? BSP_ISA_UART_COM1_IRQ : BSP_ISA_UART_COM2_IRQ; +#endif d.off = d.on = uart_noop; d.isOn = uart_isr_is_on; d.hdl = handler; @@ -523,6 +533,21 @@ BSP_uart_termios_set(int uart, void *ttyp) } int +BSP_uart_termios_write_polled(int minor, const char *buf, int len) +{ + int uart=minor; /* could differ, theoretically */ + int nwrite; + const char *b = buf; + + assert(buf != NULL); + + for (nwrite=0 ; nwrite < len ; nwrite++) { + BSP_uart_polled_write(uart, *b++); + } + return nwrite; +} + +int BSP_uart_termios_write_com(int minor, const char *buf, int len) { int uart=minor; /* could differ, theoretically */ @@ -533,7 +558,7 @@ BSP_uart_termios_write_com(int minor, const char *buf, int len) return 0; } - /* If there TX buffer is busy - something is royally screwed up */ + /* If the TX buffer is busy - something is royally screwed up */ /* assert((uread(BSP_UART_COM1, LSR) & THRE) != 0); */ if(termios_stopped_com[uart]) diff --git a/c/src/lib/libbsp/powerpc/shared/console/uart.h b/c/src/lib/libbsp/powerpc/shared/console/uart.h index 8396603d47..0ac66e69b3 100644 --- a/c/src/lib/libbsp/powerpc/shared/console/uart.h +++ b/c/src/lib/libbsp/powerpc/shared/console/uart.h @@ -16,7 +16,7 @@ #include <rtems/libio.h> void BSP_uart_init(int uart, int baud, int hwFlow); -void BSP_uart_set_baud(int aurt, int baud); +void BSP_uart_set_baud(int uart, int baud); void BSP_uart_intr_ctrl(int uart, int cmd); void BSP_uart_throttle(int uart); void BSP_uart_unthrottle(int uart); @@ -31,6 +31,7 @@ void BSP_uart_dbgisr_com1(void); void BSP_uart_dbgisr_com2(void); int BSP_uart_install_isr(int uart, rtems_irq_hdl handler); int BSP_uart_remove_isr(int uart, rtems_irq_hdl handler); +int BSP_uart_termios_write_polled(int minor, const char *buf, int len); int BSP_uart_get_break_cb(int uart, rtems_libio_ioctl_args_t *arg); int BSP_uart_set_break_cb(int uart, rtems_libio_ioctl_args_t *arg); |