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 1998-03-23 16:27:43 +00:00
parent 7cedb4afa6
commit 0ddeeb0ae5
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. * Device driver for Specialix range (SI/XIO) of serial line multiplexors.
* 'C' definitions for Specialix serial multiplex driver. * '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) 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 * Derived from: SunOS 4.x version
* *
@ -30,7 +30,7 @@
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
* NO EVENT SHALL THE AUTHORS BE LIABLE. * 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> #include <sys/callout.h>
@ -88,7 +88,7 @@
/* Adapter types */ /* Adapter types */
#define SIEMPTY 0 #define SIEMPTY 0
#define SIHOST 1 #define SIHOST 1
#define SI2 2 #define SIMCA 2
#define SIHOST2 3 #define SIHOST2 3
#define SIEISA 4 #define SIEISA 4
#define SIPCI 5 #define SIPCI 5
@ -113,8 +113,8 @@ struct si_reg {
BYTE memsize; BYTE memsize;
WORD int_count; WORD int_count;
WORD revision; WORD revision;
BYTE rx_int_count; BYTE rx_int_count; /* isr_count on Jet */
BYTE spare; BYTE main_count; /* spare on Z-280 */
WORD int_pending; WORD int_pending;
WORD int_counter; WORD int_counter;
BYTE int_scounter; BYTE int_scounter;
@ -137,26 +137,13 @@ struct si_module {
* the address of the next module block if fitted. (else 0) * the address of the next module block if fitted. (else 0)
* Note that next points to the TX buffer so 0x60 must be * Note that next points to the TX buffer so 0x60 must be
* subtracted to find the true base. * 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 TA4 0x00
#define M422 0x20 /* not supported */ #define TA8 0x08
#define MSYNC 0x40 /* this is the Telebit Netblazer module */ #define TA4_ASIC 0x0A
#define MCENT 0x60 /* not supported */ #define TA8_ASIC 0x0B
#define MNET 0x80 /* not supported */ #define MTA 0x28
#define MMASK 0x1F #define SXDC 0x48
/* /*
* Per channel(port) control structure, stored in shared memory. * 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. * Device driver for Specialix range (SI/XIO) of serial line multiplexors.
* 'C' definitions for Specialix serial multiplex driver. * '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) 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 * Derived from: SunOS 4.x version
* *
@ -30,7 +30,7 @@
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
* NO EVENT SHALL THE AUTHORS BE LIABLE. * 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 0xA000 /* Clear host int */
#define SIINTCL_CL 0xE000 /* 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 */ /* SI old PCI */
#define SIPCIBADR 0x10 /* Which BADR to map in RAM */ #define SIPCIBADR 0x10 /* Which BADR to map in RAM */
#define SIPCI_MEMSIZE 0x100000 /* Mapping size */ #define SIPCI_MEMSIZE 0x100000 /* Mapping size */
@ -63,12 +68,13 @@
#define SIPCIINTCL 0x40001 /* 0 = clear int */ #define SIPCIINTCL 0x40001 /* 0 = clear int */
/* SI Jet PCI */ /* 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 */ #define SIJETBADR 0x18 /* Which BADR to map in RAM */
/* SI Jet PCI & ISA */ /* SI Jet PCI & ISA */
#define SIJETIDBASE 0x7c00 /* ID ROM base */ #define SIJETIDBASE 0x7c00 /* ID ROM base */
#define SISPLXID 0x984d /* Specialix ID */ #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 SIJETRESET 0x7d00
#define SIJETINTCL 0x7d80 #define SIJETINTCL 0x7d80
#define SIJETCONFIG 0x7c00 /* for ISA, top nibble = IRQ */ #define SIJETCONFIG 0x7c00 /* for ISA, top nibble = IRQ */
@ -79,12 +85,13 @@
* MEMSIZE is the total shared mem region * MEMSIZE is the total shared mem region
* RAMSIZE is value to use when probing * RAMSIZE is value to use when probing
*/ */
#define SIJET_MEMSIZE 0x10000 #define SIJETPCI_MEMSIZE 0x10000
#define SIJETISA_MEMSIZE 0x10000
#define SIJET_RAMSIZE 0x7000 #define SIJET_RAMSIZE 0x7000
#define SIHOST_MEMSIZE 0x10000 #define SIHOST_MEMSIZE 0x10000
#define SIHOST_RAMSIZE 0x8000 #define SIHOST_RAMSIZE 0x8000
#define SIHOST2_MEMSIZE 0x8000 #define SIHOST2_MEMSIZE 0x8000
#define SIHOST2_RAMSIZE 0x7ff7 #define SIHOST2_RAMSIZE 0x7ff7
#define SIEISA_MEMSIZE 0x10000 #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. * Device driver for Specialix range (SI/XIO) of serial line multiplexors.
* 'C' definitions for Specialix serial multiplex driver. * '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) 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 * Derived from: SunOS 4.x version
* *
@ -30,7 +30,7 @@
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
* NO EVENT SHALL THE AUTHORS BE LIABLE. * 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> #include <sys/callout.h>
@ -88,7 +88,7 @@
/* Adapter types */ /* Adapter types */
#define SIEMPTY 0 #define SIEMPTY 0
#define SIHOST 1 #define SIHOST 1
#define SI2 2 #define SIMCA 2
#define SIHOST2 3 #define SIHOST2 3
#define SIEISA 4 #define SIEISA 4
#define SIPCI 5 #define SIPCI 5
@ -113,8 +113,8 @@ struct si_reg {
BYTE memsize; BYTE memsize;
WORD int_count; WORD int_count;
WORD revision; WORD revision;
BYTE rx_int_count; BYTE rx_int_count; /* isr_count on Jet */
BYTE spare; BYTE main_count; /* spare on Z-280 */
WORD int_pending; WORD int_pending;
WORD int_counter; WORD int_counter;
BYTE int_scounter; BYTE int_scounter;
@ -137,26 +137,13 @@ struct si_module {
* the address of the next module block if fitted. (else 0) * the address of the next module block if fitted. (else 0)
* Note that next points to the TX buffer so 0x60 must be * Note that next points to the TX buffer so 0x60 must be
* subtracted to find the true base. * 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 TA4 0x00
#define M422 0x20 /* not supported */ #define TA8 0x08
#define MSYNC 0x40 /* this is the Telebit Netblazer module */ #define TA4_ASIC 0x0A
#define MCENT 0x60 /* not supported */ #define TA8_ASIC 0x0B
#define MNET 0x80 /* not supported */ #define MTA 0x28
#define MMASK 0x1F #define SXDC 0x48
/* /*
* Per channel(port) control structure, stored in shared memory. * 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. * Device driver for Specialix range (SI/XIO) of serial line multiplexors.
* 'C' definitions for Specialix serial multiplex driver. * '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) 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 * Derived from: SunOS 4.x version
* *
@ -30,7 +30,7 @@
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
* NO EVENT SHALL THE AUTHORS BE LIABLE. * 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 0xA000 /* Clear host int */
#define SIINTCL_CL 0xE000 /* 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 */ /* SI old PCI */
#define SIPCIBADR 0x10 /* Which BADR to map in RAM */ #define SIPCIBADR 0x10 /* Which BADR to map in RAM */
#define SIPCI_MEMSIZE 0x100000 /* Mapping size */ #define SIPCI_MEMSIZE 0x100000 /* Mapping size */
@ -63,12 +68,13 @@
#define SIPCIINTCL 0x40001 /* 0 = clear int */ #define SIPCIINTCL 0x40001 /* 0 = clear int */
/* SI Jet PCI */ /* 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 */ #define SIJETBADR 0x18 /* Which BADR to map in RAM */
/* SI Jet PCI & ISA */ /* SI Jet PCI & ISA */
#define SIJETIDBASE 0x7c00 /* ID ROM base */ #define SIJETIDBASE 0x7c00 /* ID ROM base */
#define SISPLXID 0x984d /* Specialix ID */ #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 SIJETRESET 0x7d00
#define SIJETINTCL 0x7d80 #define SIJETINTCL 0x7d80
#define SIJETCONFIG 0x7c00 /* for ISA, top nibble = IRQ */ #define SIJETCONFIG 0x7c00 /* for ISA, top nibble = IRQ */
@ -79,12 +85,13 @@
* MEMSIZE is the total shared mem region * MEMSIZE is the total shared mem region
* RAMSIZE is value to use when probing * RAMSIZE is value to use when probing
*/ */
#define SIJET_MEMSIZE 0x10000 #define SIJETPCI_MEMSIZE 0x10000
#define SIJETISA_MEMSIZE 0x10000
#define SIJET_RAMSIZE 0x7000 #define SIJET_RAMSIZE 0x7000
#define SIHOST_MEMSIZE 0x10000 #define SIHOST_MEMSIZE 0x10000
#define SIHOST_RAMSIZE 0x8000 #define SIHOST_RAMSIZE 0x8000
#define SIHOST2_MEMSIZE 0x8000 #define SIHOST2_MEMSIZE 0x8000
#define SIHOST2_RAMSIZE 0x7ff7 #define SIHOST2_RAMSIZE 0x7ff7
#define SIEISA_MEMSIZE 0x10000 #define SIEISA_MEMSIZE 0x10000
#define SEISAT_RAMSIZE 0x10000 #define SIEISA_RAMSIZE 0x10000