xref: /netbsd-src/sys/arch/ia64/ia64/mainbus.c (revision bbde328be4e75ea9ad02e9715ea13ca54b797ada)
1 /*	$NetBSD: mainbus.c,v 1.7 2010/01/23 06:13:20 kiyohara Exp $	*/
2 
3 /*-
4  * Copyright (c) 2006 The NetBSD Foundation, Inc.
5  * All rights reserved.
6  *
7  * Author:
8  *
9  * Redistribution and use in source and binary forms, with or without
10  * modification, are permitted provided that the following conditions
11  * are met:
12  * 1. Redistributions of source code must retain the above copyright
13  *    notice, this list of conditions and the following disclaimer.
14  * 2. Redistributions in binary form must reproduce the above copyright
15  *    notice, this list of conditions and the following disclaimer in the
16  *    documentation and/or other materials provided with the distribution.
17  *
18  * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
19  * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
20  * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
21  * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
22  * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
23  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
24  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
25  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
26  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
27  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
28  * POSSIBILITY OF SUCH DAMAGE.
29  */
30 
31 #include <sys/cdefs.h>
32 __KERNEL_RCSID(0, "$NetBSD: mainbus.c,v 1.7 2010/01/23 06:13:20 kiyohara Exp $");
33 
34 #include "acpica.h"
35 
36 #include <sys/param.h>
37 #include <sys/device.h>
38 #include <sys/errno.h>
39 
40 #if NACPICA > 0
41 #include <dev/acpi/acpivar.h>
42 #endif
43 
44 
45 static int mainbus_match(device_t, cfdata_t, void *);
46 static void mainbus_attach(device_t, device_t, void *);
47 
48 CFATTACH_DECL_NEW(mainbus,
49     /*sizeof(struct device): XXXXX It doesn't use it now*/ 0,
50     mainbus_match, mainbus_attach, NULL, NULL);
51 
52 
53 /*
54  * Probe for the mainbus; always succeeds.
55  */
56 static int
57 mainbus_match(device_t parent, cfdata_t match, void *aux)
58 {
59 
60 	return 1;
61 }
62 
63 /*
64  * Attach the mainbus.
65  */
66 static void
67 mainbus_attach(device_t parent, device_t self, void *aux)
68 {
69 #if NACPICA > 0
70 	struct acpibus_attach_args aaa;
71 #endif
72 
73 	aprint_naive("\n");
74 	aprint_normal("\n");
75 
76 #if NACPICA > 0
77 	acpi_probe();
78 
79 	aaa.aa_iot = IA64_BUS_SPACE_IO;
80 	aaa.aa_memt = IA64_BUS_SPACE_MEM;
81 	aaa.aa_pc = 0;
82 	aaa.aa_pciflags =
83 	    PCI_FLAGS_IO_ENABLED | PCI_FLAGS_MEM_ENABLED |
84 	    PCI_FLAGS_MRL_OKAY | PCI_FLAGS_MRM_OKAY |
85 	    PCI_FLAGS_MWI_OKAY;
86 	aaa.aa_ic = 0;
87 	config_found_ia(self, "acpibus", &aaa, 0);
88 #endif
89 
90 	return;
91 }
92