On Tue, Apr 17, 2001 at 01:07:55PM -0700, Adam J. Richter wrote:
> Here is a first draft of a userland program for loading
> EZUSB "firmware" automatically through the hotplugging system.
> This should not only fix the copyright problems, but will also
> make the kernel a bit smaller and make it easier to but EZUSB device
> devlopment.
>
> I do not have any EZUSB device on which to try it, so
> I have no idea if it works, and I have not converted the keyspan*fw.h
> files to data files for it yet. However, any input, experimentation
> or comments are welcome.
This will not work as currently written, but is a great step forward
(I've always disliked the usb-serial drivers being so big due to the
firmware images.)
You need to toggle the reset pin on the EZUSB device at specific times
in the loading process to get everything to work properly.
> /* Read a list of EZUSB upload records from standard input.
> The format of these records is as follows:
>
> command address length data1 data2 data3....up to a maximum of data16
>
> command is either 0xa0 or 0xa3. It is passed in the USB control command.
> Its exact meaning is unclear.
The whiteheat device uses 0xa3 because it loads first a special loader
that uses 0xa3 to tell the whiteheat device to load this specific data
to a different place in memory (a different bank/high mem type thing
from what I have been able to determine.)
So for the whiteheat device you need to do the following to get the
firmware properly loaded:
- set the reset pin to 1
- load the firmware loader with command 0xa0
- set the reset pin to 0
- load a specific portion of the application firmware with
command 0xa3
- set the reset pin to 1
- load a specific portion of the application firmware with
command 0xa0
- set the reset pin to 0
Then the device resets itself, and reenumerates as the new device.
While the keyspan_pda needs the following sequence to get firmware
properly:
- set the reset pin to 1
- load the firmware with command 0xa0
- set the reset pin to 0
Much simpler :)
I don't have a problem having the whiteheat application being whiteheat
specific, since it is an odd one (I don't know of any other EZUSB
devices with special loader firmware, but there probably are.)
If you want to do something like this, please do. I'd be glad to change
the whiteheat and keyspan* drivers, and maintain this as a separate
userspace package. I just don't have the initial time to do the work at
this moment.
thanks a lot,
greg k-h
--
greg@(kroah|wirex).com
_______________________________________________
[EMAIL PROTECTED]
To unsubscribe, use the last form field at:
http://lists.sourceforge.net/lists/listinfo/linux-usb-devel