diff options
author | ian <ian@FreeBSD.org> | 2014-05-15 17:30:16 +0000 |
---|---|---|
committer | ian <ian@FreeBSD.org> | 2014-05-15 17:30:16 +0000 |
commit | 1e3130abad8238f721742fec6f1344d69dfc799a (patch) | |
tree | 02c63d840ed8c9a1ca98f1fd2391c32f3d2be191 /sys/dev | |
parent | fa992863d2953ae935e914366aeafac44ad9d005 (diff) | |
download | FreeBSD-src-1e3130abad8238f721742fec6f1344d69dfc799a.zip FreeBSD-src-1e3130abad8238f721742fec6f1344d69dfc799a.tar.gz |
MFC r261423, r261424, r261516, r261513, r261562, r261563, r261564, r261565,
r261596, r261606
Add the imx sdhci controller.
Move Open Firmware device root on PowerPC, ARM, and MIPS systems to
a sub-node of nexus (ofwbus) rather than direct attach under nexus. This
fixes FDT on x86 and will make coexistence with ACPI on ARM systems easier.
SPARC is unchanged.
Add the missing ')' at end of sentence. Reword it to use a more common idiom.
Pass the kernel physical address to initarm through the boot param struct.
Make functions only used in vfp.c static, and remove vfp_enable.
Fix __syscall on armeb EABI. As it returns a 64-bit value it needs to
place 32-bit data in r1, not r0. 64-bit data is already packed correctly.
Use abp_physaddr for the physical address over KERNPHYSADDR. This helps us
remove the need to load the kernel at a fixed address.
Remove references to PHYSADDR where it's used only in debugging output.
Dynamically generate the page table. This will allow us to detect the
physical address we are loaded at to change the mapping.
Diffstat (limited to 'sys/dev')
-rw-r--r-- | sys/dev/fdt/fdtbus.c | 91 | ||||
-rw-r--r-- | sys/dev/fdt/simplebus.c | 2 | ||||
-rw-r--r-- | sys/dev/mmc/mmc.c | 6 | ||||
-rw-r--r-- | sys/dev/ofw/ofw_nexus.h | 40 | ||||
-rw-r--r-- | sys/dev/ofw/ofwbus.c (renamed from sys/dev/ofw/ofw_nexus.c) | 193 | ||||
-rw-r--r-- | sys/dev/powermac_nvram/powermac_nvram.c | 2 |
6 files changed, 115 insertions, 219 deletions
diff --git a/sys/dev/fdt/fdtbus.c b/sys/dev/fdt/fdtbus.c deleted file mode 100644 index a0ebec8..0000000 --- a/sys/dev/fdt/fdtbus.c +++ /dev/null @@ -1,91 +0,0 @@ -/*- - * Copyright (c) 2009-2010 The FreeBSD Foundation - * All rights reserved. - * - * This software was developed by Semihalf under sponsorship from - * the FreeBSD Foundation. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include <sys/cdefs.h> -__FBSDID("$FreeBSD$"); - -#include <sys/param.h> -#include <sys/systm.h> -#include <sys/ktr.h> -#include <sys/kernel.h> -#include <sys/module.h> -#include <sys/bus.h> -#include <sys/rman.h> -#include <sys/malloc.h> - -#include <dev/ofw/openfirm.h> -#include <dev/ofw/ofw_nexus.h> - -#include "ofw_bus_if.h" - -/* - * Prototypes. - */ -static void fdtbus_identify(driver_t *, device_t); -static int fdtbus_probe(device_t); - -/* - * Bus interface definition. - */ -static device_method_t fdtbus_methods[] = { - /* Device interface */ - DEVMETHOD(device_identify, fdtbus_identify), - DEVMETHOD(device_probe, fdtbus_probe), - - /* Bus interface */ - DEVMETHOD(bus_activate_resource, bus_generic_activate_resource), - DEVMETHOD(bus_deactivate_resource, bus_generic_deactivate_resource), - DEVMETHOD(bus_config_intr, bus_generic_config_intr), - DEVMETHOD(bus_setup_intr, bus_generic_setup_intr), - DEVMETHOD(bus_teardown_intr, bus_generic_teardown_intr), - - DEVMETHOD_END -}; - -devclass_t fdtbus_devclass; -DEFINE_CLASS_1(fdtbus, fdtbus_driver, fdtbus_methods, - sizeof(struct ofw_nexus_softc), ofw_nexus_driver); -DRIVER_MODULE(fdtbus, nexus, fdtbus_driver, fdtbus_devclass, 0, 0); - -static void -fdtbus_identify(driver_t *driver, device_t parent) -{ - - if (device_find_child(parent, "fdtbus", -1) == NULL) - BUS_ADD_CHILD(parent, 0, "fdtbus", -1); -} - -static int -fdtbus_probe(device_t dev) -{ - - device_set_desc(dev, "Flattened Device Tree"); - return (BUS_PROBE_NOWILDCARD); -} - diff --git a/sys/dev/fdt/simplebus.c b/sys/dev/fdt/simplebus.c index ee968ae..d36cba4 100644 --- a/sys/dev/fdt/simplebus.c +++ b/sys/dev/fdt/simplebus.c @@ -121,7 +121,7 @@ static driver_t simplebus_driver = { sizeof(struct simplebus_softc) }; static devclass_t simplebus_devclass; -DRIVER_MODULE(simplebus, nexus, simplebus_driver, simplebus_devclass, 0, 0); +DRIVER_MODULE(simplebus, ofwbus, simplebus_driver, simplebus_devclass, 0, 0); DRIVER_MODULE(simplebus, simplebus, simplebus_driver, simplebus_devclass, 0, 0); static int diff --git a/sys/dev/mmc/mmc.c b/sys/dev/mmc/mmc.c index 2ca0875..e8ac406 100644 --- a/sys/dev/mmc/mmc.c +++ b/sys/dev/mmc/mmc.c @@ -1756,9 +1756,11 @@ static driver_t mmc_driver = { }; static devclass_t mmc_devclass; -DRIVER_MODULE(mmc, ti_mmchs, mmc_driver, mmc_devclass, NULL, NULL); DRIVER_MODULE(mmc, at91_mci, mmc_driver, mmc_devclass, NULL, NULL); -DRIVER_MODULE(mmc, sdhci_pci, mmc_driver, mmc_devclass, NULL, NULL); DRIVER_MODULE(mmc, sdhci_bcm, mmc_driver, mmc_devclass, NULL, NULL); DRIVER_MODULE(mmc, sdhci_fdt, mmc_driver, mmc_devclass, NULL, NULL); +DRIVER_MODULE(mmc, sdhci_imx, mmc_driver, mmc_devclass, NULL, NULL); +DRIVER_MODULE(mmc, sdhci_pci, mmc_driver, mmc_devclass, NULL, NULL); DRIVER_MODULE(mmc, sdhci_ti, mmc_driver, mmc_devclass, NULL, NULL); +DRIVER_MODULE(mmc, ti_mmchs, mmc_driver, mmc_devclass, NULL, NULL); + diff --git a/sys/dev/ofw/ofw_nexus.h b/sys/dev/ofw/ofw_nexus.h deleted file mode 100644 index e67b4a3..0000000 --- a/sys/dev/ofw/ofw_nexus.h +++ /dev/null @@ -1,40 +0,0 @@ -/*- - * Copyright (c) 2010 Marius Strobl <marius@FreeBSD.org> - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * $FreeBSD$ - */ - -#ifndef _OFW_NEXUS_H_ -#define _OFW_NEXUS_H_ - -struct ofw_nexus_softc { - uint32_t acells, scells; - struct rman sc_intr_rman; - struct rman sc_mem_rman; -}; - -DECLARE_CLASS(ofw_nexus_driver); - -#endif /* _OFW_NEXUS_H_ */ diff --git a/sys/dev/ofw/ofw_nexus.c b/sys/dev/ofw/ofwbus.c index b3c5e03..d06917d 100644 --- a/sys/dev/ofw/ofw_nexus.c +++ b/sys/dev/ofw/ofwbus.c @@ -49,69 +49,78 @@ __FBSDID("$FreeBSD$"); #include <dev/ofw/ofw_bus.h> #include <dev/ofw/ofw_bus_subr.h> -#include <dev/ofw/ofw_nexus.h> #include <dev/ofw/openfirm.h> #include <machine/bus.h> #include <machine/resource.h> /* - * The nexus (which is a pseudo-bus actually) iterates over the nodes that + * The ofwbus (which is a pseudo-bus actually) iterates over the nodes that * hang from the Open Firmware root node and adds them as devices to this bus * (except some special nodes which are excluded) so that drivers can be * attached to them. * - * Additionally, interrupt setup/teardown and some resource management are - * done at this level. - * */ -struct nexus_devinfo { +struct ofwbus_devinfo { struct ofw_bus_devinfo ndi_obdinfo; struct resource_list ndi_rl; }; -static device_probe_t nexus_probe; -static device_attach_t nexus_attach; -static bus_print_child_t nexus_print_child; -static bus_add_child_t nexus_add_child; -static bus_probe_nomatch_t nexus_probe_nomatch; -static bus_alloc_resource_t nexus_alloc_resource; -static bus_adjust_resource_t nexus_adjust_resource; -static bus_release_resource_t nexus_release_resource; -static bus_get_resource_list_t nexus_get_resource_list; -static ofw_bus_get_devinfo_t nexus_get_devinfo; - -static int nexus_inlist(const char *, const char *const *); -static struct nexus_devinfo * nexus_setup_dinfo(device_t, phandle_t); -static void nexus_destroy_dinfo(struct nexus_devinfo *); -static int nexus_print_res(struct nexus_devinfo *); - -static device_method_t nexus_methods[] = { +struct ofwbus_softc { + uint32_t acells, scells; + struct rman sc_intr_rman; + struct rman sc_mem_rman; +}; + +static device_identify_t ofwbus_identify; +static device_probe_t ofwbus_probe; +static device_attach_t ofwbus_attach; +static bus_print_child_t ofwbus_print_child; +static bus_add_child_t ofwbus_add_child; +static bus_probe_nomatch_t ofwbus_probe_nomatch; +static bus_alloc_resource_t ofwbus_alloc_resource; +static bus_adjust_resource_t ofwbus_adjust_resource; +static bus_release_resource_t ofwbus_release_resource; +static bus_get_resource_list_t ofwbus_get_resource_list; +static ofw_bus_get_devinfo_t ofwbus_get_devinfo; + +static int ofwbus_inlist(const char *, const char *const *); +static struct ofwbus_devinfo * ofwbus_setup_dinfo(device_t, phandle_t); +static void ofwbus_destroy_dinfo(struct ofwbus_devinfo *); +static int ofwbus_print_res(struct ofwbus_devinfo *); + +static device_method_t ofwbus_methods[] = { /* Device interface */ - DEVMETHOD(device_probe, nexus_probe), - DEVMETHOD(device_attach, nexus_attach), + DEVMETHOD(device_identify, ofwbus_identify), + DEVMETHOD(device_probe, ofwbus_probe), + DEVMETHOD(device_attach, ofwbus_attach), DEVMETHOD(device_detach, bus_generic_detach), DEVMETHOD(device_shutdown, bus_generic_shutdown), DEVMETHOD(device_suspend, bus_generic_suspend), DEVMETHOD(device_resume, bus_generic_resume), /* Bus interface */ - DEVMETHOD(bus_print_child, nexus_print_child), - DEVMETHOD(bus_probe_nomatch, nexus_probe_nomatch), + DEVMETHOD(bus_print_child, ofwbus_print_child), + DEVMETHOD(bus_probe_nomatch, ofwbus_probe_nomatch), DEVMETHOD(bus_read_ivar, bus_generic_read_ivar), DEVMETHOD(bus_write_ivar, bus_generic_write_ivar), - DEVMETHOD(bus_add_child, nexus_add_child), + DEVMETHOD(bus_add_child, ofwbus_add_child), DEVMETHOD(bus_child_pnpinfo_str, ofw_bus_gen_child_pnpinfo_str), - DEVMETHOD(bus_alloc_resource, nexus_alloc_resource), - DEVMETHOD(bus_adjust_resource, nexus_adjust_resource), - DEVMETHOD(bus_release_resource, nexus_release_resource), + DEVMETHOD(bus_alloc_resource, ofwbus_alloc_resource), + DEVMETHOD(bus_adjust_resource, ofwbus_adjust_resource), + DEVMETHOD(bus_release_resource, ofwbus_release_resource), DEVMETHOD(bus_set_resource, bus_generic_rl_set_resource), DEVMETHOD(bus_get_resource, bus_generic_rl_get_resource), - DEVMETHOD(bus_get_resource_list, nexus_get_resource_list), + DEVMETHOD(bus_get_resource_list, ofwbus_get_resource_list), + DEVMETHOD(bus_activate_resource, bus_generic_activate_resource), + DEVMETHOD(bus_deactivate_resource, bus_generic_deactivate_resource), + DEVMETHOD(bus_config_intr, bus_generic_config_intr), + DEVMETHOD(bus_setup_intr, bus_generic_setup_intr), + DEVMETHOD(bus_teardown_intr, bus_generic_teardown_intr), /* ofw_bus interface */ - DEVMETHOD(ofw_bus_get_devinfo, nexus_get_devinfo), + DEVMETHOD(ofw_bus_get_devinfo, ofwbus_get_devinfo), DEVMETHOD(ofw_bus_get_compat, ofw_bus_gen_get_compat), DEVMETHOD(ofw_bus_get_model, ofw_bus_gen_get_model), DEVMETHOD(ofw_bus_get_name, ofw_bus_gen_get_name), @@ -121,11 +130,16 @@ static device_method_t nexus_methods[] = { DEVMETHOD_END }; -DEFINE_CLASS_0(ofw_nexus, ofw_nexus_driver, nexus_methods, - sizeof(struct ofw_nexus_softc)); -MODULE_VERSION(ofw_nexus, 1); +static driver_t ofwbus_driver = { + "ofwbus", + ofwbus_methods, + sizeof(struct ofwbus_softc) +}; +static devclass_t ofwbus_devclass; +DRIVER_MODULE(ofwbus, nexus, ofwbus_driver, ofwbus_devclass, 0, 0); +MODULE_VERSION(ofwbus, 1); -static const char *const nexus_excl_name[] = { +static const char *const ofwbus_excl_name[] = { "FJSV,system", "aliases", "associations", @@ -145,14 +159,14 @@ static const char *const nexus_excl_name[] = { NULL }; -static const char *const nexus_excl_type[] = { +static const char *const ofwbus_excl_type[] = { "core", "cpu", NULL }; static int -nexus_inlist(const char *name, const char *const *list) +ofwbus_inlist(const char *name, const char *const *list) { int i; @@ -164,24 +178,35 @@ nexus_inlist(const char *name, const char *const *list) return (0); } -#define NEXUS_EXCLUDED(name, type) \ - (nexus_inlist((name), nexus_excl_name) || \ - ((type) != NULL && nexus_inlist((type), nexus_excl_type))) +#define OFWBUS_EXCLUDED(name, type) \ + (ofwbus_inlist((name), ofwbus_excl_name) || \ + ((type) != NULL && ofwbus_inlist((type), ofwbus_excl_type))) + +static void +ofwbus_identify(driver_t *driver, device_t parent) +{ + + /* Check if Open Firmware has been instantiated */ + if (OF_peer(0) == -1) + return; + + if (device_find_child(parent, "ofwbus", -1) == NULL) + BUS_ADD_CHILD(parent, 0, "ofwbus", -1); +} static int -nexus_probe(device_t dev) +ofwbus_probe(device_t dev) { - /* Nexus does always match. */ - device_set_desc(dev, "Open Firmware Nexus device"); - return (0); + device_set_desc(dev, "Open Firmware Device Tree"); + return (BUS_PROBE_NOWILDCARD); } static int -nexus_attach(device_t dev) +ofwbus_attach(device_t dev) { - struct nexus_devinfo *ndi; - struct ofw_nexus_softc *sc; + struct ofwbus_devinfo *ndi; + struct ofwbus_softc *sc; device_t cdev; phandle_t node; @@ -189,6 +214,12 @@ nexus_attach(device_t dev) node = OF_peer(0); + /* + * If no Open Firmware, bail early + */ + if (node == -1) + return (ENXIO); + sc->sc_intr_rman.rm_type = RMAN_ARRAY; sc->sc_intr_rman.rm_descr = "Interrupts"; sc->sc_mem_rman.rm_type = RMAN_ARRAY; @@ -205,12 +236,6 @@ nexus_attach(device_t dev) bus_generic_probe(dev); /* - * If no Open Firmware, bail early - */ - if (node == -1) - return (bus_generic_attach(dev)); - - /* * Some important numbers */ sc->acells = 2; @@ -222,13 +247,13 @@ nexus_attach(device_t dev) * Now walk the OFW tree and attach top-level devices. */ for (node = OF_child(node); node > 0; node = OF_peer(node)) { - if ((ndi = nexus_setup_dinfo(dev, node)) == NULL) + if ((ndi = ofwbus_setup_dinfo(dev, node)) == NULL) continue; cdev = device_add_child(dev, NULL, -1); if (cdev == NULL) { device_printf(dev, "<%s>: device_add_child failed\n", ndi->ndi_obdinfo.obd_name); - nexus_destroy_dinfo(ndi); + ofwbus_destroy_dinfo(ndi); continue; } device_set_ivars(cdev, ndi); @@ -237,10 +262,10 @@ nexus_attach(device_t dev) } static device_t -nexus_add_child(device_t dev, u_int order, const char *name, int unit) +ofwbus_add_child(device_t dev, u_int order, const char *name, int unit) { device_t cdev; - struct nexus_devinfo *ndi; + struct ofwbus_devinfo *ndi; cdev = device_add_child_ordered(dev, order, name, unit); if (cdev == NULL) @@ -255,18 +280,18 @@ nexus_add_child(device_t dev, u_int order, const char *name, int unit) } static int -nexus_print_child(device_t bus, device_t child) +ofwbus_print_child(device_t bus, device_t child) { int rv; rv = bus_print_child_header(bus, child); - rv += nexus_print_res(device_get_ivars(child)); + rv += ofwbus_print_res(device_get_ivars(child)); rv += bus_print_child_footer(bus, child); return (rv); } static void -nexus_probe_nomatch(device_t bus, device_t child) +ofwbus_probe_nomatch(device_t bus, device_t child) { const char *name, *type; @@ -278,16 +303,16 @@ nexus_probe_nomatch(device_t bus, device_t child) device_printf(bus, "<%s>", name != NULL ? name : "unknown"); - nexus_print_res(device_get_ivars(child)); + ofwbus_print_res(device_get_ivars(child)); printf(" type %s (no driver attached)\n", type != NULL ? type : "unknown"); } static struct resource * -nexus_alloc_resource(device_t bus, device_t child, int type, int *rid, +ofwbus_alloc_resource(device_t bus, device_t child, int type, int *rid, u_long start, u_long end, u_long count, u_int flags) { - struct ofw_nexus_softc *sc; + struct ofwbus_softc *sc; struct rman *rm; struct resource *rv; struct resource_list_entry *rle; @@ -344,17 +369,17 @@ nexus_alloc_resource(device_t bus, device_t child, int type, int *rid, } static int -nexus_adjust_resource(device_t bus, device_t child __unused, int type, +ofwbus_adjust_resource(device_t bus, device_t child __unused, int type, struct resource *r, u_long start, u_long end) { - struct ofw_nexus_softc *sc; + struct ofwbus_softc *sc; struct rman *rm; - device_t nexus; + device_t ofwbus; - nexus = bus; - while (strcmp(device_get_name(device_get_parent(nexus)), "root") != 0) - nexus = device_get_parent(nexus); - sc = device_get_softc(nexus); + ofwbus = bus; + while (strcmp(device_get_name(device_get_parent(ofwbus)), "root") != 0) + ofwbus = device_get_parent(ofwbus); + sc = device_get_softc(ofwbus); switch (type) { case SYS_RES_IRQ: rm = &sc->sc_intr_rman; @@ -373,7 +398,7 @@ nexus_adjust_resource(device_t bus, device_t child __unused, int type, } static int -nexus_release_resource(device_t bus __unused, device_t child, int type, +ofwbus_release_resource(device_t bus __unused, device_t child, int type, int rid, struct resource *r) { int error; @@ -387,28 +412,28 @@ nexus_release_resource(device_t bus __unused, device_t child, int type, } static struct resource_list * -nexus_get_resource_list(device_t bus __unused, device_t child) +ofwbus_get_resource_list(device_t bus __unused, device_t child) { - struct nexus_devinfo *ndi; + struct ofwbus_devinfo *ndi; ndi = device_get_ivars(child); return (&ndi->ndi_rl); } static const struct ofw_bus_devinfo * -nexus_get_devinfo(device_t bus __unused, device_t child) +ofwbus_get_devinfo(device_t bus __unused, device_t child) { - struct nexus_devinfo *ndi; + struct ofwbus_devinfo *ndi; ndi = device_get_ivars(child); return (&ndi->ndi_obdinfo); } -static struct nexus_devinfo * -nexus_setup_dinfo(device_t dev, phandle_t node) +static struct ofwbus_devinfo * +ofwbus_setup_dinfo(device_t dev, phandle_t node) { - struct ofw_nexus_softc *sc; - struct nexus_devinfo *ndi; + struct ofwbus_softc *sc; + struct ofwbus_devinfo *ndi; uint32_t *reg, *intr, icells; uint64_t phys, size; phandle_t iparent; @@ -423,7 +448,7 @@ nexus_setup_dinfo(device_t dev, phandle_t node) free(ndi, M_DEVBUF); return (NULL); } - if (NEXUS_EXCLUDED(ndi->ndi_obdinfo.obd_name, + if (OFWBUS_EXCLUDED(ndi->ndi_obdinfo.obd_name, ndi->ndi_obdinfo.obd_type)) { ofw_bus_gen_destroy_devinfo(&ndi->ndi_obdinfo); free(ndi, M_DEVBUF); @@ -479,7 +504,7 @@ nexus_setup_dinfo(device_t dev, phandle_t node) } static void -nexus_destroy_dinfo(struct nexus_devinfo *ndi) +ofwbus_destroy_dinfo(struct ofwbus_devinfo *ndi) { resource_list_free(&ndi->ndi_rl); @@ -488,7 +513,7 @@ nexus_destroy_dinfo(struct nexus_devinfo *ndi) } static int -nexus_print_res(struct nexus_devinfo *ndi) +ofwbus_print_res(struct ofwbus_devinfo *ndi) { int rv; diff --git a/sys/dev/powermac_nvram/powermac_nvram.c b/sys/dev/powermac_nvram/powermac_nvram.c index 56dc929..53650e9 100644 --- a/sys/dev/powermac_nvram/powermac_nvram.c +++ b/sys/dev/powermac_nvram/powermac_nvram.c @@ -84,7 +84,7 @@ static driver_t powermac_nvram_driver = { static devclass_t powermac_nvram_devclass; -DRIVER_MODULE(powermac_nvram, nexus, powermac_nvram_driver, powermac_nvram_devclass, 0, 0); +DRIVER_MODULE(powermac_nvram, ofwbus, powermac_nvram_driver, powermac_nvram_devclass, 0, 0); /* * Cdev methods. |