what does CMD_SET_BOOT2_VER ?

David Woodhouse dwmw2 at infradead.org
Thu Dec 6 05:48:17 EST 2007


On Thu, 2007-12-06 at 05:25 -0500, Dan Williams wrote:
> > However, my real question is: isn't BOOT2 a purely USB specific
> > thing?  If yes, than this belongs into if_usb.c.
> 
> Possibly, yes. At this point the command is implemented only for the
> usb8388.  But think of "Boot2" like the helper firmware for SD or CF
> cards.  The real firmware replaces the helper image in the  memory of
> the 838x after you load it.  On OLPC the helper firmware is stored in
> SPI flash on the libertas module itself since it needs to know how to
> talk USB before the host can tell it to do anything.
> 
> The problem is that after the helper (boot2) firmware has been replaced
> by the real firmware, at least on USB, the real firmware has no idea
> what version the helper firmware was.  This is fine until you start
> suspending and resuming, because after the Linux kernel has disconnected
> the libertas module from the bus for suspend and tried to reconnect for
> resume, it has lost the original USB bcdDevice number. 

Actually, hasn't it stored it in priv->boot2_version, which is precisely
where we get it from in lbs_cmd_set_boot2_ver() ? 

And even then, I don't actually see anywhere we actually _care_ about
bcdDevice, except when we're starting to load the firmware.

Anyway, I've moved it to if_usb.c and tested it, and pushed that fix.
I reserve the right to remove it completely at a later date :)

-- 
dwmw2




More information about the libertas-dev mailing list