I’m working on some unified fabric I/O drivers. The drivers need to work as
a boot storage device, and it may be a while before we have actual BIOS
extension code in ROM for our fabric device. I’d like some way to
essentially fake the BIOS phase of the boot, so we can develop and debug our
Windows drivers without waiting for the BIOS folks. I know we can develop
the drivers to start later, and then when we have boot ROM code, figure out
what’s broken. I’d prefer we get as close to the real execution environment
asap.
It seems possible I could boot from a flash USB device (or maybe CD-ROM)
that had setupldr, the boot drivers, and appropriate config info. My fabric
drivers will not be able to act as a ntbootdd.sys driver for ntldr as it
takes more than just one miniport to access the boot disk. System boards
frequently have support for USB flash boot, although W2K3 doesn’t support
booting the OS from USB devices.
Ideally I’d like a way to put boot.ini, ntldr, the system registry hive
file, OS kernel, and all the boot load drivers on the USB device, let ntldr
load all the appropriate stuff via int 13 calls, and then pass control to
the kernel, where the pre-boot loaded drivers all fit together to access the
real boot disk. A USB flash device is attractive from a development
viewpoint, as I can just pop it out of the target system, load new versions
of the drivers from a development system, and pop it back into the target
system.
Any ideas?
- Jan