[comp.os.minix] Using Minix with three

mju@mudos.ann-arbor.mi.us (Marc Unangst) (01/07/91)

I have a 286/10 clone with 1MB of memory.  Right now, I have two 40MB
hard disks cabled to an Everex EV-346 MFM hard disk controller.
Unfortunately, I have all 80MB filled up under DOS, so I can't afford
to just repartition with 20MB for Minix.

However, I have a nice ST-225 and a Western Digital XT-GEN controller
gathering dust in the closet.  I know the speed won't be the greatest,
but I'm willing to put up with that.  My question is, will this even
work?  What I want to do is install the XT-GEN alongside the EV-346,
hook the ST-225 to the XT-GEN, and then use the ST-225 for Minix and
the two hard drives on the EV-346 for MS-DOS.  I don't particularly
care about using the ST-225 under DOS, but Minix should be able to
recognize it.  I still want to be able to boot DOS off one of the 40MB
disks.

So, any ideas?  Will this require hacking the hard disk driver?

--
Marc Unangst               |
mju@mudos.ann-arbor.mi.us  | "Bus error: passengers dumped"
...!umich!leebai!mudos!mju | 

kjh@pollux.usc.edu (Kenneth J. Hendrickson) (01/07/91)

In article <19sDV2w164w@mudos.ann-arbor.mi.us> mju@mudos.ann-arbor.mi.us (Marc Unangst) writes:
>My question is, will this even work?

If you can get the two disk controllers working, then it will work just
fine.  Make sure that the Minix HD is either disk 0 and/or disk 1.
MS-DOS will ignore any disk/partition that is not of MS-DOS type.  Just
make your ST-225 with Minix-only partitions.

If you can get two disk controller cards working in one machine, please
post here how you did it.  I'm sure that others would like to know.

-- 
favourite oxymorons:   student athlete, military justice, mercy killing
Ken Hendrickson N8DGN/6       kjh@usc.edu      ...!uunet!usc!pollux!kjh

cechew@bruce.cs.monash.OZ.AU (Earl Chew) (01/08/91)

In <29183@usc> kjh@pollux.usc.edu (Kenneth J. Hendrickson) writes:

>In article <19sDV2w164w@mudos.ann-arbor.mi.us> mju@mudos.ann-arbor.mi.us (Marc Unangst) writes:
>>My question is, will this even work?

>If you can get the two disk controllers working, then it will work just
>fine.  Make sure that the Minix HD is either disk 0 and/or disk 1.
>MS-DOS will ignore any disk/partition that is not of MS-DOS type.  Just
>make your ST-225 with Minix-only partitions.

>If you can get two disk controller cards working in one machine, please
>post here how you did it.  I'm sure that others would like to know.

There has been a lot of traffic along the lines of `Can I get two disk
controller cards to co-exist in my PC?' in comp.*.ibm.*. There appear to be
very few definitive answers.

I am glad to report that the answer to the above question is a qualified `Yes'.

I originally had a Miniscribe 8051A 40Mb disk in my system which I partitioned
into two 20Mb partitions --- one for Dog and one for Minix. I then acquired a
Rodime 3065 50Mb disk. It was only after I acquired the 3065 that I realised
that it would daisy chain off my existing controller because the 8051A is an
IDE drive :-(

In order to run two controllers, you must ensure that:

1. the IO ports do not overlap
2. the IRQ lines do not overlap

Condition (1) can be satisfied by ensuring that one of the controllers can be
switched to the secondary port address. I got hold of a WD1003-WA2 controller
which can control two hard disks and two floppies. For this particular
controller, you have to remember to switch both hard disk and floppy to the
secondary port address since one of the hard disk ports lies in the floppy
range :-( [or so I was told --- I haven't experimented with this].

Condition (2) may be harder to fulfill. Some controllers allow you to select
IRQ lines --- some don't. Mine didn't. AT hard disk controllers will use IRQ14.
I was told that IRQ15 is the `standard' secondary hard disk IRQ line. Bruce
tells me that other choices would have been better for to avoid glitches.
If you look at the bus signal lines, you will find that the `finger' for IRQ15
is adjacent to IRQ14. So if you don't have a controller with a selectable IRQ,
you can cut a leg off a dead chip, and solder it slanted across from IRQ14 to
IRQ15. Then get some adhesive tape and tape over the IRQ14 `finger'. Thus when
you insert the card, it will effectively use IRQ15 instead. Strangely, the
floppy doesn't suffer from this problem. Can anyone shed light on this?

Before doing any of this, I first made an MSDOS boot floppy, removed my 8051A
and controller card, and used the WA2 and 3065 to format and test the hard disk
and controller card. Once everything seemed ok, I switched the WA2 over to the
secondary address and IRQ and reinstalled my 8051A.

Now, the catch is that your BIOS will probably not know anything about the
second controller. My AMI BIOS doesn't. This means Dog won't know anything
either. This doesn't worry me greatly since I wanted to use the 3065 for Minix
exclusively. I have thought of some ways around this, but they require too much
work for the time being. I'd be interested to hear about other people's
experiences.

As far as I know, the second drive that the BIOS talks about is the second
drive on the *first* controller --- not the first drive on the *second*
controller. Be careful. If you are running two drives from separate
controllers, and you tell the BIOS that you have two drives, you may find that
your machine won't boot --- like mine :-(. You may have some anxious moments
trying to recover.

As for Minix, the fastest way to get a driver for the second hard disk would be
to clone at_wini.c to at2_wini.c changing the port and IRQ numbers. You will
have to add a cim_* routine and set the vector in kernel/main.c and
kernel/protect.c (I think --- from memory). You will also have to add another
task.

I chose not to do it this way, since it requires another task. I rewrote
at_wini.c to handle two controllers. I have patches three short additions to
kernel/*.[ch] plus at_wini.c and win2.x. Oh yes, plus a patch to fs/*.c to
allow an ioctl() call to the driver to configure the hard disk using entries
from /etc/disktab [extended from shoelace] (because it won't be listed in the
BIOS cmos configuration).

Earl
-- 
Earl Chew, Dept of Computer Science, Monash University, Australia 3168
EMAIL: cechew@bruce.cs.monash.edu.au PHONE: 03 5655447 FAX: 03 5655146
----------------------------------------------------------------------