Re: boot from usb flash - wake boot process when disk is ready?

Ben Collins
2004-05-28T12:49:34Z

On Fri, May 28, 2004 at 11:05:54AM +0200, David N. Welton wrote:
> [ Please CC replies to me - thanks! ]
>
> Hi,
>
> We're toying around with the idea of booting an embedded system off of
> USB flash (pros, cons, and advice about this would be appreciated, by
> the way), and I had a look at several of the existing patches to do this
> without going through the process of creating an initrd image. That
> adds complexity and time to the boot process that we would prefer to
> avoid, although it appears that the kernel folks in the first thread
> cited are in favor of initrd....

We have the same problem for firewire and sbp2 disks. I've often thought
of adding a CONFIG_IEEE1394_BOOT_SUPPORT config option where the
ieee1394 subsystem, if compiled with this option and built into the
kernel, would block it's init until the bus scan and device probes were
complete.

It gets kind of complicated, mainly because this should only be done
when a new host is added, and not for normal bus resets, and ideally
only at boot (e.g. not when a PCMCIA card is inserted sometime after
boot).

The complicated part is that the host controllers are seperate drivers
from the core. So the core can't block in it's init, since there are no
controllers at that point. The logic needs to be in the host-add
callbacks (same for USB and firewire). Since there's the possibility
(especially with USB) that there is more than one host controller, you
would have to do this for all of them, since the disk device may be on a
later controller in the PCI detection process.

Question is, is there a variable that can be looked at to see if init
has been started yet? If there is, then the logic could be invoked in
host-add whenever we are in pre-init state (IOW, no userspace is running
yet).

That would make it work more like standard SCSI hosts. USB could do the
same.

--
Debian - http://www.debian.org/
Linux 1394 - http://www.linux1394.org/
Subversion - http://subversion.tigris.org/
WatchGuard - http://www.watchguard.com/