Messages in this thread | | | Date | Fri, 28 May 2004 08:12:50 -0400 | From | Ben Collins <> | Subject | Re: boot from usb flash - wake boot process when disk is ready? |
| |
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/ - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |