xref: /NextBSD/sys/dev/si/sireg.h (revision eb1a5f8de9f7ea602c373a710f531abbf81141c4)
1 /*-
2  * Device driver for Specialix range (SI/XIO) of serial line multiplexors.
3  * 'C' definitions for Specialix serial multiplex driver.
4  *
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>
8  *
9  * Derived from:	SunOS 4.x version
10  *
11  * Redistribution and use in source and binary forms, with or without
12  * modification, are permitted provided that the following conditions
13  * are met:
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.
27  *
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.
32  *
33  * $FreeBSD$
34  */
35 
36 /*
37  * Hardware parameters which should be changed at your peril!
38  */
39 
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 */
49 
50 /* SI Host 1.x */
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 */
58 
59 /* SI EISA */
60 #define SIEISADEVID	0x4d980411		/* EISA Device ID */
61 #define SIEISABASE	0xc00			/* Our ports start here */
62 #define SIEISAIOSIZE	0x100			/* XXX How many ports */
63 
64 /* SI old PCI */
65 #define SIPCIBADR	PCIR_BAR(0)		/* 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 */
69 
70 /* SI Jet PCI */
71 #define SIJETSSIDREG	PCIR_SUBVEND_0		/* Is it an SX or RIO? */
72 #define SIJETBADR	PCIR_BAR(2)		/* 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
83 
84 /*
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.
88  */
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
99