On Thu Aug 28, 07:15P +0200, Daan Vreeken [PA4DAN] wrote: > 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.
Ok, that saves some duplicated effort :) > > 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); > That bit works fine. > 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); This fails with another IOERROR > > 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. > Hopefully I can look into this when I can talk to the device a bit better :) > I'll come back to this thread tomorrow and post some links to my code, but I > have to run now. Thanks for the info.. I'll wait to see your code and see where I'm going wrong. Regards, Stuart _______________________________________________ [EMAIL PROTECTED] mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-hackers To unsubscribe, send any mail to "[EMAIL PROTECTED]"