Subject: Promise RAID 0 & 1
To: None <tech-kern@netbsd.org>
From: Lucio De Re <lucio@proxima.alt.za>
List: tech-kern
Date: 02/03/2003 07:26:29
I have acquired a GigaByte server for a client, but discovered that
the RAID facility was not automatically supported by NetBSD 1.6.

I hacked the motherboard wiring and BIOS to use a single drive in
conventional operation but would prefer to supply the client with
the feature they paid for.  Being a 1U rackmount, there is no room
on the server for an additional, non-RAID drive, which makes things
a bit more complicated.  I seem to recall that I used the CD-ROM
IDE channel for one of the two disks, the other is unavailable.

In the long run, I expect to run the server off CD-ROM/ramdisk and
use RAID for data, if anyone is curious.

I have downloaded from

	http://www.gigabytenetworking.com/drivers/ft_freeBSD42.tgz

what seems to be an LKM for FreeBSD to at least help with the
on-board RAID (FastTrak or some such), but there's bound to be
someone considerably more familiar with FreeBSD and NetBSD who can
port this to NetBSD or at least guide me in doing so.  I have to
confess that I have no idea where to start (I did try compiling it
in a 1.5.2 context, I'm sure it won't be any better under 1.6 :-)

The on-board chip is the Promise PDC20265R, I suspect it serves IDE2
and 3.  The current arrangement of drives is reflected by the
following dmesg.boot entries:

	ppb0 at pci0 dev 1 function 0: VIA Technologies VT82C598
	 (Apollo MVP3) CPU-AGP Bridge (rev. 0x00)
	pci1 at ppb0 bus 1
	pci1: i/o space, memory space enabled
	[ ... ]
	pcib0 at pci0 dev 7 function 0
	pcib0: VIA Technologies VT82C686A (Apollo KX133) PCI-ISA
	 Bridge (rev. 0x40)
	pciide0 at pci0 dev 7 function 1: VIA Technologies VT82C686A
	 (Apollo KX133) ATA100 controller
	pciide0: bus-master DMA support present
	pciide0: primary channel configured to compatibility mode
	wd0 at pciide0 channel 0 drive 0: <Maxtor 6E040L0>
	wd0: drive supports 16-sector PIO transfers, LBA addressing
	wd0: 39205 MB, 16383 cyl, 16 head, 63 sec, 512 bytes/sect x
	 80293248 sectors
	wd0: 32-bit data port
	wd0: drive supports PIO mode 4, DMA mode 2, Ultra-DMA mode 6
	pciide0: primary channel interrupting at irq 14
	wd0(pciide0:0:0): using PIO mode 4, Ultra-DMA mode 5
	 (Ultra/100) (using DMA data transfers)
	pciide0: secondary channel configured to compatibility mode
	pciide0: disabling secondary channel (no drives)

(wrapped).  I can't check presently, but I think I disabled the RAID
subsystem in the BIOS altogether.

I'd like to commission the server as is, but if there's hope to
get it working properly, I may be able to continue experimenting,
but only in the next few days: the server is in Cape Town and I'll
be back in Johannesburg from Thursday coming - I may be able to
borrow a server, but I can't count on that.

All help welcome.  I note that the chipset is acknowledged in
/sys/dev/pci/pciide.c and /sys/dev/pci/pciide_pdc202xx_reg.h:
/*
$NetBSD: pciide_pdc202xx_reg.h,v 1.7 2002/04/23 20:41:18 bouyer Exp $
*/
(thanks, Manuel!).

but at first glance it does not seem recognised by the install kernel.
Again, it's a bit of a mission to check this now, but if it's useful,
I can do it.

++L