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