On Thursday 28 August 2003 15:26, Stuart Walsh wrote: > Hi, > > Firstly, it would be interesting to know if anyone else is working on > support for these devices before I get too far into it :) Yes, I have bought a bunch of them about a month ago, and at this moment I have a working driver for them. At this moment it's still a "beta" which can only do ad-hoc mode, but it works.
> I've started working on support for the above devices and have had some > limited success so far. The device requires two sets of firmware to be > uploaded for it to work and I have managed to upload the first firmware > but it doesnt seem to want to boot. Any attempts to read the device > after uploading firmware result in error code 13(IOERROR). The Linux > driver calls usb_reset_device() after uploading the firmware but I can't > seem to find an equivelant in FreeBSD. The problem is that the device really dies after uploading the internal firmware. It really needs a reset before it will communicate again. A usb-hub can send a reset signal down it's ports with a call to : usbd_reset_port(sc->atuwi_udev->myhub,sc->atuwi_udev->powersrc->portno,&T); After that the atmel processor will start communicating again. But it's usb-address will be set to 0 (as always after a reset). So you will have to (re)set it's address back to what it was before the reset with a call to : usbd_set_address(sc->atuwi_udev,my_old_address); The story gets more complex since the descriptors of the device have changed by the reset. (first it only had a control endpoint, now it also has 2 bulk endpoints). Somehow you'll have to reload the new descriptor to please the kernel. I have come very far in this process, but I am doing something wrong with releasing the old descriptors... So at this moment I use a trick to reset the device. After uploading the internal firmware I unplug the USB connector just far enough for the data-lines to disconnect, but without disconnecting the power-lines. After plugging the device back in the kernel recognizes it again and uploads the external firmware. I'll come back to this thread tomorrow and post some links to my code, but I have to run now. grtz, Daan _______________________________________________ [EMAIL PROTECTED] mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-hackers To unsubscribe, send any mail to "[EMAIL PROTECTED]"