From owner-p4-projects@FreeBSD.ORG Sun Dec 10 05:06:20 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 2F83316A494; Sun, 10 Dec 2006 05:06:20 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id A7F2416A4B3 for ; Sun, 10 Dec 2006 05:06:19 +0000 (UTC) (envelope-from imp@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.FreeBSD.org (Postfix) with ESMTP id 3588643CAF for ; Sun, 10 Dec 2006 05:05:03 +0000 (GMT) (envelope-from imp@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.6/8.13.6) with ESMTP id kBA569ox082014 for ; Sun, 10 Dec 2006 05:06:09 GMT (envelope-from imp@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.6/8.13.4/Submit) id kBA5689e082011 for perforce@freebsd.org; Sun, 10 Dec 2006 05:06:08 GMT (envelope-from imp@freebsd.org) Date: Sun, 10 Dec 2006 05:06:08 GMT Message-Id: <200612100506.kBA5689e082011@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to imp@freebsd.org using -f From: Warner Losh To: Perforce Change Reviews Cc: Subject: PERFORCE change 111367 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 10 Dec 2006 05:06:20 -0000 http://perforce.freebsd.org/chv.cgi?CH=111367 Change 111367 by imp@imp_lighthouse on 2006/12/10 05:05:14 First attempt to apply Daan Vreeken's usb patches to get my KB9202 working. They didn't succeed. Neither do they cause any real ill effect except for a slight delay in booting when usb is in the kernel. Committed to facilitate coordination. Affected files ... .. //depot/projects/arm/src/sys/arm/at91/at91rm92reg.h#20 edit .. //depot/projects/arm/src/sys/arm/at91/kb920x_machdep.c#41 edit .. //depot/projects/arm/src/sys/arm/at91/ohci_atmelarm.c#13 edit .. //depot/projects/arm/src/sys/arm/conf/KB920X#42 edit Differences ... ==== //depot/projects/arm/src/sys/arm/at91/at91rm92reg.h#20 (text+ko) ==== @@ -336,7 +336,8 @@ #define AT91RM92_TC1C1_BASE 0xffa4040 #define AT91RM92_TC1C2_BASE 0xffa4080 -#define AT91RM92_OHCI_BASE 0x00300000 +#define AT91RM92_OHCI_BASE 0xdfe00000 +#define AT91RM92_OHCI_PA_BASE 0x00300000 #define AT91RM92_OHCI_SIZE 0x00100000 #define AT91C_MASTER_CLOCK 60000000 ==== //depot/projects/arm/src/sys/arm/at91/kb920x_machdep.c#41 (text+ko) ==== @@ -167,14 +167,14 @@ * initialization is done. However, the AT91 resource allocation * system doesn't know how to use pmap_mapdev() yet. */ -#if 0 +#if 1 { /* * Add the ohci controller, and anything else that might be * on this chip select for a VA/PA mapping. */ AT91RM92_OHCI_BASE, - AT91RM92_OHCI_BASE, + AT91RM92_OHCI_PA_BASE, AT91RM92_OHCI_SIZE, VM_PROT_READ|VM_PROT_WRITE, PTE_NOCACHE, ==== //depot/projects/arm/src/sys/arm/at91/ohci_atmelarm.c#13 (text+ko) ==== @@ -28,7 +28,9 @@ #include #include #include +#include #include +#include #include #include #include @@ -99,6 +101,30 @@ } device_set_ivars(sc->sc_ohci.sc_bus.bdev, &sc->sc_ohci.sc_bus); + /* Allocate a parent dma tag for DMA maps */ + err = bus_dma_tag_create(bus_get_dma_tag(dev), 1, 0, + BUS_SPACE_MAXADDR_32BIT, BUS_SPACE_MAXADDR, NULL, NULL, + BUS_SPACE_MAXSIZE_32BIT, USB_DMA_NSEG, BUS_SPACE_MAXSIZE_32BIT, 0, + NULL, NULL, &sc->sc_ohci.sc_bus.parent_dmatag); + if (err) { + device_printf(dev, "Could not allocate parent DMA tag (%d)\n", + err); + err = ENXIO; + goto error; + } + + /* Allocate a dma tag for transfer buffers */ + err = bus_dma_tag_create(sc->sc_ohci.sc_bus.parent_dmatag, 1, 0, + BUS_SPACE_MAXADDR_32BIT, BUS_SPACE_MAXADDR, NULL, NULL, + BUS_SPACE_MAXSIZE_32BIT, USB_DMA_NSEG, BUS_SPACE_MAXSIZE_32BIT, 0, + busdma_lock_mutex, &Giant, &sc->sc_ohci.sc_bus.buffer_dmatag); + if (err) { + device_printf(dev, "Could not allocate transfer tag (%d)\n", + err); + err = ENXIO; + goto error; + } + err = bus_setup_intr(dev, sc->sc_ohci.irq_res, INTR_TYPE_BIO, ohci_intr, sc, &sc->sc_ohci.ih); if (err) { @@ -158,6 +184,12 @@ bus_teardown_intr(dev, sc->sc_ohci.irq_res, sc->sc_ohci.ih); sc->sc_ohci.ih = NULL; } + + if (sc->sc_ohci.sc_bus.parent_dmatag != NULL) + bus_dma_tag_destroy(sc->sc_ohci.sc_bus.parent_dmatag); + if (sc->sc_ohci.sc_bus.buffer_dmatag != NULL) + bus_dma_tag_destroy(sc->sc_ohci.sc_bus.buffer_dmatag); + if (sc->sc_ohci.sc_bus.bdev) { device_delete_child(dev, sc->sc_ohci.sc_bus.bdev); sc->sc_ohci.sc_bus.bdev = NULL; ==== //depot/projects/arm/src/sys/arm/conf/KB920X#42 (text+ko) ==== @@ -105,3 +105,13 @@ device at91_mci device mmc # mmc/sd bus device mmcsd # mmc/sd flash cards +# USB +device usb +device ohci +device ugen +device scbus +device da +device umass +device axe + +#device bpf