Subject: Re: New NCR driver
To: Manuel Bouyer <bouyer@antioche.lip6.fr>
From: Jeff Rizzo <riz@boogers.sf.ca.us>
List: current-users
Date: 04/21/2000 18:15:11
On Fri, Apr 21, 2000 at 08:08:43PM +0200, Manuel Bouyer wrote:
> Hi,
> I just commited a new driver for the ncr53c8xx SCSI controller, called
> 'siop' (the name is still being discussed and may change in future; but
> I wanted to make this available).
> For now it handle the whole 8xx family (I hope:), it should also be
> able to handle the 720 and 770. In the near future (as soon as this one is
> done) I'll write another driver to take avantage of the extra features of the
> newer chips (825, 875, 895).
> 
> It only does basic disconnect/reselect (targets are allowed to disconnect,
> but the driver serialise commands anyway). No sync or wide negotiation.
> I tested it on i386 with 810a, 875 and 895 boards with good results
> (i.e. didn't crash, and didn't corrupt filesystems :).
> On the alpha it's not quite rigth: It didn't detect my drive on target
> 0 but found it on target 1 to 15. However I've been able to talk to the
> nonexistent drive on target 1 just fine :)
> One improvement over the old ncr driver is that I've been able to
> plug out and back in the hot-plug drive of my ds20 without hanging the
> bus, RaidFrame detected the drive failed and keept operating as it should.
> I've been able to talk to the drive fine when I pluged it back in
> (after one or 2 bus reset issued by the driver).
> 
> More to come, stay tuned :)
> 
> Ops, forgot the standar disclaimer: USE AT YOUR OWN RISK
> I'm not responsible for lost filesystems at this time :)

One additional datapoint:  it seems to work (certainly better than the ncr
driver!) on my Tyan (i386) motherboard with 53C896:

NetBSD 1.4X (GENERIC-TEST) #1: Fri Apr 21 18:00:56 PDT 2000
    riz@ipv6.lab.equinix.com:/scratch/src/sys/arch/i386/compile/GENERIC-TEST
cpu0: family 6 model 8 step 1                                               
cpu0: Intel Pentium III (E) (686-class)
total memory = 255 MB                  
avail memory = 232 MB
using 3297 buffers containing 13188 KB of memory
BIOS32 rev. 0 found at 0xfdb50                  
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 product 0x71a0 (rev. 0x00)
ppb0 at pci0 dev 1 function 0: Intel product 0x71a1 (rev. 0x00)
pci1 at ppb0 bus 1                                             
pci1: i/o space, memory space enabled
pcib0 at pci0 dev 7 function 0       
pcib0: Intel 82371AB PCI-to-ISA Bridge (PIIX4) (rev. 0x02)
pciide0 at pci0 dev 7 function 1: Intel 82371AB IDE controller (PIIX4)
pciide0: bus-master DMA support present                               
pciide0: primary channel wired to compatibility mode
atapibus0 at pciide0 channel 0                      
cd0 at atapibus0 drive 0: <CD-540E, , 1.0A> type 5 cdrom removable
cd0: 32-bit data port                                             
cd0: drive supports PIO mode 4, DMA mode 2, Ultra-DMA mode 2
pciide0: primary channel interrupting at irq 14             
cd0(pciide0:0:0): using PIO mode 4, Ultra-DMA mode 2 (using DMA data transfers)
pciide0: secondary channel wired to compatibility mode                         
pciide0: disabling secondary channel (no drives)      
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               
uhub0: port 1 power on failed, -106          
uhub0: port 2 power on failed, -106
Intel 82371AB Power Management Controller (PIIX4) (miscellaneous bridge, revision 0x02) at pci0 dev 7 function 3 not configured
siop0 at pci0 dev 11 function 0: Symbios Logic 53c896 (ultra2-wide scsi)
siop0: using irq 5 for native-PCI interrupt                             
tables[0]: out=0x6001 in=0x6000 status=0x6002
tables[1]: out=0x60b5 in=0x60b4 status=0x60b6
tables[2]: out=0x6169 in=0x6168 status=0x616a
tables[3]: out=0x621d in=0x621c status=0x621e
tables[4]: out=0x62d1 in=0x62d0 status=0x62d2
tables[5]: out=0x6385 in=0x6384 status=0x6386
tables[6]: out=0x6439 in=0x6438 status=0x643a
tables[7]: out=0x64ed in=0x64ec status=0x64ee
tables[8]: out=0x65a1 in=0x65a0 status=0x65a2
tables[9]: out=0x6655 in=0x6654 status=0x6656
scsibus0 at siop0: 16 targets, 8 luns per target
siop1 at pci0 dev 11 function 1: Symbios Logic 53c896 (ultra2-wide scsi)
siop1: using irq 11 for native-PCI interrupt                            
tables[0]: out=0x8001 in=0x8000 status=0x8002
tables[1]: out=0x80b5 in=0x80b4 status=0x80b6
tables[2]: out=0x8169 in=0x8168 status=0x816a
tables[3]: out=0x821d in=0x821c status=0x821e
tables[4]: out=0x82d1 in=0x82d0 status=0x82d2
tables[5]: out=0x8385 in=0x8384 status=0x8386
tables[6]: out=0x8439 in=0x8438 status=0x843a
tables[7]: out=0x84ed in=0x84ec status=0x84ee
tables[8]: out=0x85a1 in=0x85a0 status=0x85a2
tables[9]: out=0x8655 in=0x8654 status=0x8656
scsibus1 at siop1: 16 targets, 8 luns per target
eap0 at pci0 dev 12 function 0: Ensoniq AudioPCI 97 (rev. 0x08)
eap0: interrupting at irq 11                                   
eap0: Cirrus Logic CS4297 codec; headphone, 18 bit DAC, 18 bit ADC, no 3D stereo
audio0 at eap0: full duplex, mmap, independent                                 
midi0 at eap0: AudioPCI MIDI UART             
fxp0 at pci0 dev 13 function 0: Intel i82557 Ethernet, rev 8
fxp0: interrupting at irq 9                                 
fxp0: Ethernet address 00:e0:81:10:93:d7, 10/100 Mb/s
inphy0 at fxp0 phy 1: i82555 10/100 media interface, rev. 4
inphy0: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
vga1 at pci0 dev 14 function 0: ATI Technologies Mach64 GV (rev. 0x3a)
wsdisplay0 at vga1                                                    
isa0 at pcib0     
com0 at isa0 port 0x3f8-0x3ff irq 4: ns16550a, working fifo
com0: console                                              
com1 at isa0 port 0x2f8-0x2ff irq 3: ns16550a, working fifo
pckbc0 at isa0 port 0x60-0x64                              
lpt0 at isa0 port 0x378-0x37b irq 7
pcppi0 at isa0 port 0x61           
midi1 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         
biomask ff67 netmask ff67 ttymask ffe7    
scsibus0: waiting 2 seconds for devices to settle...
probe(siop0:0:0): command timeout                   
siop0: scsi bus reset            
sd0 at scsibus0 target 0 lun 0: <SEAGATE, ST318275LW, 0001> SCSI2 0/direct fixed
sd0: 17366 MB, 11721 cyl, 10 head, 303 sec, 512 bytes/sect x 35566480 sectors  
scsibus1: waiting 2 seconds for devices to settle...                         
boot device: sd0                                    
root on sd0a dumps on sd0b

Is there any chance that this driver (when it's finished) will work with
minor tweaking under 1.4.X? 

Thanks a bundle!

+j

-- 
Jeff Rizzo                                         http://boogers.sf.ca.us/~riz