From owner-freebsd-usb@FreeBSD.ORG Tue Oct 16 16:43:56 2007 Return-Path: Delivered-To: freebsd-usb@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 49C0616A417 for ; Tue, 16 Oct 2007 16:43:56 +0000 (UTC) (envelope-from hselasky@c2i.net) Received: from swip.net (mailfe01.swip.net [212.247.154.1]) by mx1.freebsd.org (Postfix) with ESMTP id B3AF413C461 for ; Tue, 16 Oct 2007 16:43:55 +0000 (UTC) (envelope-from hselasky@c2i.net) X-Cloudmark-Score: 0.000000 [] Received: from [85.19.218.45] (account mc467741@c2i.net [85.19.218.45] verified) by mailfe01.swip.net (CommuniGate Pro SMTP 5.1.10) with ESMTPA id 633417882; Tue, 16 Oct 2007 18:43:53 +0200 From: Hans Petter Selasky To: "Xiaofan Chen" Date: Tue, 16 Oct 2007 18:44:19 +0200 User-Agent: KMail/1.9.7 References: <200710152303.29294.hselasky@c2i.net> In-Reply-To: MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Content-Disposition: inline Message-Id: <200710161844.20468.hselasky@c2i.net> Cc: freebsd-usb@freebsd.org Subject: Re: PICkit 2 again with HPS stack X-BeenThere: freebsd-usb@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: FreeBSD support for USB List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 16 Oct 2007 16:43:56 -0000 On Tuesday 16 October 2007, Xiaofan Chen wrote: > On 10/16/07, Hans Petter Selasky wrote: > > On Saturday 13 October 2007, Xiaofan Chen wrote: > > > On 10/13/07, Hans Petter Selasky wrote: > > > > Resource temporarily unavailable maps to EAGAIN > > > > according to "man errno". From what I can see from the log > > > > you have provided this means that the "msleep()" > > > > call in "ugenread" timed out. > > > > > > > > What timeout have you programmed in your PICkit ? > > > > > > It is 1000ms. I change it to 10000ms but this does not help. > > > > Do you see this timeout ? Does the code actually wait 10 seconds ? > > I think so. > > > In the file "ugen.c" in the function "ugen_open_pipe_read()" you will > > find a "case UE_INTERRUPT:". Some lines further down you will find: > > > > /* first transfer clears stall */ > > sce->read_stall = 1; > > > > This you can set to "0". Then recompile and install the "ugen" module > > and/or kernel. > > > > Does your USB hardware work now ? > > Yes with the changes, PICkit 2 is happy again under Linux. > > ===[mcuee] ~/Desktop/build/mypk2 # sudo python testpk2.py > set Configuration 1 > claim Interface 0 > Turing power on by USB interrupt write > Sending version command by USB interrupt write > Getting version command by USB interrupt read > (2, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, > 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, > 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0) > Hi, > Thanks a lot. So it seems there is still a bug in the firmware. Maybe two. > The first one caused the stall (why?). I think that the clear-stall command will flush the FIFO of the interrupt endpoint. Is it possible that you can open the interrupt endpoint which is a file, /dev/ugenX.X, before sending the version command ? So that we don't end up clearing the stall after sending the command, but before. > The second one is still related to > dealing with clear stall feature request. Right? Yes. --HPS