Date: Thu, 21 Jan 1999 23:01:29 +1100 From: David Dawes <dawes@rf900.physics.usyd.edu.au> To: current@FreeBSD.ORG Subject: Promise FastTrack PCI IDE controller Message-ID: <19990121230129.D5377@rf900.physics.usyd.edu.au>
next in thread | raw e-mail | index | archive | help
I've been playing with a Promise FastTrack RAID (IDE) controller with 3.0-current as of yesterday. Although it is recognised in the PCI bus probe as a "Promise Ultra/33" (it has the same vendor/chip ID as the non-RAID card), the probes in i386/isa/wd.c fail. I added some debugging printfs to the code, and have found that wdreset() is failing. By changing the code to ignore that failure, it gets further, and correctly identifies the attached disks. I can even access the disks sufficiently to read the partition table with fdisk (but with timeouts). I've included some information from a verbose boot, and the debugging printfs I added. I don't have any programming docs for this hardware, and I don't know much about IDE controllers at this level. If anyone has any suggestions of where I might look for the problems, they'd be most welcome. FWIW, the IDE driver in Linux (2.0.35) handles the card OK. FreeBSD 3.0-CURRENT #11: Thu Jan 21 17:28:17 EST 1999 ... ide_pci1: <Promise Ultra/33 IDE controller> rev 0x01 int a irq 11 on pci0.18.0 ide_pci1: adding drives to controller 2: 4 5 using shared irq11. 6 7 promise_status: port0: 0xeff0, port0_alt: 0xefe4, port1: 0xefa8, port1_alt: 0xefe0 promise_status: dma control blk address: 0xef80, int: 1, irq: 11 drivebits0-1: 4249f4<Prefetch,Iordy,Errdy,Sync> drivetiming0: pa: 0x4, pb: 0x9, mb: 0x2, mc: 0x2 drivetiming1: pa: 0x4, pb: 0x13, mb: 0x7, mc: 0xf drivebits2-3: 4249f4<Prefetch,Iordy,Errdy,Sync> drivetiming2: pa: 0x4, pb: 0x9, mb: 0x2, mc: 0x2 drivetiming3: pa: 0x4, pb: 0x13, mb: 0x7, mc: 0xf promise_status: port0: 0xeff0, port0_alt: 0xefe4, port1: 0xefa8, port1_alt: 0xefe0 promise_status: dma control blk address: 0xef80, int: 1, irq: 11 drivebits0-1: 4249f4<Prefetch,Iordy,Errdy,Sync> drivetiming0: pa: 0x4, pb: 0x9, mb: 0x2, mc: 0x2 drivetiming1: pa: 0x4, pb: 0x13, mb: 0x7, mc: 0xf drivebits2-3: 4249f4<Prefetch,Iordy,Errdy,Sync> drivetiming2: pa: 0x4, pb: 0x9, mb: 0x2, mc: 0x2 drivetiming3: pa: 0x4, pb: 0x13, mb: 0x7, mc: 0xf ide_pci: busmaster 0 status: 04 from port: 0000ef82 promise_status: port0: 0xeff0, port0_alt: 0xefe4, port1: 0xefa8, port1_alt: 0xefe0 promise_status: dma control blk address: 0xef80, int: 1, irq: 11 drivebits0-1: 4249f4<Prefetch,Iordy,Errdy,Sync> drivetiming0: pa: 0x4, pb: 0x9, mb: 0x2, mc: 0x2 drivetiming1: pa: 0x4, pb: 0x13, mb: 0x7, mc: 0xf drivebits2-3: 4249f4<Prefetch,Iordy,Errdy,Sync> drivetiming2: pa: 0x4, pb: 0x9, mb: 0x2, mc: 0x2 drivetiming3: pa: 0x4, pb: 0x13, mb: 0x7, mc: 0xf promise_status: port0: 0xeff0, port0_alt: 0xefe4, port1: 0xefa8, port1_alt: 0xefe0 promise_status: dma control blk address: 0xef80, int: 1, irq: 11 drivebits0-1: 4249f4<Prefetch,Iordy,Errdy,Sync> drivetiming0: pa: 0x4, pb: 0x9, mb: 0x2, mc: 0x2 drivetiming1: pa: 0x4, pb: 0x13, mb: 0x7, mc: 0xf drivebits2-3: 4249f4<Prefetch,Iordy,Errdy,Sync> drivetiming2: pa: 0x4, pb: 0x9, mb: 0x2, mc: 0x2 drivetiming3: pa: 0x4, pb: 0x13, mb: 0x7, mc: 0xf ide_pci: busmaster 1 status: 04 from port: 0000ef8a ... wdc2: wdd_candma is set for ide_pci1 wdc2: I/O to 0xeff0 does work wdc2: reset failed wdc2: wd_cyl for master is 63397 (0xf7a5) wdc2: wd_cyl for slave is 63397 (0xf7a5) wdc2: second reset failed wdc2: controller only command OK wdc2 at 0xeff0-0xeff7 flags 0xa0ffa0ff on isa ide_pci: generic_dmainit eff0:0: warning, IDE controller timing not set wd4: wdsetmode() setting transfer mode to 22 wd(2,0): wdgetctlr: gc 45a cyl 16383 trk 16 sec 63 type 3 sz 924 model IBM-DTTA-351680 wdc2: unit 0 (wd4): <IBM-DTTA-351680>, DMA, 32-bit, multi-block-16 wd4: 16124MB (33022080 sectors), 32760 cyls, 16 heads, 63 S/T, 512 B/S wd4: ATA INQUIRE valid = 0007, dmamword = 0007, apio = 0003, udma = 0207 wdc3: wdd_candma is set for ide_pci1 wdc3: I/O to 0xefa8 does work wdc3: reset failed wdc3: wd_cyl for master is 63397 (0xf7a5) wdc3: wd_cyl for slave is 63397 (0xf7a5) wdc3: second reset failed wdc3: controller only command OK wdc3 at 0xefa8-0xefaf flags 0xa0ffa0ff on isa ide_pci: generic_dmainit efa8:0: warning, IDE controller timing not set wd6: wdsetmode() setting transfer mode to 22 wd(3,0): wdgetctlr: gc 45a cyl 16383 trk 16 sec 63 type 3 sz 924 model IBM-DTTA-351680 wdc3: unit 0 (wd6): <IBM-DTTA-351680>, DMA, 32-bit, multi-block-16 wd6: 16124MB (33022080 sectors), 32760 cyls, 16 heads, 63 S/T, 512 B/S wd6: ATA INQUIRE valid = 0007, dmamword = 0007, apio = 0003, udma = 0207 at this point, run 'fdisk wd4' wd(2,0): wdsetctlr: C 32760 H 16 S 63 wd4: interrupt timeout (status 50<rdy,seekdone> error 0) wd4: wdtimeout() DMA status 1<active> wd4: wdunwedge failed (status 50<rdy,seekdone> error 0) wd4s1: type 0x6, start 63, end = 96389, size 96327 : OK wd(2,0): wdsetctlr: C 32760 H 16 S 63 wd4: interrupt timeout (status 50<rdy,seekdone> error 0) wd4: wdtimeout() DMA status 1<active> wd4: wdunwedge failed (status 50<rdy,seekdone> error 0) wd4: interrupt timeout (status 50<rdy,seekdone> error 0) wd4: wdtimeout() DMA status 1<active> wd4: wdunwedge failed (status 50<rdy,seekdone> error 0) at this point, run 'fdisk wd6' wd(3,0): wdsetctlr: C 32760 H 16 S 63 wd6: DMA failure, DMA status 0 wd6s1: type 0x6, start 63, end = 96389, size 96327 : OK wd(3,0): wdsetctlr: C 32760 H 16 S 63 wd6: DMA failure, DMA status 0 wd6: interrupt timeout (status 50<rdy,seekdone> error 0) wd6: wdtimeout() DMA status 1<active> wd6: wdunwedge failed (status 58<rdy,seekdone,drq> error 0) David To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-current" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?19990121230129.D5377>