[comp.sys.ibm.pc] Problems with a WD1006SR2. Needs help!!$%&

cth_co@tekno.chalmers.se (CHRISTER OLSSON) (11/30/89)

I'm trying to format a harddisk with a new WD1006SR2 controllercard (1:1,
RLL) but the bios' adresses conflicts with a frame grabber-card who also use 
same adresses (C0000-CFFFF). 

The controller works well when the frame grabber is disabled. But we must
use the frame grabber and the software uses the above adresses so we can't
change the grabbers adresses.

I tried to disable the controllers bios but the computer won't booting at
the harddisk and we got only 17 sectors per track.

Can we use the controller without controller bios but with some external
drivers (from discmanager och speedstor) to get 26 sectors? Or must we
swap to a controller without bios and rll (WD1006S2 ?)

/Christer Olsson MedNet Gothenburg, Sweden, Europe
 cth_co@tekno.chalmers.se

tdinger@hiredgun.East.Sun.COM (Tom Dinger - Sun BOS SPA) (12/01/89)

In article <4220@tekno.chalmers.se> cth_co@tekno.chalmers.se (CHRISTER OLSSON) writes:
>I'm trying to format a harddisk with a new WD1006SR2 controllercard (1:1,
>RLL) but the bios' adresses conflicts with a frame grabber-card who also use 
>same adresses (C0000-CFFFF). 
>
>The controller works well when the frame grabber is disabled. But we must
>use the frame grabber and the software uses the above adresses so we can't
>change the grabbers adresses.
>
>I tried to disable the controllers bios but the computer won't booting at
>the harddisk and we got only 17 sectors per track.
>
>Can we use the controller without controller bios but with some external
>drivers (from discmanager och speedstor) to get 26 sectors? Or must we
>swap to a controller without bios and rll (WD1006S2 ?)
>
>/Christer Olsson MedNet Gothenburg, Sweden, Europe
> cth_co@tekno.chalmers.se

Well, it's about time I posted something useful to the 'net...

Summary: program new AT BIOS ROMS with the proper parameters for you hard disk;
         then set the CMOS drive type to that entry; after that, you can
         disable the Western Digital ROM on the Controller.

Long Presentation Follows...

Recently I configured two 386 systems with Western Digital controllers,
specifically, the WD1006V-SR1 and -SR2, with Seagate ST4144R's. These systems
were to run both DOS and UNIX, and for some reason I thought I would need to
run with the BIOSes on the Disk controllers disabled.  I discovered that
I can leave the BIOSes enabled, but not before I had *successfully* run
the controller with the BIOS disabled.

The fundamental problem to be solved: How does the system (the AT BIOS)
determine the configuration of the hard disk at boot time?

Normally, the AT BIOS (or 386 BIOS) uses the CMOS settings for the Drive
Type number for each hard disk, and indexes into a table of drive parameters
in the BIOS.  For "normal" BIOSes, every one of these entries is for 17
sectors per track, while RLL puts 26 sectors per track on the drive.

To solve this problem, these Western Digital RLL controllers have an on-board
ROM, which contains its OWN drive parameter table, and also can store the
drive geometry data somewhere on the drive itself, thus freeing you from
the limitations of the AT BIOS drive tables.  The WD BIOS also provides
low-level formatting, surface analysis, etc.  These particular controllers
also perform track buffering in the "hardware," which I took to mean that
the BIOS ROM was not necessary to get track buffering (I have not tried
to verify this, however).

I figured that if I could get the proper drive parameter table entry into
the motherboard BIOS (BIOS from now on), I could safely disable the
Controller BIOS (WD-BIOS from now on). The following is more or less what
I did:

1. I installed the WD board and drive, with WD-BIOS *enabled*.  I used the
   built-in WD-BIOS formatting routines to low-level format the hard
   disk and properly set the parameters, etc.

2. In the course of setting the drive parameters with the WD-BIOS, I recorded
   the "drive type #" used by the WD-BIOS; call this the WD-Type #.  Note
   that this is *not* what the WD-BIOS sets the CMOS type to; I believe it
   sets the CMOS to Type 1.

3. Now using DEBUG, I searched the WD-BIOS image (at CC00:0000) for the
   drive parameter tables it was using, to copy the table entry for the
   drive index I recorded in step 2 above.  I was able to find it because I
   knew the number of cylinders and heads; it turns out they store the drive
   parameters in the same format as the standard BIOS.

4. Next I made a copy of the standard BIOS ROM image on disk, and changed one
   of the drive table entries in it to correspond to the one I copied in
   step 3.  I also modified another ROM byte (I believe in the ROM date
   string) to make the modified BIOS ROM image checksum match the original.
   I then programmed two EPROMS (16-bit bus, odd and evem ROMs) with the
   new BIOS ROM image.  I also recorded the index in the table of the
   modified entry for use later.

Note: I did not install the new ROMs yet.

5. With the setup utility, I change the CMOS drive type number to the index of
   the BIOS drive table entry that I had modified in step 4.  After this,
   I powered down the system.

6. I rejumpered the WD controller to disable the WD-BIOS, and replaced the
   original motherboard BIOS ROMs with the new, modified versions.

7. I powered up the system. (Keep your fingers crossed).

At this point, if all went well (it took me two tries to get the new BIOS
ROMs correct), the motherboard BIOS should use the CMOS type # to get the
drive parameters from the modified drive table entry, and the hard disk
should be operational.

I, of course, have glossed over various "details," such as writing programs to
checksum a ROM image on disk, split it into odd and even byte inamges,
convert a ROM image into Intel HEX format to feed to my EPROM programmer, etc.

If you can't or don't want to program new ROMS:

	I believe Ontrak's Disk Manager will let you configure the hard disk
	with what they call "non-standard parameters," but I believe
	the first partition on the hard disk can still only have 17 sectors
	per track, thereby losing about 33% of the available space in that
	partition;  the other partitions will be fine.  The reason is that
	Disk Manager loads its hard disk configuration information *after*
	DOS has booted, too late for the first partition to use the correct
	parameters.

	I am not familiar with any other disk management products.

Some other time, I may discuss configuring a mixed DOS/UNIX system, but
not tonight.

Hope you find this information useful.

Tom Dinger           Consulting at:
TechnoLogics, Inc.      Sun Microsystems, Boston Development Center
Littleton, MA           PC Distributed Systems Group
(508)486-8500           (508)671-0521
                        Internet: tdinger@East.Sun.COM
			Bangpath:  ...!sun!suneast!hiredgun!tdinger
Tom Dinger	     consulting at:
TechnoLogics, Inc.        Sun Microsystems    Internet: tdinger@East.Sun.COM
(508)486-8500             (508)671-0521       UUCP: ...!sun!suneast!tdinger