2 * Device driver for Specialix range (SI/XIO) of serial line multiplexors.
3 * 'C' definitions for Specialix serial multiplex driver.
5 * Copyright (C) 1990, 1992, 1998 Specialix International,
6 * Copyright (C) 1993, Andy Rutter <andy@acronym.co.uk>
7 * Copyright (C) 1995, Peter Wemm <peter@netplex.com.au>
9 * Derived from: SunOS 4.x version
11 * Redistribution and use in source and binary forms, with or without
12 * modification, are permitted provided that the following conditions
14 * 1. Redistributions of source code must retain the above copyright
15 * notices, this list of conditions and the following disclaimer.
16 * 2. Redistributions in binary form must reproduce the above copyright
17 * notices, this list of conditions and the following disclaimer in the
18 * documentation and/or other materials provided with the distribution.
19 * 3. All advertising materials mentioning features or use of this software
20 * must display the following acknowledgement:
21 * This product includes software developed by Andy Rutter of
22 * Advanced Methods and Tools Ltd. based on original information
23 * from Specialix International.
24 * 4. Neither the name of Advanced Methods and Tools, nor Specialix
25 * International may be used to endorse or promote products derived from
26 * this software without specific prior written permission.
28 * THIS SOFTWARE IS PROVIDED BY ``AS IS'' AND ANY EXPRESS OR IMPLIED
29 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
30 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
31 * NO EVENT SHALL THE AUTHORS BE LIABLE.
37 * Hardware parameters which should be changed at your peril!
40 /* Base and mask for SI Host 2.x (SIHOST2) */
41 #define SIPLSIG 0x7FF8 /* Start of control space */
42 #define SIPLCNTL 0x7FF8 /* Ditto */
43 #define SIPLRESET SIPLCNTL /* 0 = reset */
44 #define SIPLIRQ11 (SIPLCNTL+1) /* 0 = mask irq 11 */
45 #define SIPLIRQ12 (SIPLCNTL+2) /* 0 = mask irq 12 */
46 #define SIPLIRQ15 (SIPLCNTL+3) /* 0 = mask irq 15 */
47 #define SIPLIRQSET (SIPLCNTL+4) /* 0 = interrupt host */
48 #define SIPLIRQCLR (SIPLCNTL+5) /* 0 = clear irq */
51 #define SIRAM 0x0000 /* Ram Starts here */
52 #define SIRESET 0x8000 /* Set reset */
53 #define SIRESET_CL 0xc000 /* Clear reset */
54 #define SIWAIT 0x9000 /* Set wait */
55 #define SIWAIT_CL 0xd000 /* Set wait */
56 #define SIINTCL 0xA000 /* Clear host int */
57 #define SIINTCL_CL 0xE000 /* Clear host int */
60 #define SIEISADEVID 0x4d980411 /* EISA Device ID */
61 #define SIEISABASE 0xc00 /* Our ports start here */
62 #define SIEISAIOSIZE 0x100 /* XXX How many ports */
65 #define SIPCIBADR 0x10 /* Which BADR to map in RAM */
66 #define SIPCI_MEMSIZE 0x100000 /* Mapping size */
67 #define SIPCIRESET 0xc0001 /* 0 = Reset */
68 #define SIPCIINTCL 0x40001 /* 0 = clear int */
71 #define SIJETSSIDREG 0x2c /* Is it an SX or RIO? */
72 #define SIJETBADR 0x18 /* Which BADR to map in RAM */
73 /* SI Jet PCI & ISA */
74 #define SIJETIDBASE 0x7c00 /* ID ROM base */
75 #define SISPLXID 0x984d /* Specialix ID */
76 #define SIUNIQID 0x7c0e /* & 0xf0 = 0x20 for SX */
77 #define SIJETIDSTR 0x7c20 /* ID ROM string */
78 #define SIJETRESET 0x7d00
79 #define SIJETINTCL 0x7d80
80 #define SIJETCONFIG 0x7c00 /* for ISA, top nibble = IRQ */
81 #define SIJETBUSEN 0x2
82 #define SIJETIRQEN 0x4
85 * MEMSIZE is the total shared mem region
86 * RAMSIZE is value to use when probing
87 * PROBEALLOC is the amount to bus_resource_alloc() during probe.
89 #define SIJETPCI_MEMSIZE 0x10000
90 #define SIJETISA_MEMSIZE 0x8000
91 #define SIJET_RAMSIZE 0x7000
92 #define SIHOST_MEMSIZE 0x10000
93 #define SIHOST_RAMSIZE 0x8000
94 #define SIHOST2_MEMSIZE 0x8000
95 #define SIHOST2_RAMSIZE 0x7ff7
96 #define SIEISA_MEMSIZE 0x10000
97 #define SIEISA_RAMSIZE 0x10000
98 #define SIPROBEALLOC 0x8000