[comp.os.minix] MINIX on an Aerocomp Clone

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

Well, I've got my MINIX disks in and have tried running them on 
my Aerocomp Clone (yes, that's the name of the machine, the
Clone).  The system loads in the kernel fine, but when the
kernel boots I get "kernel panic:cannot read partition table on
winchester".  I'm not sure just what sort of disk controller
Aerocomp uses (I didn't pull it out and check for a model number),
but it has Western Digital chips and what appears to be a WD 
Auto-config ROM as in the infamous WD1002-whatever.  Incidentally,
I use the Aerocomp equivalent of the CGA for my display.
  Anyway, I sat down for an evening snooping about and disassem-
bling the kernel to discover just where the tasks[] table is
so I could disable the winchester driver and boot the system.  For
those interested, the task table on the distribution boot disk
starts at sector 48 decimal, byte offset 0132h, with this sequence
of bytes: 18 31 44 12 56 33
                      ^^ ^^ entry for winchester, zero to disable
the task.
  With that patched, MINIX boots and seems to run fine, although
I have managed to get the system hung up whenever /dev/ram
fills up (no more free space).  Of course, running with only
one floppy
  Now here's the interesting part.  Fsck can't seem to read
the partition table, and fsck doesn't use the special minix
driver, since the kernel isn't running yet when fsck is.
fsck uses BIOS calls.  And yet, when I take the diskio
routine out of fsck1.asm and link it with a test program
under MSDOS, it reads the partition table just fine, thank
you.  My very strong suspicion is that something is not
getting initialized correctly when MINIX is booted.
  I've disassembled part of the Western Digital ROM and
the part I've looked through so far (the read routine)
seems to be compatible with the MINIX xt_wini.c code--they
work in the same manner.  There are a few differences,
however.  The WD ROM, when outputting a command to the
controller, checks status after each byte output; xt_wini.c
only does so after all 6 bytes of the command are output.
Could be this may be part of some of the incompatibilities
people are having with WD controllers.  Why not get a disassembler
and check your own ROM to see what it does?
--------------------------------------------------------------------------
Richard Todd
USSnail:820 Annie Court,Norman OK 73069
UUCP: {allegra!cbosgd|ihnp4}!okstate!uokmax!rmtodd