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