change log for rtems (2010-08-03)
rtems-vc at rtems.org
rtems-vc at rtems.org
Tue Aug 3 15:10:38 UTC 2010
*joel*:
2010-08-03 Joel Sherrill <joel.sherrilL at OARcorp.com>
* console/console.c: Add BSP_poll_char. Reformat.
M 1.55 c/src/lib/libbsp/m68k/av5282/ChangeLog
M 1.8 c/src/lib/libbsp/m68k/av5282/console/console.c
diff -u rtems/c/src/lib/libbsp/m68k/av5282/ChangeLog:1.54 rtems/c/src/lib/libbsp/m68k/av5282/ChangeLog:1.55
--- rtems/c/src/lib/libbsp/m68k/av5282/ChangeLog:1.54 Tue Apr 27 12:33:53 2010
+++ rtems/c/src/lib/libbsp/m68k/av5282/ChangeLog Tue Aug 3 09:15:39 2010
@@ -1,3 +1,7 @@
+2010-08-03 Joel Sherrill <joel.sherrilL at OARcorp.com>
+
+ * console/console.c: Add BSP_poll_char. Reformat.
+
2010-04-27 Joel Sherrill <joel.sherrilL at OARcorp.com>
* network/network.c, startup/bspstart.c: Remove warnings. hwaddr
diff -u rtems/c/src/lib/libbsp/m68k/av5282/console/console.c:1.7 rtems/c/src/lib/libbsp/m68k/av5282/console/console.c:1.8
--- rtems/c/src/lib/libbsp/m68k/av5282/console/console.c:1.7 Thu Dec 17 02:42:15 2009
+++ rtems/c/src/lib/libbsp/m68k/av5282/console/console.c Tue Aug 3 09:15:39 2010
@@ -1,7 +1,9 @@
/*
* Multi UART console serial I/O.
*
- * TO DO: Add DMA input/output
+ * TO DO: Add DMA input/output
+ *
+ * $Id$
*/
#include <stdio.h>
@@ -25,728 +27,715 @@
static ssize_t IntUartPollWrite(int minor, const char *buf, size_t len);
static ssize_t IntUartInterruptWrite (int minor, const char *buf, size_t len);
-static void
-_BSP_null_char( char c )
+static void _BSP_null_char( char c )
{
- int level;
+ rtems_interrupt_level level;
- if (c == '\n')
- _BSP_null_char('\r');
- rtems_interrupt_disable(level);
- while ( (MCF5282_UART_USR(CONSOLE_PORT) & MCF5282_UART_USR_TXRDY) == 0 )
- continue;
- MCF5282_UART_UTB(CONSOLE_PORT) = c;
- while ( (MCF5282_UART_USR(CONSOLE_PORT) & MCF5282_UART_USR_TXRDY) == 0 )
- continue;
- rtems_interrupt_enable(level);
+ if (c == '\n')
+ _BSP_null_char('\r');
+ rtems_interrupt_disable(level);
+ while ( (MCF5282_UART_USR(CONSOLE_PORT) & MCF5282_UART_USR_TXRDY) == 0 )
+ continue;
+
+ MCF5282_UART_UTB(CONSOLE_PORT) = c;
+ while ( (MCF5282_UART_USR(CONSOLE_PORT) & MCF5282_UART_USR_TXRDY) == 0 )
+ continue;
+
+ rtems_interrupt_enable(level);
}
-BSP_output_char_function_type BSP_output_char = _BSP_null_char;
+BSP_output_char_function_type BSP_output_char = _BSP_null_char;
+BSP_polling_getchar_function_type BSP_poll_char = NULL;
+
#define MAX_UART_INFO 3
#define RX_BUFFER_SIZE 512
struct IntUartInfoStruct
{
- int iomode;
- volatile int uimr;
- int baud;
- int databits;
- int parity;
- int stopbits;
- int hwflow;
- int rx_in;
- int rx_out;
- char rx_buffer[RX_BUFFER_SIZE];
- void *ttyp;
+ int iomode;
+ volatile int uimr;
+ int baud;
+ int databits;
+ int parity;
+ int stopbits;
+ int hwflow;
+ int rx_in;
+ int rx_out;
+ char rx_buffer[RX_BUFFER_SIZE];
+ void *ttyp;
};
struct IntUartInfoStruct IntUartInfo[MAX_UART_INFO];
-/***************************************************************************
- Function : IntUartSet
-
- Description : This updates the hardware UART settings.
- ***************************************************************************/
-static void
-IntUartSet(int minor, int baud, int databits, int parity, int stopbits, int hwflow)
-{
- int divisor;
- uint32_t clock_speed;
- uint8_t umr1 = 0;
- uint8_t umr2 = 0;
- struct IntUartInfoStruct *info = &IntUartInfo[minor];
- int level;
-
- rtems_interrupt_disable(level);
-
-
- /* disable interrupts, clear RTS line, and disable the UARTS */
- MCF5282_UART_UIMR(minor) = 0;
- MCF5282_UART_UOP0(minor) = 1;
- MCF5282_UART_UCR(minor) = (MCF5282_UART_UCR_TX_DISABLED | MCF5282_UART_UCR_RX_DISABLED);
-
- /* save the current values */
- info->uimr = 0;
- info->baud = baud;
- info->databits = databits;
- info->parity = parity;
- info->stopbits = stopbits;
- info->hwflow = hwflow;
-
- clock_speed = get_CPU_clock_speed();
- /* determine the baud divisor value */
- divisor = (clock_speed / ( 32 * baud ));
- if ( divisor < 2 )
- divisor = 2;
-
- /* check to see if doing hardware flow control */
- if ( hwflow )
- {
- /* set hardware flow options */
- umr1 |= MCF5282_UART_UMR1_RXRTS;
- umr2 |= MCF5282_UART_UMR2_TXCTS;
- }
-
- /* determine the new umr values */
- umr1 |= (parity | databits);
- umr2 |= (stopbits);
-
- /* reset the uart */
- MCF5282_UART_UCR(minor) = MCF5282_UART_UCR_RESET_ERROR;
- MCF5282_UART_UCR(minor) = MCF5282_UART_UCR_RESET_RX;
- MCF5282_UART_UCR(minor) = MCF5282_UART_UCR_RESET_TX;
-
- /* reset the uart mode register and update values */
- MCF5282_UART_UCR(minor) = MCF5282_UART_UCR_RESET_MR;
- MCF5282_UART_UMR(minor) = umr1;
- MCF5282_UART_UMR(minor) = umr2;
-
- /* set the baud rate values */
- MCF5282_UART_UCSR(minor) = (MCF5282_UART_UCSR_RCS_SYS_CLK | MCF5282_UART_UCSR_TCS_SYS_CLK);
- MCF5282_UART_UBG1(minor) = (divisor & 0xff00) >> 8;
- MCF5282_UART_UBG2(minor) = (divisor & 0x00ff);
-
- /* enable the uart */
- MCF5282_UART_UCR(minor) = (MCF5282_UART_UCR_TX_ENABLED | MCF5282_UART_UCR_RX_ENABLED);
-
- /* check to see if interrupts need to be enabled */
- if ( info->iomode != TERMIOS_POLLED )
- {
- /* enable rx interrupts */
- info->uimr |= MCF5282_UART_UIMR_FFULL;
- MCF5282_UART_UIMR(minor) = info->uimr;
- }
-
- /* check to see if doing hardware flow control */
- if ( hwflow )
- {
- /* assert the RTS line */
- MCF5282_UART_UOP1(minor) = 1;
- }
-
- rtems_interrupt_enable(level);
-
-}
-
-
-/***************************************************************************
- Function : IntUartSetAttributes
-
- Description : This provides the hardware-dependent portion of tcsetattr().
- value and sets it. At the moment this just sets the baud rate.
-
- Note: The highest baudrate is 115200 as this stays within
- an error of +/- 5% at 25MHz processor clock
- ***************************************************************************/
-static int
-IntUartSetAttributes(int minor, const struct termios *t)
-{
- /* set default index values */
- int baud = (int)19200;
- int databits = (int)MCF5282_UART_UMR1_BC_8;
- int parity = (int)MCF5282_UART_UMR1_PM_NONE;
- int stopbits = (int)MCF5282_UART_UMR2_STOP_BITS_1;
- int hwflow = (int)0;
- struct IntUartInfoStruct *info = &IntUartInfo[minor];
-
- /* check to see if input is valid */
- if ( t != (const struct termios *)0 )
- {
- /* determine baud rate index */
- baud = rtems_termios_baud_to_number(t->c_cflag & CBAUD);
-
- /* determine data bits */
- switch ( t->c_cflag & CSIZE )
- {
- case CS5:
- databits = (int)MCF5282_UART_UMR1_BC_5;
- break;
- case CS6:
- databits = (int)MCF5282_UART_UMR1_BC_6;
- break;
- case CS7:
- databits = (int)MCF5282_UART_UMR1_BC_7;
- break;
- case CS8:
- databits = (int)MCF5282_UART_UMR1_BC_8;
- break;
- }
-
- /* determine if parity is enabled */
- if ( t->c_cflag & PARENB )
- {
- if ( t->c_cflag & PARODD )
- {
- /* odd parity */
- parity = (int)MCF5282_UART_UMR1_PM_ODD;
- }
- else
- {
- /* even parity */
- parity = (int)MCF5282_UART_UMR1_PM_EVEN;
- }
- }
-
- /* determine stop bits */
- if ( t->c_cflag & CSTOPB )
- {
- /* two stop bits */
- stopbits = (int)MCF5282_UART_UMR2_STOP_BITS_2;
- }
-
- /* check to see if hardware flow control */
- if ( t->c_cflag & CRTSCTS )
- {
- hwflow = 1;
- }
- }
-
- /* check to see if values have changed */
- if ( ( baud != info->baud ) ||
- ( databits != info->databits ) ||
- ( parity != info->parity ) ||
- ( stopbits != info->stopbits ) ||
- ( hwflow != info->hwflow ) )
- {
-
- /* call function to set values */
- IntUartSet(minor, baud, databits, parity, stopbits, hwflow);
- }
-
- return( RTEMS_SUCCESSFUL );
-
-}
-
-/***************************************************************************
- Function : IntUartInterruptHandler
-
- Description : This is the interrupt handler for the internal uart. It
- determines which channel caused the interrupt before queueing any received
- chars and dequeueing chars waiting for transmission.
- ***************************************************************************/
-static rtems_isr
-IntUartInterruptHandler(rtems_vector_number v)
-{
- unsigned int chan = v - UART_INTC0_IRQ_VECTOR(0);
- struct IntUartInfoStruct *info = &IntUartInfo[chan];
-
- /* check to see if received data */
- if ( MCF5282_UART_UISR(chan) & MCF5282_UART_UISR_RXRDY )
- {
- /* read data and put into the receive buffer */
- while ( MCF5282_UART_USR(chan) & MCF5282_UART_USR_RXRDY )
- {
-
- if ( MCF5282_UART_USR(chan) & MCF5282_UART_USR_ERROR )
- {
- /* clear the error */
- MCF5282_UART_UCR(chan) = MCF5282_UART_UCR_RESET_ERROR;
- }
- /* put data in rx buffer and check for errors */
- info->rx_buffer[info->rx_in] = MCF5282_UART_URB(chan);
-
- /* update buffer values */
- info->rx_in++;
-
- if ( info->rx_in >= RX_BUFFER_SIZE )
- {
- info->rx_in = 0;
- }
- }
- /* Make sure the port has been opened */
- if ( info->ttyp )
- {
-
- /* check to see if task driven */
- if ( info->iomode == TERMIOS_TASK_DRIVEN )
- {
- /* notify rx task that rx buffer has data */
- rtems_termios_rxirq_occured(info->ttyp);
- }
- else
- {
- /* Push up the received data */
- rtems_termios_enqueue_raw_characters(info->ttyp, info->rx_buffer, info->rx_in);
- info->rx_in = 0;
- }
- }
- }
-
- /* check to see if data needs to be transmitted */
- if ( ( info->uimr & MCF5282_UART_UIMR_TXRDY ) &&
- ( MCF5282_UART_UISR(chan) & MCF5282_UART_UISR_TXRDY ) )
- {
-
- /* disable tx interrupts */
- info->uimr &= ~MCF5282_UART_UIMR_TXRDY;
- MCF5282_UART_UIMR(chan) = info->uimr;
-
- /* tell upper level that character has been sent */
- if ( info->ttyp )
- rtems_termios_dequeue_characters(info->ttyp, 1);
- }
-}
-
-
-
-/***************************************************************************
- Function : IntUartInitialize
-
- Description : This initialises the internal uart hardware for all
- internal uarts. If the internal uart is to be interrupt driven then the
- interrupt vectors are hooked.
- ***************************************************************************/
-static void
-IntUartInitialize(void)
-{
- unsigned int chan;
- struct IntUartInfoStruct *info;
- rtems_isr_entry old_handler;
- int level;
-
- for ( chan = 0; chan < MAX_UART_INFO; chan++ )
- {
- info = &IntUartInfo[chan];
-
- info->ttyp = NULL;
- info->rx_in = 0;
- info->rx_out = 0;
- info->baud = -1;
- info->databits = -1;
- info->parity = -1;
- info->stopbits = -1;
- info->hwflow = -1;
- info->iomode = TERMIOS_POLLED;
-
- MCF5282_UART_UACR(chan) = 0;
- MCF5282_UART_UIMR(chan) = 0;
- if ( info->iomode != TERMIOS_POLLED )
- {
- rtems_interrupt_catch (IntUartInterruptHandler,
- UART_INTC0_IRQ_VECTOR(chan),
- &old_handler);
- }
-
- /* set uart default values */
- IntUartSetAttributes(chan, NULL);
-
- /* unmask interrupt */
- rtems_interrupt_disable(level);
- switch(chan) {
- case 0:
- MCF5282_INTC0_ICR13 = MCF5282_INTC_ICR_IL(UART0_IRQ_LEVEL) |
- MCF5282_INTC_ICR_IP(UART0_IRQ_PRIORITY);
- MCF5282_INTC0_IMRL &= ~(MCF5282_INTC_IMRL_INT13 |
- MCF5282_INTC_IMRL_MASKALL);
- break;
-
- case 1:
- MCF5282_INTC0_ICR14 = MCF5282_INTC_ICR_IL(UART1_IRQ_LEVEL) |
- MCF5282_INTC_ICR_IP(UART1_IRQ_PRIORITY);
- MCF5282_INTC0_IMRL &= ~(MCF5282_INTC_IMRL_INT14 |
- MCF5282_INTC_IMRL_MASKALL);
- break;
-
- case 2:
- MCF5282_INTC0_ICR15 = MCF5282_INTC_ICR_IL(UART2_IRQ_LEVEL) |
- MCF5282_INTC_ICR_IP(UART2_IRQ_PRIORITY);
- MCF5282_INTC0_IMRL &= ~(MCF5282_INTC_IMRL_INT15 |
- MCF5282_INTC_IMRL_MASKALL);
- break;
- }
- rtems_interrupt_enable(level);
+/*
+ * Function : IntUartSet
+ *
+ * Description : This updates the hardware UART settings.
+ */
+static void IntUartSet(
+ int minor,
+ int baud,
+ int databits,
+ int parity,
+ int stopbits,
+ int hwflow
+)
+{
+ int divisor;
+ uint32_t clock_speed;
+ uint8_t umr1 = 0;
+ uint8_t umr2 = 0;
+ struct IntUartInfoStruct *info = &IntUartInfo[minor];
+ rtems_interrupt_level level;
+
+ rtems_interrupt_disable(level);
+
+ /* disable interrupts, clear RTS line, and disable the UARTS */
+ MCF5282_UART_UIMR(minor) = 0;
+ MCF5282_UART_UOP0(minor) = 1;
+ MCF5282_UART_UCR(minor) =
+ (MCF5282_UART_UCR_TX_DISABLED | MCF5282_UART_UCR_RX_DISABLED);
+
+ /* save the current values */
+ info->uimr = 0;
+ info->baud = baud;
+ info->databits = databits;
+ info->parity = parity;
+ info->stopbits = stopbits;
+ info->hwflow = hwflow;
+
+ clock_speed = get_CPU_clock_speed();
+ /* determine the baud divisor value */
+ divisor = (clock_speed / ( 32 * baud ));
+ if ( divisor < 2 )
+ divisor = 2;
+
+ /* check to see if doing hardware flow control */
+ if ( hwflow ) {
+ /* set hardware flow options */
+ umr1 |= MCF5282_UART_UMR1_RXRTS;
+ umr2 |= MCF5282_UART_UMR2_TXCTS;
+ }
+
+ /* determine the new umr values */
+ umr1 |= (parity | databits);
+ umr2 |= (stopbits);
+
+ /* reset the uart */
+ MCF5282_UART_UCR(minor) = MCF5282_UART_UCR_RESET_ERROR;
+ MCF5282_UART_UCR(minor) = MCF5282_UART_UCR_RESET_RX;
+ MCF5282_UART_UCR(minor) = MCF5282_UART_UCR_RESET_TX;
+
+ /* reset the uart mode register and update values */
+ MCF5282_UART_UCR(minor) = MCF5282_UART_UCR_RESET_MR;
+ MCF5282_UART_UMR(minor) = umr1;
+ MCF5282_UART_UMR(minor) = umr2;
+
+ /* set the baud rate values */
+ MCF5282_UART_UCSR(minor) =
+ (MCF5282_UART_UCSR_RCS_SYS_CLK | MCF5282_UART_UCSR_TCS_SYS_CLK);
+ MCF5282_UART_UBG1(minor) = (divisor & 0xff00) >> 8;
+ MCF5282_UART_UBG2(minor) = (divisor & 0x00ff);
+
+ /* enable the uart */
+ MCF5282_UART_UCR(minor) =
+ (MCF5282_UART_UCR_TX_ENABLED | MCF5282_UART_UCR_RX_ENABLED);
+
+ /* check to see if interrupts need to be enabled */
+ if ( info->iomode != TERMIOS_POLLED ) {
+ /* enable rx interrupts */
+ info->uimr |= MCF5282_UART_UIMR_FFULL;
+ MCF5282_UART_UIMR(minor) = info->uimr;
+ }
+
+ /* check to see if doing hardware flow control */
+ if ( hwflow ) {
+ /* assert the RTS line */
+ MCF5282_UART_UOP1(minor) = 1;
+ }
+
+ rtems_interrupt_enable(level);
+}
+
+/*
+ * Function : IntUartSetAttributes
+ *
+ * Description : This provides the hardware-dependent portion of tcsetattr().
+ * value and sets it. At the moment this just sets the baud rate.
+ *
+ * Note: The highest baudrate is 115200 as this stays within
+ * an error of +/- 5% at 25MHz processor clock
+ */
+static int IntUartSetAttributes(
+ int minor,
+ const struct termios *t
+)
+{
+ /* set default index values */
+ int baud = (int)19200;
+ int databits = (int)MCF5282_UART_UMR1_BC_8;
+ int parity = (int)MCF5282_UART_UMR1_PM_NONE;
+ int stopbits = (int)MCF5282_UART_UMR2_STOP_BITS_1;
+ int hwflow = (int)0;
+ struct IntUartInfoStruct *info = &IntUartInfo[minor];
+
+ /* check to see if input is valid */
+ if ( t != (const struct termios *)0 ) {
+ /* determine baud rate index */
+ baud = rtems_termios_baud_to_number(t->c_cflag & CBAUD);
+
+ /* determine data bits */
+ switch ( t->c_cflag & CSIZE ) {
+ case CS5:
+ databits = (int)MCF5282_UART_UMR1_BC_5;
+ break;
+ case CS6:
+ databits = (int)MCF5282_UART_UMR1_BC_6;
+ break;
+ case CS7:
+ databits = (int)MCF5282_UART_UMR1_BC_7;
+ break;
+ case CS8:
+ databits = (int)MCF5282_UART_UMR1_BC_8;
+ break;
+ }
+
+ /* determine if parity is enabled */
+ if ( t->c_cflag & PARENB ) {
+ if ( t->c_cflag & PARODD ) {
+ /* odd parity */
+ parity = (int)MCF5282_UART_UMR1_PM_ODD;
+ } else {
+ /* even parity */
+ parity = (int)MCF5282_UART_UMR1_PM_EVEN;
+ }
+ }
+
+ /* determine stop bits */
+ if ( t->c_cflag & CSTOPB ) {
+ /* two stop bits */
+ stopbits = (int)MCF5282_UART_UMR2_STOP_BITS_2;
+ }
+
+ /* check to see if hardware flow control */
+ if ( t->c_cflag & CRTSCTS ) {
+ hwflow = 1;
+ }
+ }
+
+ /* check to see if values have changed */
+ if ( ( baud != info->baud ) ||
+ ( databits != info->databits ) ||
+ ( parity != info->parity ) ||
+ ( stopbits != info->stopbits ) ||
+ ( hwflow != info->hwflow ) ) {
+
+ /* call function to set values */
+ IntUartSet(minor, baud, databits, parity, stopbits, hwflow);
+ }
+
+ return RTEMS_SUCCESSFUL;
+}
+
+/*
+ * Function : IntUartInterruptHandler
+ *
+ * Description : This is the interrupt handler for the internal uart. It
+ * determines which channel caused the interrupt before queueing any received
+ * chars and dequeueing chars waiting for transmission.
+ */
+static rtems_isr IntUartInterruptHandler(rtems_vector_number v)
+{
+ unsigned int chan = v - UART_INTC0_IRQ_VECTOR(0);
+ struct IntUartInfoStruct *info = &IntUartInfo[chan];
+
+ /* check to see if received data */
+ if ( MCF5282_UART_UISR(chan) & MCF5282_UART_UISR_RXRDY ) {
+ /* read data and put into the receive buffer */
+ while ( MCF5282_UART_USR(chan) & MCF5282_UART_USR_RXRDY ) {
+
+ if ( MCF5282_UART_USR(chan) & MCF5282_UART_USR_ERROR ) {
+ /* clear the error */
+ MCF5282_UART_UCR(chan) = MCF5282_UART_UCR_RESET_ERROR;
+ }
+ /* put data in rx buffer and check for errors */
+ info->rx_buffer[info->rx_in] = MCF5282_UART_URB(chan);
+
+ /* update buffer values */
+ info->rx_in++;
+
+ if ( info->rx_in >= RX_BUFFER_SIZE ) {
+ info->rx_in = 0;
+ }
+ }
+
+ /* Make sure the port has been opened */
+ if ( info->ttyp ) {
+
+ /* check to see if task driven */
+ if ( info->iomode == TERMIOS_TASK_DRIVEN ) {
+ /* notify rx task that rx buffer has data */
+ rtems_termios_rxirq_occured(info->ttyp);
+ } else {
+ /* Push up the received data */
+ rtems_termios_enqueue_raw_characters(
+ info->ttyp, info->rx_buffer, info->rx_in);
+ info->rx_in = 0;
+ }
+ }
+ }
+
+ /* check to see if data needs to be transmitted */
+ if ( ( info->uimr & MCF5282_UART_UIMR_TXRDY ) &&
+ ( MCF5282_UART_UISR(chan) & MCF5282_UART_UISR_TXRDY ) )
+ {
+
+ /* disable tx interrupts */
+ info->uimr &= ~MCF5282_UART_UIMR_TXRDY;
+ MCF5282_UART_UIMR(chan) = info->uimr;
+
+ /* tell upper level that character has been sent */
+ if ( info->ttyp )
+ rtems_termios_dequeue_characters(info->ttyp, 1);
+ }
+}
+
+/*
+ * Function : IntUartInitialize
+ *
+ * Description : This initialises the internal uart hardware for all
+ * internal uarts. If the internal uart is to be interrupt driven then the
+ * interrupt vectors are hooked.
+ */
+static void IntUartInitialize(void)
+{
+ unsigned int chan;
+ struct IntUartInfoStruct *info;
+ rtems_isr_entry old_handler;
+ rtems_interrupt_level level;
+
+ for ( chan = 0; chan < MAX_UART_INFO; chan++ ) {
+ info = &IntUartInfo[chan];
+
+ info->ttyp = NULL;
+ info->rx_in = 0;
+ info->rx_out = 0;
+ info->baud = -1;
+ info->databits = -1;
+ info->parity = -1;
+ info->stopbits = -1;
+ info->hwflow = -1;
+ info->iomode = TERMIOS_POLLED;
+
+ MCF5282_UART_UACR(chan) = 0;
+ MCF5282_UART_UIMR(chan) = 0;
+ if ( info->iomode != TERMIOS_POLLED ) {
+ rtems_interrupt_catch (IntUartInterruptHandler,
+ UART_INTC0_IRQ_VECTOR(chan),
+ &old_handler);
+ }
+
+ /* set uart default values */
+ IntUartSetAttributes(chan, NULL);
+
+ /* unmask interrupt */
+ rtems_interrupt_disable(level);
+ switch(chan) {
+ case 0:
+ MCF5282_INTC0_ICR13 = MCF5282_INTC_ICR_IL(UART0_IRQ_LEVEL) |
+ MCF5282_INTC_ICR_IP(UART0_IRQ_PRIORITY);
+ MCF5282_INTC0_IMRL &= ~(MCF5282_INTC_IMRL_INT13 |
+ MCF5282_INTC_IMRL_MASKALL);
+ break;
+
+ case 1:
+ MCF5282_INTC0_ICR14 = MCF5282_INTC_ICR_IL(UART1_IRQ_LEVEL) |
+ MCF5282_INTC_ICR_IP(UART1_IRQ_PRIORITY);
+ MCF5282_INTC0_IMRL &= ~(MCF5282_INTC_IMRL_INT14 |
+ MCF5282_INTC_IMRL_MASKALL);
+ break;
+
+ case 2:
+ MCF5282_INTC0_ICR15 = MCF5282_INTC_ICR_IL(UART2_IRQ_LEVEL) |
+ MCF5282_INTC_ICR_IP(UART2_IRQ_PRIORITY);
+ MCF5282_INTC0_IMRL &= ~(MCF5282_INTC_IMRL_INT15 |
+ MCF5282_INTC_IMRL_MASKALL);
+ break;
+ }
+ rtems_interrupt_enable(level);
- } /* of chan loop */
+ } /* of chan loop */
} /* IntUartInitialise */
-/***************************************************************************
- Function : IntUartInterruptWrite
-
- Description : This writes a single character to the appropriate uart
- channel. This is either called during an interrupt or in the user's task
- to initiate a transmit sequence. Calling this routine enables Tx
- interrupts.
- ***************************************************************************/
-static ssize_t
-IntUartInterruptWrite (int minor, const char *buf, size_t len)
-{
- int level;
-
- rtems_interrupt_disable(level);
-
- /* write out character */
- MCF5282_UART_UTB(minor) = *buf;
-
- /* enable tx interrupt */
- IntUartInfo[minor].uimr |= MCF5282_UART_UIMR_TXRDY;
- MCF5282_UART_UIMR(minor) = IntUartInfo[minor].uimr;
-
- rtems_interrupt_enable(level);
- return( 0 );
-}
-
-/***************************************************************************
- Function : IntUartInterruptOpen
-
- Description : This enables interrupts when the tty is opened.
- ***************************************************************************/
-static int
-IntUartInterruptOpen(int major, int minor, void *arg)
-{
- struct IntUartInfoStruct *info = &IntUartInfo[minor];
-
- /* enable the uart */
- MCF5282_UART_UCR(minor) = (MCF5282_UART_UCR_TX_ENABLED | MCF5282_UART_UCR_RX_ENABLED);
-
- /* check to see if interrupts need to be enabled */
- if ( info->iomode != TERMIOS_POLLED )
- {
- /* enable rx interrupts */
- info->uimr |= MCF5282_UART_UIMR_FFULL;
- MCF5282_UART_UIMR(minor) = info->uimr;
- }
-
- /* check to see if doing hardware flow control */
- if ( info->hwflow )
- {
- /* assert the RTS line */
- MCF5282_UART_UOP1(minor) = 1;
- }
-
- return( 0 );
-}
-
-
-
-/***************************************************************************
- Function : IntUartInterruptClose
-
- Description : This disables interrupts when the tty is closed.
- ***************************************************************************/
-static int
-IntUartInterruptClose(int major, int minor, void *arg)
-{
- struct IntUartInfoStruct *info = &IntUartInfo[minor];
-
- /* disable the interrupts and the uart */
- MCF5282_UART_UIMR(minor) = 0;
- MCF5282_UART_UCR(minor) = (MCF5282_UART_UCR_TX_DISABLED | MCF5282_UART_UCR_RX_DISABLED);
-
- /* reset values */
- info->ttyp = NULL;
- info->uimr = 0;
- info->rx_in = 0;
- info->rx_out = 0;
-
- return( 0 );
-}
-
-/***************************************************************************
- Function : IntUartTaskRead
-
- Description : This reads all available characters from the internal uart
- and places them into the termios buffer. The rx interrupts will be
- re-enabled after all data has been read.
- ***************************************************************************/
-static int
-IntUartTaskRead(int minor)
-{
- char buffer[RX_BUFFER_SIZE];
- int count;
- int rx_in;
- int index = 0;
- struct IntUartInfoStruct *info = &IntUartInfo[minor];
-
- /* determine number of values to copy out */
- rx_in = info->rx_in;
- if ( info->rx_out <= rx_in )
- {
- count = rx_in - info->rx_out;
- }
- else
- {
- count = (RX_BUFFER_SIZE - info->rx_out) + rx_in;
- }
-
- /* copy data into local buffer from rx buffer */
- while ( ( index < count ) && ( index < RX_BUFFER_SIZE ) )
- {
- /* copy data byte */
- buffer[index] = info->rx_buffer[info->rx_out];
- index++;
-
- /* increment rx buffer values */
- info->rx_out++;
- if ( info->rx_out >= RX_BUFFER_SIZE )
- {
- info->rx_out = 0;
- }
- }
-
- /* check to see if buffer is not empty */
- if ( count > 0 )
- {
- /* set characters into termios buffer */
- rtems_termios_enqueue_raw_characters(info->ttyp, buffer, count);
- }
-
- return( EOF );
-}
-
-
-
-/***************************************************************************
- Function : IntUartPollRead
-
- Description : This reads a character from the internal uart. It returns
- to the caller without blocking if not character is waiting.
- ***************************************************************************/
-static int
-IntUartPollRead (int minor)
-{
- if ( (MCF5282_UART_USR(minor) & MCF5282_UART_USR_RXRDY) == 0 )
- return(-1);
-
- return(MCF5282_UART_URB(minor));
-}
-
-
-/***************************************************************************
- Function : IntUartPollWrite
-
- Description : This writes out each character in the buffer to the
- appropriate internal uart channel waiting till each one is sucessfully
- transmitted.
- ***************************************************************************/
-static ssize_t
-IntUartPollWrite (int minor, const char *buf, size_t len)
-{
- size_t retval = len;
- /* loop over buffer */
- while ( len-- )
- {
- /* block until we can transmit */
- while ( (MCF5282_UART_USR(minor) & MCF5282_UART_USR_TXRDY) == 0 )
- continue;
- /* transmit data byte */
- MCF5282_UART_UTB(minor) = *buf++;
- }
- return retval;
-}
-
-/***************************************************************************
- Function : console_initialize
-
- Description : This initialises termios, both sets of uart hardware before
- registering /dev/tty devices for each channel and the system /dev/console.
- ***************************************************************************/
+/*
+ * Function : IntUartInterruptWrite
+ *
+ * Description : This writes a single character to the appropriate uart
+ * channel. This is either called during an interrupt or in the user's task
+ * to initiate a transmit sequence. Calling this routine enables Tx
+ * interrupts.
+ */
+static ssize_t IntUartInterruptWrite(
+ int minor,
+ const char *buf,
+ size_t len
+)
+{
+ rtems_interrupt_level level;
+
+ rtems_interrupt_disable(level);
+
+ /* write out character */
+ MCF5282_UART_UTB(minor) = *buf;
+
+ /* enable tx interrupt */
+ IntUartInfo[minor].uimr |= MCF5282_UART_UIMR_TXRDY;
+ MCF5282_UART_UIMR(minor) = IntUartInfo[minor].uimr;
+
+ rtems_interrupt_enable(level);
+ return 0;
+}
+
+/*
+ * Function : IntUartInterruptOpen
+ *
+ * Description : This enables interrupts when the tty is opened.
+ */
+static int IntUartInterruptOpen(
+ int major,
+ int minor,
+ void *arg
+)
+{
+ struct IntUartInfoStruct *info = &IntUartInfo[minor];
+
+ /* enable the uart */
+ MCF5282_UART_UCR(minor) = (MCF5282_UART_UCR_TX_ENABLED |
+ MCF5282_UART_UCR_RX_ENABLED);
+
+ /* check to see if interrupts need to be enabled */
+ if ( info->iomode != TERMIOS_POLLED ) {
+ /* enable rx interrupts */
+ info->uimr |= MCF5282_UART_UIMR_FFULL;
+ MCF5282_UART_UIMR(minor) = info->uimr;
+ }
+
+ /* check to see if doing hardware flow control */
+ if ( info->hwflow ) {
+ /* assert the RTS line */
+ MCF5282_UART_UOP1(minor) = 1;
+ }
+
+ return 0;
+}
+
+/*
+ * Function : IntUartInterruptClose
+ *
+ * Description : This disables interrupts when the tty is closed.
+ */
+static int IntUartInterruptClose(
+ int major,
+ int minor,
+ void *arg
+)
+{
+ struct IntUartInfoStruct *info = &IntUartInfo[minor];
+
+ /* disable the interrupts and the uart */
+ MCF5282_UART_UIMR(minor) = 0;
+ MCF5282_UART_UCR(minor) =
+ (MCF5282_UART_UCR_TX_DISABLED | MCF5282_UART_UCR_RX_DISABLED);
+
+ /* reset values */
+ info->ttyp = NULL;
+ info->uimr = 0;
+ info->rx_in = 0;
+ info->rx_out = 0;
+
+ return 0;
+}
+
+/*
+ * Function : IntUartTaskRead
+ *
+ * Description : This reads all available characters from the internal uart
+ * and places them into the termios buffer. The rx interrupts will be
+ * re-enabled after all data has been read.
+ */
+static int IntUartTaskRead(int minor)
+{
+ char buffer[RX_BUFFER_SIZE];
+ int count;
+ int rx_in;
+ int index = 0;
+ struct IntUartInfoStruct *info = &IntUartInfo[minor];
+
+ /* determine number of values to copy out */
+ rx_in = info->rx_in;
+ if ( info->rx_out <= rx_in ) {
+ count = rx_in - info->rx_out;
+ } else {
+ count = (RX_BUFFER_SIZE - info->rx_out) + rx_in;
+ }
+
+ /* copy data into local buffer from rx buffer */
+ while ( ( index < count ) && ( index < RX_BUFFER_SIZE ) ) {
+ /* copy data byte */
+ buffer[index] = info->rx_buffer[info->rx_out];
+ index++;
+
+ /* increment rx buffer values */
+ info->rx_out++;
+ if ( info->rx_out >= RX_BUFFER_SIZE ) {
+ info->rx_out = 0;
+ }
+ }
+
+ /* check to see if buffer is not empty */
+ if ( count > 0 ) {
+ /* set characters into termios buffer */
+ rtems_termios_enqueue_raw_characters(info->ttyp, buffer, count);
+ }
+
+ return EOF;
+}
+
+
+
+/*
+ * Function : IntUartPollRead
+ *
+ * Description : This reads a character from the internal uart. It returns
+ * to the caller without blocking if not character is waiting.
+ */
+static int IntUartPollRead(int minor)
+{
+ if ( (MCF5282_UART_USR(minor) & MCF5282_UART_USR_RXRDY) == 0 )
+ return-1;
+
+ return MCF5282_UART_URB(minor);
+}
+
+
+/*
+ * Function : IntUartPollWrite
+ *
+ * Description : This writes out each character in the buffer to the
+ * appropriate internal uart channel waiting till each one is sucessfully
+ * transmitted.
+ */
+static ssize_t IntUartPollWrite(
+ int minor,
+ const char *buf,
+ size_t len
+)
+{
+ size_t retval = len;
+ /* loop over buffer */
+
+ while ( len-- ) {
+ /* block until we can transmit */
+ while ( (MCF5282_UART_USR(minor) & MCF5282_UART_USR_TXRDY) == 0 )
+ continue;
+ /* transmit data byte */
+ MCF5282_UART_UTB(minor) = *buf++;
+ }
+ return retval;
+}
+
+/*
+ * Function : console_initialize
+ *
+ * Description : This initialises termios, both sets of uart hardware before
+ * registering /dev/tty devices for each channel and the system /dev/console.
+ */
rtems_device_driver console_initialize(
- rtems_device_major_number major,
- rtems_device_minor_number minor,
- void *arg )
-{
- rtems_status_code status;
-
-
- /* Set up TERMIOS */
- rtems_termios_initialize ();
-
- /* set io modes for the different channels and initialize device */
- IntUartInfo[minor].iomode = TERMIOS_IRQ_DRIVEN;
- IntUartInitialize();
-
- /* Register the console port */
- status = rtems_io_register_name ("/dev/console", major, CONSOLE_PORT);
- if ( status != RTEMS_SUCCESSFUL )
- {
- rtems_fatal_error_occurred (status);
- }
-
- /* Register the other port */
- if ( CONSOLE_PORT != 0 )
- {
- status = rtems_io_register_name ("/dev/tty00", major, 0);
- if ( status != RTEMS_SUCCESSFUL )
- {
- rtems_fatal_error_occurred (status);
- }
- }
- if ( CONSOLE_PORT != 1 )
- {
- status = rtems_io_register_name ("/dev/tty01", major, 1);
- if ( status != RTEMS_SUCCESSFUL )
- {
- rtems_fatal_error_occurred (status);
- }
- }
-
- return(RTEMS_SUCCESSFUL);
-}
-
-/***************************************************************************
- Function : console_open
-
- Description : This actually opens the device depending on the minor
- number set during initialisation. The device specific access routines are
- passed to termios when the devices is opened depending on whether it is
- polled or not.
- ***************************************************************************/
+ rtems_device_major_number major,
+ rtems_device_minor_number minor,
+ void *arg
+)
+{
+ rtems_status_code status;
+
+ /* Set up TERMIOS */
+ rtems_termios_initialize ();
+
+ /* set io modes for the different channels and initialize device */
+ IntUartInfo[minor].iomode = TERMIOS_IRQ_DRIVEN;
+ IntUartInitialize();
+
+ /* Register the console port */
+ status = rtems_io_register_name ("/dev/console", major, CONSOLE_PORT);
+ if ( status != RTEMS_SUCCESSFUL ) {
+ rtems_fatal_error_occurred (status);
+ }
+
+ /* Register the other port */
+ if ( CONSOLE_PORT != 0 ) {
+ status = rtems_io_register_name ("/dev/tty00", major, 0);
+ if ( status != RTEMS_SUCCESSFUL ) {
+ rtems_fatal_error_occurred (status);
+ }
+ }
+ if ( CONSOLE_PORT != 1 ) {
+ status = rtems_io_register_name ("/dev/tty01", major, 1);
+ if ( status != RTEMS_SUCCESSFUL ) {
+ rtems_fatal_error_occurred (status);
+ }
+ }
+
+ return RTEMS_SUCCESSFUL;
+}
+
+/*
+ * Function : console_open
+ *
+ * Description : This actually opens the device depending on the minor
+ * number set during initialisation. The device specific access routines are
+ * passed to termios when the devices is opened depending on whether it is
+ * polled or not.
+ */
rtems_device_driver console_open(
- rtems_device_major_number major,
- rtems_device_minor_number minor,
- void * arg)
-{
- rtems_status_code status = RTEMS_INVALID_NUMBER;
- rtems_libio_open_close_args_t *args = (rtems_libio_open_close_args_t *)arg;
- struct IntUartInfoStruct *info;
-
- static const rtems_termios_callbacks IntUartPollCallbacks = {
- NULL, /* firstOpen */
- NULL, /* lastClose */
- IntUartPollRead, /* pollRead */
- IntUartPollWrite, /* write */
- IntUartSetAttributes, /* setAttributes */
- NULL, /* stopRemoteTx */
- NULL, /* startRemoteTx */
- TERMIOS_POLLED /* mode */
- };
- static const rtems_termios_callbacks IntUartIntrCallbacks = {
- IntUartInterruptOpen, /* firstOpen */
- IntUartInterruptClose, /* lastClose */
- NULL, /* pollRead */
- IntUartInterruptWrite, /* write */
- IntUartSetAttributes, /* setAttributes */
- NULL, /* stopRemoteTx */
- NULL, /* startRemoteTx */
- TERMIOS_IRQ_DRIVEN /* mode */
- };
-
- static const rtems_termios_callbacks IntUartTaskCallbacks = {
- IntUartInterruptOpen, /* firstOpen */
- IntUartInterruptClose, /* lastClose */
- IntUartTaskRead, /* pollRead */
- IntUartInterruptWrite, /* write */
- IntUartSetAttributes, /* setAttributes */
- NULL, /* stopRemoteTx */
- NULL, /* startRemoteTx */
- TERMIOS_TASK_DRIVEN /* mode */
- };
-
- /* open the port depending on the minor device number */
- if ( ( minor >= 0 ) && ( minor < MAX_UART_INFO ) )
- {
- info = &IntUartInfo[minor];
- switch ( info->iomode )
- {
- case TERMIOS_POLLED:
- status = rtems_termios_open(major, minor, arg, &IntUartPollCallbacks);
- break;
- case TERMIOS_IRQ_DRIVEN:
- status = rtems_termios_open(major, minor, arg, &IntUartIntrCallbacks);
- info->ttyp = args->iop->data1;
- break;
- case TERMIOS_TASK_DRIVEN:
- status = rtems_termios_open(major, minor, arg, &IntUartTaskCallbacks);
- info->ttyp = args->iop->data1;
- break;
- }
- }
-
- return( status );
-}
-
-/***************************************************************************
- Function : console_close
-
- Description : This closes the device via termios
- ***************************************************************************/
+ rtems_device_major_number major,
+ rtems_device_minor_number minor,
+ void * arg
+)
+{
+ rtems_status_code status = RTEMS_INVALID_NUMBER;
+ rtems_libio_open_close_args_t *args = (rtems_libio_open_close_args_t *)arg;
+ struct IntUartInfoStruct *info;
+
+ static const rtems_termios_callbacks IntUartPollCallbacks = {
+ NULL, /* firstOpen */
+ NULL, /* lastClose */
+ IntUartPollRead, /* pollRead */
+ IntUartPollWrite, /* write */
+ IntUartSetAttributes, /* setAttributes */
+ NULL, /* stopRemoteTx */
+ NULL, /* startRemoteTx */
+ TERMIOS_POLLED /* mode */
+ };
+ static const rtems_termios_callbacks IntUartIntrCallbacks = {
+ IntUartInterruptOpen, /* firstOpen */
+ IntUartInterruptClose, /* lastClose */
+ NULL, /* pollRead */
+ IntUartInterruptWrite, /* write */
+ IntUartSetAttributes, /* setAttributes */
+ NULL, /* stopRemoteTx */
+ NULL, /* startRemoteTx */
+ TERMIOS_IRQ_DRIVEN /* mode */
+ };
+
+ static const rtems_termios_callbacks IntUartTaskCallbacks = {
+ IntUartInterruptOpen, /* firstOpen */
+ IntUartInterruptClose, /* lastClose */
+ IntUartTaskRead, /* pollRead */
+ IntUartInterruptWrite, /* write */
+ IntUartSetAttributes, /* setAttributes */
+ NULL, /* stopRemoteTx */
+ NULL, /* startRemoteTx */
+ TERMIOS_TASK_DRIVEN /* mode */
+ };
+
+ /* open the port depending on the minor device number */
+ if ( ( minor >= 0 ) && ( minor < MAX_UART_INFO ) ) {
+ info = &IntUartInfo[minor];
+ switch ( info->iomode ) {
+ case TERMIOS_POLLED:
+ status = rtems_termios_open(major, minor, arg, &IntUartPollCallbacks);
+ break;
+ case TERMIOS_IRQ_DRIVEN:
+ status = rtems_termios_open(major, minor, arg, &IntUartIntrCallbacks);
+ info->ttyp = args->iop->data1;
+ break;
+ case TERMIOS_TASK_DRIVEN:
+ status = rtems_termios_open(major, minor, arg, &IntUartTaskCallbacks);
+ info->ttyp = args->iop->data1;
+ break;
+ }
+ }
+
+ return status;
+}
+
+/*
+ * Function : console_close
+ *
+ * Description : This closes the device via termios
+ */
rtems_device_driver console_close(
- rtems_device_major_number major,
- rtems_device_minor_number minor,
- void * arg)
-{
- return(rtems_termios_close (arg));
+ rtems_device_major_number major,
+ rtems_device_minor_number minor,
+ void * arg
+)
+{
+ return rtems_termios_close(arg);
}
-/******************
-*********************************************************
- Function : console_read
-
- Description : Read from the device via termios
- ***************************************************************************/
+/*
+ * Function : console_read
+ *
+ * Description : Read from the device via termios
+ */
rtems_device_driver console_read(
- rtems_device_major_number major,
- rtems_device_minor_number minor,
- void * arg)
-{
- return(rtems_termios_read (arg));
+ rtems_device_major_number major,
+ rtems_device_minor_number minor,
+ void *arg
+)
+{
+ return rtems_termios_read(arg);
}
-/***************************************************************************
- Function : console_write
-
- Description : Write to the device via termios
- ***************************************************************************/
+/*
+ * Function : console_write
+ *
+ * Description : Write to the device via termios
+ */
rtems_device_driver console_write(
- rtems_device_major_number major,
- rtems_device_minor_number minor,
- void * arg)
-{
- return(rtems_termios_write (arg));
+ rtems_device_major_number major,
+ rtems_device_minor_number minor,
+ void *arg
+)
+{
+ return rtems_termios_write(arg);
}
-/***************************************************************************
- Function : console_ioctl
-
- Description : Pass the IOCtl call to termios
- ***************************************************************************/
+/*
+ * Function : console_ioctl
+ *
+ * Description : Pass the IOCtl call to termios
+ */
rtems_device_driver console_control(
- rtems_device_major_number major,
- rtems_device_minor_number minor,
- void * arg)
+ rtems_device_major_number major,
+ rtems_device_minor_number minor,
+ void *arg
+)
{
- return( rtems_termios_ioctl (arg) );
+ return rtems_termios_ioctl(arg);
}
+
int DEBUG_OUTCHAR(int c)
{
- if(c == '\n')
- DEBUG_OUTCHAR('\r');
- _BSP_null_char(c);
- return c;
+ if (c == '\n')
+ DEBUG_OUTCHAR('\r');
+ _BSP_null_char(c);
+ return c;
}
void DEBUG_OUTSTR(const char *msg)
{
- while (*msg)
- DEBUG_OUTCHAR(*msg++);
+ while (*msg)
+ DEBUG_OUTCHAR(*msg++);
}
void DEBUG_OUTNUM(int i)
{
- int n;
- static const char map[] = "0123456789ABCDEF";
- DEBUG_OUTCHAR(' ');
- for (n = 28 ; n >= 0 ; n -= 4)
- DEBUG_OUTCHAR(map[(i >> n) & 0xF]);
+ int n;
+ static const char map[] = "0123456789ABCDEF";
+
+ DEBUG_OUTCHAR(' ');
+ for (n = 28 ; n >= 0 ; n -= 4)
+ DEBUG_OUTCHAR(map[(i >> n) & 0xF]);
}
*joel*:
2010-08-03 Joel Sherrill <joel.sherrilL at OARcorp.com>
* console/debugio.c: Add BSP_poll_char.
M 1.35 c/src/lib/libbsp/m68k/mcf52235/ChangeLog
M 1.2 c/src/lib/libbsp/m68k/mcf52235/console/debugio.c
M 1.6 c/src/lib/libbsp/m68k/mcf5225x/ChangeLog
M 1.2 c/src/lib/libbsp/m68k/mcf5225x/console/debugio.c
diff -u rtems/c/src/lib/libbsp/m68k/mcf52235/ChangeLog:1.34 rtems/c/src/lib/libbsp/m68k/mcf52235/ChangeLog:1.35
--- rtems/c/src/lib/libbsp/m68k/mcf52235/ChangeLog:1.34 Mon Jun 21 17:55:18 2010
+++ rtems/c/src/lib/libbsp/m68k/mcf52235/ChangeLog Tue Aug 3 09:15:52 2010
@@ -1,3 +1,7 @@
+2010-08-03 Joel Sherrill <joel.sherrilL at OARcorp.com>
+
+ * console/debugio.c: Add BSP_poll_char.
+
2010-06-21 Joel Sherrill <joel.sherrill at oarcorp.com>
* README: Remove more ITRON references.
diff -u rtems/c/src/lib/libbsp/m68k/mcf52235/console/debugio.c:1.1 rtems/c/src/lib/libbsp/m68k/mcf52235/console/debugio.c:1.2
--- rtems/c/src/lib/libbsp/m68k/mcf52235/console/debugio.c:1.1 Mon Aug 18 11:47:54 2008
+++ rtems/c/src/lib/libbsp/m68k/mcf52235/console/debugio.c Tue Aug 3 09:15:52 2010
@@ -28,5 +28,6 @@
rtems_interrupt_enable(level);
}
-BSP_output_char_function_type BSP_output_char = _BSP_null_char;
+BSP_output_char_function_type BSP_output_char = _BSP_null_char;
+BSP_polling_getchar_function_type BSP_poll_char = NULL;
diff -u rtems/c/src/lib/libbsp/m68k/mcf5225x/ChangeLog:1.5 rtems/c/src/lib/libbsp/m68k/mcf5225x/ChangeLog:1.6
--- rtems/c/src/lib/libbsp/m68k/mcf5225x/ChangeLog:1.5 Mon Jun 21 17:55:20 2010
+++ rtems/c/src/lib/libbsp/m68k/mcf5225x/ChangeLog Tue Aug 3 09:15:54 2010
@@ -1,3 +1,7 @@
+2010-08-03 Joel Sherrill <joel.sherrilL at OARcorp.com>
+
+ * console/debugio.c: Add BSP_poll_char.
+
2010-06-21 Joel Sherrill <joel.sherrill at oarcorp.com>
* README: Remove more ITRON references.
diff -u rtems/c/src/lib/libbsp/m68k/mcf5225x/console/debugio.c:1.1 rtems/c/src/lib/libbsp/m68k/mcf5225x/console/debugio.c:1.2
--- rtems/c/src/lib/libbsp/m68k/mcf5225x/console/debugio.c:1.1 Mon Apr 5 12:06:57 2010
+++ rtems/c/src/lib/libbsp/m68k/mcf5225x/console/debugio.c Tue Aug 3 09:15:54 2010
@@ -37,4 +37,5 @@
rtems_interrupt_enable(level);
}
-BSP_output_char_function_type BSP_output_char = _BSP_null_char;
+BSP_output_char_function_type BSP_output_char = _BSP_null_char;
+BSP_polling_getchar_function_type BSP_poll_char = NULL;
*joel*:
2010-08-03 Joel Sherrill <joel.sherrilL at OARcorp.com>
* startup/bspstart.c: Add BSP_poll_char.
M 1.34 c/src/lib/libbsp/powerpc/haleakala/ChangeLog
M 1.10 c/src/lib/libbsp/powerpc/haleakala/startup/bspstart.c
diff -u rtems/c/src/lib/libbsp/powerpc/haleakala/ChangeLog:1.33 rtems/c/src/lib/libbsp/powerpc/haleakala/ChangeLog:1.34
--- rtems/c/src/lib/libbsp/powerpc/haleakala/ChangeLog:1.33 Tue Jun 29 13:52:52 2010
+++ rtems/c/src/lib/libbsp/powerpc/haleakala/ChangeLog Tue Aug 3 09:16:35 2010
@@ -1,3 +1,7 @@
+2010-08-03 Joel Sherrill <joel.sherrilL at OARcorp.com>
+
+ * startup/bspstart.c: Add BSP_poll_char.
+
2010-06-29 Joel Sherrill <joel.sherrill at oarcorp.com>
* configure.ac: Remove AC_CHECK_SIZEOF([void *]).
diff -u rtems/c/src/lib/libbsp/powerpc/haleakala/startup/bspstart.c:1.9 rtems/c/src/lib/libbsp/powerpc/haleakala/startup/bspstart.c:1.10
--- rtems/c/src/lib/libbsp/powerpc/haleakala/startup/bspstart.c:1.9 Thu Dec 17 02:42:16 2009
+++ rtems/c/src/lib/libbsp/powerpc/haleakala/startup/bspstart.c Tue Aug 3 09:16:35 2010
@@ -159,7 +159,8 @@
}
/* We will provide our own printk output function as it may get used early */
-BSP_output_char_function_type BSP_output_char = DirectUARTWrite;
+BSP_output_char_function_type BSP_output_char = DirectUARTWrite;
+BSP_polling_getchar_function_type BSP_poll_char = NULL;
/*===================================================================*/
*joel*:
2010-08-03 Joel Sherrill <joel.sherrilL at OARcorp.com>
* console/console.c: Add BSP_poll_char.
M 1.42 c/src/lib/libbsp/m68k/genmcf548x/ChangeLog
M 1.6 c/src/lib/libbsp/m68k/genmcf548x/console/console.c
M 1.60 c/src/lib/libbsp/m68k/mcf5235/ChangeLog
M 1.10 c/src/lib/libbsp/m68k/mcf5235/console/console.c
M 1.32 c/src/lib/libbsp/m68k/mcf5329/ChangeLog
M 1.6 c/src/lib/libbsp/m68k/mcf5329/console/console.c
M 1.129 c/src/lib/libbsp/m68k/mvme167/ChangeLog
M 1.19 c/src/lib/libbsp/m68k/mvme167/console/console.c
M 1.173 c/src/lib/libbsp/powerpc/mbx8xx/ChangeLog
M 1.22 c/src/lib/libbsp/powerpc/mbx8xx/console/console.c
M 1.152 c/src/lib/libbsp/powerpc/mpc8260ads/ChangeLog
M 1.8 c/src/lib/libbsp/powerpc/mpc8260ads/console/console.c
M 1.67 c/src/lib/libbsp/powerpc/ss555/ChangeLog
M 1.6 c/src/lib/libbsp/powerpc/ss555/console/console.c
M 1.53 c/src/lib/libbsp/powerpc/tqm8xx/ChangeLog
M 1.10 c/src/lib/libbsp/powerpc/tqm8xx/console/console.c
diff -u rtems/c/src/lib/libbsp/m68k/genmcf548x/ChangeLog:1.41 rtems/c/src/lib/libbsp/m68k/genmcf548x/ChangeLog:1.42
--- rtems/c/src/lib/libbsp/m68k/genmcf548x/ChangeLog:1.41 Sat Mar 27 03:09:33 2010
+++ rtems/c/src/lib/libbsp/m68k/genmcf548x/ChangeLog Tue Aug 3 09:15:46 2010
@@ -1,3 +1,7 @@
+2010-08-03 Joel Sherrill <joel.sherrilL at OARcorp.com>
+
+ * console/console.c: Add BSP_poll_char.
+
2010-03-26 Thomas Doerfler <Thomas.Doerfler at embedded-brains.de>
* clock/clock.c: get desired clock rate for proper source
diff -u rtems/c/src/lib/libbsp/m68k/genmcf548x/console/console.c:1.5 rtems/c/src/lib/libbsp/m68k/genmcf548x/console/console.c:1.6
--- rtems/c/src/lib/libbsp/m68k/genmcf548x/console/console.c:1.5 Thu Dec 17 02:42:16 2009
+++ rtems/c/src/lib/libbsp/m68k/genmcf548x/console/console.c Tue Aug 3 09:15:46 2010
@@ -86,12 +86,12 @@
continue;
rtems_interrupt_enable(level);
}
-BSP_output_char_function_type BSP_output_char = _BSP_null_char;
+BSP_output_char_function_type BSP_output_char = _BSP_null_char;
+BSP_polling_getchar_function_type BSP_poll_char = NULL;
#define MAX_UART_INFO 4
#define RX_BUFFER_SIZE 248
-
struct IntUartInfoStruct
{
int iomode;
diff -u rtems/c/src/lib/libbsp/m68k/mcf5235/ChangeLog:1.59 rtems/c/src/lib/libbsp/m68k/mcf5235/ChangeLog:1.60
--- rtems/c/src/lib/libbsp/m68k/mcf5235/ChangeLog:1.59 Wed Apr 28 14:43:25 2010
+++ rtems/c/src/lib/libbsp/m68k/mcf5235/ChangeLog Tue Aug 3 09:15:56 2010
@@ -1,3 +1,7 @@
+2010-08-03 Joel Sherrill <joel.sherrilL at OARcorp.com>
+
+ * console/console.c: Add BSP_poll_char.
+
2010-04-28 Joel Sherrill <joel.sherrilL at OARcorp.com>
* startup/init5235.c: Remove warnings.
diff -u rtems/c/src/lib/libbsp/m68k/mcf5235/console/console.c:1.9 rtems/c/src/lib/libbsp/m68k/mcf5235/console/console.c:1.10
--- rtems/c/src/lib/libbsp/m68k/mcf5235/console/console.c:1.9 Thu Dec 17 02:42:16 2009
+++ rtems/c/src/lib/libbsp/m68k/mcf5235/console/console.c Tue Aug 3 09:15:56 2010
@@ -40,7 +40,8 @@
continue;
rtems_interrupt_enable(level);
}
-BSP_output_char_function_type BSP_output_char = _BSP_null_char;
+BSP_output_char_function_type BSP_output_char = _BSP_null_char;
+BSP_polling_getchar_function_type BSP_poll_char = NULL;
#define MAX_UART_INFO 3
#define RX_BUFFER_SIZE 512
diff -u rtems/c/src/lib/libbsp/m68k/mcf5329/ChangeLog:1.31 rtems/c/src/lib/libbsp/m68k/mcf5329/ChangeLog:1.32
--- rtems/c/src/lib/libbsp/m68k/mcf5329/ChangeLog:1.31 Mon Apr 12 23:21:15 2010
+++ rtems/c/src/lib/libbsp/m68k/mcf5329/ChangeLog Tue Aug 3 09:15:57 2010
@@ -1,3 +1,7 @@
+2010-08-03 Joel Sherrill <joel.sherrilL at OARcorp.com>
+
+ * console/console.c: Add BSP_poll_char.
+
2010-04-13 Ralf Corsépius <ralf.corsepius at rtems.org>
* console/console.c: Fix broken comment formatting.
diff -u rtems/c/src/lib/libbsp/m68k/mcf5329/console/console.c:1.5 rtems/c/src/lib/libbsp/m68k/mcf5329/console/console.c:1.6
--- rtems/c/src/lib/libbsp/m68k/mcf5329/console/console.c:1.5 Mon Apr 12 23:20:05 2010
+++ rtems/c/src/lib/libbsp/m68k/mcf5329/console/console.c Tue Aug 3 09:15:57 2010
@@ -40,7 +40,8 @@
rtems_interrupt_enable(level);
}
-BSP_output_char_function_type BSP_output_char = _BSP_null_char;
+BSP_output_char_function_type BSP_output_char = _BSP_null_char;
+BSP_polling_getchar_function_type BSP_poll_char = NULL;
#define MAX_UART_INFO 3
#define RX_BUFFER_SIZE 512
diff -u rtems/c/src/lib/libbsp/m68k/mvme167/ChangeLog:1.128 rtems/c/src/lib/libbsp/m68k/mvme167/ChangeLog:1.129
--- rtems/c/src/lib/libbsp/m68k/mvme167/ChangeLog:1.128 Wed Apr 28 14:43:35 2010
+++ rtems/c/src/lib/libbsp/m68k/mvme167/ChangeLog Tue Aug 3 09:16:00 2010
@@ -1,3 +1,7 @@
+2010-08-03 Joel Sherrill <joel.sherrilL at OARcorp.com>
+
+ * console/console.c: Add BSP_poll_char.
+
2010-04-28 Joel Sherrill <joel.sherrilL at OARcorp.com>
* timer/timer.c: Remove warnings.
diff -u rtems/c/src/lib/libbsp/m68k/mvme167/console/console.c:1.18 rtems/c/src/lib/libbsp/m68k/mvme167/console/console.c:1.19
--- rtems/c/src/lib/libbsp/m68k/mvme167/console/console.c:1.18 Thu Dec 17 02:42:16 2009
+++ rtems/c/src/lib/libbsp/m68k/mvme167/console/console.c Tue Aug 3 09:16:00 2010
@@ -160,7 +160,8 @@
/* Printk function */
static void _BSP_output_char( char c );
-BSP_output_char_function_type BSP_output_char = _BSP_output_char;
+BSP_output_char_function_type BSP_output_char = _BSP_output_char;
+BSP_polling_getchar_function_type BSP_poll_char = NULL;
/* '\r' character in memory. This used to live on
* the stack but storing the '\r' character is
diff -u rtems/c/src/lib/libbsp/powerpc/mbx8xx/ChangeLog:1.172 rtems/c/src/lib/libbsp/powerpc/mbx8xx/ChangeLog:1.173
--- rtems/c/src/lib/libbsp/powerpc/mbx8xx/ChangeLog:1.172 Tue Jun 29 13:52:54 2010
+++ rtems/c/src/lib/libbsp/powerpc/mbx8xx/ChangeLog Tue Aug 3 09:16:36 2010
@@ -1,3 +1,7 @@
+2010-08-03 Joel Sherrill <joel.sherrilL at OARcorp.com>
+
+ * console/console.c: Add BSP_poll_char.
+
2010-06-29 Joel Sherrill <joel.sherrill at oarcorp.com>
* configure.ac: Remove AC_CHECK_SIZEOF([void *]).
diff -u rtems/c/src/lib/libbsp/powerpc/mbx8xx/console/console.c:1.21 rtems/c/src/lib/libbsp/powerpc/mbx8xx/console/console.c:1.22
--- rtems/c/src/lib/libbsp/powerpc/mbx8xx/console/console.c:1.21 Sun Apr 25 17:36:25 2010
+++ rtems/c/src/lib/libbsp/powerpc/mbx8xx/console/console.c Tue Aug 3 09:16:36 2010
@@ -91,7 +91,8 @@
static void _BSP_null_char( char c ) {return;}
static void serial_putchar(const char c);
-BSP_output_char_function_type BSP_output_char = _BSP_null_char;
+BSP_output_char_function_type BSP_output_char = _BSP_null_char;
+BSP_polling_getchar_function_type BSP_poll_char = NULL;
extern volatile m8xx_t m8xx;
extern struct rtems_termios_tty *ttyp[];
diff -u rtems/c/src/lib/libbsp/powerpc/mpc8260ads/ChangeLog:1.151 rtems/c/src/lib/libbsp/powerpc/mpc8260ads/ChangeLog:1.152
--- rtems/c/src/lib/libbsp/powerpc/mpc8260ads/ChangeLog:1.151 Tue Jun 29 13:52:57 2010
+++ rtems/c/src/lib/libbsp/powerpc/mpc8260ads/ChangeLog Tue Aug 3 09:16:38 2010
@@ -1,3 +1,7 @@
+2010-08-03 Joel Sherrill <joel.sherrilL at OARcorp.com>
+
+ * console/console.c: Add BSP_poll_char.
+
2010-06-29 Joel Sherrill <joel.sherrill at oarcorp.com>
* configure.ac: Remove AC_CHECK_SIZEOF([void *]).
diff -u rtems/c/src/lib/libbsp/powerpc/mpc8260ads/console/console.c:1.7 rtems/c/src/lib/libbsp/powerpc/mpc8260ads/console/console.c:1.8
--- rtems/c/src/lib/libbsp/powerpc/mpc8260ads/console/console.c:1.7 Wed Apr 21 11:01:43 2004
+++ rtems/c/src/lib/libbsp/powerpc/mpc8260ads/console/console.c Tue Aug 3 09:16:38 2010
@@ -98,7 +98,8 @@
static rtems_status_code do_poll_read( rtems_device_major_number major, rtems_device_minor_number minor, void * arg);
static rtems_status_code do_poll_write( rtems_device_major_number major, rtems_device_minor_number minor, void * arg);
-BSP_output_char_function_type BSP_output_char = _BSP_output_char;
+BSP_output_char_function_type BSP_output_char = _BSP_output_char;
+BSP_polling_getchar_function_type BSP_poll_char = NULL;
/*
* do_poll_read
diff -u rtems/c/src/lib/libbsp/powerpc/ss555/ChangeLog:1.66 rtems/c/src/lib/libbsp/powerpc/ss555/ChangeLog:1.67
--- rtems/c/src/lib/libbsp/powerpc/ss555/ChangeLog:1.66 Tue Jun 29 13:53:06 2010
+++ rtems/c/src/lib/libbsp/powerpc/ss555/ChangeLog Tue Aug 3 09:16:40 2010
@@ -1,3 +1,7 @@
+2010-08-03 Joel Sherrill <joel.sherrilL at OARcorp.com>
+
+ * console/console.c: Add BSP_poll_char.
+
2010-06-29 Joel Sherrill <joel.sherrill at oarcorp.com>
* configure.ac: Remove AC_CHECK_SIZEOF([void *]).
diff -u rtems/c/src/lib/libbsp/powerpc/ss555/console/console.c:1.5 rtems/c/src/lib/libbsp/powerpc/ss555/console/console.c:1.6
--- rtems/c/src/lib/libbsp/powerpc/ss555/console/console.c:1.5 Tue May 10 01:33:35 2005
+++ rtems/c/src/lib/libbsp/powerpc/ss555/console/console.c Tue Aug 3 09:16:40 2010
@@ -82,7 +82,8 @@
static void _BSP_null_char( char c ) {return;}
-BSP_output_char_function_type BSP_output_char = _BSP_null_char;
+BSP_output_char_function_type BSP_output_char = _BSP_null_char;
+BSP_polling_getchar_function_type BSP_poll_char = NULL;
/*
* do_poll_read
diff -u rtems/c/src/lib/libbsp/powerpc/tqm8xx/ChangeLog:1.52 rtems/c/src/lib/libbsp/powerpc/tqm8xx/ChangeLog:1.53
--- rtems/c/src/lib/libbsp/powerpc/tqm8xx/ChangeLog:1.52 Tue Jun 29 13:53:07 2010
+++ rtems/c/src/lib/libbsp/powerpc/tqm8xx/ChangeLog Tue Aug 3 09:16:41 2010
@@ -1,3 +1,7 @@
+2010-08-03 Joel Sherrill <joel.sherrilL at OARcorp.com>
+
+ * console/console.c: Add BSP_poll_char.
+
2010-06-29 Joel Sherrill <joel.sherrill at oarcorp.com>
* configure.ac: Remove AC_CHECK_SIZEOF([void *]).
diff -u rtems/c/src/lib/libbsp/powerpc/tqm8xx/console/console.c:1.9 rtems/c/src/lib/libbsp/powerpc/tqm8xx/console/console.c:1.10
--- rtems/c/src/lib/libbsp/powerpc/tqm8xx/console/console.c:1.9 Tue Jan 19 03:11:34 2010
+++ rtems/c/src/lib/libbsp/powerpc/tqm8xx/console/console.c Tue Aug 3 09:16:41 2010
@@ -856,7 +856,8 @@
}
}
-BSP_output_char_function_type BSP_output_char = console_debug_putc_onlcr;
+BSP_output_char_function_type BSP_output_char = console_debug_putc_onlcr;
+BSP_polling_getchar_function_type BSP_poll_char = NULL;
/*
*joel*:
2010-08-03 Joel Sherrill <joel.sherrilL at OARcorp.com>
* shared/bspgetworkarea.c: Formatting.
M 1.80 c/src/lib/libbsp/sparc/ChangeLog
M 1.7 c/src/lib/libbsp/sparc/shared/bspgetworkarea.c
diff -u rtems/c/src/lib/libbsp/sparc/ChangeLog:1.79 rtems/c/src/lib/libbsp/sparc/ChangeLog:1.80
--- rtems/c/src/lib/libbsp/sparc/ChangeLog:1.79 Tue May 11 02:35:55 2010
+++ rtems/c/src/lib/libbsp/sparc/ChangeLog Tue Aug 3 09:17:15 2010
@@ -1,3 +1,7 @@
+2010-08-03 Joel Sherrill <joel.sherrilL at OARcorp.com>
+
+ * shared/bspgetworkarea.c: Formatting.
+
2010-05-11 Sebastian Huber <sebastian.huber at embedded-brains.de>
* shared/startup/linkcmds.base: New file.
diff -u rtems/c/src/lib/libbsp/sparc/shared/bspgetworkarea.c:1.6 rtems/c/src/lib/libbsp/sparc/shared/bspgetworkarea.c:1.7
--- rtems/c/src/lib/libbsp/sparc/shared/bspgetworkarea.c:1.6 Sun Nov 29 09:33:27 2009
+++ rtems/c/src/lib/libbsp/sparc/shared/bspgetworkarea.c Tue Aug 3 09:17:15 2010
@@ -37,10 +37,10 @@
/* must be identical to STACK_SIZE in start.S */
#define STACK_SIZE (16 * 1024)
- *work_area_start = &end;
- *work_area_size = (void *)rdb_start - (void *)&end - STACK_SIZE;
- *heap_start = BSP_BOOTCARD_HEAP_USES_WORK_AREA;
- *heap_size = BSP_BOOTCARD_HEAP_SIZE_DEFAULT;
+ *work_area_start = &end;
+ *work_area_size = (void *)rdb_start - (void *)&end - STACK_SIZE;
+ *heap_start = BSP_BOOTCARD_HEAP_USES_WORK_AREA;
+ *heap_size = BSP_BOOTCARD_HEAP_SIZE_DEFAULT;
/*
* The following may be helpful in debugging what goes wrong when
--
Generated by Deluxe Loginfo [http://www.codewiz.org/projects/index.html#loginfo] 2.122 by Bernardo Innocenti <bernie at develer.com>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.rtems.org/pipermail/vc/attachments/20100803/bbb534bf/attachment-0001.html>
More information about the vc
mailing list