change log for rtems (2011-10-18)
rtems-vc at rtems.org
rtems-vc at rtems.org
Tue Oct 18 19:10:19 UTC 2011
*jennifer*:
2011-10-18 Jennifer Averett <Jennifer.Averett at OARcorp.com
* mrfs_support/fs_support.c: Resolved name conflict that was causing a
compiler error.
M 1.13 testsuites/fstests/ChangeLog
M 1.4 testsuites/fstests/mrfs_support/fs_support.c
diff -u rtems/testsuites/fstests/ChangeLog:1.12 rtems/testsuites/fstests/ChangeLog:1.13
--- rtems/testsuites/fstests/ChangeLog:1.12 Fri Sep 30 07:57:07 2011
+++ rtems/testsuites/fstests/ChangeLog Tue Oct 18 13:19:36 2011
@@ -1,3 +1,8 @@
+2011-10-18 Jennifer Averett <Jennifer.Averett at OARcorp.com
+
+ * mrfs_support/fs_support.c: Resolved name conflict that was causing a
+ compiler error.
+
2011-09-30 Ralf Corsépius <ralf.corsepius at rtems.org>
* fsrdwr/init.c: Use %zd to print size_t.
diff -u rtems/testsuites/fstests/mrfs_support/fs_support.c:1.3 rtems/testsuites/fstests/mrfs_support/fs_support.c:1.4
--- rtems/testsuites/fstests/mrfs_support/fs_support.c:1.3 Wed Sep 7 02:32:05 2011
+++ rtems/testsuites/fstests/mrfs_support/fs_support.c Tue Oct 18 13:19:36 2011
@@ -26,7 +26,7 @@
#define BLOCK_SIZE (512)
-rtems_rfs_format_config config = {
+rtems_rfs_format_config rfs_config = {
block_size:BLOCK_SIZE
};
@@ -40,7 +40,7 @@
init_ramdisk ();
- rc = rtems_rfs_format (RAMDISK_PATH, &config);
+ rc = rtems_rfs_format (RAMDISK_PATH, &rfs_config);
rtems_test_assert (rc == 0);
rc = mount (RAMDISK_PATH,
*jennifer*:
2011-10-18 Jennifer Averett <Jennifer.Averett at OARcorp.com>
PR 1917/bsps
* console.c: Modifications to add dynamic tables for libchip serial
drivers.
* console_control.c, console_private.h, console_read.c,
console_select.c, console_write.c: New files.
M 1.191 c/src/lib/libbsp/shared/ChangeLog
M 1.17 c/src/lib/libbsp/shared/console.c
A 1.1 c/src/lib/libbsp/shared/console_control.c
A 1.1 c/src/lib/libbsp/shared/console_private.h
A 1.1 c/src/lib/libbsp/shared/console_read.c
A 1.1 c/src/lib/libbsp/shared/console_select.c
A 1.1 c/src/lib/libbsp/shared/console_write.c
diff -u rtems/c/src/lib/libbsp/shared/ChangeLog:1.190 rtems/c/src/lib/libbsp/shared/ChangeLog:1.191
--- rtems/c/src/lib/libbsp/shared/ChangeLog:1.190 Tue Aug 30 07:16:24 2011
+++ rtems/c/src/lib/libbsp/shared/ChangeLog Tue Oct 18 13:23:51 2011
@@ -1,3 +1,11 @@
+2011-10-18 Jennifer Averett <Jennifer.Averett at OARcorp.com>
+
+ PR 1917/bsps
+ * console.c: Modifications to add dynamic tables for libchip serial
+ drivers.
+ * console_control.c, console_private.h, console_read.c,
+ console_select.c, console_write.c: New files.
+
2011-08-30 Joel Sherrill <joel.sherrill at oarcorp.com>
* bootcard.c: Revert patch and add comment clarifying code and need for
diff -u rtems/c/src/lib/libbsp/shared/console.c:1.16 rtems/c/src/lib/libbsp/shared/console.c:1.17
--- rtems/c/src/lib/libbsp/shared/console.c:1.16 Mon Mar 21 03:19:19 2011
+++ rtems/c/src/lib/libbsp/shared/console.c Tue Oct 18 13:23:51 2011
@@ -1,10 +1,13 @@
-/*
- * This file contains the generic console driver shell used
- * by all console drivers using libchip.
+/**
+ * @file
*
- * This driver uses the termios pseudo driver.
+ * @ingroup Console
*
- * COPYRIGHT (c) 1989-1997.
+ * @brief Extension of the generic libchip console driver shell
+ */
+
+/*
+ * COPYRIGHT (c) 1989-2011.
* On-Line Applications Research Corporation (OAR).
*
* The license and distribution terms for this file may be
@@ -16,30 +19,101 @@
#include <bsp.h>
#include <rtems/libio.h>
-#include <rtems/console.h>
#include <stdlib.h>
#include <assert.h>
#include <termios.h>
#include <rtems/termiostypes.h>
#include <libchip/serial.h>
+#include "console_private.h"
+
+unsigned long Console_Port_Count = 0;
+console_tbl **Console_Port_Tbl = NULL;
+console_data *Console_Port_Data = NULL;
+rtems_device_minor_number Console_Port_Minor = 0;
+bool console_initialized = false;
/*
- * Configuration Information
+ * console_initialize_pointers
+ *
+ * This method is used to initialize the table of pointers to the
+ * serial port configuration structure entries.
*/
+static void console_initialize_pointers(void)
+{
+ int i;
-extern console_data Console_Port_Data[];
-extern unsigned long Console_Port_Count;
-extern rtems_device_minor_number Console_Port_Minor;
+ if ( Console_Port_Tbl )
+ return;
-/*PAGE
+ Console_Port_Count = Console_Configuration_Count;
+ Console_Port_Tbl = malloc( Console_Port_Count * sizeof( console_tbl * ) );
+ if (Console_Port_Tbl == NULL)
+ rtems_panic("No memory for console pointers");
+
+ for (i=0 ; i < Console_Port_Count ; i++)
+ Console_Port_Tbl[i] = &Console_Configuration_Ports[i];
+}
+
+/*
+ * console_register_devices
*
+ * This method is used to add dynamically discovered devices to the
+ * set of serial ports supported.
+ */
+void console_register_devices(
+ console_tbl *new_ports,
+ size_t number_of_ports
+)
+{
+ int old_number_of_ports;
+ int i;
+
+ console_initialize_pointers();
+
+ /*
+ * console_initialize has been invoked so it is now too late to
+ * register devices.
+ */
+ if ( console_initialized == true ) {
+ printk( "Attempt to register console devices after driver initialized\n" );
+ rtems_fatal_error_occurred( 0xdead0001 );
+ }
+
+ /*
+ * Allocate memory for the console port extension
+ */
+ old_number_of_ports = Console_Port_Count;
+ Console_Port_Count += number_of_ports;
+ Console_Port_Tbl = realloc(
+ Console_Port_Tbl,
+ Console_Port_Count * sizeof( console_tbl * )
+ );
+ if ( Console_Port_Tbl == NULL ) {
+ printk( "Unable to allocate pointer table for registering console devices\n" );
+ rtems_fatal_error_occurred( 0xdead0002 );
+ }
+
+ Console_Port_Data = calloc( Console_Port_Count, sizeof( console_data ) );
+ if ( Console_Port_Data == NULL ) {
+ printk( "Unable to allocate data table for console devices\n" );
+ rtems_fatal_error_occurred( 0xdead0003 );
+ }
+
+ /*
+ * Now add the new devices at the end.
+ */
+
+ for (i=0 ; i < number_of_ports ; i++) {
+ Console_Port_Tbl[old_number_of_ports + i] = &new_ports[i];
+ }
+}
+
+/*
* console_open
*
* open a port as a termios console.
- *
*/
-
rtems_device_driver console_open(
rtems_device_major_number major,
rtems_device_minor_number minor,
@@ -65,17 +139,17 @@
* Open the port as a termios console driver.
*/
- cptr = &Console_Port_Tbl[minor];
+ cptr = Console_Port_Tbl[minor];
Callbacks.firstOpen = cptr->pDeviceFns->deviceFirstOpen;
Callbacks.lastClose = cptr->pDeviceFns->deviceLastClose;
Callbacks.pollRead = cptr->pDeviceFns->deviceRead;
Callbacks.write = cptr->pDeviceFns->deviceWrite;
Callbacks.setAttributes = cptr->pDeviceFns->deviceSetAttributes;
if (cptr->pDeviceFlow != NULL) {
- Callbacks.stopRemoteTx = cptr->pDeviceFlow->deviceStopRemoteTx;
+ Callbacks.stopRemoteTx = cptr->pDeviceFlow->deviceStopRemoteTx;
Callbacks.startRemoteTx = cptr->pDeviceFlow->deviceStartRemoteTx;
} else {
- Callbacks.stopRemoteTx = NULL;
+ Callbacks.stopRemoteTx = NULL;
Callbacks.startRemoteTx = NULL;
}
Callbacks.outputUsesInterrupts = cptr->pDeviceFns->deviceOutputUsesInterrupts;
@@ -85,7 +159,7 @@
* Console_Port_Tbl[minor].ulHysteresis);
*/
- status = rtems_termios_open ( major, minor, arg, &Callbacks );
+ status = rtems_termios_open( major, minor, arg, &Callbacks );
Console_Port_Data[minor].termios_data = args->iop->data1;
/* Get tty pointur from the Console_Port_Data */
@@ -103,37 +177,35 @@
/*
* If it's the first open, modified, if need, the port parameters
*/
- if (minor!=Console_Port_Minor) {
+ if ( minor != Console_Port_Minor ) {
/*
- * If this is not the console we do not want ECHO and
- * so forth
+ * If this is not the console we do not want ECHO and so forth
*/
- IoctlArgs.iop=args->iop;
- IoctlArgs.command=RTEMS_IO_GET_ATTRIBUTES;
- IoctlArgs.buffer=&Termios;
- rtems_termios_ioctl(&IoctlArgs);
- Termios.c_lflag=ICANON;
- IoctlArgs.command=RTEMS_IO_SET_ATTRIBUTES;
- rtems_termios_ioctl(&IoctlArgs);
+ IoctlArgs.iop = args->iop;
+ IoctlArgs.command = RTEMS_IO_GET_ATTRIBUTES;
+ IoctlArgs.buffer = &Termios;
+ rtems_termios_ioctl( &IoctlArgs );
+
+ Termios.c_lflag = ICANON;
+ IoctlArgs.command = RTEMS_IO_SET_ATTRIBUTES;
+ rtems_termios_ioctl( &IoctlArgs );
}
}
if ( (args->iop->flags&LIBIO_FLAGS_READ) &&
- Console_Port_Tbl[minor].pDeviceFlow &&
- Console_Port_Tbl[minor].pDeviceFlow->deviceStartRemoteTx) {
- Console_Port_Tbl[minor].pDeviceFlow->deviceStartRemoteTx(minor);
+ cptr->pDeviceFlow &&
+ cptr->pDeviceFlow->deviceStartRemoteTx) {
+ cptr->pDeviceFlow->deviceStartRemoteTx(minor);
}
return status;
}
-/*PAGE
- *
+/*
* console_close
*
* This routine closes a port that has been opened as console.
*/
-
rtems_device_driver console_close(
rtems_device_major_number major,
rtems_device_minor_number minor,
@@ -142,8 +214,11 @@
{
rtems_libio_open_close_args_t *args = arg;
struct rtems_termios_tty *current_tty;
+ console_tbl *cptr;
+
+ cptr = Console_Port_Tbl[minor];
- /* Get tty pointeur from the Console_Port_Data */
+ /* Get tty pointer from the Console_Port_Data */
current_tty = Console_Port_Data[minor].termios_data;
/* Get the tty refcount to determine if we need to do deviceStopRemoteTx.
@@ -151,111 +226,93 @@
*/
if ( (current_tty->refcount == 1) ) {
if ( (args->iop->flags&LIBIO_FLAGS_READ) &&
- Console_Port_Tbl[minor].pDeviceFlow &&
- Console_Port_Tbl[minor].pDeviceFlow->deviceStopRemoteTx) {
- Console_Port_Tbl[minor].pDeviceFlow->deviceStopRemoteTx(minor);
+ cptr->pDeviceFlow &&
+ cptr->pDeviceFlow->deviceStopRemoteTx) {
+ cptr->pDeviceFlow->deviceStopRemoteTx(minor);
}
}
return rtems_termios_close (arg);
}
-/*PAGE
- *
- * console_read
- *
- * This routine uses the termios driver to read a character.
- */
-
-rtems_device_driver console_read(
- rtems_device_major_number major,
- rtems_device_minor_number minor,
- void * arg
-)
-{
- return rtems_termios_read (arg);
-}
-
-/*PAGE
- *
- * console_write
- *
- * this routine uses the termios driver to write a character.
- */
-
-rtems_device_driver console_write(
- rtems_device_major_number major,
- rtems_device_minor_number minor,
- void * arg
-)
-{
- return rtems_termios_write (arg);
-}
-
-/*PAGE
- *
- * console_control
- *
- * this routine uses the termios driver to process io
- */
-
-rtems_device_driver console_control(
- rtems_device_major_number major,
- rtems_device_minor_number minor,
- void * arg
-)
-{
- return rtems_termios_ioctl (arg);
-}
-
-/*PAGE
- *
+/*
* console_initialize
*
* Routine called to initialize the console device driver.
*/
-
rtems_device_driver console_initialize(
rtems_device_major_number major,
- rtems_device_minor_number minor,
+ rtems_device_minor_number minor_arg,
void *arg
)
{
- rtems_status_code sc = RTEMS_SUCCESSFUL;
- bool first = true;
+ rtems_status_code status;
+ rtems_device_minor_number minor;
+ console_tbl *port;
+ /*
+ * If we have no devices which were registered earlier then we
+ * must still initialize pointers and set Console_Port_Data.
+ */
+ if ( ! Console_Port_Tbl ) {
+ console_initialize_pointers();
+ Console_Port_Data = calloc( Console_Port_Count, sizeof( console_data ) );
+ if ( Console_Port_Data == NULL ) {
+ printk( "Unable to allocate data table for console devices\n" );
+ rtems_fatal_error_occurred( 0xdead0003 );
+ }
+ }
+
+ /*
+ * console_initialize has been invoked so it is now too late to
+ * register devices.
+ */
+ console_initialized = true;
+
+ /*
+ * Initialize the termio interface, our table of pointers to device
+ * information structures, and determine if the user has explicitly
+ * specified which device is to be used for the console.
+ */
rtems_termios_initialize();
+ bsp_console_select();
+
+ /*
+ * Iterate over all of the console devices we know about
+ * and initialize them.
+ */
+ for (minor=0 ; minor < Console_Port_Count ; minor++) {
+ /*
+ * First perform the configuration dependent probe, then the
+ * device dependent probe
+ */
+ port = Console_Port_Tbl[minor];
- for (minor = 0; minor < Console_Port_Count; ++minor) {
- const console_tbl *device = &Console_Port_Tbl [minor];
+ if ( (!port->deviceProbe || port->deviceProbe(minor)) &&
+ port->pDeviceFns->deviceProbe(minor)) {
- if (
- (device->deviceProbe == NULL || device->deviceProbe(minor))
- && device->pDeviceFns->deviceProbe(minor)
- ) {
- device->pDeviceFns->deviceInitialize(minor);
- if (first) {
- first = false;
- Console_Port_Minor = minor;
- sc = rtems_io_register_name(CONSOLE_DEVICE_NAME, major, minor);
- if (sc != RTEMS_SUCCESSFUL) {
- rtems_fatal_error_occurred(sc);
- }
+ status = rtems_io_register_name( port->sDeviceName, major, minor );
+ if (status != RTEMS_SUCCESSFUL) {
+ printk( "Unable to register /dev/console\n" );
+ rtems_fatal_error_occurred(status);
}
- if (device->sDeviceName != NULL) {
- sc = rtems_io_register_name(device->sDeviceName, major, minor);
- if (sc != RTEMS_SUCCESSFUL) {
- rtems_fatal_error_occurred(sc);
+
+ if (minor == Console_Port_Minor) {
+ if (RTEMS_DEBUG)
+ printk( "Register %s as the CONSOLE\n", port->sDeviceName );
+ status = rtems_io_register_name( "dev/console", major, minor );
+ if (status != RTEMS_SUCCESSFUL) {
+ printk( "Unable to register /dev/console\n" );
+ rtems_fatal_error_occurred(status);
}
}
- }
- }
- if (first) {
- /*
- * Failed to find a working device
- */
- rtems_fatal_error_occurred(RTEMS_IO_ERROR);
+ /*
+ * Initialize the hardware device.
+ */
+ port->pDeviceFns->deviceInitialize(minor);
+
+ }
}
return RTEMS_SUCCESSFUL;
diff -u /dev/null rtems/c/src/lib/libbsp/shared/console_control.c:1.1
--- /dev/null Tue Oct 18 14:10:12 2011
+++ rtems/c/src/lib/libbsp/shared/console_control.c Tue Oct 18 13:23:51 2011
@@ -0,0 +1,46 @@
+/**
+ * @file
+ *
+ * @ingroup Console
+ *
+ * @brief Generic libchip console io_ctl extension
+ */
+
+
+/*
+ * This file is an extension of the generic console driver
+ * shell used by all console drivers using libchip.
+ *
+ * COPYRIGHT (c) 1989-2011.
+ * On-Line Applications Research Corporation (OAR).
+ *
+ * The license and distribution terms for this file may be
+ * found in the file LICENSE in this distribution or at
+ * http://www.rtems.com/license/LICENSE.
+ *
+ * $Id$
+ */
+
+#include <bsp.h>
+#include <rtems/libio.h>
+#include <stdlib.h>
+#include <assert.h>
+#include <termios.h>
+
+#include <rtems/termiostypes.h>
+#include <libchip/serial.h>
+#include "console_private.h"
+
+/*
+ * console_control
+ *
+ * this routine uses the termios driver to process io
+ */
+rtems_device_driver console_control(
+ rtems_device_major_number major,
+ rtems_device_minor_number minor,
+ void * arg
+)
+{
+ return rtems_termios_ioctl (arg);
+}
diff -u /dev/null rtems/c/src/lib/libbsp/shared/console_private.h:1.1
--- /dev/null Tue Oct 18 14:10:12 2011
+++ rtems/c/src/lib/libbsp/shared/console_private.h Tue Oct 18 13:23:51 2011
@@ -0,0 +1,92 @@
+/**
+ * @file
+ *
+ * @ingroup Console
+ *
+ * @brief Extension of the generic libchip console driver shell
+ */
+
+/*
+ * COPYRIGHT (c) 1989-2011.
+ * On-Line Applications Research Corporation (OAR).
+ *
+ * The license and distribution terms for this file may be
+ * found in the file LICENSE in this distribution or at
+ * http://www.rtems.com/license/LICENSE.
+ *
+ * $Id$
+ */
+
+#ifndef _PC386_CONSOLE_PRIVATE_h
+#define _PC386_CONSOLE_PRIVATE_h
+
+#include <rtems.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+extern rtems_device_minor_number Console_Port_Minor;
+extern rtems_device_minor_number BSPPrintkPort;
+
+/**
+ * @brief bsp_console_select
+ *
+ * This function selects the port to be used as console
+ *
+ */
+void bsp_console_select(void);
+
+/**
+ * @brief bsp_com_outch
+ *
+ * This function puts a character out of the console port.
+ *
+ * @param[in] ch specifies the character to write
+ */
+extern void bsp_com_outch(char ch);
+
+/**
+ * @brief bsp_com_inch
+ *
+ * This function gets a character from the console
+ * port.
+ *
+ * @return This method returns the character that
+ * was retrieved from the console port.
+ */
+extern int bsp_com_inch(void);
+
+/**
+ * @brief
+ *
+ * This function
+ *
+ * @return This method returns
+ */
+int vt_ioctl( unsigned int cmd, unsigned long arg);
+
+/**
+ * @brief console_register_devices
+ *
+ * This function expands the console table to include previous
+ * ports and the array of new ports specified.
+ *
+ * @param[in] new_ports specifies an array of new ports to register
+ * @param[in] number_of_ports specifies the number of elements
+ * in the new_ports array
+ *
+ */
+void console_register_devices(
+ console_tbl *new_ports,
+ size_t number_of_ports
+);
+
+#ifdef __cplusplus
+}
+#endif
+
+/**@}*/
+
+#endif
+/* end of include file */
diff -u /dev/null rtems/c/src/lib/libbsp/shared/console_read.c:1.1
--- /dev/null Tue Oct 18 14:10:12 2011
+++ rtems/c/src/lib/libbsp/shared/console_read.c Tue Oct 18 13:23:51 2011
@@ -0,0 +1,45 @@
+/**
+ * @file
+ *
+ * @ingroup Console
+ *
+ * @brief Generic libchip console read extension
+ */
+
+/*
+ * This file is an extension of the generic console driver
+ * shell used by all console drivers using libchip.
+ *
+ * COPYRIGHT (c) 1989-2011.
+ * On-Line Applications Research Corporation (OAR).
+ *
+ * The license and distribution terms for this file may be
+ * found in the file LICENSE in this distribution or at
+ * http://www.rtems.com/license/LICENSE.
+ *
+ * $Id$
+ */
+
+#include <bsp.h>
+#include <rtems/libio.h>
+#include <stdlib.h>
+#include <assert.h>
+#include <termios.h>
+
+#include <rtems/termiostypes.h>
+#include <libchip/serial.h>
+#include "console_private.h"
+
+/*
+ * console_read
+ *
+ * This routine uses the termios driver to read a character.
+ */
+rtems_device_driver console_read(
+ rtems_device_major_number major,
+ rtems_device_minor_number minor,
+ void * arg
+)
+{
+ return rtems_termios_read (arg);
+}
diff -u /dev/null rtems/c/src/lib/libbsp/shared/console_select.c:1.1
--- /dev/null Tue Oct 18 14:10:12 2011
+++ rtems/c/src/lib/libbsp/shared/console_select.c Tue Oct 18 13:23:51 2011
@@ -0,0 +1,102 @@
+/**
+ * @file
+ *
+ * @ingroup Console
+ *
+ * @brief Generic libchip console select
+ */
+
+/*
+ * This file contains a routine to select the
+ * console based upon a number of criteria.
+ *
+ * COPYRIGHT (c) 2011.
+ * On-Line Applications Research Corporation (OAR).
+ *
+ * The license and distribution terms for this file may be
+ * found in the file LICENSE in this distribution or at
+ * http://www.rtems.com/license/LICENSE.
+ *
+ * $Id$
+ */
+
+#include <bsp.h>
+#include <rtems/libio.h>
+#include <stdlib.h>
+#include <assert.h>
+#include <termios.h>
+
+#include <rtems/termiostypes.h>
+#include <libchip/serial.h>
+#include "console_private.h"
+
+/*
+ * Method to return true if the device associated with the
+ * minor number probs available.
+ */
+static bool bsp_Is_Available( rtems_device_minor_number minor )
+{
+ console_tbl *cptr = Console_Port_Tbl[minor];
+
+ /*
+ * First perform the configuration dependent probe, then the
+ * device dependent probe
+ */
+ if ((!cptr->deviceProbe || cptr->deviceProbe(minor)) &&
+ cptr->pDeviceFns->deviceProbe(minor)) {
+ return true;
+ }
+ return false;
+}
+
+/*
+ * Method to return the first available device.
+ */
+static rtems_device_minor_number bsp_First_Available_Device( void )
+{
+ rtems_device_minor_number minor;
+
+ for (minor=0; minor < Console_Port_Count ; minor++) {
+ console_tbl *cptr = Console_Port_Tbl[minor];
+
+ /*
+ * First perform the configuration dependent probe, then the
+ * device dependent probe
+ */
+
+ if ((!cptr->deviceProbe || cptr->deviceProbe(minor)) &&
+ cptr->pDeviceFns->deviceProbe(minor)) {
+ return minor;
+ }
+ }
+
+ /*
+ * Error No devices were found. We will want to bail here.
+ */
+ rtems_fatal_error_occurred(RTEMS_IO_ERROR);
+}
+
+void bsp_console_select(void)
+{
+
+ /*
+ * Reset Console_Port_Minor and
+ * BSPPrintkPort here if desired.
+ *
+ * This default version allows the bsp to set these
+ * values at creation and will not touch them again
+ * unless the selected port number is not available.
+ */
+
+ /*
+ * If the device that was selected isn't available then
+ * let the user know and select the first available device.
+ */
+ if ( !bsp_Is_Available( Console_Port_Minor ) ) {
+ printk(
+ "Error finding %s setting console to first available\n",
+ Console_Port_Tbl[Console_Port_Minor]->sDeviceName
+ );
+ Console_Port_Minor = bsp_First_Available_Device();
+ }
+}
diff -u /dev/null rtems/c/src/lib/libbsp/shared/console_write.c:1.1
--- /dev/null Tue Oct 18 14:10:12 2011
+++ rtems/c/src/lib/libbsp/shared/console_write.c Tue Oct 18 13:23:51 2011
@@ -0,0 +1,45 @@
+/**
+ * @file
+ *
+ * @ingroup Console
+ *
+ * @brief Generic libchip console write extension
+ */
+
+/*
+ * This file is an extension of the generic console driver
+ * shell used by all console drivers using libchip.
+ *
+ * COPYRIGHT (c) 1989-2011.
+ * On-Line Applications Research Corporation (OAR).
+ *
+ * The license and distribution terms for this file may be
+ * found in the file LICENSE in this distribution or at
+ * http://www.rtems.com/license/LICENSE.
+ *
+ * $Id$
+ */
+
+#include <bsp.h>
+#include <rtems/libio.h>
+#include <stdlib.h>
+#include <assert.h>
+#include <termios.h>
+
+#include <rtems/termiostypes.h>
+#include <libchip/serial.h>
+#include "console_private.h"
+
+/*
+ * console_write
+ *
+ * this routine uses the termios driver to write a character.
+ */
+rtems_device_driver console_write(
+ rtems_device_major_number major,
+ rtems_device_minor_number minor,
+ void * arg
+)
+{
+ return rtems_termios_write (arg);
+}
*jennifer*:
2011-10-18 Jennifer Averett <Jennifer.Averett at OARcorp.com>
PR 1917/bsps
* Makefile.am, console/console-config.c, console/hsu.c: Modifications
to add dynamic tables for libchip serial drivers.
M 1.39 c/src/lib/libbsp/arm/lpc32xx/ChangeLog
M 1.15 c/src/lib/libbsp/arm/lpc32xx/Makefile.am
M 1.3 c/src/lib/libbsp/arm/lpc32xx/console/console-config.c
M 1.3 c/src/lib/libbsp/arm/lpc32xx/console/hsu.c
diff -u rtems/c/src/lib/libbsp/arm/lpc32xx/ChangeLog:1.38 rtems/c/src/lib/libbsp/arm/lpc32xx/ChangeLog:1.39
--- rtems/c/src/lib/libbsp/arm/lpc32xx/ChangeLog:1.38 Thu Sep 22 02:09:07 2011
+++ rtems/c/src/lib/libbsp/arm/lpc32xx/ChangeLog Tue Oct 18 13:25:15 2011
@@ -1,3 +1,9 @@
+2011-10-18 Jennifer Averett <Jennifer.Averett at OARcorp.com>
+
+ PR 1917/bsps
+ * Makefile.am, console/console-config.c, console/hsu.c: Modifications
+ to add dynamic tables for libchip serial drivers.
+
2011-09-22 Sebastian Huber <sebastian.huber at embedded-brains.de>
* make/custom/lpc32xx.inc: Workaround for GCC bug 50106.
diff -u rtems/c/src/lib/libbsp/arm/lpc32xx/Makefile.am:1.14 rtems/c/src/lib/libbsp/arm/lpc32xx/Makefile.am:1.15
--- rtems/c/src/lib/libbsp/arm/lpc32xx/Makefile.am:1.14 Fri Jul 1 08:05:06 2011
+++ rtems/c/src/lib/libbsp/arm/lpc32xx/Makefile.am Tue Oct 18 13:25:15 2011
@@ -109,8 +109,12 @@
# Console
libbsp_a_SOURCES += ../../shared/console.c \
+ ../../shared/console_select.c \
console/console-config.c \
- console/hsu.c
+ console/hsu.c \
+ ../../shared/console_read.c \
+ ../../shared/console_write.c \
+ ../../shared/console_control.c
# Clock
libbsp_a_SOURCES += ../shared/lpc/clock/lpc-clock-config.c
diff -u rtems/c/src/lib/libbsp/arm/lpc32xx/console/console-config.c:1.2 rtems/c/src/lib/libbsp/arm/lpc32xx/console/console-config.c:1.3
--- rtems/c/src/lib/libbsp/arm/lpc32xx/console/console-config.c:1.2 Fri Apr 9 07:25:21 2010
+++ rtems/c/src/lib/libbsp/arm/lpc32xx/console/console-config.c Tue Oct 18 13:25:15 2011
@@ -42,11 +42,9 @@
reg [i] = val;
}
-rtems_device_minor_number Console_Port_Minor = 0;
-
/* FIXME: Console selection */
-console_tbl Console_Port_Tbl [] = {
+console_tbl Console_Configuration_Ports [] = {
#ifdef LPC32XX_CONFIG_U5CLK
{
.sDeviceName = "/dev/ttyS5",
@@ -197,8 +195,6 @@
};
#define LPC32XX_UART_COUNT \
- (sizeof(Console_Port_Tbl) / sizeof(Console_Port_Tbl [0]))
-
-unsigned long Console_Port_Count = LPC32XX_UART_COUNT;
+ (sizeof(Console_Configuration_Ports) / sizeof(Console_Configuration_Ports [0]))
-console_data Console_Port_Data [LPC32XX_UART_COUNT];
+unsigned long Console_Configuration_Count = LPC32XX_UART_COUNT;
diff -u rtems/c/src/lib/libbsp/arm/lpc32xx/console/hsu.c:1.2 rtems/c/src/lib/libbsp/arm/lpc32xx/console/hsu.c:1.3
--- rtems/c/src/lib/libbsp/arm/lpc32xx/console/hsu.c:1.2 Mon Aug 23 02:25:47 2010
+++ rtems/c/src/lib/libbsp/arm/lpc32xx/console/hsu.c Tue Oct 18 13:25:15 2011
@@ -64,7 +64,7 @@
{
rtems_libio_open_close_args_t *oca = arg;
struct rtems_termios_tty *tty = oca->iop->data1;
- console_tbl *ct = &Console_Port_Tbl [minor];
+ console_tbl *ct = Console_Port_Tbl [minor];
console_data *cd = &Console_Port_Data [minor];
volatile lpc32xx_hsu *hsu = (volatile lpc32xx_hsu *) ct->ulCtrlPort1;
@@ -77,7 +77,7 @@
static ssize_t lpc32xx_hsu_write(int minor, const char *buf, size_t len)
{
- console_tbl *ct = &Console_Port_Tbl [minor];
+ console_tbl *ct = Console_Port_Tbl [minor];
console_data *cd = &Console_Port_Data [minor];
volatile lpc32xx_hsu *hsu = (volatile lpc32xx_hsu *) ct->ulCtrlPort1;
size_t tx_level = (hsu->level & HSU_LEVEL_TX_MASK) >> HSU_LEVEL_TX_SHIFT;
@@ -101,7 +101,7 @@
static void lpc32xx_hsu_interrupt_handler(void *arg)
{
int minor = (int) arg;
- console_tbl *ct = &Console_Port_Tbl [minor];
+ console_tbl *ct = Console_Port_Tbl [minor];
console_data *cd = &Console_Port_Data [minor];
volatile lpc32xx_hsu *hsu = (volatile lpc32xx_hsu *) ct->ulCtrlPort1;
@@ -141,7 +141,7 @@
static void lpc32xx_hsu_initialize(int minor)
{
- console_tbl *ct = &Console_Port_Tbl [minor];
+ console_tbl *ct = Console_Port_Tbl [minor];
console_data *cd = &Console_Port_Data [minor];
volatile lpc32xx_hsu *hsu = (volatile lpc32xx_hsu *) ct->ulCtrlPort1;
@@ -166,7 +166,7 @@
static int lpc32xx_hsu_set_attributes(int minor, const struct termios *term)
{
- console_tbl *ct = &Console_Port_Tbl [minor];
+ console_tbl *ct = Console_Port_Tbl [minor];
volatile lpc32xx_hsu *hsu = (volatile lpc32xx_hsu *) ct->ulCtrlPort1;
int baud_flags = term->c_cflag & CBAUD;
*jennifer*:
2011-10-18 Jennifer Averett <Jennifer.Averett at OARcorp.com>
PR 1917/bsps
* Makefile.am, console/console-config.c: Modifications to add dynamic
tables for libchip serial drivers.
M 1.74 c/src/lib/libbsp/arm/lpc24xx/ChangeLog
M 1.38 c/src/lib/libbsp/arm/lpc24xx/Makefile.am
M 1.7 c/src/lib/libbsp/arm/lpc24xx/console/console-config.c
diff -u rtems/c/src/lib/libbsp/arm/lpc24xx/ChangeLog:1.73 rtems/c/src/lib/libbsp/arm/lpc24xx/ChangeLog:1.74
--- rtems/c/src/lib/libbsp/arm/lpc24xx/ChangeLog:1.73 Mon Oct 17 05:39:59 2011
+++ rtems/c/src/lib/libbsp/arm/lpc24xx/ChangeLog Tue Oct 18 13:25:35 2011
@@ -1,3 +1,9 @@
+2011-10-18 Jennifer Averett <Jennifer.Averett at OARcorp.com>
+
+ PR 1917/bsps
+ * Makefile.am, console/console-config.c: Modifications to add dynamic
+ tables for libchip serial drivers.
+
2011-10-17 Sebastian Huber <sebastian.huber at embedded-brains.de>
* include/start-config.h, make/custom/lpc24xx_plx800_rom_int.cfg,
diff -u rtems/c/src/lib/libbsp/arm/lpc24xx/Makefile.am:1.37 rtems/c/src/lib/libbsp/arm/lpc24xx/Makefile.am:1.38
--- rtems/c/src/lib/libbsp/arm/lpc24xx/Makefile.am:1.37 Mon Oct 17 05:39:59 2011
+++ rtems/c/src/lib/libbsp/arm/lpc24xx/Makefile.am Tue Oct 18 13:25:35 2011
@@ -111,7 +111,9 @@
# Console
libbsp_a_SOURCES += ../../shared/console.c \
- console/console-config.c
+ console/console-config.c ../../shared/console_select.c \
+ ../../shared/console_read.c ../../shared/console_write.c \
+ ../../shared/console_control.c
# Clock
libbsp_a_SOURCES += ../shared/lpc/clock/lpc-clock-config.c
diff -u rtems/c/src/lib/libbsp/arm/lpc24xx/console/console-config.c:1.6 rtems/c/src/lib/libbsp/arm/lpc24xx/console/console-config.c:1.7
--- rtems/c/src/lib/libbsp/arm/lpc24xx/console/console-config.c:1.6 Thu May 19 07:30:00 2011
+++ rtems/c/src/lib/libbsp/arm/lpc24xx/console/console-config.c Tue Oct 18 13:25:35 2011
@@ -89,9 +89,7 @@
}
#endif
-rtems_device_minor_number Console_Port_Minor = 0;
-
-console_tbl Console_Port_Tbl [] = {
+console_tbl Console_Configuration_Ports [] = {
#ifdef LPC24XX_CONFIG_CONSOLE
{
.sDeviceName = "/dev/ttyS0",
@@ -179,8 +177,5 @@
};
#define LPC24XX_UART_COUNT \
- (sizeof(Console_Port_Tbl) / sizeof(Console_Port_Tbl [0]))
-
-unsigned long Console_Port_Count = LPC24XX_UART_COUNT;
-
-console_data Console_Port_Data [LPC24XX_UART_COUNT];
+ (sizeof(Console_Configuration_Ports) / sizeof(console_tbl))
+unsigned long Console_Configuration_Count = LPC24XX_UART_COUNT;
*jennifer*:
2011-10-18 Jennifer Averett <Jennifer.Averett at OARcorp.com>
PR 1917/bsps
* Makefile.am, console/uart.c: Modifications to add dynamic tables for
libchip serial drivers.
M 1.120 c/src/lib/libbsp/arm/edb7312/ChangeLog
M 1.42 c/src/lib/libbsp/arm/edb7312/Makefile.am
M 1.9 c/src/lib/libbsp/arm/edb7312/console/uart.c
M 1.65 c/src/lib/libbsp/arm/gp32/ChangeLog
M 1.25 c/src/lib/libbsp/arm/gp32/Makefile.am
M 1.7 c/src/lib/libbsp/arm/gp32/console/uart.c
M 1.59 c/src/lib/libbsp/arm/rtl22xx/ChangeLog
M 1.19 c/src/lib/libbsp/arm/rtl22xx/Makefile.am
M 1.8 c/src/lib/libbsp/arm/rtl22xx/console/uart.c
diff -u rtems/c/src/lib/libbsp/arm/edb7312/ChangeLog:1.119 rtems/c/src/lib/libbsp/arm/edb7312/ChangeLog:1.120
--- rtems/c/src/lib/libbsp/arm/edb7312/ChangeLog:1.119 Sun Jun 19 03:12:17 2011
+++ rtems/c/src/lib/libbsp/arm/edb7312/ChangeLog Tue Oct 18 13:26:36 2011
@@ -1,3 +1,9 @@
+2011-10-18 Jennifer Averett <Jennifer.Averett at OARcorp.com>
+
+ PR 1917/bsps
+ * Makefile.am, console/uart.c: Modifications to add dynamic tables for
+ libchip serial drivers.
+
2011-06-19 Ralf Corsépius <ralf.corsepius at rtems.org>
* Makefile.am: Fix broken path to clockdrv_shell.h.
diff -u rtems/c/src/lib/libbsp/arm/edb7312/Makefile.am:1.41 rtems/c/src/lib/libbsp/arm/edb7312/Makefile.am:1.42
--- rtems/c/src/lib/libbsp/arm/edb7312/Makefile.am:1.41 Sun Jun 19 03:12:17 2011
+++ rtems/c/src/lib/libbsp/arm/edb7312/Makefile.am Tue Oct 18 13:26:36 2011
@@ -44,7 +44,9 @@
libbsp_a_SOURCES += clock/clockdrv.c
libbsp_a_SOURCES += ../../shared/clockdrv_shell.h
# console
-libbsp_a_SOURCES += console/uart.c ../../shared/console.c
+libbsp_a_SOURCES += console/uart.c ../../shared/console.c \
+ ../../shared/console_select.c ../../shared/console_control.c \
+ ../../shared/console_read.c ../../shared/console_write.c
# timer
libbsp_a_SOURCES += timer/timer.c
# abort
diff -u rtems/c/src/lib/libbsp/arm/edb7312/console/uart.c:1.8 rtems/c/src/lib/libbsp/arm/edb7312/console/uart.c:1.9
--- rtems/c/src/lib/libbsp/arm/edb7312/console/uart.c:1.8 Wed Apr 14 04:27:31 2010
+++ rtems/c/src/lib/libbsp/arm/edb7312/console/uart.c Tue Oct 18 13:26:36 2011
@@ -31,9 +31,8 @@
static void uart_write_polled(int minor, char c);
static int uart_set_attributes(int minor, const struct termios *t);
-unsigned long Console_Port_Count = NUM_DEVS;
-console_data Console_Port_Data[NUM_DEVS];
-rtems_device_minor_number Console_Port_Minor = 0;
+unsigned long Console_Configuration_Count = NUM_DEVS;
+
console_fns uart_fns =
{
libchip_serial_default_probe,
@@ -46,7 +45,7 @@
uart_set_attributes,
FALSE
};
-console_tbl Console_Port_Tbl[] = {
+console_tbl Console_Configuration_Ports[] = {
{
"/dev/com0", /* sDeviceName */
SERIAL_CUSTOM, /* deviceType */
@@ -92,9 +91,9 @@
char c;
int err;
- data_reg = (uint32_t*)Console_Port_Tbl[minor].ulDataPort;
- ctrl_reg1 = (uint32_t*)Console_Port_Tbl[minor].ulCtrlPort1;
- ctrl_reg2 = (uint32_t*)Console_Port_Tbl[minor].ulCtrlPort2;
+ data_reg = (uint32_t *)Console_Port_Tbl[minor]->ulDataPort;
+ ctrl_reg1 = (uint32_t *)Console_Port_Tbl[minor]->ulCtrlPort1;
+ ctrl_reg2 = (uint32_t *)Console_Port_Tbl[minor]->ulCtrlPort2;
if ((*ctrl_reg2 & EP7312_UART_URXFE1) != 0) {
return -1;
@@ -115,9 +114,9 @@
size_t i;
char c;
- data_reg = (uint32_t*)Console_Port_Tbl[minor].ulDataPort;
- ctrl_reg1 = (uint32_t*)Console_Port_Tbl[minor].ulCtrlPort1;
- ctrl_reg2 = (uint32_t*)Console_Port_Tbl[minor].ulCtrlPort2;
+ data_reg = (uint32_t *)Console_Port_Tbl[minor]->ulDataPort;
+ ctrl_reg1 = (uint32_t *)Console_Port_Tbl[minor]->ulCtrlPort1;
+ ctrl_reg2 = (uint32_t *)Console_Port_Tbl[minor]->ulCtrlPort2;
for (i = 0; i < len; i++) {
/* Wait for fifo to have room */
@@ -138,9 +137,9 @@
volatile uint32_t *ctrl_reg1;
volatile uint32_t *ctrl_reg2;
- data_reg = (uint32_t*)Console_Port_Tbl[minor].ulDataPort;
- ctrl_reg1 = (uint32_t*)Console_Port_Tbl[minor].ulCtrlPort1;
- ctrl_reg2 = (uint32_t*)Console_Port_Tbl[minor].ulCtrlPort2;
+ data_reg = (uint32_t *)Console_Port_Tbl[minor]->ulDataPort;
+ ctrl_reg1 = (uint32_t *)Console_Port_Tbl[minor]->ulCtrlPort1;
+ ctrl_reg2 = (uint32_t *)Console_Port_Tbl[minor]->ulCtrlPort2;
/* *ctrl_reg = (BSP_UART_DATA8 |
BSP_UART_STOP1 |
diff -u rtems/c/src/lib/libbsp/arm/gp32/ChangeLog:1.64 rtems/c/src/lib/libbsp/arm/gp32/ChangeLog:1.65
--- rtems/c/src/lib/libbsp/arm/gp32/ChangeLog:1.64 Fri Feb 11 05:48:14 2011
+++ rtems/c/src/lib/libbsp/arm/gp32/ChangeLog Tue Oct 18 13:26:07 2011
@@ -1,3 +1,9 @@
+2011-10-18 Jennifer Averett <Jennifer.Averett at OARcorp.com>
+
+ PR 1917/bsps
+ * Makefile.am, console/uart.c: Modifications to add dynamic tables for
+ libchip serial drivers.
+
2011-02-11 Ralf Corsépius <ralf.corsepius at rtems.org>
* startup/bspreset.c, startup/bspstart.c:
diff -u rtems/c/src/lib/libbsp/arm/gp32/Makefile.am:1.24 rtems/c/src/lib/libbsp/arm/gp32/Makefile.am:1.25
--- rtems/c/src/lib/libbsp/arm/gp32/Makefile.am:1.24 Fri Apr 30 09:30:09 2010
+++ rtems/c/src/lib/libbsp/arm/gp32/Makefile.am Tue Oct 18 13:26:07 2011
@@ -39,7 +39,9 @@
startup/memmap.c ../../shared/bootcard.c ../../shared/sbrk.c \
../../shared/gnatinstallhandler.c
# console
-libbsp_a_SOURCES += console/uart.c ../../shared/console.c
+libbsp_a_SOURCES += console/uart.c ../../shared/console.c \
+ ../../shared/console_select.c ../../shared/console_control.c \
+ ../../shared/console_read.c ../../shared/console_write.c
# IRQ
include_bsp_HEADERS += ../../shared/include/irq-generic.h \
../../shared/include/irq-info.h
diff -u rtems/c/src/lib/libbsp/arm/gp32/console/uart.c:1.6 rtems/c/src/lib/libbsp/arm/gp32/console/uart.c:1.7
--- rtems/c/src/lib/libbsp/arm/gp32/console/uart.c:1.6 Sun Apr 25 21:33:57 2010
+++ rtems/c/src/lib/libbsp/arm/gp32/console/uart.c Tue Oct 18 13:26:07 2011
@@ -46,11 +46,7 @@
static int uart_set_attributes(int minor, const struct termios *t);
/* These are used by code in console.c */
-unsigned long Console_Port_Count = NUM_DEVS;
-console_data Console_Port_Data[NUM_DEVS];
-
-/* rtems console uses the following minor number */
-rtems_device_minor_number Console_Port_Minor = 0;
+unsigned long Console_Configuration_Count = NUM_DEVS;
/* Pointers to functions for handling the UART. */
console_fns uart_fns =
@@ -73,7 +69,7 @@
* by console.c, but may be used by drivers in libchip
*
*/
-console_tbl Console_Port_Tbl[] = {
+console_tbl Console_Configuration_Ports[] = {
{
"/dev/com0", /* sDeviceName */
SERIAL_CUSTOM, /* deviceType */
diff -u rtems/c/src/lib/libbsp/arm/rtl22xx/ChangeLog:1.58 rtems/c/src/lib/libbsp/arm/rtl22xx/ChangeLog:1.59
--- rtems/c/src/lib/libbsp/arm/rtl22xx/ChangeLog:1.58 Fri Oct 7 06:00:48 2011
+++ rtems/c/src/lib/libbsp/arm/rtl22xx/ChangeLog Tue Oct 18 13:24:51 2011
@@ -1,3 +1,9 @@
+2011-10-18 Jennifer Averett <Jennifer.Averett at OARcorp.com>
+
+ PR 1917/bsps
+ * Makefile.am, console/uart.c: Modifications to add dynamic tables for
+ libchip serial drivers.
+
2011-10-07 Ralf Corsépius <ralf.corsepius at rtems.org>
* make/custom/rtl22xx_t.cfg: Remove USE_THUMB (Violates *.cfg
diff -u rtems/c/src/lib/libbsp/arm/rtl22xx/Makefile.am:1.18 rtems/c/src/lib/libbsp/arm/rtl22xx/Makefile.am:1.19
--- rtems/c/src/lib/libbsp/arm/rtl22xx/Makefile.am:1.18 Fri Apr 30 09:24:03 2010
+++ rtems/c/src/lib/libbsp/arm/rtl22xx/Makefile.am Tue Oct 18 13:24:51 2011
@@ -41,7 +41,9 @@
../../shared/bootcard.c ../../shared/sbrk.c \
../../shared/gnatinstallhandler.c
# console
-libbsp_a_SOURCES += ../../shared/console.c
+libbsp_a_SOURCES += ../../shared/console.c \
+ ../../shared/console_select.c ../../shared/console_control.c \
+ ../../shared/console_read.c ../../shared/console_write.c
# IRQ
include_bsp_HEADERS += ../../shared/include/irq-generic.h \
../../shared/include/irq-info.h
diff -u rtems/c/src/lib/libbsp/arm/rtl22xx/console/uart.c:1.7 rtems/c/src/lib/libbsp/arm/rtl22xx/console/uart.c:1.8
--- rtems/c/src/lib/libbsp/arm/rtl22xx/console/uart.c:1.7 Fri Apr 30 09:24:03 2010
+++ rtems/c/src/lib/libbsp/arm/rtl22xx/console/uart.c Tue Oct 18 13:24:51 2011
@@ -45,11 +45,7 @@
static int uart_set_attributes(int minor, const struct termios *t);
/* These are used by code in console.c */
-unsigned long Console_Port_Count = NUM_DEVS;
-console_data Console_Port_Data[NUM_DEVS];
-
-/* rtems console uses the following minor number */
-rtems_device_minor_number Console_Port_Minor = 0;
+unsigned long Console_Configuration_Count = NUM_DEVS;
/* Pointers to functions for handling the UART. */
console_fns uart_fns =
@@ -72,7 +68,7 @@
* by console.c, but may be used by drivers in libchip
*
*/
-console_tbl Console_Port_Tbl[] = {
+console_tbl Console_Configuration_Ports[] = {
{
"/dev/console", /* sDeviceName */
SERIAL_CUSTOM, /* deviceType */
*jennifer*:
2011-10-18 Jennifer Averett <Jennifer.Averett at OARcorp.com>
PR 1917/bsps
* Makefile.am, console/uarts.c: Modifications to add dynamic tables for
libchip serial drivers.
M 1.75 c/src/lib/libbsp/arm/csb337/ChangeLog
M 1.34 c/src/lib/libbsp/arm/csb337/Makefile.am
M 1.8 c/src/lib/libbsp/arm/csb337/console/uarts.c
M 1.28 c/src/lib/libbsp/arm/gumstix/ChangeLog
M 1.9 c/src/lib/libbsp/arm/gumstix/Makefile.am
M 1.3 c/src/lib/libbsp/arm/gumstix/console/uarts.c
diff -u rtems/c/src/lib/libbsp/arm/csb337/ChangeLog:1.74 rtems/c/src/lib/libbsp/arm/csb337/ChangeLog:1.75
--- rtems/c/src/lib/libbsp/arm/csb337/ChangeLog:1.74 Wed Feb 2 08:57:45 2011
+++ rtems/c/src/lib/libbsp/arm/csb337/ChangeLog Tue Oct 18 13:26:54 2011
@@ -1,3 +1,9 @@
+2011-10-18 Jennifer Averett <Jennifer.Averett at OARcorp.com>
+
+ PR 1917/bsps
+ * Makefile.am, console/uarts.c: Modifications to add dynamic tables for
+ libchip serial drivers.
+
2011-02-02 Ralf Corsépius <ralf.corsepius at rtems.org>
* configure.ac: Require autoconf-2.68, automake-1.11.1.
diff -u rtems/c/src/lib/libbsp/arm/csb337/Makefile.am:1.33 rtems/c/src/lib/libbsp/arm/csb337/Makefile.am:1.34
--- rtems/c/src/lib/libbsp/arm/csb337/Makefile.am:1.33 Fri Apr 30 09:44:17 2010
+++ rtems/c/src/lib/libbsp/arm/csb337/Makefile.am Tue Oct 18 13:26:55 2011
@@ -61,7 +61,9 @@
startup/memmap.c ../../shared/bootcard.c ../../shared/sbrk.c \
../../shared/gnatinstallhandler.c
# console
-libbsp_a_SOURCES += ../../shared/console.c console/uarts.c
+libbsp_a_SOURCES += ../../shared/console.c console/uarts.c \
+ ../../shared/console_select.c ../../shared/console_control.c \
+ ../../shared/console_read.c ../../shared/console_write.c
# IRQ
include_bsp_HEADERS += ../../shared/include/irq-generic.h \
../../shared/include/irq-info.h
diff -u rtems/c/src/lib/libbsp/arm/csb337/console/uarts.c:1.7 rtems/c/src/lib/libbsp/arm/csb337/console/uarts.c:1.8
--- rtems/c/src/lib/libbsp/arm/csb337/console/uarts.c:1.7 Mon Nov 30 16:00:35 2009
+++ rtems/c/src/lib/libbsp/arm/csb337/console/uarts.c Tue Oct 18 13:26:55 2011
@@ -18,7 +18,7 @@
* Joel Sherrill, 2009.
*
* $Id$
-*/
+ */
#include <bsp.h>
#include <rtems/libio.h>
@@ -31,8 +31,6 @@
#include <libchip/sersupp.h>
#include <bspopts.h>
-/* rtems console uses the following minor number */
-rtems_device_minor_number Console_Port_Minor = 0;
extern console_fns dbgu_fns;
#if ENABLE_LCD
@@ -82,8 +80,7 @@
USART0_DEV + USART1_DEV + USART2_DEV + USART3_DEV)
/* These are used by code in console.c */
-unsigned long Console_Port_Count = NUM_DEVS;
-console_data Console_Port_Data[NUM_DEVS];
+unsigned long Console_Configuration_Count = NUM_DEVS;
/*
* There's one item in array for each UART.
@@ -94,7 +91,7 @@
* when we add other types of UARTS we will need to move this
* structure to a generic uart.c file with only this in it
*/
-console_tbl Console_Port_Tbl[] = {
+console_tbl Console_Configuration_Ports[] = {
{
"/dev/console", /* sDeviceName */
SERIAL_CUSTOM, /* deviceType */
@@ -244,5 +241,5 @@
console_tbl *BSP_get_uart_from_minor(int minor)
{
- return &Console_Port_Tbl[minor];
+ return Console_Port_Tbl[minor];
}
diff -u rtems/c/src/lib/libbsp/arm/gumstix/ChangeLog:1.27 rtems/c/src/lib/libbsp/arm/gumstix/ChangeLog:1.28
--- rtems/c/src/lib/libbsp/arm/gumstix/ChangeLog:1.27 Wed Feb 2 08:57:53 2011
+++ rtems/c/src/lib/libbsp/arm/gumstix/ChangeLog Tue Oct 18 13:25:50 2011
@@ -1,3 +1,9 @@
+2011-10-18 Jennifer Averett <Jennifer.Averett at OARcorp.com>
+
+ PR 1917/bsps
+ * Makefile.am, console/uarts.c: Modifications to add dynamic tables for
+ libchip serial drivers.
+
2011-02-02 Ralf Corsépius <ralf.corsepius at rtems.org>
* configure.ac: Require autoconf-2.68, automake-1.11.1.
diff -u rtems/c/src/lib/libbsp/arm/gumstix/Makefile.am:1.8 rtems/c/src/lib/libbsp/arm/gumstix/Makefile.am:1.9
--- rtems/c/src/lib/libbsp/arm/gumstix/Makefile.am:1.8 Fri Apr 30 09:27:24 2010
+++ rtems/c/src/lib/libbsp/arm/gumstix/Makefile.am Tue Oct 18 13:25:50 2011
@@ -39,7 +39,9 @@
../../shared/bspclean.c startup/bspstart.c startup/memmap.c
#console
-libbsp_a_SOURCES += console/uarts.c ../../shared/console.c
+libbsp_a_SOURCES += console/uarts.c ../../shared/console.c \
+ ../../shared/console_select.c ../../shared/console_control.c \
+ ../../shared/console_read.c ../../shared/console_write.c
# IRQ
include_bsp_HEADERS += ../../shared/include/irq-generic.h \
../../shared/include/irq-info.h
diff -u rtems/c/src/lib/libbsp/arm/gumstix/console/uarts.c:1.2 rtems/c/src/lib/libbsp/arm/gumstix/console/uarts.c:1.3
--- rtems/c/src/lib/libbsp/arm/gumstix/console/uarts.c:1.2 Sun Nov 29 08:53:00 2009
+++ rtems/c/src/lib/libbsp/arm/gumstix/console/uarts.c Tue Oct 18 13:25:50 2011
@@ -27,11 +27,8 @@
#define NUM_DEVS 1
/* These are used by code in console.c */
-unsigned long Console_Port_Count = NUM_DEVS;
-console_data Console_Port_Data[NUM_DEVS];
+unsigned long Console_Configuration_Count = NUM_DEVS;
-/* rtems console uses the following minor number */
-rtems_device_minor_number Console_Port_Minor = 0;
extern console_fns ffuart_fns;
/*
@@ -43,7 +40,7 @@
* when we add other types of UARTS we will need to move this
* structure to a generic uart.c file with only this in it
*/
-console_tbl Console_Port_Tbl[] = {
+console_tbl Console_Configuration_Ports[] = {
{
"/dev/console", /* sDeviceName */
SERIAL_CUSTOM, /* deviceType */
@@ -67,5 +64,5 @@
console_tbl *BSP_get_uart_from_minor(int minor)
{
- return &Console_Port_Tbl[minor];
+ return Console_Port_Tbl[minor];
}
*jennifer*:
2011-10-18 Jennifer Averett <Jennifer.Averett at OARcorp.com>
PR 1917/bsps
* Makefile.am: Modifications to add dynamic tables for libchip serial
drivers.
M 1.33 c/src/lib/libbsp/arm/smdk2410/ChangeLog
M 1.17 c/src/lib/libbsp/arm/smdk2410/Makefile.am
M 1.9 c/src/lib/libbsp/sparc64/niagara/ChangeLog
M 1.3 c/src/lib/libbsp/sparc64/niagara/Makefile.am
M 1.10 c/src/lib/libbsp/sparc64/usiii/ChangeLog
M 1.4 c/src/lib/libbsp/sparc64/usiii/Makefile.am
diff -u rtems/c/src/lib/libbsp/arm/smdk2410/ChangeLog:1.32 rtems/c/src/lib/libbsp/arm/smdk2410/ChangeLog:1.33
--- rtems/c/src/lib/libbsp/arm/smdk2410/ChangeLog:1.32 Fri Feb 11 05:48:22 2011
+++ rtems/c/src/lib/libbsp/arm/smdk2410/ChangeLog Tue Oct 18 13:24:13 2011
@@ -1,3 +1,9 @@
+2011-10-18 Jennifer Averett <Jennifer.Averett at OARcorp.com>
+
+ PR 1917/bsps
+ * Makefile.am: Modifications to add dynamic tables for libchip serial
+ drivers.
+
2011-02-11 Ralf Corsépius <ralf.corsepius at rtems.org>
* startup/bspreset.c:
diff -u rtems/c/src/lib/libbsp/arm/smdk2410/Makefile.am:1.16 rtems/c/src/lib/libbsp/arm/smdk2410/Makefile.am:1.17
--- rtems/c/src/lib/libbsp/arm/smdk2410/Makefile.am:1.16 Fri Apr 30 08:54:08 2010
+++ rtems/c/src/lib/libbsp/arm/smdk2410/Makefile.am Tue Oct 18 13:24:13 2011
@@ -39,7 +39,10 @@
../../shared/bsppredriverhook.c ../../shared/bspgetworkarea.c \
../../shared/gnatinstallhandler.c
# console
-libbsp_a_SOURCES += ../gp32/console/uart.c ../../shared/console.c
+libbsp_a_SOURCES += ../gp32/console/uart.c ../../shared/console.c \
+ ../../shared/console_select.c \
+ ../../shared/console_read.c ../../shared/console_write.c \
+ ../../shared/console_control.c
# IRQ
include_bsp_HEADERS += ../../shared/include/irq-generic.h \
../../shared/include/irq-info.h
diff -u rtems/c/src/lib/libbsp/sparc64/niagara/ChangeLog:1.8 rtems/c/src/lib/libbsp/sparc64/niagara/ChangeLog:1.9
--- rtems/c/src/lib/libbsp/sparc64/niagara/ChangeLog:1.8 Mon Jun 20 05:30:39 2011
+++ rtems/c/src/lib/libbsp/sparc64/niagara/ChangeLog Tue Oct 18 13:28:37 2011
@@ -1,3 +1,9 @@
+2011-10-18 Jennifer Averett <Jennifer.Averett at OARcorp.com>
+
+ PR 1917/bsps
+ * Makefile.am: Modifications to add dynamic tables for libchip serial
+ drivers.
+
2011-06-20 Ralf Corsépius <ralf.corsepius at rtems.org>
* Makefile.am: Don't reference non-existing files.
diff -u rtems/c/src/lib/libbsp/sparc64/niagara/Makefile.am:1.2 rtems/c/src/lib/libbsp/sparc64/niagara/Makefile.am:1.3
--- rtems/c/src/lib/libbsp/sparc64/niagara/Makefile.am:1.2 Mon Jun 20 05:30:38 2011
+++ rtems/c/src/lib/libbsp/sparc64/niagara/Makefile.am Tue Oct 18 13:28:37 2011
@@ -63,7 +63,9 @@
#clock_SOURCES = ../../shared/clock_driver_simidle.c
clock_SOURCES = ../shared/clock/ckinit.c
-console_SOURCES = ../../shared/console.c ../shared/console/conscfg.c
+console_SOURCES = ../../shared/console.c ../shared/console/conscfg.c \
+ ../../shared/console_select.c ../../shared/console_control.c \
+ ../../shared/console_read.c ../../shared/console_write.c
timer_SOURCES = ../../shared/timerstub.c
diff -u rtems/c/src/lib/libbsp/sparc64/usiii/ChangeLog:1.9 rtems/c/src/lib/libbsp/sparc64/usiii/ChangeLog:1.10
--- rtems/c/src/lib/libbsp/sparc64/usiii/ChangeLog:1.9 Thu Oct 6 11:44:56 2011
+++ rtems/c/src/lib/libbsp/sparc64/usiii/ChangeLog Tue Oct 18 13:27:51 2011
@@ -1,3 +1,9 @@
+2011-10-18 Jennifer Averett <Jennifer.Averett at OARcorp.com>
+
+ PR 1917/bsps
+ * Makefile.am: Modifications to add dynamic tables for libchip serial
+ drivers.
+
2011-10-06 Gedare Bloom <giddyup44 at yahoo.com>
PR 1919/bsp
diff -u rtems/c/src/lib/libbsp/sparc64/usiii/Makefile.am:1.3 rtems/c/src/lib/libbsp/sparc64/usiii/Makefile.am:1.4
--- rtems/c/src/lib/libbsp/sparc64/usiii/Makefile.am:1.3 Thu Oct 6 11:44:56 2011
+++ rtems/c/src/lib/libbsp/sparc64/usiii/Makefile.am Tue Oct 18 13:27:51 2011
@@ -114,7 +114,9 @@
#clock_SOURCES = ../../shared/clock_driver_simidle.c
clock_SOURCES = ../shared/clock/ckinit.c
-console_SOURCES = ../../shared/console.c ../shared/console/conscfg.c
+console_SOURCES = ../../shared/console.c ../shared/console/conscfg.c \
+ ../../shared/console_select.c ../../shared/console_control.c \
+ ../../shared/console_read.c ../../shared/console_write.c
timer_SOURCES = ../../shared/timerstub.c
*jennifer*:
2011-10-18 Jennifer Averett <Jennifer.Averett at OARcorp.com>
PR 1917/bsps
* shared/console/conscfg.c: Modifications to add dynamic tables for
libchip serial drivers.
M 1.13 c/src/lib/libbsp/sparc64/ChangeLog
M 1.4 c/src/lib/libbsp/sparc64/shared/console/conscfg.c
diff -u rtems/c/src/lib/libbsp/sparc64/ChangeLog:1.12 rtems/c/src/lib/libbsp/sparc64/ChangeLog:1.13
--- rtems/c/src/lib/libbsp/sparc64/ChangeLog:1.12 Thu Oct 6 11:46:36 2011
+++ rtems/c/src/lib/libbsp/sparc64/ChangeLog Tue Oct 18 13:29:18 2011
@@ -1,3 +1,9 @@
+2011-10-18 Jennifer Averett <Jennifer.Averett at OARcorp.com>
+
+ PR 1917/bsps
+ * shared/console/conscfg.c: Modifications to add dynamic tables for
+ libchip serial drivers.
+
2011-10-06 Gedare Bloom <giddyup44 at yahoo.com>
PR 1920/bsp
diff -u rtems/c/src/lib/libbsp/sparc64/shared/console/conscfg.c:1.3 rtems/c/src/lib/libbsp/sparc64/shared/console/conscfg.c:1.4
--- rtems/c/src/lib/libbsp/sparc64/shared/console/conscfg.c:1.3 Mon Mar 21 03:21:41 2011
+++ rtems/c/src/lib/libbsp/sparc64/shared/console/conscfg.c Tue Oct 18 13:29:18 2011
@@ -67,7 +67,7 @@
};
-console_tbl Console_Port_Tbl[] = {
+console_tbl Console_Configuration_Ports[] = {
{
NULL, /* sDeviceName */
SERIAL_CUSTOM, /* deviceType */
@@ -97,11 +97,7 @@
#define NUM_CONSOLE_PORTS 1
-unsigned long Console_Port_Count = NUM_CONSOLE_PORTS;
-
-console_data Console_Port_Data[NUM_CONSOLE_PORTS];
-
-rtems_device_minor_number Console_Port_Minor;
+unsigned long Console_Configuration_Count = NUM_CONSOLE_PORTS;
/* putchar/getchar for printk */
*jennifer*:
2011-10-18 Jennifer Averett <Jennifer.Averett at OARcorp.com>
PR 1917/bsps
* Makefile.am, console/erc32_console.c: Modifications to add dynamic
tables for libchip serial drivers.
M 1.170 c/src/lib/libbsp/sparc/erc32/ChangeLog
M 1.59 c/src/lib/libbsp/sparc/erc32/Makefile.am
M 1.4 c/src/lib/libbsp/sparc/erc32/console/erc32_console.c
diff -u rtems/c/src/lib/libbsp/sparc/erc32/ChangeLog:1.169 rtems/c/src/lib/libbsp/sparc/erc32/ChangeLog:1.170
--- rtems/c/src/lib/libbsp/sparc/erc32/ChangeLog:1.169 Sun Jun 19 01:49:20 2011
+++ rtems/c/src/lib/libbsp/sparc/erc32/ChangeLog Tue Oct 18 13:30:22 2011
@@ -1,3 +1,9 @@
+2011-10-18 Jennifer Averett <Jennifer.Averett at OARcorp.com>
+
+ PR 1917/bsps
+ * Makefile.am, console/erc32_console.c: Modifications to add dynamic
+ tables for libchip serial drivers.
+
2011-06-19 Ralf Corsépius <ralf.corsepius at rtems.org>
* Makefile.am: Fix broken path to clockdrv_shell.h.
diff -u rtems/c/src/lib/libbsp/sparc/erc32/Makefile.am:1.58 rtems/c/src/lib/libbsp/sparc/erc32/Makefile.am:1.59
--- rtems/c/src/lib/libbsp/sparc/erc32/Makefile.am:1.58 Sun Jun 19 01:49:20 2011
+++ rtems/c/src/lib/libbsp/sparc/erc32/Makefile.am Tue Oct 18 13:30:22 2011
@@ -44,7 +44,9 @@
# gnatsupp
libbsp_a_SOURCES += gnatsupp/gnatsupp.c ../../sparc/shared/gnatcommon.c
# console
-libbsp_a_SOURCES += console/erc32_console.c ../../shared/console.c
+libbsp_a_SOURCES += console/erc32_console.c ../../shared/console.c \
+ ../../shared/console_select.c ../../shared/console_control.c \
+ ../../shared/console_read.c ../../shared/console_write.c
# debugio
libbsp_a_SOURCES += console/debugputs.c
# clock
diff -u rtems/c/src/lib/libbsp/sparc/erc32/console/erc32_console.c:1.3 rtems/c/src/lib/libbsp/sparc/erc32/console/erc32_console.c:1.4
--- rtems/c/src/lib/libbsp/sparc/erc32/console/erc32_console.c:1.3 Thu Mar 3 08:03:41 2011
+++ rtems/c/src/lib/libbsp/sparc/erc32/console/erc32_console.c Tue Oct 18 13:30:22 2011
@@ -58,8 +58,6 @@
#endif
static void erc32_console_initialize(int minor);
-rtems_device_minor_number Console_Port_Minor = 0;
-
#if (CONSOLE_USE_INTERRUPTS)
console_fns erc32_fns = {
libchip_serial_default_probe, /* deviceProbe */
@@ -86,7 +84,7 @@
};
#endif
-console_tbl Console_Port_Tbl [] = {
+console_tbl Console_Configuration_Ports [] = {
{
.sDeviceName = "/dev/console_a",
.deviceType = SERIAL_CUSTOM,
@@ -130,9 +128,7 @@
/* always exactly two uarts for erc32 */
#define ERC32_UART_COUNT (2)
-unsigned long Console_Port_Count = ERC32_UART_COUNT;
-
-console_data Console_Port_Data [ERC32_UART_COUNT];
+unsigned long Console_Configuration_Count = ERC32_UART_COUNT;
static int erc32_console_first_open(int major, int minor, void *arg)
{
@@ -143,7 +139,7 @@
rtems_libio_open_close_args_t *oca = arg;
struct rtems_termios_tty *tty = oca->iop->data1;
- console_tbl *ct = &Console_Port_Tbl [minor];
+ console_tbl *ct = Console_Port_Tbl [minor];
console_data *cd = &Console_Port_Data [minor];
cd->termios_data = tty;
*jennifer*:
2011-10-18 Jennifer Averett <Jennifer.Averett at OARcorp.com>
PR 1917/bsps
* console/config.c: Modifications to add dynamic tables for libchip
serial drivers.
M 1.126 c/src/lib/libbsp/sh/gensh2/ChangeLog
M 1.5 c/src/lib/libbsp/sh/gensh2/console/config.c
diff -u rtems/c/src/lib/libbsp/sh/gensh2/ChangeLog:1.125 rtems/c/src/lib/libbsp/sh/gensh2/ChangeLog:1.126
--- rtems/c/src/lib/libbsp/sh/gensh2/ChangeLog:1.125 Wed Feb 2 09:00:28 2011
+++ rtems/c/src/lib/libbsp/sh/gensh2/ChangeLog Tue Oct 18 13:31:09 2011
@@ -1,3 +1,9 @@
+2011-10-18 Jennifer Averett <Jennifer.Averett at OARcorp.com>
+
+ PR 1917/bsps
+ * console/config.c: Modifications to add dynamic tables for libchip
+ serial drivers.
+
2011-02-02 Ralf Corsépius <ralf.corsepius at rtems.org>
* configure.ac: Require autoconf-2.68, automake-1.11.1.
diff -u rtems/c/src/lib/libbsp/sh/gensh2/console/config.c:1.4 rtems/c/src/lib/libbsp/sh/gensh2/console/config.c:1.5
--- rtems/c/src/lib/libbsp/sh/gensh2/console/config.c:1.4 Wed Apr 21 11:01:46 2004
+++ rtems/c/src/lib/libbsp/sh/gensh2/console/config.c Tue Oct 18 13:31:09 2011
@@ -80,7 +80,7 @@
{ 0 }
};
-console_tbl Console_Port_Tbl[] = {
+console_tbl Console_Configuration_Ports[] = {
{
"/dev/sci0", /* sDeviceName */
SERIAL_CUSTOM, /* deviceType */
@@ -125,10 +125,6 @@
* Declare some information used by the console driver
*/
-#define NUM_CONSOLE_PORTS (sizeof(Console_Port_Tbl)/sizeof(console_tbl))
+#define NUM_CONSOLE_PORTS (sizeof(Console_Configuration_Ports)/sizeof(console_tbl))
-unsigned long Console_Port_Count = NUM_CONSOLE_PORTS;
-
-console_data Console_Port_Data[NUM_CONSOLE_PORTS];
-
-rtems_device_minor_number Console_Port_Minor;
+unsigned long Console_Configuration_Count = NUM_CONSOLE_PORTS;
*jennifer*:
2011-10-18 Jennifer Averett <Jennifer.Averett at OARcorp.com>
PR 1917/bsps
* Makefile.am, console/console-config.c, console/uart-bridge-master.c,
console/uart-bridge-slave.c, startup/bspstart.c: Modifications to add
dynamic tables for libchip serial drivers.
M 1.3 c/src/lib/libbsp/powerpc/qoriq/ChangeLog
M 1.3 c/src/lib/libbsp/powerpc/qoriq/Makefile.am
M 1.2 c/src/lib/libbsp/powerpc/qoriq/console/console-config.c
M 1.2 c/src/lib/libbsp/powerpc/qoriq/console/uart-bridge-master.c
M 1.2 c/src/lib/libbsp/powerpc/qoriq/console/uart-bridge-slave.c
M 1.2 c/src/lib/libbsp/powerpc/qoriq/startup/bspstart.c
diff -u rtems/c/src/lib/libbsp/powerpc/qoriq/ChangeLog:1.2 rtems/c/src/lib/libbsp/powerpc/qoriq/ChangeLog:1.3
--- rtems/c/src/lib/libbsp/powerpc/qoriq/ChangeLog:1.2 Wed Aug 31 10:55:51 2011
+++ rtems/c/src/lib/libbsp/powerpc/qoriq/ChangeLog Tue Oct 18 13:32:22 2011
@@ -1,3 +1,10 @@
+2011-10-18 Jennifer Averett <Jennifer.Averett at OARcorp.com>
+
+ PR 1917/bsps
+ * Makefile.am, console/console-config.c, console/uart-bridge-master.c,
+ console/uart-bridge-slave.c, startup/bspstart.c: Modifications to add
+ dynamic tables for libchip serial drivers.
+
2011-08-31 Sebastian Huber <sebastian.huber at embedded-brains.de>
* startup/linkcmds.base: Removed file.
diff -u rtems/c/src/lib/libbsp/powerpc/qoriq/Makefile.am:1.2 rtems/c/src/lib/libbsp/powerpc/qoriq/Makefile.am:1.3
--- rtems/c/src/lib/libbsp/powerpc/qoriq/Makefile.am:1.2 Wed Aug 31 10:55:51 2011
+++ rtems/c/src/lib/libbsp/powerpc/qoriq/Makefile.am Tue Oct 18 13:32:22 2011
@@ -94,9 +94,14 @@
# Console
libbsp_a_SOURCES += ../../shared/console.c \
+ ../../shared/console_select.c \
console/uart-bridge-master.c \
console/uart-bridge-slave.c \
- console/console-config.c
+ console/console-config.c \
+ ../../shared/console_read.c \
+ ../../shared/console_write.c \
+ ../../shared/console_control.c
+
# RTC
libbsp_a_SOURCES += ../../shared/tod.c \
diff -u rtems/c/src/lib/libbsp/powerpc/qoriq/console/console-config.c:1.1 rtems/c/src/lib/libbsp/powerpc/qoriq/console/console-config.c:1.2
--- rtems/c/src/lib/libbsp/powerpc/qoriq/console/console-config.c:1.1 Thu Jul 21 10:18:00 2011
+++ rtems/c/src/lib/libbsp/powerpc/qoriq/console/console-config.c Tue Oct 18 13:32:22 2011
@@ -28,6 +28,7 @@
#include <libchip/serial.h>
#include <libchip/ns16550.h>
+#include "../../../shared/console_private.h"
#include <bspopts.h>
#include <bsp/irq.h>
@@ -116,13 +117,8 @@
}
#endif
-unsigned long Console_Port_Count = CONSOLE_COUNT;
-
-rtems_device_minor_number Console_Port_Minor;
-
-console_data Console_Port_Data [CONSOLE_COUNT];
-
-console_tbl Console_Port_Tbl [CONSOLE_COUNT] = {
+unsigned long Console_Configuration_Count = CONSOLE_COUNT;
+console_tbl Console_Configuration_Ports [CONSOLE_COUNT] = {
#if QORIQ_UART_0_ENABLE
{
.sDeviceName = "/dev/ttyS0",
@@ -193,7 +189,7 @@
static void output_char(char c)
{
- const console_fns *con = Console_Port_Tbl [Console_Port_Minor].pDeviceFns;
+ const console_fns *con = Console_Port_Tbl [Console_Port_Minor]->pDeviceFns;
if (c == '\n') {
con->deviceWritePolled((int) Console_Port_Minor, '\r');
diff -u rtems/c/src/lib/libbsp/powerpc/qoriq/console/uart-bridge-master.c:1.1 rtems/c/src/lib/libbsp/powerpc/qoriq/console/uart-bridge-master.c:1.2
--- rtems/c/src/lib/libbsp/powerpc/qoriq/console/uart-bridge-master.c:1.1 Thu Jul 21 10:18:00 2011
+++ rtems/c/src/lib/libbsp/powerpc/qoriq/console/uart-bridge-master.c Tue Oct 18 13:32:23 2011
@@ -150,7 +150,7 @@
static void initialize(int minor)
{
- console_tbl *ct = &Console_Port_Tbl [minor];
+ console_tbl *ct = Console_Port_Tbl [minor];
uart_bridge_master_control *control = ct->pDeviceParams;
intercom_type type = control->type;
diff -u rtems/c/src/lib/libbsp/powerpc/qoriq/console/uart-bridge-slave.c:1.1 rtems/c/src/lib/libbsp/powerpc/qoriq/console/uart-bridge-slave.c:1.2
--- rtems/c/src/lib/libbsp/powerpc/qoriq/console/uart-bridge-slave.c:1.1 Thu Jul 21 10:18:00 2011
+++ rtems/c/src/lib/libbsp/powerpc/qoriq/console/uart-bridge-slave.c Tue Oct 18 13:32:23 2011
@@ -129,7 +129,7 @@
{
rtems_libio_open_close_args_t *oc = (rtems_libio_open_close_args_t *) arg;
struct rtems_termios_tty *tty = (struct rtems_termios_tty *) oc->iop->data1;
- console_tbl *ct = &Console_Port_Tbl [minor];
+ console_tbl *ct = Console_Port_Tbl[minor];
console_data *cd = &Console_Port_Data [minor];
uart_bridge_slave_control *control = ct->pDeviceParams;
intercom_type type = control->type;
@@ -145,7 +145,7 @@
static int last_close(int major, int minor, void *arg)
{
- console_tbl *ct = &Console_Port_Tbl [minor];
+ console_tbl *ct = Console_Port_Tbl[minor];
uart_bridge_slave_control *control = ct->pDeviceParams;
qoriq_intercom_service_remove(control->type);
@@ -156,7 +156,7 @@
static ssize_t write_with_interrupts(int minor, const char *buf, size_t len)
{
rtems_status_code sc = RTEMS_SUCCESSFUL;
- console_tbl *ct = &Console_Port_Tbl [minor];
+ console_tbl *ct = Console_Port_Tbl[minor];
uart_bridge_slave_control *control = ct->pDeviceParams;
intercom_packet *packet = qoriq_intercom_allocate_packet(
control->type,
@@ -183,7 +183,7 @@
static void write_polled(int minor, char c)
{
- console_tbl *ct = &Console_Port_Tbl [minor];
+ console_tbl *ct = Console_Port_Tbl[minor];
uart_bridge_slave_control *control = ct->pDeviceParams;
intercom_packet *packet = qoriq_intercom_allocate_packet(
control->type,
diff -u rtems/c/src/lib/libbsp/powerpc/qoriq/startup/bspstart.c:1.1 rtems/c/src/lib/libbsp/powerpc/qoriq/startup/bspstart.c:1.2
--- rtems/c/src/lib/libbsp/powerpc/qoriq/startup/bspstart.c:1.1 Thu Jul 21 10:18:01 2011
+++ rtems/c/src/lib/libbsp/powerpc/qoriq/startup/bspstart.c Tue Oct 18 13:32:23 2011
@@ -95,7 +95,7 @@
/* Initialize some console parameters */
for (i = 0; i < Console_Port_Count; ++i) {
- console_tbl *ct = &Console_Port_Tbl [i];
+ console_tbl *ct = &Console_Configuration_Ports[i];
ct->ulClock = BSP_bus_frequency;
*jennifer*:
2011-10-18 Jennifer Averett <Jennifer.Averett at OARcorp.com>
PR 1917/bsps
* Makefile.am, console/console-config.c, startup/bspstart.c:
Modifications to add dynamic tables for libchip serial drivers.
M 1.108 c/src/lib/libbsp/powerpc/gen83xx/ChangeLog
M 1.35 c/src/lib/libbsp/powerpc/gen83xx/Makefile.am
M 1.4 c/src/lib/libbsp/powerpc/gen83xx/console/console-config.c
M 1.33 c/src/lib/libbsp/powerpc/gen83xx/startup/bspstart.c
diff -u rtems/c/src/lib/libbsp/powerpc/gen83xx/ChangeLog:1.107 rtems/c/src/lib/libbsp/powerpc/gen83xx/ChangeLog:1.108
--- rtems/c/src/lib/libbsp/powerpc/gen83xx/ChangeLog:1.107 Mon Sep 26 05:08:29 2011
+++ rtems/c/src/lib/libbsp/powerpc/gen83xx/ChangeLog Tue Oct 18 13:32:48 2011
@@ -1,3 +1,9 @@
+2011-10-18 Jennifer Averett <Jennifer.Averett at OARcorp.com>
+
+ PR 1917/bsps
+ * Makefile.am, console/console-config.c, startup/bspstart.c:
+ Modifications to add dynamic tables for libchip serial drivers.
+
2011-09-27 Sebastian Huber <sebastian.huber at embedded-brains.de>
* make/custom/mpc8309som.cfg, startup/linkcmds.mpc8309som: New file.
diff -u rtems/c/src/lib/libbsp/powerpc/gen83xx/Makefile.am:1.34 rtems/c/src/lib/libbsp/powerpc/gen83xx/Makefile.am:1.35
--- rtems/c/src/lib/libbsp/powerpc/gen83xx/Makefile.am:1.34 Mon Sep 26 05:08:29 2011
+++ rtems/c/src/lib/libbsp/powerpc/gen83xx/Makefile.am Tue Oct 18 13:32:49 2011
@@ -84,7 +84,11 @@
# console
libbsp_a_SOURCES += ../../shared/console.c \
- console/console-config.c
+ ../../shared/console_select.c \
+ console/console-config.c \
+ ../../shared/console_read.c \
+ ../../shared/console_write.c \
+ ../../shared/console_control.c
# bsp_i2c
libbsp_a_SOURCES += i2c/i2c_init.c
# bsp_spi
diff -u rtems/c/src/lib/libbsp/powerpc/gen83xx/console/console-config.c:1.3 rtems/c/src/lib/libbsp/powerpc/gen83xx/console/console-config.c:1.4
--- rtems/c/src/lib/libbsp/powerpc/gen83xx/console/console-config.c:1.3 Mon Sep 26 05:08:29 2011
+++ rtems/c/src/lib/libbsp/powerpc/gen83xx/console/console-config.c Tue Oct 18 13:32:49 2011
@@ -24,6 +24,7 @@
#include <libchip/serial.h>
#include <libchip/ns16550.h>
+#include "../../../shared/console_private.h"
#include <mpc83xx/mpc83xx.h>
@@ -56,13 +57,9 @@
reg [i] = val;
}
-unsigned long Console_Port_Count = PORT_COUNT;
+unsigned long Console_Configuration_Count = PORT_COUNT;
-rtems_device_minor_number Console_Port_Minor = 0;
-
-console_data Console_Port_Data [PORT_COUNT];
-
-console_tbl Console_Port_Tbl [PORT_COUNT] = {
+console_tbl Console_Configuration_Ports [PORT_COUNT] = {
{
.sDeviceName = "/dev/ttyS0",
.deviceType = SERIAL_NS16550,
@@ -115,7 +112,7 @@
static void gen83xx_output_char(char c)
{
- const console_fns *console = Console_Port_Tbl [Console_Port_Minor].pDeviceFns;
+ const console_fns *console = Console_Port_Tbl [Console_Port_Minor]->pDeviceFns;
if (c == '\n') {
console->deviceWritePolled((int) Console_Port_Minor, '\r');
diff -u rtems/c/src/lib/libbsp/powerpc/gen83xx/startup/bspstart.c:1.32 rtems/c/src/lib/libbsp/powerpc/gen83xx/startup/bspstart.c:1.33
--- rtems/c/src/lib/libbsp/powerpc/gen83xx/startup/bspstart.c:1.32 Tue Jun 7 08:34:30 2011
+++ rtems/c/src/lib/libbsp/powerpc/gen83xx/startup/bspstart.c Tue Oct 18 13:32:49 2011
@@ -121,10 +121,10 @@
/* Initialize some console parameters */
for (i = 0; i < Console_Port_Count; ++i) {
- Console_Port_Tbl [i].ulClock = BSP_bus_frequency;
+ Console_Configuration_Ports [i].ulClock = BSP_bus_frequency;
#ifdef HAS_UBOOT
- Console_Port_Tbl [i].pDeviceParams =
+ Console_Configuration_Ports [i].pDeviceParams =
(void *) bsp_uboot_board_info.bi_baudrate;
#endif
}
*jennifer*:
2011-10-18 Jennifer Averett <Jennifer.Averett at OARcorp.com>
PR 1917/bsps
* Makefile.am, preinstall.am, console/config.c, console/mc68360_scc.c,
console/ns16550cfg.c, console/printk_support.c: Modifications to add
dynamic tables for libchip serial drivers.
M 1.98 c/src/lib/libbsp/powerpc/ep1a/ChangeLog
M 1.35 c/src/lib/libbsp/powerpc/ep1a/Makefile.am
M 1.10 c/src/lib/libbsp/powerpc/ep1a/console/config.c
M 1.7 c/src/lib/libbsp/powerpc/ep1a/console/mc68360_scc.c
M 1.7 c/src/lib/libbsp/powerpc/ep1a/console/ns16550cfg.c
M 1.2 c/src/lib/libbsp/powerpc/ep1a/console/printk_support.c
M 1.14 c/src/lib/libbsp/powerpc/ep1a/preinstall.am
diff -u rtems/c/src/lib/libbsp/powerpc/ep1a/ChangeLog:1.97 rtems/c/src/lib/libbsp/powerpc/ep1a/ChangeLog:1.98
--- rtems/c/src/lib/libbsp/powerpc/ep1a/ChangeLog:1.97 Wed Aug 24 04:51:30 2011
+++ rtems/c/src/lib/libbsp/powerpc/ep1a/ChangeLog Tue Oct 18 13:33:03 2011
@@ -1,3 +1,10 @@
+2011-10-18 Jennifer Averett <Jennifer.Averett at OARcorp.com>
+
+ PR 1917/bsps
+ * Makefile.am, preinstall.am, console/config.c, console/mc68360_scc.c,
+ console/ns16550cfg.c, console/printk_support.c: Modifications to add
+ dynamic tables for libchip serial drivers.
+
2011-08-24 Sebastian Huber <sebastian.huber at embedded-brains.de>
* console/polled_io.c: Update due to API changes.
diff -u rtems/c/src/lib/libbsp/powerpc/ep1a/Makefile.am:1.34 rtems/c/src/lib/libbsp/powerpc/ep1a/Makefile.am:1.35
--- rtems/c/src/lib/libbsp/powerpc/ep1a/Makefile.am:1.34 Tue Aug 23 13:06:08 2011
+++ rtems/c/src/lib/libbsp/powerpc/ep1a/Makefile.am Tue Oct 18 13:33:03 2011
@@ -48,13 +48,17 @@
../../powerpc/shared/motorola/motorola.h \
../../powerpc/shared/residual/residual.h \
../../powerpc/shared/residual/pnp.h \
- ../../powerpc/shared/console/consoleIo.h console/rsPMCQ1.h
+ ../../powerpc/shared/console/consoleIo.h console/rsPMCQ1.h \
+ ../../shared/console_private.h
+
# console
-libbsp_a_SOURCES += ../../shared/console.c console/ns16550cfg.c \
+libbsp_a_SOURCES += console/ns16550cfg.c \
console/mc68360_scc.c console/rsPMCQ1.c console/alloc360.c \
console/init68360.c console/config.c console/printk_support.c \
- console/config.c
-
+ ../../shared/console.c ../../shared/console_select.c \
+ ../../shared/console_read.c ../../shared/console_write.c \
+ ../../shared/console_control.c
+
include_bsp_HEADERS += ../../powerpc/shared/openpic/openpic.h
# openpic
libbsp_a_SOURCES += ../../powerpc/shared/openpic/openpic.h \
diff -u rtems/c/src/lib/libbsp/powerpc/ep1a/console/config.c:1.9 rtems/c/src/lib/libbsp/powerpc/ep1a/console/config.c:1.10
--- rtems/c/src/lib/libbsp/powerpc/ep1a/console/config.c:1.9 Tue Aug 23 13:06:08 2011
+++ rtems/c/src/lib/libbsp/powerpc/ep1a/console/config.c Tue Oct 18 13:33:04 2011
@@ -81,7 +81,7 @@
* ulIntVector This encodes the interrupt vector of the device.
*
*/
-console_tbl Console_Port_Tbl[] = {
+console_tbl Console_Configuration_Ports[] = {
/*
* NS16550 Chips provide first COM1 and COM2 Ports.
*/
@@ -363,12 +363,12 @@
}
};
-/* rtems console uses the following minor number */
-rtems_device_minor_number Console_Port_Minor = 0;
-
-#define NUM_CONSOLE_PORTS (sizeof(Console_Port_Tbl)/sizeof(console_tbl))
-unsigned long Console_Port_Count = NUM_CONSOLE_PORTS;
-console_data Console_Port_Data[NUM_CONSOLE_PORTS];
+/*
+ * Define a variable that contains the number of statically configured
+ * console devices.
+ */
+unsigned long Console_Configuration_Count = \
+ (sizeof(Console_Configuration_Ports)/sizeof(console_tbl));
static bool config_68360_scc_base_probe(int minor, unsigned long busNo, unsigned long slotNo, int channel)
{
@@ -386,7 +386,7 @@
if (!chip)
return false;
- Console_Port_Tbl[minor].pDeviceParams = &chip->port[ channel-1 ];
+ Console_Port_Tbl[minor]->pDeviceParams = &chip->port[ channel-1 ];
chip->port[ channel-1 ].minor = minor;
return true;
}
diff -u rtems/c/src/lib/libbsp/powerpc/ep1a/console/mc68360_scc.c:1.6 rtems/c/src/lib/libbsp/powerpc/ep1a/console/mc68360_scc.c:1.7
--- rtems/c/src/lib/libbsp/powerpc/ep1a/console/mc68360_scc.c:1.6 Thu Dec 17 02:42:16 2009
+++ rtems/c/src/lib/libbsp/powerpc/ep1a/console/mc68360_scc.c Tue Oct 18 13:33:04 2011
@@ -48,7 +48,7 @@
M68360_t M68360_chips = NULL;
#define SYNC eieio
-#define mc68360_scc_Is_422( _minor ) (Console_Port_Tbl[minor].sDeviceName[7] == '4' )
+#define mc68360_scc_Is_422( _minor ) (Console_Port_Tbl[minor]->sDeviceName[7] == '4' )
void mc68360_scc_nullFunc(void) {}
@@ -147,7 +147,7 @@
void mc68360_sccShow_Regs(int minor){
M68360_serial_ports_t ptr;
- ptr = Console_Port_Tbl[minor].pDeviceParams;
+ ptr = Console_Port_Tbl[minor]->pDeviceParams;
printk( "scce 0x%08x", &ptr->pSCCR->scce );
printk( " 0x%04x\n", ptr->pSCCR->scce );
@@ -343,7 +343,7 @@
#endif
- ptr = Console_Port_Tbl[minor].pDeviceParams;
+ ptr = Console_Port_Tbl[minor]->pDeviceParams;
m360 = ptr->chip->m360;
/*
@@ -402,11 +402,11 @@
#ifdef DEBUG_360
printk("mc68360_scc_initialize_interrupts: minor %d\n", minor );
- printk("Console_Port_Tbl[minor].pDeviceParams 0x%08x\n",
- Console_Port_Tbl[minor].pDeviceParams );
+ printk("Console_Port_Tbl[minor]->pDeviceParams 0x%08x\n",
+ Console_Port_Tbl[minor]->pDeviceParams );
#endif
- ptr = Console_Port_Tbl[minor].pDeviceParams;
+ ptr = Console_Port_Tbl[minor]->pDeviceParams;
m360 = ptr->chip->m360;
#ifdef DEBUG_360
@@ -671,7 +671,7 @@
mc68360_length_count=0;
#endif
- ptr = Console_Port_Tbl[minor].pDeviceParams;
+ ptr = Console_Port_Tbl[minor]->pDeviceParams;
/*
* We are using interrupt driven output and termios only sends us
@@ -744,7 +744,7 @@
printk("mc68360_scc_set_attributes\n");
#endif
- ptr = Console_Port_Tbl[minor].pDeviceParams;
+ ptr = Console_Port_Tbl[minor]->pDeviceParams;
m360 = ptr->chip->m360;
switch (t->c_cflag & CBAUD)
diff -u rtems/c/src/lib/libbsp/powerpc/ep1a/console/ns16550cfg.c:1.6 rtems/c/src/lib/libbsp/powerpc/ep1a/console/ns16550cfg.c:1.7
--- rtems/c/src/lib/libbsp/powerpc/ep1a/console/ns16550cfg.c:1.6 Fri Feb 11 06:44:30 2011
+++ rtems/c/src/lib/libbsp/powerpc/ep1a/console/ns16550cfg.c Tue Oct 18 13:33:04 2011
@@ -12,8 +12,9 @@
*/
#include <rtems.h>
+#include <libchip/serial.h>
+#include <libchip/ns16550.h>
#include <bsp.h>
-#include "console.h"
typedef struct uart_reg
{
diff -u rtems/c/src/lib/libbsp/powerpc/ep1a/console/printk_support.c:1.1 rtems/c/src/lib/libbsp/powerpc/ep1a/console/printk_support.c:1.2
--- rtems/c/src/lib/libbsp/powerpc/ep1a/console/printk_support.c:1.1 Tue Aug 23 13:06:08 2011
+++ rtems/c/src/lib/libbsp/powerpc/ep1a/console/printk_support.c Tue Oct 18 13:33:04 2011
@@ -16,10 +16,10 @@
#include <stdlib.h>
#include <assert.h>
#include <termios.h>
-
-#include "console.h"
#include <rtems/bspIo.h>
+rtems_device_minor_number BSPPrintkPort = 0;
+
/* const char arg to be compatible with BSP_output_char decl. */
void
debug_putc_onlcr(const char c)
diff -u rtems/c/src/lib/libbsp/powerpc/ep1a/preinstall.am:1.13 rtems/c/src/lib/libbsp/powerpc/ep1a/preinstall.am:1.14
--- rtems/c/src/lib/libbsp/powerpc/ep1a/preinstall.am:1.13 Fri Oct 23 02:32:44 2009
+++ rtems/c/src/lib/libbsp/powerpc/ep1a/preinstall.am Tue Oct 18 13:33:03 2011
@@ -93,6 +93,10 @@
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/rsPMCQ1.h
PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/rsPMCQ1.h
+$(PROJECT_INCLUDE)/bsp/console_private.h: ../../shared/console_private.h $(PROJECT_INCLUDE)/bsp/$(dirstamp)
+ $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/console_private.h
+PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/console_private.h
+
$(PROJECT_INCLUDE)/bsp/openpic.h: ../../powerpc/shared/openpic/openpic.h $(PROJECT_INCLUDE)/bsp/$(dirstamp)
$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/openpic.h
PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/openpic.h
*jennifer*:
2011-10-18 Jennifer Averett <Jennifer.Averett at OARcorp.com>
PR 1917/bsps
* Makefile.am, console/consolelite.c: Modifications to add dynamic
tables for libchip serial drivers.
M 1.63 c/src/lib/libbsp/powerpc/virtex/ChangeLog
M 1.19 c/src/lib/libbsp/powerpc/virtex/Makefile.am
M 1.5 c/src/lib/libbsp/powerpc/virtex/console/consolelite.c
diff -u rtems/c/src/lib/libbsp/powerpc/virtex/ChangeLog:1.62 rtems/c/src/lib/libbsp/powerpc/virtex/ChangeLog:1.63
--- rtems/c/src/lib/libbsp/powerpc/virtex/ChangeLog:1.62 Sat Jun 18 02:23:22 2011
+++ rtems/c/src/lib/libbsp/powerpc/virtex/ChangeLog Tue Oct 18 13:34:01 2011
@@ -1,3 +1,9 @@
+2011-10-18 Jennifer Averett <Jennifer.Averett at OARcorp.com>
+
+ PR 1917/bsps
+ * Makefile.am, console/consolelite.c: Modifications to add dynamic
+ tables for libchip serial drivers.
+
2011-06-18 Ralf Corsépius <ralf.corsepius at rtems.org>
* Makefile.am: Remove references to non-existing files.
diff -u rtems/c/src/lib/libbsp/powerpc/virtex/Makefile.am:1.18 rtems/c/src/lib/libbsp/powerpc/virtex/Makefile.am:1.19
--- rtems/c/src/lib/libbsp/powerpc/virtex/Makefile.am:1.18 Sat Jun 18 02:23:22 2011
+++ rtems/c/src/lib/libbsp/powerpc/virtex/Makefile.am Tue Oct 18 13:34:02 2011
@@ -43,8 +43,9 @@
# dlentry
libbsp_a_SOURCES += dlentry/dlentry.S
# bspconsole
-libbsp_a_SOURCES += console/consolelite.c ../../shared/console.c
-
+libbsp_a_SOURCES += console/consolelite.c ../../shared/console.c \
+ ../../shared/console_select.c ../../shared/console_control.c \
+ ../../shared/console_read.c ../../shared/console_write.c
include_bsp_HEADERS = include/opbintctrl.h
# opbintctrl
libbsp_a_SOURCES += opbintctrl/opbintctrl.c
diff -u rtems/c/src/lib/libbsp/powerpc/virtex/console/consolelite.c:1.4 rtems/c/src/lib/libbsp/powerpc/virtex/console/consolelite.c:1.5
--- rtems/c/src/lib/libbsp/powerpc/virtex/console/consolelite.c:1.4 Sun May 23 00:42:35 2010
+++ rtems/c/src/lib/libbsp/powerpc/virtex/console/consolelite.c Tue Oct 18 13:34:02 2011
@@ -121,7 +121,7 @@
void xlite_init (int minor )
{
- uint32_t base = Console_Port_Tbl[minor].ulCtrlPort1;
+ uint32_t base = Console_Port_Tbl[minor]->ulCtrlPort1;
/* clear status register */
*((volatile uint32_t*)(base+STAT_REG)) = 0;
@@ -137,7 +137,7 @@
void *arg
)
{
- uint32_t base = Console_Port_Tbl[minor].ulCtrlPort1;
+ uint32_t base = Console_Port_Tbl[minor]->ulCtrlPort1;
/* the lite uarts have hardcoded baud & serial parms so no port
* conditioning is needed. We're running polled so no interrupt
@@ -167,7 +167,7 @@
int xlite_read_polled (int minor )
{
- uint32_t base = Console_Port_Tbl[minor].ulCtrlPort1;
+ uint32_t base = Console_Port_Tbl[minor]->ulCtrlPort1;
unsigned int status = xlite_uart_status(base);
@@ -186,7 +186,7 @@
size_t len
)
{
- uint32_t base = Console_Port_Tbl[minor].ulCtrlPort1;
+ uint32_t base = Console_Port_Tbl[minor]->ulCtrlPort1;
int nwrite = 0;
/*
@@ -210,7 +210,7 @@
char c
)
{
- uint32_t base = Console_Port_Tbl[minor].ulCtrlPort1;
+ uint32_t base = Console_Port_Tbl[minor]->ulCtrlPort1;
xlite_write_char(base, c);
return;
}
@@ -251,7 +251,7 @@
*/
-console_tbl Console_Port_Tbl[] = {
+console_tbl Console_Configuration_Ports[] = {
{
"/dev/ttyS0", /* sDeviceName */
SERIAL_CUSTOM, /* deviceType */
@@ -333,17 +333,10 @@
-#define NUM_CONSOLE_PORTS (sizeof(Console_Port_Tbl)/sizeof(console_tbl))
-
-unsigned long Console_Port_Count = NUM_CONSOLE_PORTS;
-console_data Console_Port_Data[NUM_CONSOLE_PORTS];
-rtems_device_minor_number Console_Port_Minor;
-
-
-
-
-
+#define NUM_CONSOLE_PORTS \
+ (sizeof(Console_Configuration_Ports)/sizeof(console_tbl))
+unsigned long Console_Configuration_Count = NUM_CONSOLE_PORTS;
#include <rtems/bspIo.h>
*jennifer*:
2011-10-18 Jennifer Averett <Jennifer.Averett at OARcorp.com>
PR 1917/bsps
* Makefile.am, console/conscfg.c: Modifications to add dynamic tables
for libchip serial drivers.
M 1.115 c/src/lib/libbsp/m68k/sim68000/ChangeLog
M 1.37 c/src/lib/libbsp/m68k/sim68000/Makefile.am
M 1.8 c/src/lib/libbsp/m68k/sim68000/console/conscfg.c
M 1.135 c/src/lib/libbsp/mips/genmongoosev/ChangeLog
M 1.40 c/src/lib/libbsp/mips/genmongoosev/Makefile.am
M 1.10 c/src/lib/libbsp/mips/genmongoosev/console/conscfg.c
diff -u rtems/c/src/lib/libbsp/m68k/sim68000/ChangeLog:1.114 rtems/c/src/lib/libbsp/m68k/sim68000/ChangeLog:1.115
--- rtems/c/src/lib/libbsp/m68k/sim68000/ChangeLog:1.114 Fri Feb 11 06:34:24 2011
+++ rtems/c/src/lib/libbsp/m68k/sim68000/ChangeLog Tue Oct 18 13:35:25 2011
@@ -1,3 +1,9 @@
+2011-10-18 Jennifer Averett <Jennifer.Averett at OARcorp.com>
+
+ PR 1917/bsps
+ * Makefile.am, console/conscfg.c: Modifications to add dynamic tables
+ for libchip serial drivers.
+
2011-02-11 Ralf Corsépius <ralf.corsepius at rtems.org>
* include/bsp.h:
diff -u rtems/c/src/lib/libbsp/m68k/sim68000/Makefile.am:1.36 rtems/c/src/lib/libbsp/m68k/sim68000/Makefile.am:1.37
--- rtems/c/src/lib/libbsp/m68k/sim68000/Makefile.am:1.36 Thu Oct 2 16:39:02 2008
+++ rtems/c/src/lib/libbsp/m68k/sim68000/Makefile.am Tue Oct 18 13:35:25 2011
@@ -40,7 +40,9 @@
# clock
libbsp_a_SOURCES += clock/clockdrv.c ../../../shared/clockdrv_shell.h
# console
-libbsp_a_SOURCES += console/conscfg.c ../../shared/console.c
+libbsp_a_SOURCES += console/conscfg.c ../../shared/console.c \
+ ../../shared/console_select.c ../../shared/console_control.c \
+ ../../shared/console_read.c ../../shared/console_write.c
# debugio
libbsp_a_SOURCES += console/debugio.c
# timer
diff -u rtems/c/src/lib/libbsp/m68k/sim68000/console/conscfg.c:1.7 rtems/c/src/lib/libbsp/m68k/sim68000/console/conscfg.c:1.8
--- rtems/c/src/lib/libbsp/m68k/sim68000/console/conscfg.c:1.7 Fri Aug 28 13:20:12 2009
+++ rtems/c/src/lib/libbsp/m68k/sim68000/console/conscfg.c Tue Oct 18 13:35:25 2011
@@ -38,7 +38,7 @@
#define MC68681_FUNCTIONS &mc68681_fns_polled
#endif
-console_tbl Console_Port_Tbl[] = {
+console_tbl Console_Configuration_Ports[] = {
{
"/dev/com0", /* sDeviceName */
SERIAL_MC68681, /* deviceType */
@@ -64,10 +64,6 @@
* Declare some information used by the console driver
*/
-#define NUM_CONSOLE_PORTS (sizeof(Console_Port_Tbl)/sizeof(console_tbl))
+#define NUM_CONSOLE_PORTS (sizeof(Console_Configuration_Ports)/sizeof(console_tbl))
-unsigned long Console_Port_Count = NUM_CONSOLE_PORTS;
-
-console_data Console_Port_Data[NUM_CONSOLE_PORTS];
-
-rtems_device_minor_number Console_Port_Minor;
+unsigned long Console_Configuration_Count = NUM_CONSOLE_PORTS;
diff -u rtems/c/src/lib/libbsp/mips/genmongoosev/ChangeLog:1.134 rtems/c/src/lib/libbsp/mips/genmongoosev/ChangeLog:1.135
--- rtems/c/src/lib/libbsp/mips/genmongoosev/ChangeLog:1.134 Sun Jun 19 02:27:07 2011
+++ rtems/c/src/lib/libbsp/mips/genmongoosev/ChangeLog Tue Oct 18 13:34:46 2011
@@ -1,3 +1,9 @@
+2011-10-18 Jennifer Averett <Jennifer.Averett at OARcorp.com>
+
+ PR 1917/bsps
+ * Makefile.am, console/conscfg.c: Modifications to add dynamic tables
+ for libchip serial drivers.
+
2011-06-19 Ralf Corsépius <ralf.corsepius at rtems.org>
* Makefile.am: Fix broken path to clockdrv_shell.h.
diff -u rtems/c/src/lib/libbsp/mips/genmongoosev/Makefile.am:1.39 rtems/c/src/lib/libbsp/mips/genmongoosev/Makefile.am:1.40
--- rtems/c/src/lib/libbsp/mips/genmongoosev/Makefile.am:1.39 Sun Jun 19 02:27:07 2011
+++ rtems/c/src/lib/libbsp/mips/genmongoosev/Makefile.am Tue Oct 18 13:34:47 2011
@@ -40,7 +40,9 @@
libbsp_a_SOURCES += clock/clockdrv.c
libbsp_a_SOURCES += ../../shared/clockdrv_shell.h
# console
-libbsp_a_SOURCES += console/conscfg.c ../../shared/console.c
+libbsp_a_SOURCES += console/conscfg.c ../../shared/console.c \
+ ../../shared/console_select.c ../../shared/console_control.c \
+ ../../shared/console_read.c ../../shared/console_write.c
# timer
libbsp_a_SOURCES += timer/timer.c
diff -u rtems/c/src/lib/libbsp/mips/genmongoosev/console/conscfg.c:1.9 rtems/c/src/lib/libbsp/mips/genmongoosev/console/conscfg.c:1.10
--- rtems/c/src/lib/libbsp/mips/genmongoosev/console/conscfg.c:1.9 Wed Apr 14 03:59:02 2010
+++ rtems/c/src/lib/libbsp/mips/genmongoosev/console/conscfg.c Tue Oct 18 13:34:47 2011
@@ -28,7 +28,7 @@
#define MG5UART_FUNCTIONS &mg5uart_fns_polled
#endif
-console_tbl Console_Port_Tbl[] = {
+console_tbl Console_Configuration_Ports[] = {
{
"/dev/com0", /* sDeviceName */
SERIAL_MG5UART, /* deviceType */
@@ -73,13 +73,9 @@
* Declare some information used by the console driver
*/
-#define NUM_CONSOLE_PORTS (sizeof(Console_Port_Tbl)/sizeof(console_tbl))
+#define NUM_CONSOLE_PORTS (sizeof(Console_Configuration_Ports)/sizeof(console_tbl))
-unsigned long Console_Port_Count = NUM_CONSOLE_PORTS;
-
-console_data Console_Port_Data[NUM_CONSOLE_PORTS];
-
-rtems_device_minor_number Console_Port_Minor;
+unsigned long Console_Configuration_Count = NUM_CONSOLE_PORTS;
/*
* printk() support that simply routes printk to stderr
*jennifer*:
2011-10-18 Jennifer Averett <Jennifer.Averett at OARcorp.com>
PR 1917/bsps
* sh7045/sci/sci_termios.c: Modifications to add dynamic tables for
libchip serial drivers.
M 1.66 c/src/lib/libcpu/sh/ChangeLog
M 1.9 c/src/lib/libcpu/sh/sh7045/sci/sci_termios.c
diff -u rtems/c/src/lib/libcpu/sh/ChangeLog:1.65 rtems/c/src/lib/libcpu/sh/ChangeLog:1.66
--- rtems/c/src/lib/libcpu/sh/ChangeLog:1.65 Fri Feb 11 03:57:25 2011
+++ rtems/c/src/lib/libcpu/sh/ChangeLog Tue Oct 18 13:37:32 2011
@@ -1,3 +1,9 @@
+2011-10-18 Jennifer Averett <Jennifer.Averett at OARcorp.com>
+
+ PR 1917/bsps
+ * sh7045/sci/sci_termios.c: Modifications to add dynamic tables for
+ libchip serial drivers.
+
2011-02-11 Ralf Corsépius <ralf.corsepius at rtems.org>
* sh7032/delay/delay.c, sh7032/score/cpu_asm.c,
diff -u rtems/c/src/lib/libcpu/sh/sh7045/sci/sci_termios.c:1.8 rtems/c/src/lib/libcpu/sh/sh7045/sci/sci_termios.c:1.9
--- rtems/c/src/lib/libcpu/sh/sh7045/sci/sci_termios.c:1.8 Fri Feb 11 03:57:25 2011
+++ rtems/c/src/lib/libcpu/sh/sh7045/sci/sci_termios.c Tue Oct 18 13:37:32 2011
@@ -38,15 +38,15 @@
* Some handy macros
*/
#define SH_SCI_REG_DATA(_data, _minor, _register) \
- (write8(_data, Console_Port_Tbl[_minor].ulCtrlPort1 + (_register)))
+ (write8(_data, Console_Port_Tbl[_minor]->ulCtrlPort1 + (_register)))
#define SH_SCI_REG_FLAG(_flag, _minor, _register) \
- (write8(read8(Console_Port_Tbl[_minor].ulCtrlPort1 + (_register)) | (_flag), \
- Console_Port_Tbl[_minor].ulCtrlPort1 + (_register)))
+ (write8(read8(Console_Port_Tbl[_minor]->ulCtrlPort1 + (_register)) | (_flag), \
+ Console_Port_Tbl[_minor]->ulCtrlPort1 + (_register)))
#define SH_SCI_REG_MASK(_flag, _minor, _register) \
- (write8(read8(Console_Port_Tbl[_minor].ulCtrlPort1 + (_register)) & ~(_flag), \
- Console_Port_Tbl[_minor].ulCtrlPort1 + (_register)))
+ (write8(read8(Console_Port_Tbl[_minor]->ulCtrlPort1 + (_register)) & ~(_flag),\
+ Console_Port_Tbl[_minor]->ulCtrlPort1 + (_register)))
/*
* NOTE: Some SH variants have 3 sci devices
@@ -131,13 +131,13 @@
int minor;
for (minor = 0; minor < Console_Port_Count; minor++) {
- if (Console_Port_Tbl[minor].ulIntVector == vector) {
+ if (Console_Port_Tbl[minor]->ulIntVector == vector) {
char temp8;
/*
* FIXME: error handling should be added
*/
- temp8 = read8(Console_Port_Tbl[minor].ulCtrlPort1 + SCI_RDR);
+ temp8 = read8(Console_Port_Tbl[minor]->ulCtrlPort1 + SCI_RDR);
rtems_termios_enqueue_raw_characters(
Console_Port_Data[minor].termios_data, &temp8, 1);
@@ -158,7 +158,7 @@
int minor;
for (minor = 0; minor < Console_Port_Count; minor++) {
- if (Console_Port_Tbl[minor].ulDataPort == vector) {
+ if (Console_Port_Tbl[minor]->ulDataPort == vector) {
/*
* FIXME: Error handling should be added
*/
@@ -224,7 +224,7 @@
/*
* Disable IRQ of SCIx
*/
- status = sh_set_irq_priority( Console_Port_Tbl[minor].ulIntVector, 0);
+ status = sh_set_irq_priority( Console_Port_Tbl[minor]->ulIntVector, 0);
if (status != RTEMS_SUCCESSFUL)
rtems_fatal_error_occurred(status);
@@ -236,7 +236,7 @@
*/
status = rtems_interrupt_catch(
sh_sci_rx_isr,
- Console_Port_Tbl[minor].ulIntVector,
+ Console_Port_Tbl[minor]->ulIntVector,
&old_isr);
if (status != RTEMS_SUCCESSFUL)
@@ -244,7 +244,7 @@
status = rtems_interrupt_catch(
sh_sci_tx_isr,
- Console_Port_Tbl[minor].ulDataPort,
+ Console_Port_Tbl[minor]->ulDataPort,
&old_isr);
if (status != RTEMS_SUCCESSFUL)
@@ -256,8 +256,8 @@
SH_SCI_REG_FLAG(SCI_RIE, minor, SCI_SCR);
status = sh_set_irq_priority(
- Console_Port_Tbl[minor].ulIntVector,
- Console_Port_Tbl[minor].ulCtrlPort2);
+ Console_Port_Tbl[minor]->ulIntVector,
+ Console_Port_Tbl[minor]->ulCtrlPort2);
if (status != RTEMS_SUCCESSFUL)
rtems_fatal_error_occurred(status);
@@ -292,28 +292,28 @@
SH_SCI_REG_DATA(0x00, minor, SCI_SCR);
/* set SMR and BRR - baudrate and format */
- sh_sci_set_attributes(minor, Console_Port_Tbl[minor].pDeviceParams);
+ sh_sci_set_attributes(minor, Console_Port_Tbl[minor]->pDeviceParams);
for (a=0; a < 10000L; a++) { /* Delay */
__asm__ volatile ("nop");
}
write8((SCI_RE | SCI_TE), /* enable async. Tx and Rx */
- Console_Port_Tbl[minor].ulCtrlPort1 + SCI_SCR);
+ Console_Port_Tbl[minor]->ulCtrlPort1 + SCI_SCR);
/*
* clear error flags
*/
- temp8 = read8(Console_Port_Tbl[minor].ulCtrlPort1 + SCI_SSR);
+ temp8 = read8(Console_Port_Tbl[minor]->ulCtrlPort1 + SCI_SSR);
while(temp8 & (SCI_RDRF | SCI_ORER | SCI_FER | SCI_PER)) {
/* flush input */
- temp8 = read8(Console_Port_Tbl[minor].ulCtrlPort1 + SCI_RDR);
+ temp8 = read8(Console_Port_Tbl[minor]->ulCtrlPort1 + SCI_RDR);
/* clear some flags */
- SH_SCI_REG_FLAG((SCI_RDRF | SCI_ORER | SCI_FER | SCI_PER), minor, SCI_SSR);
+ SH_SCI_REG_FLAG((SCI_RDRF|SCI_ORER|SCI_FER|SCI_PER), minor, SCI_SSR);
/* check if everything is OK */
- temp8 = read8(Console_Port_Tbl[minor].ulCtrlPort1 + SCI_SSR);
+ temp8 = read8(Console_Port_Tbl[minor]->ulCtrlPort1 + SCI_SSR);
}
/* Clear RDRF flag */
@@ -325,7 +325,7 @@
/*
* Interrupt setup
*/
- if (Console_Port_Tbl[minor].pDeviceFns->deviceOutputUsesInterrupts) {
+ if (Console_Port_Tbl[minor]->pDeviceFns->deviceOutputUsesInterrupts) {
SH_SCI_REG_FLAG(SCI_RIE, minor, SCI_SCR);
}
@@ -345,7 +345,7 @@
/* FIXME: Incomplete */
/* Shutdown interrupts if necessary */
- if (Console_Port_Tbl[minor].pDeviceFns->deviceOutputUsesInterrupts)
+ if (Console_Port_Tbl[minor]->pDeviceFns->deviceOutputUsesInterrupts)
{
SH_SCI_REG_MASK((SCI_TIE | SCI_RIE), minor, SCI_SCR);
}
@@ -408,7 +408,7 @@
/*
* Wait for end of previous character
*/
- while(!(read8(Console_Port_Tbl[minor].ulCtrlPort1 + SCI_SSR) & SCI_TDRE));
+ while(!(read8(Console_Port_Tbl[minor]->ulCtrlPort1 + SCI_SSR) & SCI_TDRE));
/*
* Send the character
*/
@@ -430,14 +430,14 @@
/*
* Check if input buffer is full
*/
- if (read8(Console_Port_Tbl[minor].ulCtrlPort1 + SCI_SSR) & SCI_RDRF) {
- inbyte = read8(Console_Port_Tbl[minor].ulCtrlPort1 + SCI_RDR);
+ if (read8(Console_Port_Tbl[minor]->ulCtrlPort1 + SCI_SSR) & SCI_RDRF) {
+ inbyte = read8(Console_Port_Tbl[minor]->ulCtrlPort1 + SCI_RDR);
SH_SCI_REG_MASK(SCI_RDRF, minor, SCI_SSR);
/*
* Check for errors
*/
- if (read8(Console_Port_Tbl[minor].ulCtrlPort1 + SCI_SSR) &
+ if (read8(Console_Port_Tbl[minor]->ulCtrlPort1 + SCI_SSR) &
(SCI_ORER | SCI_FER | SCI_PER)) {
SH_SCI_REG_MASK((SCI_ORER | SCI_FER | SCI_PER), minor, SCI_SSR);
return -1;
*jennifer*:
2011-10-18 Jennifer Averett <Jennifer.Averett at OARcorp.com>
PR 1917/bsps
* mongoosev/duart/mg5uart.c: Modifications to add dynamic tables for
libchip serial drivers.
M 1.103 c/src/lib/libcpu/mips/ChangeLog
M 1.15 c/src/lib/libcpu/mips/mongoosev/duart/mg5uart.c
diff -u rtems/c/src/lib/libcpu/mips/ChangeLog:1.102 rtems/c/src/lib/libcpu/mips/ChangeLog:1.103
--- rtems/c/src/lib/libcpu/mips/ChangeLog:1.102 Fri Feb 11 03:37:38 2011
+++ rtems/c/src/lib/libcpu/mips/ChangeLog Tue Oct 18 13:39:05 2011
@@ -1,3 +1,9 @@
+2011-10-18 Jennifer Averett <Jennifer.Averett at OARcorp.com>
+
+ PR 1917/bsps
+ * mongoosev/duart/mg5uart.c: Modifications to add dynamic tables for
+ libchip serial drivers.
+
2011-02-11 Ralf Corsépius <ralf.corsepius at rtems.org>
* au1x00/vectorisrs/vectorisrs.c:
diff -u rtems/c/src/lib/libcpu/mips/mongoosev/duart/mg5uart.c:1.14 rtems/c/src/lib/libcpu/mips/mongoosev/duart/mg5uart.c:1.15
--- rtems/c/src/lib/libcpu/mips/mongoosev/duart/mg5uart.c:1.14 Sun Jan 30 11:42:26 2011
+++ rtems/c/src/lib/libcpu/mips/mongoosev/duart/mg5uart.c Tue Oct 18 13:39:05 2011
@@ -88,8 +88,8 @@
uint32_t shift;
rtems_interrupt_level Irql;
- pMG5UART = Console_Port_Tbl[minor].ulCtrlPort1;
- pMG5UART_port = Console_Port_Tbl[minor].ulCtrlPort2;
+ pMG5UART = Console_Port_Tbl[minor]->ulCtrlPort1;
+ pMG5UART_port = Console_Port_Tbl[minor]->ulCtrlPort2;
/*
* Set the baud rate
@@ -161,7 +161,7 @@
* Now write the registers
*/
- if ( Console_Port_Tbl[minor].ulDataPort == MG5UART_UART0 )
+ if ( Console_Port_Tbl[minor]->ulDataPort == MG5UART_UART0 )
shift = MONGOOSEV_UART0_CMD_SHIFT;
else
shift = MONGOOSEV_UART1_CMD_SHIFT;
@@ -197,14 +197,14 @@
unsigned int pMG5UART;
unsigned int pMG5UART_port;
- pMG5UART = Console_Port_Tbl[minor].ulCtrlPort1;
- pMG5UART_port = Console_Port_Tbl[minor].ulCtrlPort2;
+ pMG5UART = Console_Port_Tbl[minor]->ulCtrlPort1;
+ pMG5UART_port = Console_Port_Tbl[minor]->ulCtrlPort2;
pmg5uartContext->mate = -1;
for (port=0 ; port<Console_Port_Count ; port++ ) {
- if ( Console_Port_Tbl[port].ulCtrlPort1 == pMG5UART &&
- Console_Port_Tbl[port].ulCtrlPort2 != pMG5UART_port ) {
+ if ( Console_Port_Tbl[port]->ulCtrlPort1 == pMG5UART &&
+ Console_Port_Tbl[port]->ulCtrlPort2 != pMG5UART_port ) {
pmg5uartContext->mate = port;
break;
}
@@ -233,10 +233,10 @@
mg5uart_initialize_context( minor, pmg5uartContext );
- pMG5UART = Console_Port_Tbl[minor].ulCtrlPort1;
- pMG5UART_port = Console_Port_Tbl[minor].ulCtrlPort2;
+ pMG5UART = Console_Port_Tbl[minor]->ulCtrlPort1;
+ pMG5UART_port = Console_Port_Tbl[minor]->ulCtrlPort2;
- if ( Console_Port_Tbl[minor].ulDataPort == MG5UART_UART0 )
+ if ( Console_Port_Tbl[minor]->ulDataPort == MG5UART_UART0 )
shift = MONGOOSEV_UART0_CMD_SHIFT;
else
shift = MONGOOSEV_UART1_CMD_SHIFT;
@@ -278,11 +278,11 @@
rtems_interrupt_level Irql;
- pMG5UART = Console_Port_Tbl[minor].ulCtrlPort1;
- pMG5UART_port = Console_Port_Tbl[minor].ulCtrlPort2;
- vector = Console_Port_Tbl[minor].ulIntVector;
+ pMG5UART = Console_Port_Tbl[minor]->ulCtrlPort1;
+ pMG5UART_port = Console_Port_Tbl[minor]->ulCtrlPort2;
+ vector = Console_Port_Tbl[minor]->ulIntVector;
- if ( Console_Port_Tbl[minor].ulDataPort == MG5UART_UART0 )
+ if ( Console_Port_Tbl[minor]->ulDataPort == MG5UART_UART0 )
shift = MONGOOSEV_UART0_CMD_SHIFT;
else
shift = MONGOOSEV_UART1_CMD_SHIFT;
@@ -332,8 +332,8 @@
uint32_t shift;
rtems_interrupt_level Irql;
- pMG5UART = Console_Port_Tbl[minor].ulCtrlPort1;
- pMG5UART_port = Console_Port_Tbl[minor].ulCtrlPort2;
+ pMG5UART = Console_Port_Tbl[minor]->ulCtrlPort1;
+ pMG5UART_port = Console_Port_Tbl[minor]->ulCtrlPort2;
/*
* Disable interrupts from this channel and then disable it totally.
@@ -343,7 +343,7 @@
cmd = MONGOOSEV_UART_CMD_TX_DISABLE | MONGOOSEV_UART_CMD_RX_DISABLE;
- if ( Console_Port_Tbl[minor].ulDataPort == MG5UART_UART0 )
+ if ( Console_Port_Tbl[minor]->ulDataPort == MG5UART_UART0 )
shift = MONGOOSEV_UART0_CMD_SHIFT;
else
shift = MONGOOSEV_UART1_CMD_SHIFT;
@@ -380,10 +380,10 @@
int shift;
int timeout;
- pMG5UART = Console_Port_Tbl[minor].ulCtrlPort1;
- pMG5UART_port = Console_Port_Tbl[minor].ulCtrlPort2;
+ pMG5UART = Console_Port_Tbl[minor]->ulCtrlPort1;
+ pMG5UART_port = Console_Port_Tbl[minor]->ulCtrlPort2;
- if ( Console_Port_Tbl[minor].ulDataPort == MG5UART_UART0 )
+ if ( Console_Port_Tbl[minor]->ulDataPort == MG5UART_UART0 )
shift = MONGOOSEV_UART0_IRQ_SHIFT;
else
shift = MONGOOSEV_UART1_IRQ_SHIFT;
@@ -454,8 +454,8 @@
int minor; \
\
for(minor=0 ; minor<Console_Port_Count ; minor++) { \
- if( Console_Port_Tbl[minor].deviceType == SERIAL_MG5UART && \
- vector == Console_Port_Tbl[minor].ulIntVector + _OFFSET ) { \
+ if( Console_Port_Tbl[minor]->deviceType == SERIAL_MG5UART && \
+ vector == Console_Port_Tbl[minor]->ulIntVector + _OFFSET ) { \
mg5uart_process_isr_ ## _TYPE (minor); \
return; \
} \
@@ -478,9 +478,9 @@
uint32_t pMG5UART;
int shift;
- pMG5UART = Console_Port_Tbl[minor].ulCtrlPort1;
+ pMG5UART = Console_Port_Tbl[minor]->ulCtrlPort1;
- if ( Console_Port_Tbl[minor].ulDataPort == MG5UART_UART0 )
+ if ( Console_Port_Tbl[minor]->ulDataPort == MG5UART_UART0 )
shift = MONGOOSEV_UART0_IRQ_SHIFT;
else
shift = MONGOOSEV_UART1_IRQ_SHIFT;
@@ -523,11 +523,11 @@
uint32_t pMG5UART;
int shift;
- pMG5UART = Console_Port_Tbl[minor].ulCtrlPort1;
+ pMG5UART = Console_Port_Tbl[minor]->ulCtrlPort1;
mg5uart_enable_interrupts(minor, MG5UART_ENABLE_ALL_EXCEPT_TX);
- if ( Console_Port_Tbl[minor].ulDataPort == MG5UART_UART0 )
+ if ( Console_Port_Tbl[minor]->ulDataPort == MG5UART_UART0 )
shift = MONGOOSEV_UART0_IRQ_SHIFT;
else
shift = MONGOOSEV_UART1_IRQ_SHIFT;
@@ -580,7 +580,7 @@
uint32_t pMG5UART_port;
char c;
- pMG5UART_port = Console_Port_Tbl[minor].ulCtrlPort2;
+ pMG5UART_port = Console_Port_Tbl[minor]->ulCtrlPort2;
/* reading the RX buffer automatically resets the interrupt flag */
@@ -609,7 +609,7 @@
mg5uart_init(minor);
Console_Port_Data[minor].bActive = FALSE;
- v = Console_Port_Tbl[minor].ulIntVector;
+ v = Console_Port_Tbl[minor]->ulIntVector;
set_vector(mg5uart_isr_rx_frame_error, v + MG5UART_IRQ_RX_FRAME_ERROR, 1);
set_vector(mg5uart_isr_rx_overrun_error, v + MG5UART_IRQ_RX_OVERRUN_ERROR, 1);
@@ -639,7 +639,7 @@
uint32_t Irql;
uint32_t pMG5UART_port;
- pMG5UART_port = Console_Port_Tbl[minor].ulCtrlPort2;
+ pMG5UART_port = Console_Port_Tbl[minor]->ulCtrlPort2;
/*
* We are using interrupt driven output and termios only sends us
@@ -715,10 +715,10 @@
uint32_t status;
uint32_t tmp,shift;
- pMG5UART = Console_Port_Tbl[minor].ulCtrlPort1;
- pMG5UART_port = Console_Port_Tbl[minor].ulCtrlPort2;
+ pMG5UART = Console_Port_Tbl[minor]->ulCtrlPort1;
+ pMG5UART_port = Console_Port_Tbl[minor]->ulCtrlPort2;
- if ( Console_Port_Tbl[minor].ulDataPort == MG5UART_UART0 )
+ if ( Console_Port_Tbl[minor]->ulDataPort == MG5UART_UART0 )
shift = MONGOOSEV_UART0_IRQ_SHIFT;
else
shift = MONGOOSEV_UART1_IRQ_SHIFT;
@@ -762,7 +762,7 @@
baud_requested = rtems_termios_baud_to_number( baud_requested );
- clock = (uint32_t) Console_Port_Tbl[minor].ulClock;
+ clock = (uint32_t) Console_Port_Tbl[minor]->ulClock;
if (!clock)
rtems_fatal_error_occurred(RTEMS_INVALID_NUMBER);
@@ -813,13 +813,13 @@
uint32_t shift;
rtems_interrupt_level Irql;
- pMG5UART = Console_Port_Tbl[minor].ulCtrlPort1;
+ pMG5UART = Console_Port_Tbl[minor]->ulCtrlPort1;
/*
* Enable interrupts on RX and TX -- not break
*/
- if ( Console_Port_Tbl[minor].ulDataPort == MG5UART_UART0 )
+ if ( Console_Port_Tbl[minor]->ulDataPort == MG5UART_UART0 )
shift = MONGOOSEV_UART0_IRQ_SHIFT;
else
shift = MONGOOSEV_UART1_IRQ_SHIFT;
*jennifer*:
2011-10-18 Jennifer Averett <Jennifer.Averett at OARcorp.com>
PR 1917/bsps
* libchip/serial/mc68681.c, libchip/serial/ns16550.c,
libchip/serial/serial.h, libchip/serial/z85c30.c: Modifications to
add dynamic tables for libchip serial drivers.
M 1.562 c/src/ChangeLog
M 1.41 c/src/libchip/serial/mc68681.c
M 1.51 c/src/libchip/serial/ns16550.c
M 1.20 c/src/libchip/serial/serial.h
M 1.33 c/src/libchip/serial/z85c30.c
diff -u rtems/c/src/ChangeLog:1.561 rtems/c/src/ChangeLog:1.562
--- rtems/c/src/ChangeLog:1.561 Mon Oct 17 06:56:31 2011
+++ rtems/c/src/ChangeLog Tue Oct 18 13:40:27 2011
@@ -1,3 +1,10 @@
+2011-10-18 Jennifer Averett <Jennifer.Averett at OARcorp.com>
+
+ PR 1917/bsps
+ * libchip/serial/mc68681.c, libchip/serial/ns16550.c,
+ libchip/serial/serial.h, libchip/serial/z85c30.c: Modifications to
+ add dynamic tables for libchip serial drivers.
+
2011-10-17 Ralf Corsépius <ralf.corsepius at rtems.org>
* libchip/rtc/icm7170.c (icm7170_get_time): Remove unused var setReg.
diff -u rtems/c/src/libchip/serial/mc68681.c:1.40 rtems/c/src/libchip/serial/mc68681.c:1.41
--- rtems/c/src/libchip/serial/mc68681.c:1.40 Mon Oct 10 23:56:22 2011
+++ rtems/c/src/libchip/serial/mc68681.c Tue Oct 18 13:40:27 2011
@@ -99,9 +99,9 @@
setRegister_f setReg;
rtems_interrupt_level Irql;
- pMC68681 = Console_Port_Tbl[minor].ulCtrlPort1;
- pMC68681_port = Console_Port_Tbl[minor].ulCtrlPort2;
- setReg = Console_Port_Tbl[minor].setRegister;
+ pMC68681 = Console_Port_Tbl[minor]->ulCtrlPort1;
+ pMC68681_port = Console_Port_Tbl[minor]->ulCtrlPort2;
+ setReg = Console_Port_Tbl[minor]->setRegister;
/*
* Set the baud rate
@@ -195,14 +195,14 @@
unsigned int pMC68681;
unsigned int pMC68681_port;
- pMC68681 = Console_Port_Tbl[minor].ulCtrlPort1;
- pMC68681_port = Console_Port_Tbl[minor].ulCtrlPort2;
+ pMC68681 = Console_Port_Tbl[minor]->ulCtrlPort1;
+ pMC68681_port = Console_Port_Tbl[minor]->ulCtrlPort2;
pmc68681Context->mate = -1;
for (port=0 ; port<Console_Port_Count ; port++ ) {
- if ( Console_Port_Tbl[port].ulCtrlPort1 == pMC68681 &&
- Console_Port_Tbl[port].ulCtrlPort2 != pMC68681_port ) {
+ if ( Console_Port_Tbl[port]->ulCtrlPort1 == pMC68681 &&
+ Console_Port_Tbl[port]->ulCtrlPort2 != pMC68681_port ) {
pmc68681Context->mate = port;
pmc68681Context->imr = 0;
break;
@@ -230,9 +230,9 @@
mc68681_initialize_context( minor, pmc68681Context );
- pMC68681 = Console_Port_Tbl[minor].ulCtrlPort1;
- pMC68681_port = Console_Port_Tbl[minor].ulCtrlPort2;
- setReg = Console_Port_Tbl[minor].setRegister;
+ pMC68681 = Console_Port_Tbl[minor]->ulCtrlPort1;
+ pMC68681_port = Console_Port_Tbl[minor]->ulCtrlPort2;
+ setReg = Console_Port_Tbl[minor]->setRegister;
/*
* Reset everything and leave this port disabled.
@@ -282,10 +282,10 @@
unsigned int status;
- pMC68681 = Console_Port_Tbl[minor].ulCtrlPort1;
- pMC68681_port = Console_Port_Tbl[minor].ulCtrlPort2;
- setReg = Console_Port_Tbl[minor].setRegister;
- vector = Console_Port_Tbl[minor].ulIntVector;
+ pMC68681 = Console_Port_Tbl[minor]->ulCtrlPort1;
+ pMC68681_port = Console_Port_Tbl[minor]->ulCtrlPort2;
+ setReg = Console_Port_Tbl[minor]->setRegister;
+ vector = Console_Port_Tbl[minor]->ulIntVector;
/* XXX default baud rate should be from configuration table */
@@ -332,9 +332,9 @@
uint32_t pMC68681_port;
setRegister_f setReg;
- pMC68681 = Console_Port_Tbl[minor].ulCtrlPort1;
- pMC68681_port = Console_Port_Tbl[minor].ulCtrlPort2;
- setReg = Console_Port_Tbl[minor].setRegister;
+ pMC68681 = Console_Port_Tbl[minor]->ulCtrlPort1;
+ pMC68681_port = Console_Port_Tbl[minor]->ulCtrlPort2;
+ setReg = Console_Port_Tbl[minor]->setRegister;
/*
* Disable interrupts from this channel and then disable it totally.
@@ -365,9 +365,9 @@
getRegister_f getReg;
setRegister_f setReg;
- pMC68681_port = Console_Port_Tbl[minor].ulCtrlPort2;
- getReg = Console_Port_Tbl[minor].getRegister;
- setReg = Console_Port_Tbl[minor].setRegister;
+ pMC68681_port = Console_Port_Tbl[minor]->ulCtrlPort2;
+ getReg = Console_Port_Tbl[minor]->getRegister;
+ setReg = Console_Port_Tbl[minor]->setRegister;
/*
* wait for transmitter holding register to be empty
@@ -415,8 +415,8 @@
int minor;
for(minor=0 ; minor<Console_Port_Count ; minor++) {
- if(Console_Port_Tbl[minor].ulIntVector == vector &&
- Console_Port_Tbl[minor].deviceType == SERIAL_MC68681 ) {
+ if(Console_Port_Tbl[minor]->ulIntVector == vector &&
+ Console_Port_Tbl[minor]->deviceType == SERIAL_MC68681 ) {
mc68681_process(minor);
}
}
@@ -435,7 +435,7 @@
Console_Port_Data[minor].bActive = FALSE;
- set_vector(mc68681_isr, Console_Port_Tbl[minor].ulIntVector, 1);
+ set_vector(mc68681_isr, Console_Port_Tbl[minor]->ulIntVector, 1);
mc68681_enable_interrupts(minor,MC68681_IMR_ENABLE_ALL_EXCEPT_TX);
}
@@ -456,8 +456,8 @@
uint32_t pMC68681_port;
setRegister_f setReg;
- pMC68681_port = Console_Port_Tbl[minor].ulCtrlPort2;
- setReg = Console_Port_Tbl[minor].setRegister;
+ pMC68681_port = Console_Port_Tbl[minor]->ulCtrlPort2;
+ setReg = Console_Port_Tbl[minor]->setRegister;
/*
* We are using interrupt driven output and termios only sends us
@@ -529,8 +529,8 @@
unsigned char cChar;
getRegister_f getReg;
- pMC68681_port = Console_Port_Tbl[minor].ulCtrlPort2;
- getReg = Console_Port_Tbl[minor].getRegister;
+ pMC68681_port = Console_Port_Tbl[minor]->ulCtrlPort2;
+ getReg = Console_Port_Tbl[minor]->getRegister;
ucLineStatus = (*getReg)(pMC68681_port, MC68681_STATUS);
if(ucLineStatus & MC68681_RX_READY) {
@@ -564,14 +564,14 @@
acr_bit = 0;
status = 0;
- if (Console_Port_Tbl[minor].ulDataPort & MC68681_DATA_BAUD_RATE_SET_2)
+ if (Console_Port_Tbl[minor]->ulDataPort & MC68681_DATA_BAUD_RATE_SET_2)
{
acr_bit = 1;
}
is_extended = 0;
- switch (Console_Port_Tbl[minor].ulDataPort & MC68681_XBRG_MASK) {
+ switch (Console_Port_Tbl[minor]->ulDataPort & MC68681_XBRG_MASK) {
case MC68681_XBRG_IGNORED:
*command = 0x00;
break;
@@ -591,7 +591,7 @@
baud_requested = rtems_termios_baud_to_index( baud_requested );
baud_tbl = (mc68681_baud_table_t *)
- ((uintptr_t)Console_Port_Tbl[minor].ulClock);
+ ((uintptr_t)Console_Port_Tbl[minor]->ulClock);
if (!baud_tbl)
rtems_fatal_error_occurred(RTEMS_INVALID_ADDRESS);
@@ -630,10 +630,10 @@
getRegister_f getReg;
setRegister_f setReg;
- pMC68681 = Console_Port_Tbl[minor].ulCtrlPort1;
- pMC68681_port = Console_Port_Tbl[minor].ulCtrlPort2;
- getReg = Console_Port_Tbl[minor].getRegister;
- setReg = Console_Port_Tbl[minor].setRegister;
+ pMC68681 = Console_Port_Tbl[minor]->ulCtrlPort1;
+ pMC68681_port = Console_Port_Tbl[minor]->ulCtrlPort2;
+ getReg = Console_Port_Tbl[minor]->getRegister;
+ setReg = Console_Port_Tbl[minor]->setRegister;
/* Get ISR at the beginning of the IT routine */
ucISRStatus = (*getReg)(pMC68681, MC68681_INTERRUPT_STATUS_REG);
@@ -710,8 +710,8 @@
mc68681_context *pmc68681Context;
mc68681_context *mateContext;
- pMC68681 = Console_Port_Tbl[minor].ulCtrlPort1;
- pMC68681_port = Console_Port_Tbl[minor].ulCtrlPort2;
+ pMC68681 = Console_Port_Tbl[minor]->ulCtrlPort1;
+ pMC68681_port = Console_Port_Tbl[minor]->ulCtrlPort2;
pmc68681Context = (mc68681_context *) Console_Port_Data[minor].pDeviceContext;
mate = pmc68681Context->mate;
@@ -735,7 +735,7 @@
* Calculate this port's IMR mask and save it in the context area.
*/
- if ( Console_Port_Tbl[minor].pDeviceFns->deviceOutputUsesInterrupts )
+ if ( Console_Port_Tbl[minor]->pDeviceFns->deviceOutputUsesInterrupts )
mask = enable_flag;
pmc68681Context->imr = mask;
@@ -764,8 +764,8 @@
uint32_t pMC68681;
setRegister_f setReg;
- pMC68681 = Console_Port_Tbl[minor].ulCtrlPort1;
- setReg = Console_Port_Tbl[minor].setRegister;
+ pMC68681 = Console_Port_Tbl[minor]->ulCtrlPort1;
+ setReg = Console_Port_Tbl[minor]->setRegister;
/*
* Enable interrupts on RX and TX -- not break
diff -u rtems/c/src/libchip/serial/ns16550.c:1.50 rtems/c/src/libchip/serial/ns16550.c:1.51
--- rtems/c/src/libchip/serial/ns16550.c:1.50 Mon Jul 11 08:31:13 2011
+++ rtems/c/src/libchip/serial/ns16550.c Tue Oct 18 13:40:27 2011
@@ -113,9 +113,9 @@
Console_Port_Data[minor].pDeviceContext=(void *)pns16550Context;
pns16550Context->ucModemCtrl=SP_MODEM_IRQ;
- pNS16550 = Console_Port_Tbl[minor].ulCtrlPort1;
- setReg = Console_Port_Tbl[minor].setRegister;
- getReg = Console_Port_Tbl[minor].getRegister;
+ pNS16550 = Console_Port_Tbl[minor]->ulCtrlPort1;
+ setReg = Console_Port_Tbl[minor]->setRegister;
+ getReg = Console_Port_Tbl[minor]->getRegister;
/* Clear the divisor latch, clear all interrupt enables,
* and reset and
@@ -128,8 +128,8 @@
/* Set the divisor latch and set the baud rate. */
ulBaudDivisor = NS16550_Baud(
- (uint32_t) Console_Port_Tbl[minor].ulClock,
- (uint32_t) ((uintptr_t)Console_Port_Tbl[minor].pDeviceParams)
+ (uint32_t) Console_Port_Tbl[minor]->ulClock,
+ (uint32_t) ((uintptr_t)Console_Port_Tbl[minor]->pDeviceParams)
);
ucDataByte = SP_LINE_DLAB;
(*setReg)(pNS16550, NS16550_LINE_CONTROL, ucDataByte);
@@ -172,7 +172,7 @@
{
rtems_libio_open_close_args_t *oc = (rtems_libio_open_close_args_t *) arg;
struct rtems_termios_tty *tty = (struct rtems_termios_tty *) oc->iop->data1;
- console_tbl *c = &Console_Port_Tbl [minor];
+ console_tbl *c = Console_Port_Tbl [minor];
console_data *d = &Console_Port_Data [minor];
d->termios_data = tty;
@@ -226,7 +226,7 @@
*/
NS16550_STATIC void ns16550_write_polled(int minor, char out)
{
- console_tbl *c = &Console_Port_Tbl [minor];
+ console_tbl *c = Console_Port_Tbl [minor];
uintptr_t port = c->ulCtrlPort1;
getRegister_f get = c->getRegister;
setRegister_f set = c->setRegister;
@@ -283,8 +283,8 @@
pns16550Context=(ns16550_context *) Console_Port_Data[minor].pDeviceContext;
- pNS16550 = Console_Port_Tbl[minor].ulCtrlPort1;
- setReg = Console_Port_Tbl[minor].setRegister;
+ pNS16550 = Console_Port_Tbl[minor]->ulCtrlPort1;
+ setReg = Console_Port_Tbl[minor]->setRegister;
/*
* Assert RTS
@@ -309,8 +309,8 @@
pns16550Context=(ns16550_context *) Console_Port_Data[minor].pDeviceContext;
- pNS16550 = Console_Port_Tbl[minor].ulCtrlPort1;
- setReg = Console_Port_Tbl[minor].setRegister;
+ pNS16550 = Console_Port_Tbl[minor]->ulCtrlPort1;
+ setReg = Console_Port_Tbl[minor]->setRegister;
/*
* Negate RTS
@@ -340,8 +340,8 @@
pns16550Context=(ns16550_context *) Console_Port_Data[minor].pDeviceContext;
- pNS16550 = Console_Port_Tbl[minor].ulCtrlPort1;
- setReg = Console_Port_Tbl[minor].setRegister;
+ pNS16550 = Console_Port_Tbl[minor]->ulCtrlPort1;
+ setReg = Console_Port_Tbl[minor]->setRegister;
/*
* Assert DTR
@@ -366,8 +366,8 @@
pns16550Context=(ns16550_context *) Console_Port_Data[minor].pDeviceContext;
- pNS16550 = Console_Port_Tbl[minor].ulCtrlPort1;
- setReg = Console_Port_Tbl[minor].setRegister;
+ pNS16550 = Console_Port_Tbl[minor]->ulCtrlPort1;
+ setReg = Console_Port_Tbl[minor]->setRegister;
/*
* Negate DTR
@@ -399,9 +399,9 @@
getRegister_f getReg;
uint32_t Irql;
- pNS16550 = Console_Port_Tbl[minor].ulCtrlPort1;
- setReg = Console_Port_Tbl[minor].setRegister;
- getReg = Console_Port_Tbl[minor].getRegister;
+ pNS16550 = Console_Port_Tbl[minor]->ulCtrlPort1;
+ setReg = Console_Port_Tbl[minor]->setRegister;
+ getReg = Console_Port_Tbl[minor]->getRegister;
/*
* Calculate the baud rate divisor
@@ -412,7 +412,7 @@
baud_requested = B9600; /* default to 9600 baud */
ulBaudDivisor = NS16550_Baud(
- (uint32_t) Console_Port_Tbl[minor].ulClock,
+ (uint32_t) Console_Port_Tbl[minor]->ulClock,
rtems_termios_baud_to_number(baud_requested)
);
@@ -485,7 +485,7 @@
*/
NS16550_STATIC void ns16550_process( int minor)
{
- console_tbl *c = &Console_Port_Tbl [minor];
+ console_tbl *c = Console_Port_Tbl [minor];
console_data *d = &Console_Port_Data [minor];
ns16550_context *ctx = d->pDeviceContext;
uint32_t port = c->ulCtrlPort1;
@@ -544,7 +544,7 @@
size_t len
)
{
- console_tbl *c = &Console_Port_Tbl [minor];
+ console_tbl *c = Console_Port_Tbl [minor];
console_data *d = &Console_Port_Data [minor];
ns16550_context *ctx = d->pDeviceContext;
uint32_t port = c->ulCtrlPort1;
@@ -578,8 +578,8 @@
uint32_t pNS16550;
setRegister_f setReg;
- pNS16550 = Console_Port_Tbl[minor].ulCtrlPort1;
- setReg = Console_Port_Tbl[minor].setRegister;
+ pNS16550 = Console_Port_Tbl[minor]->ulCtrlPort1;
+ setReg = Console_Port_Tbl[minor]->setRegister;
(*setReg)(pNS16550, NS16550_INTERRUPT_ENABLE, mask);
}
@@ -736,8 +736,8 @@
char cChar;
getRegister_f getReg;
- pNS16550 = Console_Port_Tbl[minor].ulCtrlPort1;
- getReg = Console_Port_Tbl[minor].getRegister;
+ pNS16550 = Console_Port_Tbl[minor]->ulCtrlPort1;
+ getReg = Console_Port_Tbl[minor]->getRegister;
ucLineStatus = (*getReg)(pNS16550, NS16550_LINE_STATUS);
if(ucLineStatus & SP_LSR_RDY) {
diff -u rtems/c/src/libchip/serial/serial.h:1.19 rtems/c/src/libchip/serial/serial.h:1.20
--- rtems/c/src/libchip/serial/serial.h:1.19 Sun Apr 25 19:58:39 2010
+++ rtems/c/src/libchip/serial/serial.h Tue Oct 18 13:40:27 2011
@@ -1,3 +1,10 @@
+/**
+ * @file
+ *
+ * @brief The generic libchip serial driver interface
+ */
+
+
/*
* This file contains the TTY driver table definition
*
@@ -28,11 +35,46 @@
* Types for get and set register routines
*/
+/**
+ * @typedef getRegister_f
+ *
+ * This type function provides a hook for the bsp specific method
+ * that gets register data from the given port and register.
+ */
typedef uint8_t (*getRegister_f)(uintptr_t port, uint8_t reg);
+
+/**
+ * @typedef setData_f
+ *
+ * This type function provides a hook for the bsp specific method
+ * that sets register data from the given port and register to the
+ * given value.
+ */
typedef void (*setRegister_f)(uintptr_t port, uint8_t reg, uint8_t value);
+
+/**
+ * @typedef getData_f
+ *
+ * This type function provides a hook for the bsp specific method
+ * that gets data from the specified port.
+ */
typedef uint8_t (*getData_f)(uintptr_t port);
+
+/**
+ * @typedef setData_f
+ *
+ * This type function provides a hook for the bsp specific method
+ * that writes value to the specified port.
+ */
typedef void (*setData_f)(uintptr_t port, uint8_t value);
+/**
+ * @typedef _console_fns
+ *
+ * This type definition provides a structure of functions each
+ * methood provides an interfce to the serial por to do a specific
+ * function.
+ */
typedef struct _console_fns {
bool (*deviceProbe)(int minor);
int (*deviceFirstOpen)(int major, int minor, void *arg);
@@ -45,11 +87,22 @@
bool deviceOutputUsesInterrupts;
} console_fns;
+/**
+ * @typedef _console_flow
+ *
+ * This type definition provides a structure of functions
+ * that provide flow control for the transmit buffer.
+ */
typedef struct _console_flow {
int (*deviceStopRemoteTx)(int minor);
int (*deviceStartRemoteTx)(int minor);
} console_flow;
+
+/**
+ * This type defination provides an enumerated type of all
+ * supported libchip console drivers.
+ */
typedef enum {
SERIAL_MC68681, /* Motorola MC68681 or Exar 88681 */
SERIAL_NS16550, /* National Semiconductor NS16550 */
@@ -57,100 +110,114 @@
SERIAL_CUSTOM /* BSP specific driver */
} console_devs;
-/*
- * Each field is interpreted thus:
- *
- * sDeviceName This is the name of the device.
- *
- * deviceType This indicates the chip type. It is especially important when
- * multiple devices share the same interrupt vector and must be
- * distinguished.
- *
- * pDeviceFns This is a pointer to the set of driver routines to use.
- *
- * pDeviceFlow This is a pointer to the set of flow control routines to
- * use. Serial device drivers will typically supply RTSCTS
- * and DTRCTS handshake routines for DCE to DCE communication,
- * however for DCE to DTE communication, no such routines
- * should be necessary as RTS will be driven automatically
- * when the transmitter is active.
- *
- * ulMargin The high water mark in the input buffer is set to the buffer
- * size less ulMargin. Once this level is reached, the driver's
- * flow control routine used to stop the remote transmitter will
- * be called. This figure should be greater than or equal to
- * the number of stages of FIFO between the transmitter and
- * receiver.
- *
- * NOTE: At the current time, this parameter is hard coded
- * in termios and this number is ignored.
- *
- * ulHysteresis After the high water mark specified by ulMargin has been
- * reached, the driver's routine to re-start the remote
- * transmitter will be called once the level in the input
- * buffer has fallen by ulHysteresis bytes.
- *
- * NOTE: At the current time, this parameter is hard coded
- * in termios and this number is ignored.
- *
- * pDeviceParams This contains either device specific data or a pointer to a
- * device specific structure containing additional information
- * not provided in this table.
- *
- * ulCtrlPort1 This is the primary control port number for the device. This
- * may be used to specify different instances of the same device
- * type.
- *
- * ulCtrlPort2 This is the secondary control port number, of use when a given
- * device has more than one available channel.
- *
- * ulDataPort This is the port number for the data port of the device
- *
- * getRegister This is the routine used to read register values.
- *
- * setRegister This is the routine used to write register values.
- *
- * getData This is the routine used to read the data register (RX).
- *
- * setData This is the routine used to write the data register (TX).
- *
- * ulClock This is the baud rate clock speed.
- *
- * ulIntVector This encodes the interrupt vector of the device.
+/**
+ * This type defination provides an structure that is used to
+ * uniquely identify a specific serial port.
*/
-
typedef struct _console_tbl {
+ /** This is the name of the device. */
char *sDeviceName;
+ /** This indicates the chip type. It is especially important when
+ * multiple devices share the same interrupt vector and must be
+ * distinguished.
+ */
console_devs deviceType;
+ /** pDeviceFns This is a pointer to the set of driver routines to use. */
console_fns *pDeviceFns;
+ /** This value is passed to the serial device driver for use. In termios
+ * itself the number is ignored.
+ */
bool (*deviceProbe)(int minor);
+ /** This is a pointer to the set of flow control routines to
+ * use. Serial device drivers will typically supply RTSCTS
+ * and DTRCTS handshake routines for DCE to DCE communication,
+ * however for DCE to DTE communication, no such routines
+ * should be necessary as RTS will be driven automatically
+ * when the transmitter is active.
+ */
console_flow *pDeviceFlow;
+ /** The high water mark in the input buffer is set to the buffer
+ * size less ulMargin. Once this level is reached, the driver's
+ * flow control routine used to stop the remote transmitter will
+ * be called. This figure should be greater than or equal to
+ * the number of stages of FIFO between the transmitter and
+ * receiver.
+ *
+ * @note At the current time, this parameter is hard coded
+ * in termios and this number is ignored.
+ */
uint32_t ulMargin;
+ /** After the high water mark specified by ulMargin has been
+ * reached, the driver's routine to re-start the remote
+ * transmitter will be called once the level in the input
+ * buffer has fallen by ulHysteresis bytes.
+ *
+ * @note At the current time, this parameter is hard coded in termios.
+ */
uint32_t ulHysteresis;
+ /** This contains either device specific data or a pointer to a
+ * device specific structure containing additional information
+ * not provided in this table.
+ */
void *pDeviceParams;
+ /** This is the primary control port number for the device. This
+ * may be used to specify different instances of the same device type.
+ */
uint32_t ulCtrlPort1;
+ /** This is the secondary control port number, of use when a given
+ * device has more than one available channel.
+ */
uint32_t ulCtrlPort2;
+ /** This is the port number for the data port of the device */
uint32_t ulDataPort;
+ /** This is the routine used to read register values. */
getRegister_f getRegister;
+ /** This is the routine used to write register values. */
setRegister_f setRegister;
+ /** This is the routine used to read the data register (RX). */
getData_f getData;
+ /* This is the routine used to write the data register (TX). */
setData_f setData;
+ /** This is the baud rate clock speed.*/
uint32_t ulClock;
+ /** This encodes the interrupt vector of the device. */
unsigned int ulIntVector;
} console_tbl;
+/**
+ * This type defination provides data for the console port.
+ */
typedef struct _console_data {
void *termios_data;
volatile bool bActive;
- /*
- * This field may be used for any purpose required by the driver
- */
+ /** This field may be used for any purpose required by the driver */
void *pDeviceContext;
} console_data;
-extern console_tbl Console_Port_Tbl[];
-extern console_data Console_Port_Data[];
-extern unsigned long Console_Port_Count;
+/**
+ * This is a dynamically sized set of tables containing the serial
+ * port information.
+ */
+extern console_tbl **Console_Port_Tbl;
+/**
+ * This is the number of serial ports defined in the Console_Port_Tbl.
+ */
+extern unsigned long Console_Port_Count;
+
+/**
+ * The statically configured serial port information tables which
+ * are used to initially populate the dynamic tables.
+ */
+extern console_tbl Console_Configuration_Ports[];
+/**
+ * The number of serial ports defined in Console_Configuration_Ports
+ * */
+extern unsigned long Console_Configuration_Count;
+
+/**
+ * This is an array of per port information.
+ */
+extern console_data *Console_Port_Data;
#ifdef __cplusplus
}
diff -u rtems/c/src/libchip/serial/z85c30.c:1.32 rtems/c/src/libchip/serial/z85c30.c:1.33
--- rtems/c/src/libchip/serial/z85c30.c:1.32 Mon Oct 10 03:37:28 2011
+++ rtems/c/src/libchip/serial/z85c30.c Tue Oct 18 13:40:27 2011
@@ -96,8 +96,8 @@
uintptr_t ulBaudDivisor;
setRegister_f setReg;
- ulCtrlPort = Console_Port_Tbl[minor].ulCtrlPort1;
- setReg = Console_Port_Tbl[minor].setRegister;
+ ulCtrlPort = Console_Port_Tbl[minor]->ulCtrlPort1;
+ setReg = Console_Port_Tbl[minor]->setRegister;
/*
* Using register 4
@@ -137,8 +137,8 @@
);
ulBaudDivisor = Z85C30_Baud(
- (uint32_t) Console_Port_Tbl[minor].ulClock,
- (uint32_t) ((uintptr_t)Console_Port_Tbl[minor].pDeviceParams)
+ (uint32_t) Console_Port_Tbl[minor]->ulClock,
+ (uint32_t) ((uintptr_t)Console_Port_Tbl[minor]->pDeviceParams)
);
/*
@@ -219,7 +219,7 @@
* Assert DTR
*/
- if (Console_Port_Tbl[minor].pDeviceFlow !=&z85c30_flow_DTRCTS) {
+ if (Console_Port_Tbl[minor]->pDeviceFlow !=&z85c30_flow_DTRCTS) {
z85c30_assert_DTR(minor);
}
@@ -240,7 +240,7 @@
* Negate DTR
*/
- if (Console_Port_Tbl[minor].pDeviceFlow !=&z85c30_flow_DTRCTS) {
+ if (Console_Port_Tbl[minor]->pDeviceFlow !=&z85c30_flow_DTRCTS) {
z85c30_negate_DTR(minor);
}
@@ -258,8 +258,9 @@
setRegister_f setReg;
getRegister_f getReg;
- setReg = Console_Port_Tbl[minor].setRegister;
- getReg = Console_Port_Tbl[minor].getRegister;
+ ulCtrlPort = Console_Port_Tbl[minor]->ulCtrlPort1;
+ setReg = Console_Port_Tbl[minor]->setRegister;
+ getReg = Console_Port_Tbl[minor]->getRegister;
pz85c30Context = (z85c30_context *)malloc(sizeof(z85c30_context));
@@ -267,8 +268,8 @@
pz85c30Context->ucModemCtrl = SCC_WR5_TX_8_BITS | SCC_WR5_TX_EN;
- ulCtrlPort = Console_Port_Tbl[minor].ulCtrlPort1;
- if ( ulCtrlPort == Console_Port_Tbl[minor].ulCtrlPort2 ) {
+ ulCtrlPort = Console_Port_Tbl[minor]->ulCtrlPort1;
+ if ( ulCtrlPort == Console_Port_Tbl[minor]->ulCtrlPort2 ) {
/*
* This is channel A
*/
@@ -306,7 +307,7 @@
z85c30_context *pz85c30Context;
setRegister_f setReg;
- setReg = Console_Port_Tbl[minor].setRegister;
+ setReg = Console_Port_Tbl[minor]->setRegister;
pz85c30Context = (z85c30_context *) Console_Port_Data[minor].pDeviceContext;
@@ -317,7 +318,7 @@
rtems_interrupt_disable(Irql);
pz85c30Context->ucModemCtrl|=SCC_WR5_RTS;
(*setReg)(
- Console_Port_Tbl[minor].ulCtrlPort1,
+ Console_Port_Tbl[minor]->ulCtrlPort1,
SCC_WR0_SEL_WR5,
pz85c30Context->ucModemCtrl
);
@@ -335,7 +336,7 @@
z85c30_context *pz85c30Context;
setRegister_f setReg;
- setReg = Console_Port_Tbl[minor].setRegister;
+ setReg = Console_Port_Tbl[minor]->setRegister;
pz85c30Context = (z85c30_context *) Console_Port_Data[minor].pDeviceContext;
@@ -346,7 +347,7 @@
rtems_interrupt_disable(Irql);
pz85c30Context->ucModemCtrl&=~SCC_WR5_RTS;
(*setReg)(
- Console_Port_Tbl[minor].ulCtrlPort1,
+ Console_Port_Tbl[minor]->ulCtrlPort1,
SCC_WR0_SEL_WR5,
pz85c30Context->ucModemCtrl
);
@@ -369,7 +370,7 @@
z85c30_context *pz85c30Context;
setRegister_f setReg;
- setReg = Console_Port_Tbl[minor].setRegister;
+ setReg = Console_Port_Tbl[minor]->setRegister;
pz85c30Context = (z85c30_context *) Console_Port_Data[minor].pDeviceContext;
@@ -380,7 +381,7 @@
rtems_interrupt_disable(Irql);
pz85c30Context->ucModemCtrl|=SCC_WR5_DTR;
(*setReg)(
- Console_Port_Tbl[minor].ulCtrlPort1,
+ Console_Port_Tbl[minor]->ulCtrlPort1,
SCC_WR0_SEL_WR5,
pz85c30Context->ucModemCtrl
);
@@ -398,7 +399,7 @@
z85c30_context *pz85c30Context;
setRegister_f setReg;
- setReg = Console_Port_Tbl[minor].setRegister;
+ setReg = Console_Port_Tbl[minor]->setRegister;
pz85c30Context = (z85c30_context *) Console_Port_Data[minor].pDeviceContext;
@@ -409,7 +410,7 @@
rtems_interrupt_disable(Irql);
pz85c30Context->ucModemCtrl&=~SCC_WR5_DTR;
(*setReg)(
- Console_Port_Tbl[minor].ulCtrlPort1,
+ Console_Port_Tbl[minor]->ulCtrlPort1,
SCC_WR0_SEL_WR5,
pz85c30Context->ucModemCtrl
);
@@ -438,8 +439,8 @@
setRegister_f setReg;
rtems_interrupt_level Irql;
- ulCtrlPort = Console_Port_Tbl[minor].ulCtrlPort1;
- setReg = Console_Port_Tbl[minor].setRegister;
+ ulCtrlPort = Console_Port_Tbl[minor]->ulCtrlPort1;
+ setReg = Console_Port_Tbl[minor]->setRegister;
/*
* Calculate the baud rate divisor
@@ -450,7 +451,7 @@
baud_requested = B9600; /* default to 9600 baud */
ulBaudDivisor = Z85C30_Baud(
- (uint32_t) Console_Port_Tbl[minor].ulClock,
+ (uint32_t) Console_Port_Tbl[minor]->ulClock,
(uint32_t) rtems_termios_baud_to_number( baud_requested )
);
@@ -540,9 +541,9 @@
setRegister_f setReg;
getRegister_f getReg;
- ulCtrlPort = Console_Port_Tbl[minor].ulCtrlPort1;
- setReg = Console_Port_Tbl[minor].setRegister;
- getReg = Console_Port_Tbl[minor].getRegister;
+ ulCtrlPort = Console_Port_Tbl[minor]->ulCtrlPort1;
+ setReg = Console_Port_Tbl[minor]->setRegister;
+ getReg = Console_Port_Tbl[minor]->getRegister;
/*
* Deal with any received characters
@@ -604,7 +605,7 @@
rtems_termios_dequeue_characters(Console_Port_Data[minor].termios_data, 1);
if (rtems_termios_dequeue_characters(
Console_Port_Data[minor].termios_data, 1)) {
- if (Console_Port_Tbl[minor].pDeviceFlow != &z85c30_flow_RTSCTS) {
+ if (Console_Port_Tbl[minor]->pDeviceFlow != &z85c30_flow_RTSCTS) {
z85c30_negate_RTS(minor);
}
Console_Port_Data[minor].bActive = FALSE;
@@ -646,10 +647,10 @@
getRegister_f getReg;
for (minor=0;minor<Console_Port_Count;minor++) {
- if(Console_Port_Tbl[minor].ulIntVector == vector &&
- Console_Port_Tbl[minor].deviceType == SERIAL_Z85C30 ) {
- ulCtrlPort = Console_Port_Tbl[minor].ulCtrlPort2;
- getReg = Console_Port_Tbl[minor].getRegister;
+ if(Console_Port_Tbl[minor]->ulIntVector == vector &&
+ Console_Port_Tbl[minor]->deviceType == SERIAL_Z85C30 ) {
+ ulCtrlPort = Console_Port_Tbl[minor]->ulCtrlPort2;
+ getReg = Console_Port_Tbl[minor]->getRegister;
do {
ucIntPend = (*getReg)(ulCtrlPort, SCC_WR0_SEL_RD3);
@@ -657,7 +658,7 @@
* If this is channel A select channel A status
*/
- if (ulCtrlPort == Console_Port_Tbl[minor].ulCtrlPort1) {
+ if (ulCtrlPort == Console_Port_Tbl[minor]->ulCtrlPort1) {
ucIntPendPort = ucIntPend >> 3;
ucIntPendPort &= 7;
} else {
@@ -686,8 +687,8 @@
uint32_t ulCtrlPort;
setRegister_f setReg;
- ulCtrlPort = Console_Port_Tbl[minor].ulCtrlPort1;
- setReg = Console_Port_Tbl[minor].setRegister;
+ ulCtrlPort = Console_Port_Tbl[minor]->ulCtrlPort1;
+ setReg = Console_Port_Tbl[minor]->setRegister;
(*setReg)(ulCtrlPort, SCC_WR0_SEL_WR1, interrupt_mask);
}
@@ -706,9 +707,9 @@
uint32_t ulCtrlPort2;
setRegister_f setReg;
- ulCtrlPort1 = Console_Port_Tbl[minor].ulCtrlPort1;
- ulCtrlPort2 = Console_Port_Tbl[minor].ulCtrlPort2;
- setReg = Console_Port_Tbl[minor].setRegister;
+ ulCtrlPort1 = Console_Port_Tbl[minor]->ulCtrlPort1;
+ ulCtrlPort2 = Console_Port_Tbl[minor]->ulCtrlPort2;
+ setReg = Console_Port_Tbl[minor]->setRegister;
z85c30_init(minor);
@@ -717,11 +718,11 @@
z85c30_initialize_port( minor );
- if (Console_Port_Tbl[minor].pDeviceFlow != &z85c30_flow_RTSCTS) {
+ if (Console_Port_Tbl[minor]->pDeviceFlow != &z85c30_flow_RTSCTS) {
z85c30_negate_RTS(minor);
}
- set_vector(z85c30_isr, Console_Port_Tbl[minor].ulIntVector, 1);
+ set_vector(z85c30_isr, Console_Port_Tbl[minor]->ulIntVector, 1);
z85c30_enable_interrupts(minor, SCC_ENABLE_ALL_INTR_EXCEPT_TX);
@@ -751,8 +752,8 @@
uint32_t ulCtrlPort;
setRegister_f setReg;
- ulCtrlPort = Console_Port_Tbl[minor].ulCtrlPort1;
- setReg = Console_Port_Tbl[minor].setRegister;
+ ulCtrlPort = Console_Port_Tbl[minor]->ulCtrlPort1;
+ setReg = Console_Port_Tbl[minor]->setRegister;
/*
* We are using interrupt driven output and termios only sends us
@@ -766,7 +767,7 @@
* Put the character out and enable interrupts if necessary.
*/
- if (Console_Port_Tbl[minor].pDeviceFlow != &z85c30_flow_RTSCTS) {
+ if (Console_Port_Tbl[minor]->pDeviceFlow != &z85c30_flow_RTSCTS) {
z85c30_assert_RTS(minor);
}
rtems_interrupt_disable(Irql);
@@ -794,8 +795,8 @@
uint32_t ulCtrlPort;
getRegister_f getReg;
- ulCtrlPort = Console_Port_Tbl[minor].ulCtrlPort1;
- getReg = Console_Port_Tbl[minor].getRegister;
+ ulCtrlPort = Console_Port_Tbl[minor]->ulCtrlPort1;
+ getReg = Console_Port_Tbl[minor]->getRegister;
/*
* return -1 if a character is not available.
@@ -856,9 +857,9 @@
getRegister_f getReg;
setRegister_f setReg;
- ulCtrlPort = Console_Port_Tbl[minor].ulCtrlPort1;
- getReg = Console_Port_Tbl[minor].getRegister;
- setReg = Console_Port_Tbl[minor].setRegister;
+ ulCtrlPort = Console_Port_Tbl[minor]->ulCtrlPort1;
+ getReg = Console_Port_Tbl[minor]->getRegister;
+ setReg = Console_Port_Tbl[minor]->setRegister;
/*
* Wait for the Transmit buffer to indicate that it is empty.
--
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/20111018/1718b72b/attachment-0001.html>
More information about the vc
mailing list