Lines Matching +full:bus +full:- +full:addr

1 /*-
2 * SPDX-License-Identifier: BSD-3-Clause
33 #include <sys/bus.h>
48 #include <machine/bus.h>
116 device_set_desc(dev, "MPC106 (Grackle) Host-PCI bridge"); in grackle_probe()
128 * The Grackle PCI config addr/data registers are actually in in grackle_attach()
130 * PCI bus, use the fact that they are also available directly in grackle_attach()
131 * on the processor bus and map them in grackle_attach()
133 sc->sc_addr = (vm_offset_t)pmap_mapdev(GRACKLE_ADDR, PAGE_SIZE); in grackle_attach()
134 sc->sc_data = (vm_offset_t)pmap_mapdev(GRACKLE_DATA, PAGE_SIZE); in grackle_attach()
140 grackle_read_config(device_t dev, u_int bus, u_int slot, u_int func, u_int reg, in grackle_read_config() argument
148 caoff = sc->sc_data + (reg & 0x03); in grackle_read_config()
150 if (grackle_enable_config(sc, bus, slot, func, reg) != 0) { in grackle_read_config()
152 * Config probes to non-existent devices on the in grackle_read_config()
153 * secondary bus generates machine checks. Be sure in grackle_read_config()
156 if (bus > 0) { in grackle_read_config()
157 if (badaddr((void *)sc->sc_data, 4)) { in grackle_read_config()
180 grackle_write_config(device_t dev, u_int bus, u_int slot, u_int func, in grackle_write_config() argument
187 caoff = sc->sc_data + (reg & 0x03); in grackle_write_config()
189 if (grackle_enable_config(sc, bus, slot, func, reg)) { in grackle_write_config()
209 grackle_enable_config(struct grackle_softc *sc, u_int bus, u_int slot, in grackle_enable_config() argument
218 cfgval = (bus << 16) | (slot << 11) | (func << 8) | (reg & 0xFC) in grackle_enable_config()
221 out32rb(sc->sc_addr, cfgval); in grackle_enable_config()
222 (void) in32rb(sc->sc_addr); in grackle_enable_config()
234 out32rb(sc->sc_addr, 0); in grackle_disable_config()
238 badaddr(void *addr, size_t size) in badaddr() argument
248 oldfaultbuf = td->td_pcb->pcb_onfault; in badaddr()
249 td->td_pcb->pcb_onfault = &env; in badaddr()
251 td->td_pcb->pcb_onfault = oldfaultbuf; in badaddr()
260 (void)*(volatile int8_t *)addr; in badaddr()
263 (void)*(volatile int16_t *)addr; in badaddr()
266 (void)*(volatile int32_t *)addr; in badaddr()
275 td->td_pcb->pcb_onfault = oldfaultbuf; in badaddr()
282 * Driver to swallow Grackle host bridges from the PCI bus side.