Hi,
> I'm using samsung 4510b mcu, running uClinux 2.4.20. My usb-host
> controller is sl811hst, and the usb-wlan card is accton ew3301, an Atmel
AT76C503A
> based USB WLAN adapter with Intersil radio i3861.
>
> BTW, I'm using the adapter from http://at76c503a.berlios.de, v0.10, which
> worked very well on redhat linux 9.0.
>
> but under uClinux, errors occured when usbdfu.c Downloading firmware for
> USB device 2, dmesg is bellow:
> ...
> hub.c: new USB device sl811-1, assigned address 2
> usbdfu.c: Downloading firmware for USB device 2...
> usbdfu.c: do_dfu_download: ctx = 29f000
> usbdfu.c: do_dfu_download:dfu_state = 2
> hc_simple.c: sh_donw_list: done_list: packet err, cc=0x4,
> urb->length=0x400, actual_len=0x88, urb_state=0x1
> hc_simple.c: sh_donw_list: done_list: packet err, cc=0x4,
> urb->length=0x400, actual_len=0x338, urb_state=0x1
I have never worked with uCLinux nor hc_simple.c.
Why are urb->length and actual_len different above,
what is urb_state 1?
> usbdfu.c: do_dfu_download:dfu_state = 3
> usbdfu.c: do_dfu_download:dfu_state = 5
> ...repeated many times... //cc=0x4 means that the packet status is
> time-out
> usbdfu.c: do_dfu_download:dfu_state = 6
> usbdfu.c: do_dfu_download:dfu_state = 7
If packets really timed out, I wonder how
you reached state 7, i.e. MANIFEST.
> hc_simple.c: sh_donw_list: done_list: packet err, cc=0xc,
> urb->length=0x0, actual_len=0x0, urb_state=0x2
> hc_simple.c: sh_donw_list: done_list: packet err, cc=0xc,
> urb->length=0x0, actual_len=0x0, urb_state=0x2
> hc_simple.c: sh_donw_list: done_list: packet err, cc=0xc,
> urb->length=0x0, actual_len=0x0, urb_state=0x2
> hc_simple.c: sh_donw_list: done_list: excessive error: errcount = 0x4, cc
> = 0xc
> ...repeated many times... //cc=0xc means that
> the packet status is slave returns NAK and slave //set STALL
bit
> hc_simple.c: sh_donw_list: done_list: packet err, cc=0xc,
> urb->length=0x12, actual_len=0x0, urb_state=0x2
> hc_simple.c: sh_donw_list: done_list: packet err, cc=0xc,
> urb->length=0x12, actual_len=0x0, urb_state=0x2
> hc_simple.c: sh_donw_list: done_list: packet err, cc=0xc,
> urb->length=0x12, actual_len=0x0, urb_state=0x2
> hc_simple.c: sh_donw_list: done_list: excessive error: errcount = 0x4, cc
> = 0xc
> hub.c: USB device descriptor short read (expected 18, got 0)
> usb_interface_claimed !=0,goto out_err
> />
>
> could anyone give me a hand? How can I survive? or how can i debug this
> bug?
I miss the debug outputs of usbdfu.c (i.e. the dbg()), seems like you put
your own in the code. Setting debug=1 as module param for usbdfu.c
switches the others on.
In your place I'd compare the debug outputs of firmware load between
your working RH9 installation and this one to find out where the error
occurs. The REMAP and the reset after the external part of the firmware
got downloaded are IMHO candidates for failures.
AFAIR even the i386 USB host controllers sometime complain
about too short device descriptors as above (but they continue to work).
Have a look into
https://lists.berlios.de/pipermail/at76c503a-develop/2003-June/000028.html
for a description of the firmware download in the Berlios driver.
It may get changed for 2.6.x kernels as some procedures are no longer
available.
Regards,
Jörg.
--
COMPUTERBILD 15/03: Premium-e-mail-Dienste im Test
--------------------------------------------------
1. GMX TopMail - Platz 1 und Testsieger!
2. GMX ProMail - Platz 2 und Preis-Qualitätssieger!
3. Arcor - 4. web.de - 5. T-Online - 6. freenet.de - 7. daybyday - 8. e-Post
lmpx.com only provides a reader for public news (NNTP) servers. It is not
affiliated with the servers or forums shown here and is not responsible for
the content of articles, which is written by their respective authors.