[comp.os.minix] More about MINIX on the Aerocomp with WD controller

rmtodd@uokmax.UUCP (04/24/87)

  Well, I've done some more experimenting with Minix on my machine (Aerocomp
Clone with WD1002-whatever controller and Seagate ST225 hard drive) and found
out why I was getting kernel panic:unable to read winchester partition table.
Even fsck was unable to read the partition table, which was strange since
fsck uses BIOS calls!!  My Western Digital controller has the Auto-Config
ROM.  This ROM allows one to configure the system for drives with any number
of cylinders.  Apparently most HD controllers, on initialization, set up
interrupt vector 41h to point to a disk information table in ROM.  With the
WD Auto-Config approach, the table can change, so it gets set up in RAM.
Unfortunately, it gets set up in RAM location 0:03d2, where it gets stomped
on twice by MINIX: once by the bootblok stack and one by the kernel
initializing all the interrupt vectors.  When xt_wini.c tries to read
the partition table, the drive-spec table the driver uses to initialize
the controller has already been thoroughly trashed and, not surprisingly,
I/O fails to work.  I patched bootblok.asm to create a copy of the disk
parameter table in high memory so it wouldn't get trashed.  Now MINIX
will run with the HD (at least as well as it does with WD, i.e. read-only).
If anyone wants a copy of the modified bootblok routine, let me know.
___________________________________________________________________________
Richard Todd
USSnail:820 Annie Court,Norman OK 73069
UUCP: {allegra!cbosgd|ihnp4}!okstate!uokmax!rmtodd