Re: Atmel USB Wireless devices

From: Stuart Walsh (stu_at_ipng.org.uk)
Date: 08/28/03

  • Next message: Mikulas Patocka: "Re: Bug FreeBSD 4.8 ATA driver"
    Date: Thu, 28 Aug 2003 18:39:33 +0100
    To: "Daan Vreeken [PA4DAN]" <Danovitsch@Vitsch.net>
    
    

    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
    _______________________________________________
    freebsd-hackers@freebsd.org mailing list
    http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
    To unsubscribe, send any mail to "freebsd-hackers-unsubscribe@freebsd.org"


  • Next message: Mikulas Patocka: "Re: Bug FreeBSD 4.8 ATA driver"

    Relevant Pages

    • Re: Atmel USB Wireless devices
      ... The device requires two sets of firmware to be ... The problem is that the device really dies after uploading the internal ... It really needs a reset before it will communicate again. ... The story gets more complex since the descriptors of the device have changed ...
      (freebsd-hackers)
    • Re: fx2lp out endpoint not arming (AUTOOUT mode)
      ... I found that the only way I could get the AUTOOUT function to reliably ... FIFORESET = 0x04; SYNCDELAY; ... eeprom (firmware I didn't write), then I just nuke it by uploading my ... recall in previous instances it came up as 'full' after a FIFO reset). ...
      (comp.arch.embedded)
    • Re: HP3320 scanner failure
      ... Download and install the latest firmware after reading the instructions on ... Select your product and then select "Cross operating system (BIOS, Firmware, ... If that does not work then perform an NVRAM reset as follows. ... Whilst still holding these keys power the printer on, ...
      (comp.periphs.printers)
    • Re: fx2lp out endpoint not arming (AUTOOUT mode)
      ... code but EP2CS still reports the FIFO is full after a FIFO reset ... (which I assume means it didn't arm correctly). ... eeprom (firmware I didn't write), then I just nuke it by uploading my ... recall in previous instances it came up as 'full' after a FIFO reset). ...
      (comp.arch.embedded)
    • Re: Alpha Server 1200 processor error
      ... I seem to remember a command like "sho fru" which is used to get more ... Neil Rieck ... But the reset button might work wonders and loading new firmware as well... ...
      (comp.os.vms)