From owner-freebsd-arm@FreeBSD.ORG Sun Apr 7 07:07:52 2013 Return-Path: Delivered-To: arm@freebsd.org Received: from mx1.freebsd.org (mx1.FreeBSD.org [8.8.178.115]) by hub.freebsd.org (Postfix) with ESMTP id 69329170; Sun, 7 Apr 2013 07:07:52 +0000 (UTC) (envelope-from hps@bitfrost.no) Received: from mta.bitpro.no (mta.bitpro.no [92.42.64.202]) by mx1.freebsd.org (Postfix) with ESMTP id 2E41A1B2D; Sun, 7 Apr 2013 07:07:51 +0000 (UTC) Received: from mail.bitfrost.no (mail.bitfrost.no [46.29.221.36]) by mta.bitpro.no (Postfix) with ESMTP id 3413B7A21F; Sun, 7 Apr 2013 09:07:50 +0200 (CEST) X-Virus-Scanned: Debian amavisd-new at bitfrost.no Received: from laptop015.hselasky.homeunix.org (cm-176.74.213.204.customer.telag.net [176.74.213.204]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) (Authenticated sender: hanspetter) by mail.bitfrost.no (Postfix) with ESMTPSA id BF2D520A72; Sun, 7 Apr 2013 09:07:43 +0200 (CEST) Message-ID: <51611B9A.30407@bitfrost.no> Date: Sun, 07 Apr 2013 09:09:14 +0200 From: Hans Petter Selasky Organization: Bitfrost A/S MIME-Version: 1.0 To: Oleksandr Tymoshenko Subject: Re: Beaglebone USB driver (Mentor Graphics OTG) References: <51608AA4.2020804@bluezbox.com> In-Reply-To: <51608AA4.2020804@bluezbox.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: arm@freebsd.org, usb@freebsd.org X-BeenThere: freebsd-arm@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Porting FreeBSD to the StrongARM Processor List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 07 Apr 2013 07:07:52 -0000 On 04/06/13 22:50, Oleksandr Tymoshenko wrote: > Hello, > > This is first iteration of Host Mode support for Mentor Graphics > OTG USB controller. I tested it by building kernel with USB memory > stick mounted as /usr/obj, resulting kernel was bootable and worked fine. > I reused some ideas (mostly for channel-management) from > DWT OTG driver. > > Some pieces are still missing: > - Support for SPLIT transactions, I don not have high speed hub > right now to test it, but implementing it should be really > straighforward. > - Isochronous transfers. I do not have hardware to test this. Does > anybody have any suggestion about simple use case? > - Control Data OUT transaction > - Wrapper for atmel HW has not ben synced with new core logic requirements > yet > > Please review and test. I tested it only with gcc-built kernel/world. > Now when > first iteration is finished I'm going to update all my boards to new > world order > (clang/EABI) and re-test this stuff. > > Patch: > http://people.freebsd.org/~gonzo/arm/patches/beaglebone-musb.diff Hi, Supporting split transactions is required: + + /* SPLIT transaction */ + MUSB2_WRITE_1(sc, MUSB2_REG_RXHADDR(0), 0); + MUSB2_WRITE_1(sc, MUSB2_REG_RXHUBPORT(0), 0); + See EHCI driver: EHCI_QH_SET_HUBA(xfer->xroot->udev->hs_hub_addr) | EHCI_QH_SET_PORT(xfer->xroot->udev->hs_port_no)); This feature should be enabled when: Connected root HUB port is running HIGH speed, and the connected device is LOW or FULL speed. Try connecting a USB keyboard through any high speed USB HUB. --HPS