Subject: Experimental support for ATA "RAID" volumes
To: None <current-users@netbsd.org>
From: Jason R Thorpe <thorpej@wasabisystems.com>
List: current-users
Date: 01/27/2003 10:53:41
--PNTmBPCT7hxwcZjr
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline

Folks...

I just checked in some experimental support for RAID volumes found
on ATA "RAID" controllers; not the smart controllers (like e.g. Adaptec
and 3Ware), but the dumb ones ... in this particular case, Promise.

These controllers are just IDE controllers with a BIOS that can configure
RAID volumes, write config blocks to the disks, and do I/O to the volumes,
for the purpose of booting.  The OS has to implement the RAID in software,
using the configuration data that is written to the disks by the BIOS.

The functionality is pretty basic at this point, but it works well
enough for me to use the RAID0 volume on this new Intel server I have
(which has a Win2k Advanced Server installation that I need to preserve).

Attached are boot messages from my machine (a dual 2.4GHz Xeon w/ HT,
though I am only using a uniprocessor kernel on it at the moment); it
is using an NFS root right now, since I was using PXE to load kernels
while working on the ATA RAID code.

Enjoy!

-- 
        -- Jason R. Thorpe <thorpej@wasabisystems.com>

--PNTmBPCT7hxwcZjr
Content-Type: text/plain; charset=us-ascii
Content-Disposition: attachment; filename=ataraid-dmesg

NetBSD 1.6M (GENERIC) #47: Mon Jan 27 10:40:43 PST 2003
    thorpej@yeah-baby.shagadelic.org:/u1/netbsd/src/sys/arch/i386/compile/GENERIC
total memory = 511 MB
avail memory = 467 MB
using 6144 buffers containing 26292 KB of memory
BIOS32 rev. 0 found at 0xfdb64
mainbus0 (root)
cpu0 at mainbus0: (uniprocessor)
cpu0: Intel Pentium 4 (686-class), 2393.07 MHz, id 0xf27
cpu0: features bfebfbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR>
cpu0: features bfebfbff<PGE,MCA,CMOV,PAT,PSE36,CFLUSH,DS,ACPI,MMX>
cpu0: features bfebfbff<FXSR,SSE,SSE2,SS,HTT,TM,SBF>
cpu0: I-cache 12K uOp cache 8-way, D-cache 8 KB 64b/line 4-way
cpu0: L2 cache 512 KB 64b/line 8-way
cpu0: ITLB 4K/4M: 64 entries
cpu0: DTLB 4K/4M: 64 entries
cpu0: 16 page colors
pci0 at mainbus0 bus 0: configuration mode 1
pci0: i/o space, memory space enabled, rd/line, rd/mult, wr/inv ok
pchb0 at pci0 dev 0 function 0
pchb0: Intel E7500 MCH Host (rev. 0x03)
Intel E7500 MCH DRAM Controller (undefined subclass 0x00, revision 0x03) at pci0 dev 0 function 1 not configured
ppb0 at pci0 dev 3 function 0: Intel E7500 MCH HI_C vppb 1 (rev. 0x03)
pci1 at ppb0 bus 2
pci1: i/o space, memory space enabled
Intel 82870P2 P64H2 IOxAPIC (interrupt system, interface 0x20, revision 0x03) at pci1 dev 28 function 0 not configured
ppb1 at pci1 dev 29 function 0: Intel 82870P2 P64H2 PCI-to-PCI Bridge (rev. 0x03)
pci2 at ppb1 bus 4
pci2: memory space enabled
Intel 82870P2 P64H2 IOxAPIC (interrupt system, interface 0x20, revision 0x03) at pci1 dev 30 function 0 not configured
ppb2 at pci1 dev 31 function 0: Intel 82870P2 P64H2 PCI-to-PCI Bridge (rev. 0x03)
pci3 at ppb2 bus 3
pci3: i/o space, memory space enabled
wm0 at pci3 dev 7 function 0: Intel i82546EB 1000BASE-T Ethernet, rev. 1
wm0: interrupting at irq 5
wm0: Ethernet address 00:07:e9:03:da:90
makphy0 at wm0 phy 1: Marvell 88E1011 Gigabit PHY, rev. 3
makphy0: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, 1000baseT, 1000baseT-FDX, auto
wm1 at pci3 dev 7 function 1: Intel i82546EB 1000BASE-T Ethernet, rev. 1
wm1: interrupting at irq 5
wm1: Ethernet address 00:07:e9:03:da:91
makphy1 at wm1 phy 1: Marvell 88E1011 Gigabit PHY, rev. 3
makphy1: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, 1000baseT, 1000baseT-FDX, auto
Intel E7500 MCH HI_C vppb 2 (undefined subclass 0x00, revision 0x03) at pci0 dev 3 function 1 not configured
uhci0 at pci0 dev 29 function 0: Intel 82801CA/CAM USB Controller (rev. 0x02)
uhci0: interrupting at irq 5
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
uhci1 at pci0 dev 29 function 1: Intel 82801CA/CAM USB Controller (rev. 0x02)
uhci1: interrupting at irq 10
usb1 at uhci1: USB revision 1.0
uhub1 at usb1
uhub1: Intel UHCI root hub, class 9/0, rev 1.00/1.00, addr 1
uhub1: 2 ports with 2 removable, self powered
ppb3 at pci0 dev 30 function 0: Intel 82801BA Hub-to-PCI Bridge (rev. 0x42)
pci4 at ppb3 bus 1
pci4: i/o space, memory space enabled
pciide0 at pci4 dev 2 function 0: Promise Fasttrak133 Lite Bus Master IDE Accelerator (rev. 0x01)
pciide0: bus-master DMA support present
pciide0: primary channel configured to native-PCI mode
pciide0: using irq 9 for native-PCI interrupt
wd0 at pciide0 channel 0 drive 0: <SAMSUNG SP8004H>
wd0: drive supports 16-sector PIO transfers, LBA addressing
wd0: 76351 MB, 16383 cyl, 16 head, 63 sec, 512 bytes/sect x 156368016 sectors
wd0: 32-bit data port
wd0: drive supports PIO mode 4, DMA mode 2, Ultra-DMA mode 5 (Ultra/100)
wd0(pciide0:0:0): using PIO mode 4, Ultra-DMA mode 5 (Ultra/100) (using DMA data transfers)
pciide0: secondary channel configured to native-PCI mode
wd1 at pciide0 channel 1 drive 0: <SAMSUNG SP8004H>
wd1: drive supports 16-sector PIO transfers, LBA addressing
wd1: 76351 MB, 16383 cyl, 16 head, 63 sec, 512 bytes/sect x 156368016 sectors
wd1: 32-bit data port
wd1: drive supports PIO mode 4, DMA mode 2, Ultra-DMA mode 5 (Ultra/100)
wd1(pciide0:1:0): using PIO mode 4, Ultra-DMA mode 5 (Ultra/100) (using DMA data transfers)
vga1 at pci4 dev 12 function 0: ATI Technologies Rage XL (rev. 0x27)
wsdisplay0 at vga1 kbdmux 1: console (80x25, vt100 emulation)
wsmux1: connecting to wsdisplay0
pcib0 at pci0 dev 31 function 0
pcib0: Intel 82801CA LPC Interface (rev. 0x02)
pciide1 at pci0 dev 31 function 1: Intel 82801CA IDE Controller (rev. 0x02)
pciide1: bus-master DMA support present
pciide1: primary channel wired to compatibility mode
pciide1: disabling primary channel (no drives)
pciide1: secondary channel wired to compatibility mode
atapibus0 at pciide1 channel 1: 2 targets
cd0 at atapibus0 drive 0: <SAMSUNG CD-ROM SN-124, , QM15> cdrom removable
cd0: 32-bit data port
cd0: drive supports PIO mode 4, DMA mode 2, Ultra-DMA mode 2 (Ultra/33)
pciide1: secondary channel interrupting at irq 15
cd0(pciide1:1:0): using PIO mode 4, Ultra-DMA mode 2 (Ultra/33) (using DMA data transfers)
Intel 82801CA/CAM SMBus Controller (SMBus serial bus, revision 0x02) at pci0 dev 31 function 3 not configured
isa0 at pcib0
com0 at isa0 port 0x3f8-0x3ff irq 4: ns16550a, working fifo
com1 at isa0 port 0x2f8-0x2ff irq 3: 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
pcppi0 at isa0 port 0x61
midi0 at pcppi0: PC speaker
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
wd0: no disk label
wd1: no disk label
Kernelized RAIDframe activated
ataraid0: found 1 RAID volume
ld0 at ataraid0 vendtype 0 unit 0: Promise ATA RAID0 array
ld0: 149 GB, 19466 cyl, 255 head, 63 sec, 512 bytes/sect x 312735744 sectors
ld0: no disk label
boot device: wm0
root on wm0
nfs_boot: trying DHCP/BOOTP
nfs_boot: DHCP next-server: 208.176.2.162
nfs_boot: my_name=dhcp1.shagadelic.org
nfs_boot: my_domain=shagadelic.org
nfs_boot: my_addr=208.176.2.174
nfs_boot: my_mask=255.255.255.240
nfs_boot: gateway=208.176.2.161
root on 208.176.2.162:/u1/diskless/ataraid
root file system type: nfs

--PNTmBPCT7hxwcZjr--