FIX SECONDARY BOOT CHECKING WRONG STATUS
We've found a showstopper in the secondary boot (bootwd) for some
DTK controllers that we tried to use. It appears to me that this may
solve the problem that many have reported about not being able to boot
from the hard disk after "install". At least, it has solved it for
us.
The problem occurs in /sys/i386/stand/wd.c. In wdinit() the controller
is reset; however, the wrong register is tested for busy. On some
controllers, this mis-test seems to cause no harm. However, it seems to
hang forever on a few here.
To replace the bootwd on your already "installed" hard disk, do
something like the following:
1. Recompile "bootwd" in /usr/src/sys.386bsd/i386/stand.
2. Copy it over /usr/mdec/bootwd on the fixit.fs diskette.
3. Boot from this fixit.fs diskette.
4. Make the floppy writeable, ie. mount -u /dev/fd0a /
5. Obtain the existing hard disk label, ie.
"disklabel -r wd0 >wd0.label"
6. Replace the primary and secondary boots via
"disklabel -R -r wd0 wd0.label /usr/mdec/wdboot /usr/mdec/bootwd"
NOTE: A binary of this bootwd is available by ftp from agate.berkeley.edu.
AUTHOR: Robert D. Thrush (rd@phoenix.aii.com)
386BSD-Patchkit: patch00049