xref: /netbsd-src/sys/arch/sun3/sun3x/obio.h (revision d0fed6c87ddc40a8bffa6f99e7433ddfc864dd83)
1 /*	$NetBSD: obio.h,v 1.3 1997/04/09 04:42:25 jeremy Exp $	*/
2 
3 /*-
4  * Copyright (c) 1996 The NetBSD Foundation, Inc.
5  * All rights reserved.
6  *
7  * This code is derived from software contributed to The NetBSD Foundation
8  * by Adam Glass and Gordon W. Ross.
9  *
10  * Redistribution and use in source and binary forms, with or without
11  * modification, are permitted provided that the following conditions
12  * are met:
13  * 1. Redistributions of source code must retain the above copyright
14  *    notice, this list of conditions and the following disclaimer.
15  * 2. Redistributions in binary form must reproduce the above copyright
16  *    notice, this list of conditions and the following disclaimer in the
17  *    documentation and/or other materials provided with the distribution.
18  * 3. All advertising materials mentioning features or use of this software
19  *    must display the following acknowledgement:
20  *        This product includes software developed by the NetBSD
21  *        Foundation, Inc. and its contributors.
22  * 4. Neither the name of The NetBSD Foundation nor the names of its
23  *    contributors may be used to endorse or promote products derived
24  *    from this software without specific prior written permission.
25  *
26  * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
27  * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
28  * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
29  * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
30  * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
31  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
32  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
33  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
34  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
35  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
36  * POSSIBILITY OF SUCH DAMAGE.
37  */
38 
39 /*
40  * This file defines addresses in Type 1 space for various devices
41  * which can be on the motherboard directly.
42  *
43  * Supposedly these values are constant across the entire sun3 architecture.
44  *
45  */
46 
47 /*
48  * The obio or type "1" address space.
49  */
50 #define	OBIO_MIN_ADDRESS	0x58000000
51 #define	OBIO_MAX_ADDRESS	0x7BFFFFFF
52 
53 /*
54  * Physical addresses of nonconfigurable devices.
55  */
56 #define	OBIO_P4_REG 		0x50300000
57 #define	OBIO_FPA_ADDR		0x5C000000
58 
59 #define	OBIO_IOMMU  		0x60000000
60 
61 /* Note that these six are all in the same page. */
62 #define	OBIO_ENABLEREG		0x61000000
63 #define	OBIO_BUSERRREG		0x61000400
64 #define	OBIO_DIAGREG		0x61000800
65 #define	OBIO_IDPROM1		0x61000C00 /* 3/470 only */
66 #define	OBIO_MEMREG 		0x61001000
67 #define	OBIO_INTERREG		0x61001400
68 
69 #define	OBIO_ZS_KBD_MS		0x62000000
70 #define	OBIO_ZS_TTY_AB		0x62002000
71 
72 /*
73  * Note: there are two kinds of EEPROM/IDPROM/clock!
74  * On the 3/80 one Mostek MK48T02 does it all.
75  * The 3/470 uses the older, discrete parts.
76  */
77 #define	OBIO_EEPROM 		0x64000000
78 #define	OBIO_IDPROM2		0x640007D8 /* 3/80 only (Mostek MK48T02) */
79 #define	OBIO_CLOCK2 		0x640007F8 /* 3/80 only (Mostek MK48T02) */
80 
81 #define	OBIO_CLOCK1 		0x64002000 /* 3/470 only */
82 
83 #define	OBIO_INTEL_ETHER	0x65000000
84 #define	OBIO_LANCE_ETHER	0x65002000
85 
86 #define	OBIO_EMULEX_SCSI	0x66000000 /* 3/80 only? */
87 
88 #define	OBIO_PCACHE_TAGS	0x68000000
89 #define	OBIO_ECCPARREG		0x6A1E0000
90 #define	OBIO_IOC_TAGS		0x6C000000
91 #define	OBIO_IOC_FLUSH		0x6D000000
92 
93 #define	OBIO_FDC    		0x6e000000	/* 3/80 only */
94 #define	OBIO_PRINTER_PORT	0x6f00003c	/* 3/80 only */
95 
96 #ifdef	_KERNEL
97 
98 caddr_t	obio_alloc __P((int, int));
99 void	obio_init __P((void));
100 caddr_t	obio_find_mapping __P((int pa, int size));
101 caddr_t	obio_vm_alloc __P((int));
102 
103 /*
104  * These are some OBIO devices that need early init calls.
105  */
106 void	idprom_init __P((void));
107 void	eeprom_init __P((void));
108 void	zs_init     __P((void));
109 void	intreg_init __P((void));
110 void	clock_init  __P((void));
111 
112 #endif	/* _KERNEL */
113