Subject: Re: Promise SATA300 TX4 controller
To: Mark Randelhoff <markr@cat.co.za>
From: Brian Buhrow <buhrow@lothlorien.nfbcal.org>
List: port-i386
Date: 05/15/2006 09:07:03
	Hello Mark.  The easiest way, I think, to resolve your problem, at
least, initially, is to modify your /etc/fstab so that root and swap are
explicitly mounted from /dev/wd1a and /dev/wd1b respectively.  Then, when
you have a functional system, rebuild your kernel with a new config line
which looks something like:
wd0	at atabus4 drive 0 flags 0x0000

Put it just above the wd* line in your kernel config file.

This will force the drive attached to the mother board to become wd0, and
you can then put your /etc/fstab back to using wd0.

	In addition to this change when you build your kernel, you may want to
apply the patches in kern/33445, which are fixes to the promise SATA driver
to make it more stable under load.

Good luck.
-Brian
On May 15,  4:08pm, Mark Randelhoff wrote:
} Subject: Promise SATA300 TX4 controller
} Hi
} 
} I have an interesting problem with a promise SATA controller on a DFI 
} G7V600-B motherboard running netbsd - current.
} 
} I have one drive connected to the motherboard sata controller and one 
} to the promise sata controller.
} On boot up the BIOS is configured to boot from the primary 
} motherboard drive - I would assume wd0.
} 
} The boot process starts ok - booting off the drive on the 
} motherboard, but it seems that once the promise controller is 
} registered the primary drive on the promise controller seems to 
} become mapped as the boot drive. Please see the messages below.
} 
} The boot process stalls with the kernel looking for files on the 
} drive attached to the promise card - whereas the files are actually 
} on the primary drive on the motherboard - where the root file system is.
} 
} What is the best way to resolve this ?
} 
} Kind regards
} Mark
} 
} Copyright (c) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006
}      The NetBSD Foundation, Inc.  All rights reserved.
} Copyright (c) 1982, 1986, 1989, 1991, 1993
}      The Regents of the University of California.  All rights reserved.
} 
} NetBSD 3.99.19 (GENERIC) #2: Wed May 10 14:50:45 SAST 2006
}        root@SQLSlave:/usr/obj/sys/arch/i386/compile/GENERIC
} total memory = 503 MB
} avail memory = 486 MB
} BIOS32 rev. 0 found at 0xfb010
} mainbus0 (root)
} cpu0 at mainbus0: (uniprocessor)
} cpu0: Intel (686-class), 3192.19 MHz, id 0xf43
} 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: features2 649d<SSE3,MONITOR,DS-CPL,EST,CID,xTPR>
} cpu0: features3 20100000<EM64T>
} cpu0: "Intel(R) Pentium(R) 4 CPU 3.20GHz"
} cpu0: I-cache 12K uOp cache 8-way
} cpu0: L2 cache 2 MB 64B/line 8-way
} cpu0: ITLB 4K/4M: 64 entries
} cpu0: DTLB 4K/4M: 64 entries
} cpu0: enabling thermal monitor 1 ... enabled.
} cpu0: Enhanced SpeedStep disabled by BIOS
} cpu0: 64 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 82915P/G/GL Host (rev. 0x0e)
} agp0 at pchb0: detected 7932k stolen memory
} agp0: aperture at 0xd0000000, size 0x10000000
} vga1 at pci0 dev 2 function 0: Intel 82915G/GL Integrated Graphics 
} Device (rev. 0x0e)
} wsdisplay0 at vga1 kbdmux 1: console (80x25, vt100 emulation)
} wsmux1: connecting to wsdisplay0
} ppb0 at pci0 dev 28 function 0: Intel 82801FB/FR PCI Express Port #0 
} (rev. 0x04)
} pci1 at ppb0 bus 1
} pci1: i/o space, memory space enabled, rd/line, wr/inv ok
} ppb1 at pci0 dev 28 function 1: Intel 82801FB/FR PCI Express Port #1 
} (rev. 0x04)
} pci2 at ppb1 bus 2
} pci2: i/o space, memory space enabled, rd/line, wr/inv ok
} skc0 at pci2 dev 0 function 0: irq 5
} skc0: interrupt moderation is 0 us
} skc0: Marvell Yukon-2 EC rev. A3(0x2)
} sk0 at skc0 port A: Ethernet address 00:01:29:17:78:f7
} makphy0 at sk0 phy 0: Marvell 88E1111 Gigabit PHY, rev. 2
} makphy0: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, 1000baseT, 
} 1000baseT-FDX, auto
} uhci0 at pci0 dev 29 function 0: Intel 82801FB/FR USB UHCI Controller 
} (rev. 0x04)
} uhci0: interrupting at irq 11
} 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 82801FB/FR USB UHCI Controller 
} (rev. 0x04)
} uhci1: interrupting at irq 11
} 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
} uhci2 at pci0 dev 29 function 2: Intel 82801FB/FR USB UHCI Controller 
} (rev. 0x04)
} uhci2: interrupting at irq 10
} usb2 at uhci2: USB revision 1.0
} uhub2 at usb2
} uhub2: Intel UHCI root hub, class 9/0, rev 1.00/1.00, addr 1
} uhub2: 2 ports with 2 removable, self powered
} uhci3 at pci0 dev 29 function 3: Intel 82801FB/FR USB UHCI Controller 
} (rev. 0x04)
} uhci3: interrupting at irq 9
} usb3 at uhci3: USB revision 1.0
} uhub3 at usb3
} uhub3: Intel UHCI root hub, class 9/0, rev 1.00/1.00, addr 1
} uhub3: 2 ports with 2 removable, self powered
} ehci0 at pci0 dev 29 function 7: Intel 82801FB/FR USB EHCI Controller 
} (rev. 0x04)
} ehci0: interrupting at irq 11
} ehci0: BIOS has given up ownership
} ehci0: EHCI version 1.0
} ehci0: companion controllers, 2 ports each: uhci0 uhci1 uhci2 uhci3
} usb4 at ehci0: USB revision 2.0
} uhub4 at usb4
} uhub4: Intel EHCI root hub, class 9/0, rev 2.00/1.00, addr 1
} uhub4: 8 ports with 8 removable, self powered
} ppb2 at pci0 dev 30 function 0: Intel 82801BA Hub-PCI Bridge (rev. 0xd4)
} pci3 at ppb2 bus 3
} pci3: i/o space, memory space enabled
} pdcsata0 at pci3 dev 12 function 0
} pdcsata0: Promise PDC40718 SATA300 controller (rev. 0x02)
} pdcsata0: interrupting at irq 11
} pdcsata0: bus-master DMA support present
} atabus0 at pdcsata0 channel 0
} atabus1 at pdcsata0 channel 1
} atabus2 at pdcsata0 channel 2
} atabus3 at pdcsata0 channel 3
} wm0 at pci3 dev 13 function 0: Intel i82541PI 1000BASE-T Ethernet, rev. 5
} wm0: interrupting at irq 10
} wm0: 32-bit 33MHz PCI bus
} wm0: 64 word (6 address bits) MicroWire EEPROM
} wm0: Ethernet address 00:0e:0c:b2:cb:b8
} igphy0 at wm0 phy 1: Intel IGP01E1000 Gigabit PHY, rev. 0
} igphy0: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, 1000baseT, 
} 1000baseT-FDX, auto
} Altera product 0x0002 (undefined subclass 0x00, revision 0x03) at 
} pci3 dev 15 function 0 not configured
} auich0 at pci0 dev 30 function 2: i82801FB (ICH6) AC-97 Audio
} auich0: interrupting at irq 5
} auich0: ac97: Avance Logic ALC655 codec; no 3D stereo
} auich0: ac97: ext id 9c4<AC97_23,LDAC,SDAC,CDAC,SPDIF>
} pcib0 at pci0 dev 31 function 0
} pcib0: Intel 82801FB LPC Interface Bridge (rev. 0x04)
} piixide0 at pci0 dev 31 function 2
} piixide0: Intel 82801FB Serial ATA/Raid Controller (rev. 0x04)
} piixide0: bus-master DMA support present
} piixide0: primary channel configured to compatibility mode
} piixide0: primary channel interrupting at irq 14
} atabus4 at piixide0 channel 0
} piixide0: secondary channel configured to compatibility mode
} piixide0: secondary channel interrupting at irq 15
} atabus5 at piixide0 channel 1
} Intel 82801FB/FR SMBus Controller (SMBus serial bus, revision 0x04) 
} at pci0 dev 31 function 3 not configured
} isa0 at pcib0
} lpt0 at isa0 port 0x378-0x37b irq 7
} 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
} pms0 at pckbc0 (aux slot)
} pckbc0: using irq 12 for aux slot
} wsmouse0 at pms0 mux 0
} attimer0 at isa0 port 0x40-0x43: AT Timer
} 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
} npx0: using exception 16
} fdc0 at isa0 port 0x3f0-0x3f7 irq 6 drq 2
} pcppi0: attached to attimer0
} isapnp0: no ISA Plug 'n Play devices found
} audio0 at auich0: full duplex, independent
} Kernelized RAIDframe activated
} wd0 at atabus3 drive 0: <WDC WD2500JD-00HBC0>
} wd0: drive supports 16-sector PIO transfers, LBA48 addressing
} wd0: 232 GB, 484521 cyl, 16 head, 63 sec, 512 bytes/sect x 488397168 sectors
} wd0: drive supports PIO mode 4, DMA mode 2, Ultra-DMA mode 6 (Ultra/133)
} wd0(pdcsata0:3:0): using PIO mode 4, Ultra-DMA mode 6 (Ultra/133) (using DMA)
} wd1 at atabus4 drive 0: <WDC WD2000JD-00HBB0>
} wd1: drive supports 16-sector PIO transfers, LBA48 addressing
} wd1: 186 GB, 387621 cyl, 16 head, 63 sec, 512 bytes/sect x 390721968 sectors
} wd1: 32-bit data port
} wd1: drive supports PIO mode 4, DMA mode 2, Ultra-DMA mode 6 (Ultra/133)
} wd1(piixide0:0:0): using PIO mode 4, Ultra-DMA mode 6 (Ultra/133) (using DMA)
} boot device: wd1
} root on wd1a dumps on wd1b
} root file system type: ffs
} /dev/wd1a: file system not clean (fs_clean=4); please fsck(8)
} /dev/wd1a: lost blocks 0 files 0
} /dev/wd1e: file system not clean (fs_clean=4); please fsck(8)
} /dev/wd1e: lost blocks 0 files 0
} 
>-- End of excerpt from Mark Randelhoff