[comp.unix.microport] Microport Support for RLL

mikeh@killer.UUCP (Michael Hammond) (06/02/88)

   After hearing about the new RLL driver on the uport bbs I downloaded
it, built a new kernel, and ran the build on the system. Everything worked
just great! When I went to boot up the hard disk for the first time to install
the rest on the runtime system it died! I got

...............


but not


...............
boot:


which I expected. At this point I looked at the bootstrap for a non-rll
vs a rll and find that while the non-rll bootstrap looks like code the
rll bootstrap looks like a table has ovrewritten it. Calls to tech support
and notes on the bulletin board have left me with no answers, just frustration.
Is there anyone out there that has gotten the new driver to work with
>17 sectors? If so did you have any trouble? Any Compaq 386/20 's out there
that have had better luck? E-mail me please. If a work around is found  
I'll post it.

                                               Thanx in advance
                                                   Mike Hammond

brian@cbw1.UUCP (Brian Cuthie) (06/03/88)

In article <4274@killer.UUCP> mikeh@killer.UUCP (Michael Hammond) writes:
>
>   After hearing about the new RLL driver on the uport bbs I downloaded
>it, built a new kernel, and ran the build on the system. Everything worked
>just great! When I went to boot up the hard disk for the first time to install
>the rest on the runtime system it died! I got
>
>...............
>
>
>but not
>
>
>...............
>boot:

AH !!  The problem, that you are facing, is that the RLL drive has more than
17 sectors per track and the ROM BIOS doesn't know that.

It seems that the First stage bootstrap depends on the ROM BIOS routines to
read the partion table and then to read the Second stage bootstrap from the
first track of the active partition.   The problem is that the ROM code
thinks the drive has 17 sectors per track and thus munges the computation
to the first track of the active partition.

To fix the ROM, to include the correct number of sectors, you must have access
to a ROM programmer and some appropriate ROMs.  It is important to subtract,
from another drive entry, the number of sectors added to the new entry.  In
otherwords, if you change an entry from 11 (hex) sectors per track to 22
(hex), be sure to subtract the 11 (hex) additional tracks from some other
entry that you do not plan to use.  Otherwise, the checksum gets munged and
nothing works.  I'm sure there is a better way to do this but, not knowing
where the checksum code was, I decided this was the quickest fix for my
problem.

I have done this successfully and would be more than happy to give advice to
anyone who wants to call.   The ROM drive tables are described in the AT
technical reference manual from IBM.  They usually start at offset 6401
(hex) in the ROMs.

BUT: Once you've fixed this, you will find that the second stage bootstrap
doesn't seem to be able to find the root file system.  This, I believe, is
because the second stage bootstrap has some screwy 17 sector per track value
hardwired into it.  I have been trying to contact Microport tech support to
find out what the deal is, but we have been playing telephone tag.  I should
know tomorrow.

Incidentally, the new symptom is:

	.............
	boot: /unix
------> Can't find /unix


I have spent a considerable amount of time looking at the "partitions" file
that is built on the floppy by the program "disksetup" which is called in
the "INSTALL" script.  I appears to be correct.  I have even mucked with it
to try to move some things around (like the VTOC) to see if the second stage
bootstrap would be any happier.  No luck though...

I'll post whatever I find tomorrow from Microport about the second stage
boot.

-brian

(301) 290 - 7443
-- 
Brian D. Cuthie                                 uunet!umbc3!cbw1!brian
Columbia, MD                                    brian@umbc3.umd.edu
"Captain, Captain! All the stars have gone out!"
"No, you fool, you've leaned on the button.  Turn the viewer back on!"

ewv@zippy.berkeley.edu (Eric Varsanyi) (06/04/88)

In article <184@cbw1.UUCP> brian@cbw1.UMD.EDU (Brian Cuthie) writes:
>In article <4274@killer.UUCP> mikeh@killer.UUCP (Michael Hammond) writes:
>>
>>   After hearing about the new RLL driver on the uport bbs I downloaded
>>it, built a new kernel [...]
>AH !!  The problem, that you are facing, is that the RLL drive has more than
>17 sectors per track and the ROM BIOS doesn't know that.
It shouldn't have to, while it is convenient to have an entry in your bios
for your drive type, its not needed with (real) RLL controllers.

DTC's controller (and someone else's) have some on board RAM, when you
run their ROM based formatter, it asks for the drives paramters and
stores them in a secret teeny sector on C0T0, when the ROM bios call
the HD bios during boot, it reads this stuff off the disk and builds a
disk table entry for the drive (as it would look in the BIOS) and puts
it in its onboard ram. Then it points the hard disk vector (around
x'104) to this table and continues.

The RLL hd driver looks at this before it tries to read a VTOC and
configures appropriately. No new BIOS, minimal hassles. The only
problem is when the VTOC is wrong (you issued a bogus mkpart using
a partitions file for a 17 sector drive). The VTOC overrides the data
from the drive table and you are in trouble. 
 
>It seems that the First stage bootstrap depends on the ROM BIOS routines to
>read the partion table and then to read the Second stage bootstrap from the
>first track of the active partition.   The problem is that the ROM code
>thinks the drive has 17 sectors per track and thus munges the computation
>to the first track of the active partition.

Yes and no, the first stage loader uses the bios routines to read in the
second stage loader, but the BIOS does pay attention to the disk table.
As long as the controller does its trick correctly, your OK. Also, it
does not need the partitions table at this point, since the second stage
loader is just tacked on to the end of the first stage (on C0T0), all
is has to do is increment sector numbers and ask the bios for the next one.

>BUT: Once you've fixed this, you will find that the second stage bootstrap
>doesn't seem to be able to find the root file system.  This, I believe, is
>because the second stage bootstrap has some screwy 17 sector per track value
>hardwired into it.  I have been trying to contact Microport tech support to
>find out what the deal is, but we have been playing telephone tag.  I should
>know tomorrow.

Absolutely correct, the second stage loader looks for the VTOC at absolute
sector 17. The new loader look for the VTOC on the second track of the drive. (
(Whatever the geometry). It is on the Uport BBS I think.

>Incidentally, the new symptom is:
>
>	.............
>	boot: /unix
>------> Can't find /unix
>

A little trick here: If you use new boot code, make sure you put it in 
/etc/boot otherwise you will get the mess above if you add flaws with
mkpart -A (this unfortunately  re-writes the boot from /etc)

>I have spent a considerable amount of time looking at the "partitions" file
>that is built on the floppy by the program "disksetup" which is called in
>the "INSTALL" script.  I appears to be correct.  I have even mucked with it
>to try to move some things around (like the VTOC) to see if the second stage
>bootstrap would be any happier.  No luck though...

Unless you have a new disksetup, it does make a mistake, it puts the
VTOC on sector 17, the second stage loader wants it on the start of
the second track.

jack@turnkey.TCC.COM (Jack F. Vogel) (06/05/88)

In article <184@cbw1.UUCP> brian@cbw1.UMD.EDU (Brian Cuthie) writes:
>In article <4274@killer.UUCP> mikeh@killer.UUCP (Michael Hammond) writes:
>>
[ Stuff about not getting a boot prompt with new driver deleted ]
>
>AH !!  The problem, that you are facing, is that the RLL drive has more than
>17 sectors per track and the ROM BIOS doesn't know that.
>
>It seems that the First stage bootstrap depends on the ROM BIOS routines to
>read the partion table and then to read the Second stage bootstrap from the
>first track of the active partition. 
 
As far as I know Microport relys on the ROM not only during boot but during
actual operation as well, at least this was what I've heard.

[ Stuff about hacking and burning a new ROM deleted ]
 
This may not be happy news if you have already puchased an RLL controller
but for those of you who have not there is a much better solution than
custom burning the BIOS. Adaptec's RLL contoller, called ACB-2372 has its
own BIOS that it will map into the drive table area, thus eliminating the
need for fiddling with a rom burner. This ability is geared toward DOS users
( under SCO you don't really need it, we have it disabled ) but it sounds
as though it might be just the thing for uport users as well.

For those interested, we are running the 2372 controller with two Micropolis
drives, a 1335 and I believe a 1330, under SCO 2.2.1. We disable the onboard
bios and format with WD's 2.1 release format program (it does RLL and I think
even ESDI). Interleave is 1 - 1. Given the nature of SCO's hdinit program you
don't even need to worry about cmos, we just leave the old 17sec. entries in
place. The Core test reports a throughput of 759K bytes/sec, performance under
Xenix is great although I have no hard comparative data to present at the 
moment. I highly recommend this route as an economical alternative to going
to full ESDI.

If anyone out there is adventursome enough to give this hardware a test with
Microport and can report on the results I would be very interested to hear
your findings. Oh, by the way, the Adaptec line of controllers are available
through Hamilton-Avnet. Single quantity on the 2372 was $145.

						Best of luck,

-- 
Jack F. Vogel
Turnkey Computer Consultants, Costa Mesa, CA
UUCP: ...{nosc|uunet}!turnkey!jack 
Internet: jack@turnkey.TCC.COM

zeeff@b-tech.UUCP (Jon Zeeff) (06/06/88)

In article <211@turnkey.TCC.COM> jack@turnkey.TCC.COM (Jack F. Vogel) writes:
>In article <184@cbw1.UUCP> brian@cbw1.UMD.EDU (Brian Cuthie) writes:

>If anyone out there is adventursome enough to give this hardware a test with
>Microport and can report on the results I would be very interested to hear
>your findings. Oh, by the way, the Adaptec line of controllers are available
>through Hamilton-Avnet. Single quantity on the 2372 was $145.
>

If anyone gets the Adaptec RLL controller to work on uport '386 unix w/o
a new bios, please let us know.



-- 
Jon Zeeff           		Branch Technology,
uunet!umix!b-tech!zeeff  	zeeff%b-tech.uucp@umix.cc.umich.edu

rbradbur@oracle.UUCP (Robert Bradbury) (06/06/88)

I am running a Compaq 386/16 with a WD1007A-WAH controller attached to
a Miniscribe 9380 Drive (15 hds, 34 sec/trk, 1224 trks) with about 195 Mb
available to UNIX and 64 Mb (in 2 partitions) available to DOS.  I am
running UNIX 5.3 R2.2 with the new ESDI disk driver (beta release) and
have Merge 1.0 running under it.

... and believe me it was a S!$% load of work to get it working.  I think
I reloaded the system a total of 9 times from floppies.

My recomendations would be:

 - Get a good controller (like the WD1007).  It handles 1:1 interleave,
   has an on-board track cache, an on-board BIOS to format the disk, 
   setup alternate sectors (in the same track) from the manufacturers
   defect list or can scan the entire disk if necessary.  It increases
   disk I/O speed on my machine from something like 323Kb/sec to 793Kb/sec
   (using the Coretest utility).  I think it cost me $220 from my local
   Western Digital distributor.

 - Throw out the standard Microport INSTALL script.  It isn't going to
   configure it the way you want anyway.  The standard UNIX layout has
   the boot cylinder (with the VTOC & Alternate sectors), followed by DOS,
   followed by UNIX.  It makes much more sense if you have to assign
   alternate sectors (in UNIX) to have the UNIX partitions as close to
   the alternates as possible and stick the DOS partition(s) after UNIX.
   The best way to do this is to make a copy of the boot disk, setup the
   files /tmp/partitions, /tmp/fdisk.data and /tmp/mkfs.data on it the
   way you want your disk configured and then edit the install script
   to use them (instead of using disksetup).  The 3 key steps are:
      - use mkpart to initialize the boot cylinder (-i)
      - use fdisk to setup the partition table
      - use mkpart to setup the VTOC and and write /etc/boot to the 
        boot track on the root
   Then proceed with the mkfs's and copies as they are done in the
   install script.  It is easy if you are doing the configuration
   to a 2nd hard drive.  It is hard if you have to configure the boot
   floppy to do things right after you have reformatted your only
   hard disk.  You might want to add some files; cat, ls, mknod, ed
   to the standard boot floppy and fix /etc/inittab so you can boot
   the floppy in single user mode (with a shell).

 - MAKE SURE YOU HAVE EXTRA COPIES OF THE BOOT FLOPPY!!  If UNIX
   crashes or hangs when you are trying to setup the new hard disk
   it will more than likely trash your floppy.  Usually it "unformats"
   track 1 of the floopy (don't ask me why cus I don't know).

 - Don't try to use more than 1024 cylinders on the disk.  None of the
   software (UNIX, mkpart, fdisk, etc.) gives errors with larger cylinder
   numbers but I'm fairly sure that those cylinders end up overlapping
   lower ones.

 - Ignore the documentation Microport sends out with the beta release
   of the ESDI driver.  Most of the files listed are not in the link
   kit and one which is not listed (fd.o) but is on the disk will prevent 
   you from relinking with UNIX with Merge included.  You *MUST* use the
   new ESDI hd.o and the Merge link kit fd.o if you want to link UNIX
   with Merge.  (Microport doesn't think you can do this but it seems to
   work for me.)

 - Delete your old UNIX systems when you have the new system running.
   Booting an old system can scramble your file systems.

I'd advise anyone undertaking a reconfiguration/reinstall be fairly
adventursome and be willing to spend some time with this.  Though the
driver itself seems to be good the process of configuring the system
can be a nightmare.

-- 
Robert Bradbury
Oracle Corporation
(206) 784-9726                            hplabs!oracle!rbradbur