I think I see the same sort of behavior for my EZ-USB-based devices, but
until now I have not considered it a problem because I am not trying to load
different firmware for each OS. If I reboot from 9 to X (or vice versa) and
the device retains its firmware, I am generally happy, since it just means I
save the second or two it would have taken to load the firmware.
I suspect in practice this is not an issue for me since not many customers
do this; it's the sort of thing a developer does all the time but a customer
does very rarely, and a work-around on the order of un/plugging the device
is adequate for that tiny minority of users. But your message does make me
think there's an unhandled corner-case in my loader.
Maybe the truly correct thing to do is test whether the firmware version I
have on disk is different from the version which has been loaded into the
device. If so, I prolly want to reload firmware. The question then becomes
how to do so. I guess the device needs a kick in the head to put it back
into loader mode, but of exactly what sort of kick I am not sure.
One idea would be to cycle the bus power to the device. But I remember
asking a while back under otherwise unrelated circumstances about cycling
bus power for a given device, and Apple told me it wasn't gonna happen even
if I did figure out the right hub magic, since hubs have the ability to drop
power to devices only in theory. (In practice, hubs all suck.) And anyway
that would not work for all products, since EZ-USB does not imply bus power
(or does it?).
Apple guys, do you have any insight into how such a thing might be done?
Anybody know who at Cypress might be able to help with such an issue?
circa 1/30/03 20:50, Fred Ross-Perry <email@hidden> wrote:
> I have a device based on EZ-USB for which I have written a user-land driver,
> which works fine. The driver downloads firmware and re-enumerates when it sees
> the unloaded device. We also have a driver for OS 9, which might be installed
> on the same machine. This driver uses a different version of the firmware.
> Runtime conflicts between the two drivers is NOT the problem I am having. Here
> is the problem. User boots OS 9, plugs in the device, all is fine. User
> leaves the device plugged in, and reboots into OS X. Device does not work.
> Unplug and re-plug the device, and now it works. So I suspect that power is
> not being dropped to the USB bus during restart ( this is a G4 desktop ), and
> that the OS 9 firmware keeps running, which is not compatible with the OS X
> software. When I unplug and re-plug I get the OS X firmware, and all is well.
> The same problem happens in reverse if you start in OS X and reboot to 9. So
> how can I force the re-enumeration of the device when the system reboots?
--
Pete Gontier -- pete at m-audio dot com -- <http://www.m-audio.com/>
_______________________________________________
usb mailing list | email@hidden
Help/Unsubscribe/Archives: http://www.lists.apple.com/mailman/listinfo/usb
Do not post admin requests to the list. They will be ignored.