1 1.27 tsutsui /* $NetBSD: autoconf.h,v 1.27 2012/10/13 06:37:16 tsutsui Exp $ */ 2 1.4 cgd 3 1.12 gwr /*- 4 1.12 gwr * Copyright (c) 1996 The NetBSD Foundation, Inc. 5 1.2 glass * All rights reserved. 6 1.2 glass * 7 1.12 gwr * This code is derived from software contributed to The NetBSD Foundation 8 1.12 gwr * by Adam Glass and Gordon W. Ross. 9 1.12 gwr * 10 1.2 glass * Redistribution and use in source and binary forms, with or without 11 1.2 glass * modification, are permitted provided that the following conditions 12 1.2 glass * are met: 13 1.2 glass * 1. Redistributions of source code must retain the above copyright 14 1.2 glass * notice, this list of conditions and the following disclaimer. 15 1.2 glass * 2. Redistributions in binary form must reproduce the above copyright 16 1.2 glass * notice, this list of conditions and the following disclaimer in the 17 1.2 glass * documentation and/or other materials provided with the distribution. 18 1.2 glass * 19 1.12 gwr * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS 20 1.12 gwr * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED 21 1.12 gwr * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 22 1.14 gwr * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS 23 1.14 gwr * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 24 1.12 gwr * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 25 1.12 gwr * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 26 1.12 gwr * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 27 1.12 gwr * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 28 1.12 gwr * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 29 1.12 gwr * POSSIBILITY OF SUCH DAMAGE. 30 1.2 glass */ 31 1.1 glass 32 1.7 gwr /* 33 1.7 gwr * Autoconfiguration information. 34 1.13 gwr * (machdep parts of driver/kernel interface) 35 1.7 gwr */ 36 1.7 gwr 37 1.23 tsutsui #include <machine/bus.h> 38 1.23 tsutsui 39 1.17 gwr /* 40 1.17 gwr * These are the "bus" types, in attach order. 41 1.17 gwr * Note tables in bus_subr.c and vme.c that 42 1.17 gwr * care about the order of these. 43 1.17 gwr */ 44 1.17 gwr #define BUS_OBIO 0 /* on-board I/O */ 45 1.17 gwr #define BUS_OBMEM 1 /* on-board memory */ 46 1.17 gwr #define BUS_VME16D16 2 /* VME A16/D16 */ 47 1.17 gwr #define BUS_VME16D32 3 /* VME A16/D32 */ 48 1.17 gwr #define BUS_VME24D16 4 /* VME A24/D16 */ 49 1.17 gwr #define BUS_VME24D32 5 /* VME A24/D32 */ 50 1.17 gwr #define BUS_VME32D16 6 /* VME A32/D16 */ 51 1.17 gwr #define BUS_VME32D32 7 /* VME A32/D32 */ 52 1.17 gwr #define BUS__NTYPES 8 /* not a valid bus type */ 53 1.7 gwr 54 1.7 gwr /* 55 1.7 gwr * This is the "args" parameter to the bus match/attach functions. 56 1.7 gwr */ 57 1.7 gwr struct confargs { 58 1.23 tsutsui bus_space_tag_t ca_bustag; 59 1.23 tsutsui bus_dma_tag_t ca_dmatag; 60 1.23 tsutsui const char *ca_name; 61 1.7 gwr int ca_bustype; /* BUS_OBIO, ... */ 62 1.23 tsutsui paddr_t ca_paddr; /* physical address */ 63 1.7 gwr int ca_intpri; /* interrupt priority level */ 64 1.7 gwr int ca_intvec; /* interrupt vector index */ 65 1.7 gwr }; 66 1.7 gwr 67 1.23 tsutsui extern struct sun68k_bus_dma_tag mainbus_dma_tag; 68 1.23 tsutsui extern struct sun68k_bus_space_tag mainbus_space_tag; 69 1.23 tsutsui 70 1.10 gwr /* Locator aliases */ 71 1.10 gwr #define cf_paddr cf_loc[0] 72 1.10 gwr #define cf_intpri cf_loc[1] 73 1.10 gwr #define cf_intvec cf_loc[2] 74 1.10 gwr 75 1.27 tsutsui int bus_scan(device_t, cfdata_t, const int *, void *); 76 1.19 chs int bus_print(void *, const char *); 77 1.19 chs int bus_peek(int, int, int); 78 1.25 christos void *bus_mapin(int, int, int); 79 1.19 chs void bus_mapout(void *, int); 80 1.25 christos void *bus_tmapin(int, int); 81 1.19 chs void bus_tmapout(void *); 82 1.10 gwr 83 1.13 gwr /* Bus-error tolerant access to mapped address. */ 84 1.25 christos int peek_byte(void *); 85 1.25 christos int peek_word(void *); 86 1.25 christos int peek_long(void *); 87