FIX SECONDARY BOOT CHECKING WRONG STATUS
authorRobert D. Thrush <rd@phoenix.aii.com>
Sun, 6 Sep 1992 00:00:00 +0000 (00:00 +0000)
committerRobert D. Thrush <rd@phoenix.aii.com>
Sun, 6 Sep 1992 00:00:00 +0000 (00:00 +0000)
commit4d43b2373454bf3d4e50ae650b97ac8c03a273cd
tree4bf3eab22fda18e6b455dd8fa2aa4215e8dc4381
parentb3d33dc13814d2e48de5adb0caa9893044d65698
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
usr/src/sys.386bsd/i386/stand/wd.c