Several changes:

- Implement proper EISA probing.
 - Better support for the new transputer based host cards.
 - use standard termios settings, one can use the intial/lock devices.
 - use a simple bcopy since some cards/systems apparently don't support
   32 bit accesses.
 - hard reset and halt host card CPU prior to download in case of a soft
   restart.
 - recognize new remote module types (ASIC vs. CD1400 based)
 - a number of cosmetic changes (my fault, not Nick's)

Submitted by:  Nick Sayer <nsayer@quack.kfu.com>
This commit is contained in:
Peter Wemm 1998-03-23 16:27:43 +00:00
parent eaab5e9a66
commit e93eb8a353
6 changed files with 1042 additions and 572 deletions

File diff suppressed because it is too large Load Diff

View File

@ -2,9 +2,9 @@
* Device driver for Specialix range (SI/XIO) of serial line multiplexors.
* 'C' definitions for Specialix serial multiplex driver.
*
* Copyright (C) 1990, 1992 Specialix International,
* Copyright (C) 1990, 1992, 1998 Specialix International,
* Copyright (C) 1993, Andy Rutter <andy@acronym.co.uk>
* Copyright (C) 1995, Peter Wemm <peter@haywire.dialix.com>
* Copyright (C) 1995, Peter Wemm <peter@netplex.com.au>
*
* Derived from: SunOS 4.x version
*
@ -30,7 +30,7 @@
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
* NO EVENT SHALL THE AUTHORS BE LIABLE.
*
* $Id: si.h,v 1.10 1998/02/15 14:42:32 peter Exp $
* $Id: si.h,v 1.11 1998/03/21 06:17:14 peter Exp $
*/
#include <sys/callout.h>
@ -88,7 +88,7 @@
/* Adapter types */
#define SIEMPTY 0
#define SIHOST 1
#define SI2 2
#define SIMCA 2
#define SIHOST2 3
#define SIEISA 4
#define SIPCI 5
@ -113,8 +113,8 @@ struct si_reg {
BYTE memsize;
WORD int_count;
WORD revision;
BYTE rx_int_count;
BYTE spare;
BYTE rx_int_count; /* isr_count on Jet */
BYTE main_count; /* spare on Z-280 */
WORD int_pending;
WORD int_counter;
BYTE int_scounter;
@ -137,26 +137,13 @@ struct si_module {
* the address of the next module block if fitted. (else 0)
* Note that next points to the TX buffer so 0x60 must be
* subtracted to find the true base.
*
* Type is a bit field as follows: The bottom 5 bits are the
* number of channels on this module, the top 3 bits are
* as the module type thus:
*
* 000 2698 RS232 module (4 port or 8 port)
* 001 Reserved for 2698 RS422 module
* 010 Reserved for 8530 based sync module
* 011 Reserved for parallel printer module
* 100 Reserved for network module
* 101-111 Reserved for expansion.
*
* The number field is the cable position of the module.
*/
#define M232 0x00
#define M422 0x20 /* not supported */
#define MSYNC 0x40 /* this is the Telebit Netblazer module */
#define MCENT 0x60 /* not supported */
#define MNET 0x80 /* not supported */
#define MMASK 0x1F
#define TA4 0x00
#define TA8 0x08
#define TA4_ASIC 0x0A
#define TA8_ASIC 0x0B
#define MTA 0x28
#define SXDC 0x48
/*
* Per channel(port) control structure, stored in shared memory.

View File

@ -2,9 +2,9 @@
* Device driver for Specialix range (SI/XIO) of serial line multiplexors.
* 'C' definitions for Specialix serial multiplex driver.
*
* Copyright (C) 1990, 1992 Specialix International,
* Copyright (C) 1990, 1992, 1998 Specialix International,
* Copyright (C) 1993, Andy Rutter <andy@acronym.co.uk>
* Copyright (C) 1995, Peter Wemm <peter@haywire.dialix.com>
* Copyright (C) 1995, Peter Wemm <peter@netplex.com.au>
*
* Derived from: SunOS 4.x version
*
@ -30,7 +30,7 @@
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
* NO EVENT SHALL THE AUTHORS BE LIABLE.
*
* $Id: sireg.h,v 1.4 1997/02/22 09:37:11 peter Exp $
* $Id: sireg.h,v 1.5 1998/02/15 14:42:33 peter Exp $
*/
/*
@ -56,6 +56,11 @@
#define SIINTCL 0xA000 /* Clear host int */
#define SIINTCL_CL 0xE000 /* Clear host int */
/* SI EISA */
#define SIEISADEVID 0x4d980411 /* EISA Device ID */
#define SIEISABASE 0xc00 /* Our ports start here */
#define SIEISAIOSIZE 0x100 /* XXX How many ports */
/* SI old PCI */
#define SIPCIBADR 0x10 /* Which BADR to map in RAM */
#define SIPCI_MEMSIZE 0x100000 /* Mapping size */
@ -63,12 +68,13 @@
#define SIPCIINTCL 0x40001 /* 0 = clear int */
/* SI Jet PCI */
#define SIJETSSIDREG 0x2c /* Is it a SI/XIO or RIO? */
#define SIJETSSIDREG 0x2c /* Is it an SX or RIO? */
#define SIJETBADR 0x18 /* Which BADR to map in RAM */
/* SI Jet PCI & ISA */
#define SIJETIDBASE 0x7c00 /* ID ROM base */
#define SISPLXID 0x984d /* Specialix ID */
#define SIUNIQID 0x7c0e /* & 0xf0 = 0x20 for Si/XIO */
#define SIUNIQID 0x7c0e /* & 0xf0 = 0x20 for SX */
#define SIJETIDSTR 0x7c20 /* ID ROM string */
#define SIJETRESET 0x7d00
#define SIJETINTCL 0x7d80
#define SIJETCONFIG 0x7c00 /* for ISA, top nibble = IRQ */
@ -79,12 +85,13 @@
* MEMSIZE is the total shared mem region
* RAMSIZE is value to use when probing
*/
#define SIJET_MEMSIZE 0x10000
#define SIJETPCI_MEMSIZE 0x10000
#define SIJETISA_MEMSIZE 0x10000
#define SIJET_RAMSIZE 0x7000
#define SIHOST_MEMSIZE 0x10000
#define SIHOST_RAMSIZE 0x8000
#define SIHOST2_MEMSIZE 0x8000
#define SIHOST2_RAMSIZE 0x7ff7
#define SIEISA_MEMSIZE 0x10000
#define SEISAT_RAMSIZE 0x10000
#define SIEISA_RAMSIZE 0x10000

View File

@ -2,9 +2,9 @@
* Device driver for Specialix range (SI/XIO) of serial line multiplexors.
* 'C' definitions for Specialix serial multiplex driver.
*
* Copyright (C) 1990, 1992 Specialix International,
* Copyright (C) 1990, 1992, 1998 Specialix International,
* Copyright (C) 1993, Andy Rutter <andy@acronym.co.uk>
* Copyright (C) 1995, Peter Wemm <peter@haywire.dialix.com>
* Copyright (C) 1995, Peter Wemm <peter@netplex.com.au>
*
* Derived from: SunOS 4.x version
*
@ -30,7 +30,7 @@
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
* NO EVENT SHALL THE AUTHORS BE LIABLE.
*
* $Id: si.h,v 1.10 1998/02/15 14:42:32 peter Exp $
* $Id: si.h,v 1.11 1998/03/21 06:17:14 peter Exp $
*/
#include <sys/callout.h>
@ -88,7 +88,7 @@
/* Adapter types */
#define SIEMPTY 0
#define SIHOST 1
#define SI2 2
#define SIMCA 2
#define SIHOST2 3
#define SIEISA 4
#define SIPCI 5
@ -113,8 +113,8 @@ struct si_reg {
BYTE memsize;
WORD int_count;
WORD revision;
BYTE rx_int_count;
BYTE spare;
BYTE rx_int_count; /* isr_count on Jet */
BYTE main_count; /* spare on Z-280 */
WORD int_pending;
WORD int_counter;
BYTE int_scounter;
@ -137,26 +137,13 @@ struct si_module {
* the address of the next module block if fitted. (else 0)
* Note that next points to the TX buffer so 0x60 must be
* subtracted to find the true base.
*
* Type is a bit field as follows: The bottom 5 bits are the
* number of channels on this module, the top 3 bits are
* as the module type thus:
*
* 000 2698 RS232 module (4 port or 8 port)
* 001 Reserved for 2698 RS422 module
* 010 Reserved for 8530 based sync module
* 011 Reserved for parallel printer module
* 100 Reserved for network module
* 101-111 Reserved for expansion.
*
* The number field is the cable position of the module.
*/
#define M232 0x00
#define M422 0x20 /* not supported */
#define MSYNC 0x40 /* this is the Telebit Netblazer module */
#define MCENT 0x60 /* not supported */
#define MNET 0x80 /* not supported */
#define MMASK 0x1F
#define TA4 0x00
#define TA8 0x08
#define TA4_ASIC 0x0A
#define TA8_ASIC 0x0B
#define MTA 0x28
#define SXDC 0x48
/*
* Per channel(port) control structure, stored in shared memory.

File diff suppressed because it is too large Load Diff

View File

@ -2,9 +2,9 @@
* Device driver for Specialix range (SI/XIO) of serial line multiplexors.
* 'C' definitions for Specialix serial multiplex driver.
*
* Copyright (C) 1990, 1992 Specialix International,
* Copyright (C) 1990, 1992, 1998 Specialix International,
* Copyright (C) 1993, Andy Rutter <andy@acronym.co.uk>
* Copyright (C) 1995, Peter Wemm <peter@haywire.dialix.com>
* Copyright (C) 1995, Peter Wemm <peter@netplex.com.au>
*
* Derived from: SunOS 4.x version
*
@ -30,7 +30,7 @@
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
* NO EVENT SHALL THE AUTHORS BE LIABLE.
*
* $Id: sireg.h,v 1.4 1997/02/22 09:37:11 peter Exp $
* $Id: sireg.h,v 1.5 1998/02/15 14:42:33 peter Exp $
*/
/*
@ -56,6 +56,11 @@
#define SIINTCL 0xA000 /* Clear host int */
#define SIINTCL_CL 0xE000 /* Clear host int */
/* SI EISA */
#define SIEISADEVID 0x4d980411 /* EISA Device ID */
#define SIEISABASE 0xc00 /* Our ports start here */
#define SIEISAIOSIZE 0x100 /* XXX How many ports */
/* SI old PCI */
#define SIPCIBADR 0x10 /* Which BADR to map in RAM */
#define SIPCI_MEMSIZE 0x100000 /* Mapping size */
@ -63,12 +68,13 @@
#define SIPCIINTCL 0x40001 /* 0 = clear int */
/* SI Jet PCI */
#define SIJETSSIDREG 0x2c /* Is it a SI/XIO or RIO? */
#define SIJETSSIDREG 0x2c /* Is it an SX or RIO? */
#define SIJETBADR 0x18 /* Which BADR to map in RAM */
/* SI Jet PCI & ISA */
#define SIJETIDBASE 0x7c00 /* ID ROM base */
#define SISPLXID 0x984d /* Specialix ID */
#define SIUNIQID 0x7c0e /* & 0xf0 = 0x20 for Si/XIO */
#define SIUNIQID 0x7c0e /* & 0xf0 = 0x20 for SX */
#define SIJETIDSTR 0x7c20 /* ID ROM string */
#define SIJETRESET 0x7d00
#define SIJETINTCL 0x7d80
#define SIJETCONFIG 0x7c00 /* for ISA, top nibble = IRQ */
@ -79,12 +85,13 @@
* MEMSIZE is the total shared mem region
* RAMSIZE is value to use when probing
*/
#define SIJET_MEMSIZE 0x10000
#define SIJETPCI_MEMSIZE 0x10000
#define SIJETISA_MEMSIZE 0x10000
#define SIJET_RAMSIZE 0x7000
#define SIHOST_MEMSIZE 0x10000
#define SIHOST_RAMSIZE 0x8000
#define SIHOST2_MEMSIZE 0x8000
#define SIHOST2_RAMSIZE 0x7ff7
#define SIEISA_MEMSIZE 0x10000
#define SEISAT_RAMSIZE 0x10000
#define SIEISA_RAMSIZE 0x10000