[comp.os.minix] RLL on AT clone with DTC 5287CR controller. HELP!

jeremy@mips.COM (Jeremy M. Schneider) (10/19/89)

My 1.1 Minix (apparently originally configured for an XT) doesn't access my 
hard disk correctly.  When I recompile and relink the kernel with at_wini.c, 
and run the test "dd if=/dev/hd0 of=/dev/null", dd reads only 174 blocks 
before exiting with an error.

I have a noname 12 MHz AT clone with 640 K and a 1.2 meg floppy.  It has a 
DTC 5287CR RLL controller controlling a Fujitsu 2227 disk drive.  The rom 
setup in my AMI bios says that it is a 44 meg drive, and with the RLL 
controller I get about 67 meg according to DOS.  The ROM setup further says 
that the the drive has 7 heads, 754 cylinders, and was a write-precomensation 
of 754 (what is write-precompensation?).  The vendor tells me that it has 26 
sectors per cylinder.  (That makes some sense:  7 * 754 * 26 * 512 = app. 70 
meg., but perhaps 25 makes more sense, as 7 * 754 * 25 * 512 = app. 67.5 meg.)
Also, the Norton Utilities report 25 sectors per track.

Anyway, I've seen some notes on comp.os.minix about fixing wini.c to deal
with RLL controllers, but I need some additional help.  Someone suggested 
changing the value of NR_SECTORS, but that symbol is only in xt_wini.c, 
and I haven't been able to track down the origin of the corresponding 
info in at_wini.c.  As far as I can tell, it is magically gotten from
RAM in init_params() in at_wini.c.  

I put some printfs in copy_params() and some of the information about the
drive seems to be correct, while other information appears to be incorrect.

It gets the number of heads and cylinders correct, but it thinks w_precomp
== 93, wn_maxsec == 25, and wn_size == 878.  It also reports that the
wn_ctlbyte == 0, which I don't know the correctness of.

I am rather confused, and the book and the documentation are quiet on the 
subject of the hard disk device driver.

Does anyone happen to have an at_wini.c that might work with my configuration?
What should I try next?  I guess a next step could be to hard code the correct 
values into my at_wini.c, and see what happens, but that seems risky and gross.
Even if I did hard code it, it's not clear that things would work, because the 
device driver was not written for my controller.

I have the 1.3 upgrade package, but I wanted to get 1.1 working so it would
be easier to recompile everything.  If 1.3 will work with my hard disk, I
will bite the bullet and recompile everything on floppies, but I'd rather
not bother if it, too, won't work with my controller.

HELP!

Thanks very much,
	Jeremy
-- 
Jeremy M. Schneider              jeremy@mips.com
MIPS Computer Systems            {ames,decwrl}!mips!jeremy
930 Arques Avenue
Sunnyvale, CA 94086              408-991-7805 (work)