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:
parent
eaab5e9a66
commit
e93eb8a353
749
sys/dev/si/si.c
749
sys/dev/si/si.c
File diff suppressed because it is too large
Load Diff
@ -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.
|
||||
|
@ -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
|
||||
|
||||
|
@ -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
@ -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
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user