Module Name: src Committed By: rkujawa Date: Fri Jun 1 17:41:17 UTC 2012
Modified Files: src/sys/arch/amiga/pci: empb.c empb_bsm.c empbreg.h Log Message: Add support for PCI_NETBSD_CONFIGURE in empb(4). Continue work on memory window. To generate a diff of this commit: cvs rdiff -u -r1.3 -r1.4 src/sys/arch/amiga/pci/empb.c cvs rdiff -u -r1.1 -r1.2 src/sys/arch/amiga/pci/empb_bsm.c cvs rdiff -u -r1.2 -r1.3 src/sys/arch/amiga/pci/empbreg.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/arch/amiga/pci/empb.c diff -u src/sys/arch/amiga/pci/empb.c:1.3 src/sys/arch/amiga/pci/empb.c:1.4 --- src/sys/arch/amiga/pci/empb.c:1.3 Fri Jun 1 09:41:35 2012 +++ src/sys/arch/amiga/pci/empb.c Fri Jun 1 17:41:16 2012 @@ -1,4 +1,4 @@ -/* $NetBSD: empb.c,v 1.3 2012/06/01 09:41:35 rkujawa Exp $ */ +/* $NetBSD: empb.c,v 1.4 2012/06/01 17:41:16 rkujawa Exp $ */ /*- * Copyright (c) 2012 The NetBSD Foundation, Inc. @@ -166,6 +166,9 @@ empb_callback(device_t self) { struct empb_softc *sc; pci_chipset_tag_t pc; struct pcibus_attach_args pba; +#ifdef PCI_NETBSD_CONFIGURE + struct extent *ioext, *memext; +#endif /* PCI_NETBSD_CONFIGURE */ sc = device_private(self); pc = &sc->apc; @@ -222,6 +225,20 @@ empb_callback(device_t self) { sc->apc.cookie = sc; +#ifdef PCI_NETBSD_CONFIGURE + ioext = extent_create("empbio", 0, EMPB_BRIDGE_SIZE, + NULL, 0, EX_NOWAIT); + + memext = extent_create("empbmem", EMPB_MEM_BASE, EMPB_MEM_END, + NULL, 0, EX_NOWAIT); + + pci_configure_bus(pc, ioext, memext, NULL, 0, CACHELINE_SIZE); + + extent_destroy(ioext); + extent_destroy(memext); + +#endif /* PCI_NETBSD_CONFIGURE */ + pba.pba_iot = &(sc->pci_confio_area); pba.pba_dmat = NULL; pba.pba_dmat64 = NULL; Index: src/sys/arch/amiga/pci/empb_bsm.c diff -u src/sys/arch/amiga/pci/empb_bsm.c:1.1 src/sys/arch/amiga/pci/empb_bsm.c:1.2 --- src/sys/arch/amiga/pci/empb_bsm.c:1.1 Fri Jun 1 09:41:35 2012 +++ src/sys/arch/amiga/pci/empb_bsm.c Fri Jun 1 17:41:16 2012 @@ -1,4 +1,4 @@ -/* $NetBSD: empb_bsm.c,v 1.1 2012/06/01 09:41:35 rkujawa Exp $ */ +/* $NetBSD: empb_bsm.c,v 1.2 2012/06/01 17:41:16 rkujawa Exp $ */ /*- * Copyright (c) 2012 The NetBSD Foundation, Inc. @@ -43,11 +43,25 @@ #include <amiga/pci/empbvar.h> #include <amiga/pci/emmemvar.h> +/* +int +empb_bsm(bus_space_tag_t space, bus_addr_t address, bus_size_t size, + int flags, bus_space_handle_t *handlep); +int +empb_bsms(bus_space_tag_t space, bus_space_handle_t handle, + bus_size_t offset, bus_size_t size, bus_space_handle_t *nhandlep); +void +empb_bsu(bus_space_tag_t space, bus_space_handle_t handle, + bus_size_t size); +uint8_t +empb_bsr1(bus_space_tag_t space, bus_space_handle_t handle, + bus_size_t offset); const struct amiga_bus_space_methods empb_bus_swap = { - /*.bsm = empb_bsm, + + .bsm = empb_bsm, .bsms = empb_bsms, .bsu = empb_bsu, .bsa = NULL, @@ -62,34 +76,35 @@ const struct amiga_bus_space_methods emp .bssr1 = empb_bssr1, .bscr1 = empb_bscr1, - .bsr2 = oabs(bsr2_), // XXX swap? - .bsw2 = oabs(bsw2_), // XXX swap? - .bsrs2 = oabs(bsr2_), - .bsws2 = oabs(bsw2_), - .bsrm2 = oabs(bsrm2_swap_), - .bswm2 = oabs(bswm2_swap_), - .bsrms2 = oabs(bsrm2_), - .bswms2 = oabs(bswm2_), - .bsrr2 = oabs(bsrr2_), // XXX swap? - .bswr2 = oabs(bswr2_), // XXX swap? - .bsrrs2 = oabs(bsrr2_), - .bswrs2 = oabs(bswr2_), - .bssr2 = oabs(bssr2_), // XXX swap? - .bscr2 = oabs(bscr2_), // XXX swap? - - .bsr4 = oabs(bsr4_swap_), - .bsw4 = oabs(bsw4_swap_), - .bsrs4 = oabs(bsr4_), - .bsws4 = oabs(bsw4_), - .bsrm4 = oabs(bsrm4_), // XXX swap? - .bswm4 = oabs(bswm4_), // XXX swap? - .bsrms4 = oabs(bsrm4_), - .bswms4 = oabs(bswm4_), - .bsrr4 = oabs(bsrr4_), // XXX swap? - .bswr4 = oabs(bswr4_), // XXX swap? - .bsrrs4 = oabs(bsrr4_), - .bswrs4 = oabs(bswr4_), - .bssr4 = oabs(bssr4_), // XXX swap? - .bscr4 = oabs(bscr4_) // XXX swap? */ + .bsr2 = empb_bsr2_swap, + .bsw2 = empb_bsw2_swap, + .bsrs2 = empb_bsr2, + .bsws2 = empb_bsw2, + .bsrm2 = empb_bsrm2_swap, + .bswm2 = empb_bswm2_swap, + .bsrms2 = empb_bsrm2, + .bswms2 = empb_bswm2, + .bsrr2 = empb_bsrr2_swap, + .bswr2 = empb_bswr2_swap, + .bsrrs2 = empb_bsrr2, + .bswrs2 = empb_bswr2, + .bssr2 = empb_bssr2_swap, + .bscr2 = empb_bscr2_swap, + + .bsr4 = empb_bsr4_swap, + .bsw4 = empb_bsw4_swap, + .bsrs4 = empb_bsr4, + .bsws4 = empb_bsw4, + .bsrm4 = empb_bsrm4_swap, + .bswm4 = empb_bswm4_swap, + .bsrms4 = empb_bsrm4, + .bswms4 = empb_bswm4, + .bsrr4 = empb_bsrr4_swap, + .bswr4 = empb_bswr4_swap, + .bsrrs4 = empb_bsrr4, + .bswrs4 = empb_bswr4, + .bssr4 = empb_bssr4_swap, + .bscr4 = empb_bscr4_swap }; +*/ Index: src/sys/arch/amiga/pci/empbreg.h diff -u src/sys/arch/amiga/pci/empbreg.h:1.2 src/sys/arch/amiga/pci/empbreg.h:1.3 --- src/sys/arch/amiga/pci/empbreg.h:1.2 Thu May 31 21:29:02 2012 +++ src/sys/arch/amiga/pci/empbreg.h Fri Jun 1 17:41:17 2012 @@ -1,4 +1,4 @@ -/* $NetBSD: empbreg.h,v 1.2 2012/05/31 21:29:02 rkujawa Exp $ */ +/* $NetBSD: empbreg.h,v 1.3 2012/06/01 17:41:17 rkujawa Exp $ */ /*- * Copyright (c) 2012 The NetBSD Foundation, Inc. @@ -82,6 +82,9 @@ #define EMPB_WINDOW_MASK_8M 0xFF80 #define EMPB_WINDOW_MASK_4M 0xFFC0 +#define EMPB_MEM_BASE 0x80000000 +#define EMPB_MEM_END 0xA0000000 + /* All PCI interrupt lines are wired to INT2? */ #define EMPB_INT 2 // XXX: wild guess