cvs commit: src/sys/bus/usb usb.c

Matthew Dillon 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 [1]. 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).

:[1]:
:http://www.dragonflybsd.org/cvsweb/src/sys/bus/usb/usb.c.diff?r1=1.23&r2=1.24&f=h
:

    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.

					-Matt
					Matthew Dillon 
					<dillon at backplane.com>





More information about the Commits mailing list