/* * This file contains the TTY driver table for the DY-4 DMV177. * * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994, 1997. * On-Line Applications Research Corporation (OAR). * All rights assigned to U.S. Government, 1994. * * $Id$ */ #include #include #include #include /* * Configuration specific probe routines * * * NOTE: There are no DMV177 specific configuration routines. These * routines could be written to dynamically determine which serial * ports are on a board. Debugging this would require access to * multiple board models. */ /* NONE CURRENTLY PROVIDED */ /* * The following table configures the console drivers used in this BSP. * * The first entry which, when probed, is available, will be named /dev/console, * all others being given the name indicated. */ mc68681_baud_t dmv177_mc68681_baud_table[4][RTEMS_TERMIOS_NUMBER_BAUD_RATES] = { { /* ACR[7] = 0, X = 0 */ MC68681_BAUD_NOT_VALID, /* B0 */ MC68681_BAUD_NOT_VALID, /* B50 */ 0x01, /* B75 */ MC68681_BAUD_NOT_VALID, /* B110 */ 0x03, /* B134 */ MC68681_BAUD_NOT_VALID, /* B150 */ 0x04, /* B200 */ MC68681_BAUD_NOT_VALID, /* B300 */ MC68681_BAUD_NOT_VALID, /* B600 */ MC68681_BAUD_NOT_VALID, /* B1200 */ MC68681_BAUD_NOT_VALID, /* B1800 */ MC68681_BAUD_NOT_VALID, /* B2400 */ 0x0A, /* B4800 */ MC68681_BAUD_NOT_VALID, /* B9600 */ MC68681_BAUD_NOT_VALID, /* B19200 */ MC68681_BAUD_NOT_VALID, /* B38400 */ MC68681_BAUD_NOT_VALID, /* B57600 */ MC68681_BAUD_NOT_VALID, /* B115200 */ MC68681_BAUD_NOT_VALID, /* B230400 */ MC68681_BAUD_NOT_VALID /* B460800 */ }, { /* ACR[7] = 1, X = 0 */ MC68681_BAUD_NOT_VALID, /* B0 */ 0x00, /* B50 */ 0x01, /* B75 */ MC68681_BAUD_NOT_VALID, /* B110 */ MC68681_BAUD_NOT_VALID, /* B134 */ MC68681_BAUD_NOT_VALID, /* B150 */ 0x04, /* B200 */ MC68681_BAUD_NOT_VALID, /* B300 */ MC68681_BAUD_NOT_VALID, /* B600 */ 0x0A, /* B1200 */ MC68681_BAUD_NOT_VALID, /* B1800 */ MC68681_BAUD_NOT_VALID, /* B2400 */ MC68681_BAUD_NOT_VALID, /* B4800 */ MC68681_BAUD_NOT_VALID, /* B9600 */ MC68681_BAUD_NOT_VALID, /* B19200 */ MC68681_BAUD_NOT_VALID, /* B38400 */ MC68681_BAUD_NOT_VALID, /* B57600 */ MC68681_BAUD_NOT_VALID, /* B115200 */ MC68681_BAUD_NOT_VALID, /* B230400 */ MC68681_BAUD_NOT_VALID /* B460800 */ }, { /* ACR[7] = 0, X = 1 */ MC68681_BAUD_NOT_VALID, /* B0 */ 0x00, /* B50 */ 0x01, /* B75 */ MC68681_BAUD_NOT_VALID, /* B110 */ MC68681_BAUD_NOT_VALID, /* B134 */ MC68681_BAUD_NOT_VALID, /* B150 */ MC68681_BAUD_NOT_VALID, /* B200 */ MC68681_BAUD_NOT_VALID, /* B300 */ MC68681_BAUD_NOT_VALID, /* B600 */ MC68681_BAUD_NOT_VALID, /* B1200 */ MC68681_BAUD_NOT_VALID, /* B1800 */ 0x04, /* B2400 */ MC68681_BAUD_NOT_VALID, /* B4800 */ 0x05, /* B9600 */ 0x06, /* B19200 */ 0x07, /* B38400 */ MC68681_BAUD_NOT_VALID, /* B57600 */ MC68681_BAUD_NOT_VALID, /* B115200 */ MC68681_BAUD_NOT_VALID, /* B230400 */ MC68681_BAUD_NOT_VALID /* B460800 */ }, { /* ACR[7] = 1, X = 1 */ MC68681_BAUD_NOT_VALID, /* B0 */ MC68681_BAUD_NOT_VALID, /* B50 */ 0x01, /* B75 */ MC68681_BAUD_NOT_VALID, /* B110 */ 0x03, /* B134 */ MC68681_BAUD_NOT_VALID, /* B150 */ MC68681_BAUD_NOT_VALID, /* B200 */ MC68681_BAUD_NOT_VALID, /* B300 */ MC68681_BAUD_NOT_VALID, /* B600 */ MC68681_BAUD_NOT_VALID, /* B1200 */ MC68681_BAUD_NOT_VALID, /* B1800 */ 0x04, /* B2400 */ 0x0A, /* B4800 */ 0x05, /* B9600 */ 0x06, /* B19200 */ 0x07, /* B38400 */ MC68681_BAUD_NOT_VALID, /* B57600 */ MC68681_BAUD_NOT_VALID, /* B115200 */ MC68681_BAUD_NOT_VALID, /* B230400 */ MC68681_BAUD_NOT_VALID /* B460800 */ }, }; #define MC68681_PORT_CONFIG \ (MC68681_DATA_BAUD_RATE_SET_1|MC68681_XBRG_ENABLED) /* * Based on BSP configuration information decide whether to do polling IO * or interrupt driven IO. */ #if (CONSOLE_USE_INTERRUPTS) #define MC68681_FUNCTIONS &mc68681_fns #define Z85C30_FUNCTIONS &z85c30_fns #else #define MC68681_FUNCTIONS &mc68681_fns_polled #define Z85C30_FUNCTIONS &z85c30_fns_polled #endif console_tbl Console_Port_Tbl[] = { { "/dev/com0", /* sDeviceName */ SERIAL_MC68681, /* deviceType */ MC68681_FUNCTIONS, /* pDeviceFns */ NULL, /* deviceProbe */ NULL, /* pDeviceFlow */ 16, /* ulMargin */ 8, /* ulHysteresis */ (void *)9600, /* baud rate */ /* pDeviceParams */ MC68681_ADDR, /* ulCtrlPort1 */ MC68681_PORT1_ADDR, /* ulCtrlPort2 */ MC68681_PORT_CONFIG, /* ulDataPort */ mc68681_get_register_8, /* getRegister */ mc68681_set_register_8, /* setRegister */ NULL, /* unused */ /* getData */ NULL, /* unused */ /* setData */ (unsigned32)dmv177_mc68681_baud_table, /* ulClock */ DMV170_DUART_IRQ /* ulIntVector */ }, { "/dev/com1", /* sDeviceName */ SERIAL_MC68681, /* deviceType */ MC68681_FUNCTIONS, /* pDeviceFns */ NULL, /* deviceProbe */ NULL, /* pDeviceFlow */ 16, /* ulMargin */ 8, /* ulHysteresis */ (void *)9600, /* baud rate */ /* pDeviceParams */ MC68681_ADDR, /* ulCtrlPort1 */ MC68681_PORT2_ADDR, /* ulCtrlPort2 */ MC68681_PORT_CONFIG, /* ulDataPort */ mc68681_get_register_8, /* getRegister */ mc68681_set_register_8, /* setRegister */ NULL, /* unused */ /* getData */ NULL, /* unused */ /* setData */ (unsigned32)dmv177_mc68681_baud_table, /* ulClock */ DMV170_DUART_IRQ /* ulIntVector */ }, { "/dev/com3", /* sDeviceName */ SERIAL_Z85C30, /* deviceType */ Z85C30_FUNCTIONS, /* pDeviceFns */ NULL, /* deviceProbe */ NULL, /* pDeviceFlow */ 16, /* ulMargin */ 8, /* ulHysteresis */ (void *)9600, /* baud rate */ /* pDeviceParams */ Z85C30_CTRL_A, /* ulCtrlPort1 */ Z85C30_CTRL_A, /* ulCtrlPort2 */ Z85C30_DATA_A, /* ulDataPort */ z85c30_get_register, /* getRegister */ z85c30_set_register, /* setRegister */ z85c30_get_data, /* getData */ z85c30_set_data, /* setData */ Z85C30_CLOCK, /* ulClock */ DMV170_SCC_IRQ /* ulIntVector */ }, { "/dev/com4", /* sDeviceName */ SERIAL_Z85C30, /* deviceType */ Z85C30_FUNCTIONS, /* pDeviceFns */ NULL, /* deviceProbe */ NULL, /* pDeviceFlow */ 16, /* ulMargin */ 8, /* ulHysteresis */ (void *)9600, /* baud rate */ /* pDeviceParams */ Z85C30_CTRL_B, /* ulCtrlPort1 */ Z85C30_CTRL_A, /* ulCtrlPort2 */ Z85C30_DATA_B, /* ulDataPort */ z85c30_get_register, /* getRegister */ z85c30_set_register, /* setRegister */ z85c30_get_data, /* getData */ z85c30_set_data, /* setData */ Z85C30_CLOCK, /* ulClock */ DMV170_SCC_IRQ /* ulIntVector */ } }; /* * Declare some information used by the console driver */ #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;