void iobusattach(struct device *parent, struct device *self, void *aux) { struct octeon_config oc; uint i; /* * Map and setup CRIME control registers. */ if (bus_space_map(&iobus_tag, OCTEON_CIU_BASE, OCTEON_CIU_SIZE, 0, &iobus_h)) { printf(": can't map CIU control registers\n"); return; } printf("\n"); octeon_intr_init(); /* XXX */ oc.mc_iobus_bust = &iobus_tag; oc.mc_iobus_dmat = &iobus_bus_dma_tag; void cn30xxfpa_bootstrap(struct octeon_config *); cn30xxfpa_bootstrap(&oc); void cn30xxpow_bootstrap(struct octeon_config *); cn30xxpow_bootstrap(&oc); /* * Attach subdevices. */ for (i = 0; i < nitems(iobus_children); i++) config_found_sm(self, iobus_children + i, iobusprint, iobussubmatch); }
void iobusattach(struct device *parent, struct device *self, void *aux) { uint i; /* * Map and setup CRIME control registers. */ if (bus_space_map(&iobus_tag, OCTEON_CIU_BASE, OCTEON_CIU_SIZE, 0, &iobus_h)) { printf(": can't map CIU control registers\n"); return; } printf("\n"); octeon_intr_init(); /* * Attach subdevices. */ for (i = 0; i < nitems(iobus_children); i++) config_found_sm(self, iobus_children + i, iobusprint, iobussubmatch); }
void evbmips_intr_init(void) { octeon_intr_init(curcpu()); }