1139749Simp/*- 212496Speter * Device driver for Specialix range (SI/XIO) of serial line multiplexors. 310015Speter * 'C' definitions for Specialix serial multiplex driver. 410015Speter * 534832Speter * Copyright (C) 1990, 1992, 1998 Specialix International, 610015Speter * Copyright (C) 1993, Andy Rutter <andy@acronym.co.uk> 734832Speter * Copyright (C) 1995, Peter Wemm <peter@netplex.com.au> 810015Speter * 910015Speter * Derived from: SunOS 4.x version 1010015Speter * 1110015Speter * Redistribution and use in source and binary forms, with or without 1210015Speter * modification, are permitted provided that the following conditions 1310015Speter * are met: 1410015Speter * 1. Redistributions of source code must retain the above copyright 1510015Speter * notices, this list of conditions and the following disclaimer. 1610015Speter * 2. Redistributions in binary form must reproduce the above copyright 1710015Speter * notices, this list of conditions and the following disclaimer in the 1810015Speter * documentation and/or other materials provided with the distribution. 1910015Speter * 3. All advertising materials mentioning features or use of this software 2010015Speter * must display the following acknowledgement: 2110015Speter * This product includes software developed by Andy Rutter of 2210015Speter * Advanced Methods and Tools Ltd. based on original information 2310015Speter * from Specialix International. 2410015Speter * 4. Neither the name of Advanced Methods and Tools, nor Specialix 2510015Speter * International may be used to endorse or promote products derived from 2610015Speter * this software without specific prior written permission. 2710015Speter * 2810015Speter * THIS SOFTWARE IS PROVIDED BY ``AS IS'' AND ANY EXPRESS OR IMPLIED 2910015Speter * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 3010015Speter * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN 3110015Speter * NO EVENT SHALL THE AUTHORS BE LIABLE. 3210015Speter * 3350477Speter * $FreeBSD$ 3410015Speter */ 3510015Speter 3610015Speter/* 3710015Speter * Hardware parameters which should be changed at your peril! 3810015Speter */ 3910015Speter 4010015Speter/* Base and mask for SI Host 2.x (SIHOST2) */ 4110015Speter#define SIPLSIG 0x7FF8 /* Start of control space */ 4210015Speter#define SIPLCNTL 0x7FF8 /* Ditto */ 4310015Speter#define SIPLRESET SIPLCNTL /* 0 = reset */ 4410015Speter#define SIPLIRQ11 (SIPLCNTL+1) /* 0 = mask irq 11 */ 4510015Speter#define SIPLIRQ12 (SIPLCNTL+2) /* 0 = mask irq 12 */ 4610015Speter#define SIPLIRQ15 (SIPLCNTL+3) /* 0 = mask irq 15 */ 4710015Speter#define SIPLIRQSET (SIPLCNTL+4) /* 0 = interrupt host */ 4810015Speter#define SIPLIRQCLR (SIPLCNTL+5) /* 0 = clear irq */ 4910015Speter 5010015Speter/* SI Host 1.x */ 5110015Speter#define SIRAM 0x0000 /* Ram Starts here */ 5210015Speter#define SIRESET 0x8000 /* Set reset */ 5310015Speter#define SIRESET_CL 0xc000 /* Clear reset */ 5410015Speter#define SIWAIT 0x9000 /* Set wait */ 5510015Speter#define SIWAIT_CL 0xd000 /* Set wait */ 5610015Speter#define SIINTCL 0xA000 /* Clear host int */ 5710015Speter#define SIINTCL_CL 0xE000 /* Clear host int */ 5810015Speter 5934832Speter/* SI EISA */ 6034832Speter#define SIEISADEVID 0x4d980411 /* EISA Device ID */ 6134832Speter#define SIEISABASE 0xc00 /* Our ports start here */ 6234832Speter#define SIEISAIOSIZE 0x100 /* XXX How many ports */ 6334832Speter 6433395Speter/* SI old PCI */ 65152172Sjhb#define SIPCIBADR PCIR_BAR(0) /* Which BADR to map in RAM */ 6633395Speter#define SIPCI_MEMSIZE 0x100000 /* Mapping size */ 6733395Speter#define SIPCIRESET 0xc0001 /* 0 = Reset */ 6833395Speter#define SIPCIINTCL 0x40001 /* 0 = clear int */ 6933395Speter 7033395Speter/* SI Jet PCI */ 71152172Sjhb#define SIJETSSIDREG PCIR_SUBVEND_0 /* Is it an SX or RIO? */ 72152172Sjhb#define SIJETBADR PCIR_BAR(2) /* Which BADR to map in RAM */ 7333395Speter/* SI Jet PCI & ISA */ 7433395Speter#define SIJETIDBASE 0x7c00 /* ID ROM base */ 7533395Speter#define SISPLXID 0x984d /* Specialix ID */ 7634832Speter#define SIUNIQID 0x7c0e /* & 0xf0 = 0x20 for SX */ 7734832Speter#define SIJETIDSTR 0x7c20 /* ID ROM string */ 7833395Speter#define SIJETRESET 0x7d00 7933395Speter#define SIJETINTCL 0x7d80 8033395Speter#define SIJETCONFIG 0x7c00 /* for ISA, top nibble = IRQ */ 8133395Speter#define SIJETBUSEN 0x2 8233395Speter#define SIJETIRQEN 0x4 8333395Speter 8410015Speter/* 8510015Speter * MEMSIZE is the total shared mem region 8610015Speter * RAMSIZE is value to use when probing 8756498Speter * PROBEALLOC is the amount to bus_resource_alloc() during probe. 8810015Speter */ 8934832Speter#define SIJETPCI_MEMSIZE 0x10000 9045161Snsayer#define SIJETISA_MEMSIZE 0x8000 9133395Speter#define SIJET_RAMSIZE 0x7000 9210015Speter#define SIHOST_MEMSIZE 0x10000 9310015Speter#define SIHOST_RAMSIZE 0x8000 9410015Speter#define SIHOST2_MEMSIZE 0x8000 9510015Speter#define SIHOST2_RAMSIZE 0x7ff7 9610015Speter#define SIEISA_MEMSIZE 0x10000 9734832Speter#define SIEISA_RAMSIZE 0x10000 9856498Speter#define SIPROBEALLOC 0x8000 99