Subject: CMD Technology PCI0649 RAID not working on NetBSD-1.52
To: None <port-i386@netbsd.org>
From: Alicia da Conceicao <alicia@cyberstation.ca>
List: port-i386
Date: 10/19/2001 09:58:18
Greetings:

I have a CMD Technology PCI0649 card, which is a PCI IDE RAID controller
that does RAID0 (striping), RAID1 (mirroring), and RAID0+1 (striping+
mirroring) with cheap IDE drives.

NetBSD-1.52 is able to properly recognize this card as a valid PCI IDE
controller, is able to detect the IDE drives attached to it, and can even
mount each of these drives without any errors!  :-)

However, when I used the BIOS level RAID configuration to create a RAID1
(mirroring) set with two 20GB IDE drives, NetBSD- 1.52 still detects the
two individual drives, but is unable to detect the combined RAID1 set,
even though I compiled the following two raid options into my 1.52 kernel.
==========================================================================  
pseudo-device  raid            4  # RAIDframe disk driver
options        RAID_AUTOCONFIG    # auto-configuration of RAID components
==========================================================================

Below is a screen capture of the CMD-PCI0649 BIOS RAID configuration
screen.  As you can see, "Set1" is the RAID1 (mirroring) set created by
combining the two 20GB IDE drives. 
==========================================================================
CSA-649U Ultra IDE Controller BIOS Version 2.3.00
Copyright (C) 1997-2001 CMD Technology, Inc.

Primary Channel:
Drive Number: 0
Drive Number: 1
Secondary Channel:
Drive Number: 2    QUANTUM FIREBALL LM         19595 MB
Drive Number: 3    ST320420A                   19458 MB
Set: 1  <2><3>     CMD Mirrored Set     <SM>   19457 MB

Press F1 to delete RAID set
Press F2 to create RAID set
Press F3 to create spare drive
Press F4 to resolve conflicts
Press <ESC> to exit RAID configuration utility  
==========================================================================

Here are the NetBSD-1.52 boot messages of the CMD-PCI0649 controller and
its IDE drives, taken from dmesg.
==========================================================================
pciide1 at pci0 dev 13 function 0: CMD Technology PCI0649 (rev. 0x02)
pciide1: bus-master DMA support present
pciide1: primary channel configured to native-PCI mode
pciide1: using irq 11 for native-PCI interrupt
pciide1: secondary channel configured to native-PCI mode
wd1 at pciide1 channel 1 drive 0: <QUANTUM FIREBALLP LM20.5>
wd1: drive supports 16-sector pio transfers, lba addressing
wd1: 19595 MB, 16383 cyl, 16 head, 63 sec, 512 bytes/sect x 40132503 sectors
wd1: 32-bit data port
wd1: drive supports PIO mode 4, DMA mode 2, Ultra-DMA mode 4
wd2 at pciide1 channel 1 drive 1: <ST320420A>
wd2: drive supports 16-sector pio transfers, lba addressing
wd2: 19458 MB, 16383 cyl, 16 head, 63 sec, 512 bytes/sect x 39851760 sectors
wd2: 32-bit data port
wd2: drive supports PIO mode 4, DMA mode 2, Ultra-DMA mode 4
wd1(pciide1:1:0): using PIO mode 4, Ultra-DMA mode 4 (using DMA data transfers)
wd2(pciide1:1:1): using PIO mode 4, Ultra-DMA mode 4 (using DMA data transfers)
Kernelized RAIDframe activated
==========================================================================
 
Any idea on why NetBSD's RAIDFRAME disk driver not detecting the
combined RAID1 set?  Any suggestions on what I can do to fix it?  Yes,
I know that I can use the CCD (Concatenated disk driver) in NetBSD to
do disk mirroring, but I would prefer to do it in hardware!
 
Thank you in advance.
 
Sincerely,
Alicia.
 
PS. Below I have attached a copy of the entire boot messages from dmesg:
==========================================================================
NetBSD 1.5.2 (DOLPHIN) #2: Thu Oct 18 20:05:02 EDT 2001
    rt@:/usr/src/sys/arch/i386/compile/DOLPHIN
cpu0: Intel Pentium II/Celeron (Deschutes) (686-class), 333.35 MHz
total memory = 255 MB
avail memory = 233 MB
using 3297 buffers containing 13188 KB of memory
BIOS32 rev. 0 found at 0xfd7b1
mainbus0 (root)
pci0 at mainbus0 bus 0: configuration mode 1
pci0: i/o space, memory space enabled
pchb0 at pci0 dev 0 function 0
pchb0: Intel 82443LX PCI AGP Controller (PAC) (rev. 0x03)
ppb0 at pci0 dev 1 function 0: Intel 82443LX AGP Interface (PAC) (rev. 0x03)
pci1 at ppb0 bus 1
pci1: i/o space, memory space enabled
vga1 at pci1 dev 0 function 0: Silicon Integrated System 6326 AGP VGA (rev. 0xc3)
wsdisplay0 at vga1: console (80x25, vt100 emulation)
wsdisplay0: screen 1-3 added (80x25, vt100 emulation)
pcib0 at pci0 dev 7 function 0
pcib0: Intel 82371AB PCI-to-ISA Bridge (PIIX4) (rev. 0x01)
pciide0 at pci0 dev 7 function 1: Intel 82371AB IDE controller (PIIX4) (rev. 0x01)
pciide0: bus-master DMA support present
pciide0: primary channel wired to compatibility mode
atapibus0 at pciide0 channel 0
cd0 at atapibus0 drive 1: <NEC                 CD-ROM DRIVE:28B, , 3.05> type 5 cdrom removable
cd0: 32-bit data port
cd0: drive supports PIO mode 4, DMA mode 2
wd0 at pciide0 channel 0 drive 0: <FUJITSU MPD3064AT>
wd0: drive supports 16-sector pio transfers, lba addressing
wd0: 6187 MB, 13410 cyl, 15 head, 63 sec, 512 bytes/sect x 12672450 sectors
wd0: 32-bit data port
wd0: drive supports PIO mode 4, DMA mode 2, Ultra-DMA mode 4
pciide0: primary channel interrupting at irq 14
wd0(pciide0:0:0): using PIO mode 4, Ultra-DMA mode 2 (using DMA data transfers)
cd0(pciide0:0:1): using PIO mode 4, DMA mode 2 (using DMA data transfers)
pciide0: secondary channel wired to compatibility mode
pciide0: secondary channel ignored (disabled)
uhci0 at pci0 dev 7 function 2: Intel 82371AB USB Host Controller (PIIX4) (rev. 0x01)
uhci0: interrupting at irq 9
usb0 at uhci0: USB revision 1.0
uhub0 at usb0
uhub0: Intel UHCI root hub, class 9/0, rev 1.00/1.00, addr 1
uhub0: 2 ports with 2 removable, self powered
Intel 82371AB Power Management Controller (PIIX4) (miscellaneous bridge, revision 0x01) at pci0 dev 7 fun
ction 3 not configured
pciide1 at pci0 dev 13 function 0: CMD Technology PCI0649 (rev. 0x02)
pciide1: bus-master DMA support present
pciide1: primary channel configured to native-PCI mode
pciide1: using irq 11 for native-PCI interrupt
pciide1: secondary channel configured to native-PCI mode
wd1 at pciide1 channel 1 drive 0: <QUANTUM FIREBALLP LM20.5>
wd1: drive supports 16-sector pio transfers, lba addressing
wd1: 19595 MB, 16383 cyl, 16 head, 63 sec, 512 bytes/sect x 40132503 sectors
wd1: 32-bit data port
wd1: drive supports PIO mode 4, DMA mode 2, Ultra-DMA mode 4
wd2 at pciide1 channel 1 drive 1: <ST320420A>
wd2: drive supports 16-sector pio transfers, lba addressing
wd2: 19458 MB, 16383 cyl, 16 head, 63 sec, 512 bytes/sect x 39851760 sectors
wd2: 32-bit data port
wd2: drive supports PIO mode 4, DMA mode 2, Ultra-DMA mode 4
wd1(pciide1:1:0): using PIO mode 4, Ultra-DMA mode 4 (using DMA data transfers)
wd2(pciide1:1:1): using PIO mode 4, Ultra-DMA mode 4 (using DMA data transfers)
fxp0 at pci0 dev 16 function 0: Intel i82557 Ethernet, rev 8
fxp0: interrupting at irq 9
fxp0: Ethernet address 00:90:27:60:e7:8c, 10/100 Mb/s
inphy0 at fxp0 phy 1: i82555 10/100 media interface, rev. 4
inphy0: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
isa0 at pcib0
com0 at isa0 port 0x3f8-0x3ff irq 4: ns16550a, working fifo
pckbc0 at isa0 port 0x60-0x64
pckbd0 at pckbc0 (kbd slot)
pckbc0: using irq 1 for kbd slot
wskbd0 at pckbd0: console keyboard, using wsdisplay0
lpt0 at isa0 port 0x378-0x37b irq 7
pcppi0 at isa0 port 0x61
sysbeep0 at pcppi0
isapnp0 at isa0 port 0x279: ISA Plug 'n Play device support
npx0 at isa0 port 0xf0-0xff: using exception 16
fdc0 at isa0 port 0x3f0-0x3f7 irq 6 drq 2
fd0 at fdc0 drive 0: 1.44MB, 80 cyl, 2 head, 18 sec
isapnp0: no ISA Plug 'n Play devices found
biomask ff6d netmask ff6d ttymask ffef
Kernelized RAIDframe activated
IPsec: Initialized Security Association Processing.
boot device: wd0
root on wd0a dumps on wd0b
root file system type: ffs
IP Filter: v3.4.9 initialized.  Default = pass all, Logging = enabled
wsdisplay0: screen 4 added (80x25, vt100 emulation)
wsmux1: connecting to wsdisplay0
==========================================================================