Home | History | Annotate | Download | only in footbridge

Lines Matching full:foo*

1 /*	$NetBSD: footbridge.c,v 1.30 2022/09/27 06:36:41 skrll Exp $	*/
38 __KERNEL_RCSID(0, "$NetBSD: footbridge.c,v 1.30 2022/09/27 06:36:41 skrll Exp $");
56 #include <arm/footbridge/footbridgevar.h>
57 #include <arm/footbridge/dc21285reg.h>
58 #include <arm/footbridge/dc21285mem.h>
59 #include <arm/footbridge/footbridge.h>
62 * DC21285 'Footbridge' device
64 * This probes and attaches the footbridge device
70 static int footbridge_match(device_t parent, cfdata_t cf, void *aux);
71 static void footbridge_attach(device_t parent, device_t self, void *aux);
72 static int footbridge_print(void *aux, const char *pnp);
73 static int footbridge_intr(void *arg);
76 CFATTACH_DECL_NEW(footbridge, sizeof(struct footbridge_softc),
77 footbridge_match, footbridge_attach, NULL, NULL);
80 extern struct bus_space footbridge_bs_tag;
81 extern void footbridge_create_io_bs_tag(bus_space_tag_t t, void *cookie);
82 extern void footbridge_create_mem_bs_tag(bus_space_tag_t t, void *cookie);
83 struct bus_space footbridge_csr_tag;
84 struct bus_space footbridge_pci_io_bs_tag;
85 struct bus_space footbridge_pci_mem_bs_tag;
86 extern struct arm32_pci_chipset footbridge_pci_chipset;
87 extern struct arm32_bus_dma_tag footbridge_pci_bus_dma_tag;
88 extern struct arm32_dma_range footbridge_dma_ranges[1];
90 /* Used in footbridge_clock.c */
91 struct footbridge_softc *clock_sc;
93 /* Set to non-zero to enable verbose reporting of footbridge system ints */
94 int footbridge_intr_report = 0;
96 int footbridge_found;
99 footbridge_pci_bs_tag_init(void)
102 footbridge_create_io_bs_tag(&footbridge_pci_io_bs_tag,
104 footbridge_create_mem_bs_tag(&footbridge_pci_mem_bs_tag,
109 * int footbridge_print(void *aux, const char *name)
115 footbridge_print(void *aux, const char *pnp)
117 union footbridge_attach_args *fba = aux;
125 * int footbridge_match(device_t parent, cfdata_t cf, void *aux)
131 footbridge_match(device_t parent, cfdata_t cf, void *aux)
133 if (footbridge_found)
140 * void footbridge_attach(device_t parent, device_t dev, void *aux)
145 footbridge_attach(device_t parent, device_t self, void *aux)
147 struct footbridge_softc *sc = device_private(self);
148 union footbridge_attach_args fba;
151 /* There can only be 1 footbridge. */
152 footbridge_found = 1;
157 sc->sc_iot = &footbridge_bs_tag;
159 /* Map the Footbridge */
173 /* Disable all interrupts from the footbridge */
178 sc->sc_serr_ih = footbridge_intr_claim(IRQ_SERR, IPL_HIGH,
179 "serr", footbridge_intr, sc);
180 sc->sc_sdram_par_ih = footbridge_intr_claim(IRQ_SDRAM_PARITY, IPL_HIGH,
181 "sdram parity", footbridge_intr, sc);
182 sc->sc_data_par_ih = footbridge_intr_claim(IRQ_DATA_PARITY, IPL_HIGH,
183 "data parity", footbridge_intr, sc);
184 sc->sc_master_abt_ih = footbridge_intr_claim(IRQ_MASTER_ABORT, IPL_HIGH,
185 "mast abt", footbridge_intr, sc);
186 sc->sc_target_abt_ih = footbridge_intr_claim(IRQ_TARGET_ABORT, IPL_HIGH,
187 "targ abt", footbridge_intr, sc);
188 sc->sc_parity_ih = footbridge_intr_claim(IRQ_PARITY, IPL_HIGH,
189 "parity", footbridge_intr, sc);
192 footbridge_create_io_bs_tag(&footbridge_pci_io_bs_tag,
194 footbridge_create_mem_bs_tag(&footbridge_pci_mem_bs_tag,
231 /* configure the dma range for the footbridge to match */
232 footbridge_dma_ranges[0].dr_sysbase = bootconfig.dram[0].address;
233 footbridge_dma_ranges[0].dr_busbase = 0x20000000;
234 footbridge_dma_ranges[0].dr_len = memory_size;
238 fba.fba_pba.pba_pc = &footbridge_pci_chipset;
239 fba.fba_pba.pba_iot = &footbridge_pci_io_bs_tag;
240 fba.fba_pba.pba_memt = &footbridge_pci_mem_bs_tag;
241 fba.fba_pba.pba_dmat = &footbridge_pci_bus_dma_tag;
255 config_found(self, &fba.fba_fca, footbridge_print,
256 CFARGS(.iattr = "footbridge"));
261 footbridge_sa110_cc_setup();
266 /* Generic footbridge interrupt handler */
269 footbridge_intr(void *arg)
271 struct footbridge_softc *sc = arg;
275 * Read the footbridge control register and check for
283 if (footbridge_intr_report)
284 printf("footbridge_intr: ctrl=%08x\n", intr);
298 if (footbridge_intr_report)
299 printf("footbridge_intr: pcistat=%08x\n", intr);
307 /* End of footbridge.c */