Path: utzoo!attcan!utgpu!jarvis.csri.toronto.edu!clyde.concordia.ca!uunet!aplcen!samsung!shadooby!sharkey!cfctech!rphroy!trux!car From: car@trux.UUCP (Chris Rende) Newsgroups: comp.os.minix Subject: Re: minix 1.3 on 386/vga/rll system Message-ID: <339@trux.UUCP> Date: 15 Dec 89 15:27:53 GMT References: <901@crash.cts.com> Organization: Central Cartage, Sterling Hgts., MI Lines: 63 In article <901@crash.cts.com>, jca@pnet01.cts.com (John C. Archambeau) writes: > norsk@sequent.UUCP (Doug Thompson) writes: > > > I have followed the discusions on the use of RLL > >drives with Minix and understand the mods needed to > >the wini driver to get it to work. (BTW: why doesn't > >the wini driver - which I haven't yet examined - > >(on the AT) do a ROM BIOS disk table lookup based > >on the disk drive type stored in the CMOS ram?? > > Simple, not all BIOS chips store the number of sectors per track in the CMOS > setup RAM. I know my Phoenix 80286 BIOS Plus 3.10 doesn't (I know later > versions do such as the version that's in the ALR PowerFlex). Best bet would > be for one to develop a driver so one could force the HD parameters down the > driver's throat. I'm running Minix 1.2 on an XT with a SMS OMTI 5510/5520 HD controller using a modified xt_wini. I have 1 ST-213 disk (10Mb: 612 cyl, 2 hds) and 1 ST-412 disk (10Mb: 306 cyl, 4 hds). The problem I had was that my HD controller does not reveal the disk type to the computer in the same manner that the standard IBM/WD HD controller does. The 4 jumpers that are readable by the BIOS mean something different. So, when xt_wini read the jumpers and looked into the ROM BIOS table of disk parameters it got bad disk configuration data. Also, the BIOS ROM supports 16 HD drive types (corresponding to 4 jumpers). My ST-412 disk is not one of the 16 drives supported in the BIOS ROM. I solved both problems by hard-coding the drive parameters and forcing the HD controller to accept the new paramaters (rather than relying on the jumper settings). I did this in xt_wini.c:init_params(). [ That's Multics notation :-) ] After loading the param0 and param1 structures with the appropriate disk geometry info I make two calls to xt_wini.c:win_specify() to force the HD controller to accept the new parameters. I just got this working last night and looks great. Note that in my case I had to have a HD controller which allows the two disks to have a different geometry. I that some OMTI 5510 controllers don't allow this. The next problem I had was fsck. (Talk about a program with lots of magic numbers all over the place!). It took a bit of looking around to find that fsck was hardcoded to think that the HD has 4 heads. But, don't look for the string "HEADS" anywhere, don't look for "4" anywhere, no, you have to look for "68". Yes, that's the number. You see, "68" is "4*17". Or, 4 heads times 17 sectors. However, one of my disks has 2 heads and the other has 4. I put a test in fsck that changes the number of heads based on which drive is selected. So far that looks OK too. car. -- Christopher A. Rende Central Cartage (Nixdorf/Pyramid/SysVR2/BSD4.3) uunet!edsews!rphroy!trux!car Multics,DTSS,Unix,Shortwave,Scanners,StarTrek trux!car@uunet.uu.net Minix 1.2,PC/XT,Mac+,TRS-80 Model I,1802 ELF "I don't ever remember forgetting anything." - Chris Rende