usb/179505: Kernel detaches Arduino Leonardo (and similar) board umodem after the arduino boots
Hans Petter Selasky
hps at bitfrost.no
Fri Jun 28 11:10:02 UTC 2013
The following reply was made to PR usb/179505; it has been noted by GNATS.
From: Hans Petter Selasky <hps at bitfrost.no>
To: Hans Petter Selasky <hps at bitfrost.no>
Cc: joerg at FreeBSD.org, freebsd-gnats-submit at FreeBSD.org
Subject: Re: usb/179505: Kernel detaches Arduino Leonardo (and similar) board
umodem after the arduino boots
Date: Fri, 28 Jun 2013 13:09:07 +0200
This is a multi-part message in MIME format.
--------------020401000108020403000905
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit
On 06/28/13 11:10, Hans Petter Selasky wrote:
> The following reply was made to PR usb/179505; it has been noted by GNATS.
>
> From: Hans Petter Selasky <hps at bitfrost.no>
> To: Mike Meyer <mwm at mired.org>
> Cc: freebsd-gnats-submit at FreeBSD.org
> Subject: Re: usb/179505: Kernel detaches Arduino Leonardo (and similar) board
> umodem after the arduino boots
> Date: Fri, 28 Jun 2013 11:09:07 +0200
>
> Hi Mike,
>
> I was not able to reproduce this issue yet. From the logs you sent I see:
>
> That the INTERRUPT endpoint is stalling:
>
> DONE-INTR-EP=00000084,SPD=FULL,NFR=1,SLEN=0,IVAL=1,ERR=STALLED
>
> Then the USB stack will try to clear the stall. And the clearing of
> stall also fails:
>
> DONE-CTRL-EP=00000000,SPD=FULL,NFR=1,SLEN=0,IVAL=0,ERR=STALLED
>
> These messages are mandatory to implement per usb.org specifications.
> And I know Linux and Windows does not use these very much. In other
> words I looks like the Arduino could need some more USB certification!
>
> After a given amount of stalling, the FreeBSD USB stack will reset the
> device, which gives you the re-enumeration you are observing.
>
> This case can be prevented by setting:
>
> sysctl hw.usb.no_cs_fail=1
>
> Then try again!
>
> --HPS
> _______________________________________________
> freebsd-usb at freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-usb
> To unsubscribe, send any mail to "freebsd-usb-unsubscribe at freebsd.org"
>
>
Hi,
To get the Arduino Uno working, you need the following patch, due to
what most likely looks like timing differences between Linux and FreeBSD!
Joerg: Can you handle this patch for /usr/ports/devel/avrdude ?
--HPS
--------------020401000108020403000905
Content-Type: text/x-patch;
name="stk500.c.diff"
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment;
filename="stk500.c.diff"
--- stk500.c.orig 2013-06-28 13:00:11.000000000 +0200
+++ stk500.c 2013-06-28 13:01:13.000000000 +0200
@@ -91,10 +91,11 @@
/*
* First send and drain a few times to get rid of line noise
*/
-
- stk500_send(pgm, buf, 2);
- stk500_drain(pgm, 0);
- stk500_send(pgm, buf, 2);
+
+ /*
+ * XXX The Arduino only sends the sync sequence once after modem open.
+ * XXX Only drain once!
+ */
stk500_drain(pgm, 0);
stk500_send(pgm, buf, 2);
--------------020401000108020403000905--
More information about the freebsd-usb
mailing list