xref: /netbsd/sys/arch/amigappc/amigappc/mainbus.c (revision beecddb6)
1*beecddb6Sthorpej /*	$NetBSD: mainbus.c,v 1.6 2021/08/07 16:18:42 thorpej Exp $	*/
2b6cfe437Sphx 
3b6cfe437Sphx /*-
4b6cfe437Sphx  * Copyright (c) 2008,2009 Frank Wille.
5b6cfe437Sphx  * All rights reserved.
6b6cfe437Sphx  *
7b6cfe437Sphx  * Written by Frank Wille for The NetBSD Project.
8b6cfe437Sphx  *
9b6cfe437Sphx  * Redistribution and use in source and binary forms, with or without
10b6cfe437Sphx  * modification, are permitted provided that the following conditions
11b6cfe437Sphx  * are met:
12b6cfe437Sphx  * 1. Redistributions of source code must retain the above copyright
13b6cfe437Sphx  *    notice, this list of conditions and the following disclaimer.
14b6cfe437Sphx  * 2. Redistributions in binary form must reproduce the above copyright
15b6cfe437Sphx  *    notice, this list of conditions and the following disclaimer in the
16b6cfe437Sphx  *    documentation and/or other materials provided with the distribution.
17b6cfe437Sphx  *
18b6cfe437Sphx  * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
19b6cfe437Sphx  * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
20b6cfe437Sphx  * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
21b6cfe437Sphx  * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
22b6cfe437Sphx  * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
23b6cfe437Sphx  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
24b6cfe437Sphx  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
25b6cfe437Sphx  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
26b6cfe437Sphx  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
27b6cfe437Sphx  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
28b6cfe437Sphx  * POSSIBILITY OF SUCH DAMAGE.
29b6cfe437Sphx  */
30b6cfe437Sphx /*
31b6cfe437Sphx  * Copyright (c) 1994 Christian E. Hopps
32b6cfe437Sphx  * All rights reserved.
33b6cfe437Sphx  *
34b6cfe437Sphx  * Redistribution and use in source and binary forms, with or without
35b6cfe437Sphx  * modification, are permitted provided that the following conditions
36b6cfe437Sphx  * are met:
37b6cfe437Sphx  * 1. Redistributions of source code must retain the above copyright
38b6cfe437Sphx  *    notice, this list of conditions and the following disclaimer.
39b6cfe437Sphx  * 2. Redistributions in binary form must reproduce the above copyright
40b6cfe437Sphx  *    notice, this list of conditions and the following disclaimer in the
41b6cfe437Sphx  *    documentation and/or other materials provided with the distribution.
42b6cfe437Sphx  * 3. All advertising materials mentioning features or use of this software
43b6cfe437Sphx  *    must display the following acknowledgement:
44b6cfe437Sphx  *      This product includes software developed by Christian E. Hopps.
45b6cfe437Sphx  * 4. The name of the author may not be used to endorse or promote products
46b6cfe437Sphx  *    derived from this software without specific prior written permission
47b6cfe437Sphx  *
48b6cfe437Sphx  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
49b6cfe437Sphx  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
50b6cfe437Sphx  * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
51b6cfe437Sphx  * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
52b6cfe437Sphx  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
53b6cfe437Sphx  * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
54b6cfe437Sphx  * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
55b6cfe437Sphx  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
56b6cfe437Sphx  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
57b6cfe437Sphx  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
58b6cfe437Sphx  */
59b6cfe437Sphx 
60b6cfe437Sphx #include <sys/cdefs.h>
61*beecddb6Sthorpej __KERNEL_RCSID(0, "$NetBSD: mainbus.c,v 1.6 2021/08/07 16:18:42 thorpej Exp $");
62b6cfe437Sphx 
63b6cfe437Sphx #include <sys/param.h>
64b6cfe437Sphx #include <sys/device.h>
65b6cfe437Sphx #include <sys/malloc.h>
66b6cfe437Sphx #include <sys/systm.h>
67a10e1d01Sdyoung #include <sys/bus.h>
68b6cfe437Sphx 
69b6cfe437Sphx #include <machine/autoconf.h>
70b6cfe437Sphx 
71b6cfe437Sphx #include <amiga/amiga/cfdev.h>
72b6cfe437Sphx #include <amiga/amiga/device.h>
73b6cfe437Sphx 
74b6cfe437Sphx #if 0
75b6cfe437Sphx #include "mainbus.h"
76b6cfe437Sphx 
77b6cfe437Sphx #if NCPU == 0
78b6cfe437Sphx #error	A cpu device is now required
79b6cfe437Sphx #endif
80b6cfe437Sphx #endif
81b6cfe437Sphx 
82e297491bSmatt void mbattach(device_t, device_t, void *);
83b6cfe437Sphx int mbprint(void *, const char *);
84e297491bSmatt int mbmatch(device_t, cfdata_t, void *);
85b6cfe437Sphx 
86e297491bSmatt CFATTACH_DECL_NEW(mainbus, 0,
87b6cfe437Sphx     mbmatch, mbattach, NULL, NULL);
88b6cfe437Sphx 
89b6cfe437Sphx int
mbmatch(device_t parent,cfdata_t cfp,void * aux)90e297491bSmatt mbmatch(device_t parent, cfdata_t cfp, void *aux)
91b6cfe437Sphx {
92b6cfe437Sphx 
93ea2d7951Sphx 	return 1;
94b6cfe437Sphx }
95b6cfe437Sphx 
96b6cfe437Sphx void
mbattach(device_t parent,device_t self,void * aux)97e297491bSmatt mbattach(device_t parent, device_t self, void *aux)
98b6cfe437Sphx {
99b6cfe437Sphx 
100b6cfe437Sphx 	printf("\n");
101b6cfe437Sphx 
102b6cfe437Sphx 	/*
103b6cfe437Sphx 	 * Always find the CPU
104b6cfe437Sphx 	 */
105*beecddb6Sthorpej 	config_found(self, __UNCONST("cpu"), mbprint, CFARGS_NONE);
106b6cfe437Sphx 
107b6cfe437Sphx 	/*
108b6cfe437Sphx 	 * "find" all the things that should be there.
109b6cfe437Sphx 	 */
110b6cfe437Sphx 	if (is_a3000() || is_a4000())
1113bee0c11Sthorpej 		config_found(self, __UNCONST("a34kbbc"), simple_devprint,
112*beecddb6Sthorpej 		    CFARGS_NONE);
113b6cfe437Sphx 	else
1143bee0c11Sthorpej 		config_found(self, __UNCONST("a2kbbc"), simple_devprint,
115*beecddb6Sthorpej 		    CFARGS_NONE);
116*beecddb6Sthorpej 	config_found(self, __UNCONST("ser"), simple_devprint, CFARGS_NONE);
117*beecddb6Sthorpej 	config_found(self, __UNCONST("par"), simple_devprint, CFARGS_NONE);
118*beecddb6Sthorpej 	config_found(self, __UNCONST("kbd"), simple_devprint, CFARGS_NONE);
119*beecddb6Sthorpej 	config_found(self, __UNCONST("ms"), simple_devprint, CFARGS_NONE);
120*beecddb6Sthorpej 	config_found(self, __UNCONST("grfcc"), simple_devprint, CFARGS_NONE);
1213bee0c11Sthorpej 	config_found(self, __UNCONST("amidisplaycc"), simple_devprint,
122*beecddb6Sthorpej 	    CFARGS_NONE);
123*beecddb6Sthorpej 	config_found(self, __UNCONST("fdc"), simple_devprint, CFARGS_NONE);
124ea2d7951Sphx 	if (is_a4000() || is_a1200())
1253bee0c11Sthorpej 		config_found(self, __UNCONST("wdc"), simple_devprint,
126*beecddb6Sthorpej 		    CFARGS_NONE);
127b6cfe437Sphx 	if (is_a4000())			/* Try to configure A4000T SCSI */
1283bee0c11Sthorpej 		config_found(self, __UNCONST("afsc"), simple_devprint,
129*beecddb6Sthorpej 		    CFARGS_NONE);
130b6cfe437Sphx 	if (is_a3000())
1313bee0c11Sthorpej 		config_found(self, __UNCONST("ahsc"), simple_devprint,
132*beecddb6Sthorpej 		    CFARGS_NONE);
133b6cfe437Sphx 	if (is_a1200())
1343bee0c11Sthorpej 		config_found(self, __UNCONST("pccard"), simple_devprint,
135*beecddb6Sthorpej 		    CFARGS_NONE);
136*beecddb6Sthorpej 	config_found(self, __UNCONST("aucc"), simple_devprint, CFARGS_NONE);
137b6cfe437Sphx 
138*beecddb6Sthorpej 	config_found(self, __UNCONST("zbus"), simple_devprint, CFARGS_NONE);
139b6cfe437Sphx }
140b6cfe437Sphx 
141b6cfe437Sphx int
mbprint(void * aux,const char * pnp)142b6cfe437Sphx mbprint(void *aux, const char *pnp)
143b6cfe437Sphx {
144b6cfe437Sphx 
145b6cfe437Sphx 	if (pnp)
146b6cfe437Sphx 		aprint_normal("%s at %s", (char *)aux, pnp);
147ea2d7951Sphx 	return UNCONF;
148b6cfe437Sphx }
149