Fix booting from an IDE block device on the Sun Blade 100. Apparently
authorkettenis <kettenis@openbsd.org>
Wed, 1 Dec 2021 17:25:35 +0000 (17:25 +0000)
committerkettenis <kettenis@openbsd.org>
Wed, 1 Dec 2021 17:25:35 +0000 (17:25 +0000)
commit71b09c7362424ca32145208b6f624a81e24f4ff8
tree65f640b16929e64ba54ac62103e08e45c01bf8ec
parent78d1525a7a73df184d4394a1dcc1e95a1cd2542e
Fix booting from an IDE block device on the Sun Blade 100.  Apparently
writing to disk using the Open Firmware interfaces is buggy and causes
corruption of the disk.  While it isn't entirely clear what versions
of Open Firmware are affected, but it seems to only affect IDE drives.
So if we detect an IDE drive, disable writing to it.  This results in
a small lose of bootloader functionality (bsd.upgrade loop prevention
and flagging /etc/random.seed re-use) but that is better than losing
the ability to run OpenBSD at all.

Based on a diff by Ted Bullock (who did all the hard work of debugging
this and coming up with a viable fix).

ok deraadt@
sys/arch/sparc64/stand/ofwboot/ofdev.c
sys/arch/sparc64/stand/ofwboot/vers.c
sys/lib/libsa/fchmod.c
sys/lib/libsa/stand.h