cvs commit: src/sys/bus/usb usb.c
dillon at apollo.backplane.com
Sun May 25 18:29:52 PDT 2008
:Oh yes, my commit seems to revert usb.c rev 1.24 . I should have read
:this before. But I don't think rev 1.24 is very good, as it leads to
:kernel panics :).
:What exactly is cold boot? Is it what I think it is:
: cold boot = machine is powered on for the first time
: warm boot = just do a jump to the BIOS init routine
No, coldboot in the period of time from the start of kernel boot
through the device configuration routines. cold != 0 indicates
the kernel has not booted far enough into the system for any of
the VFSs to be available.
The variable is mostly used so the kernel doesn't try to do filesystem
or disk ops if it crashes during that phase of the boot. It is also
used for device drivers which create interrupt configuration hooks,
delaying the hooks until after device configuration has completed.
The USB subsystem uses the 'cold' variable to determine when its
interrupts might be working or not. If non-zero the USB subsystem
will poll instead of relying on its interrupts (because they may not
yet be completely working or even completely routed).
I agree that the early usb keyboard detection was kinda a hack, but
without it a kernel crash that drops into DDB prior to that point in
the boot will not have a working keyboard to type on. We should try
to find a solution prior to our July release. Maybe the thing to do is
to fully initialize the USB subsystem using polling right from the
get-go. I dunno.
<dillon at backplane.com>
More information about the Commits