Home | History | Annotate | Line # | Download | only in sun3x
obio.h revision 1.1
      1 /*	$NetBSD: obio.h,v 1.1 1997/01/14 20:57:06 gwr 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_PCACHE_TAGS	0x68000000
     87 #define	OBIO_ECCPARREG		0x6A1E0000
     88 #define	OBIO_IOC_TAGS		0x6C000000
     89 #define	OBIO_IOC_FLUSH		0x6D000000
     90 
     91 #define	OBIO_FDC    		0x6e000000	/* 3/80 only */
     92 #define	OBIO_PRINTER_PORT	0x6f000000	/* 3/80 only */
     93 
     94 #ifdef	_KERNEL
     95 
     96 caddr_t	obio_alloc __P((int, int));
     97 void	obio_init __P((void));
     98 caddr_t	obio_find_mapping __P((int pa, int size));
     99 caddr_t	obio_vm_alloc __P((int));
    100 
    101 /*
    102  * These are some OBIO devices that need early init calls.
    103  */
    104 void	idprom_init __P((void));
    105 void	eeprom_init __P((void));
    106 void	zs_init     __P((void));
    107 void	intreg_init __P((void));
    108 void	clock_init  __P((void));
    109 
    110 #endif	/* _KERNEL */
    111