NetBSD-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: port-amd64/42980: satalink DMA fails under amd64



On Mon, Mar 15, 2010 at 11:35:01PM +0000, julian.bourne%gmail.com@localhost 
wrote:
> >Number:         42980
> >Category:       port-amd64
> >Synopsis:       satalink DMA fails under amd64
> >Confidential:   no
> >Severity:       serious
> >Priority:       medium
> >Responsible:    port-amd64-maintainer
> >State:          open
> >Class:          sw-bug
> >Submitter-Id:   net
> >Arrival-Date:   Mon Mar 15 23:35:00 +0000 2010
> >Originator:     Julian Bourne
> >Release:        5.0.2
> >Organization:
> >Environment:
> NetBSD 5.0.2 (XEN3_DOM0) #0
> >Description:
> The satalink driver doesn't support DMA under NetBSD 5.0.2 amd64.  It works 
> properly on exactly the same hardware under NetBSD 5.0.2 i386.
> 
> satalink0 at pci1 dev 9 function 0
> satalink0: Silicon Image SATALink 3512 (rev. 0x01)
> satalink0: SATALink BA5 register space disabled
> satalink0: bus-master DMA support present
> satalink0: primary channel wired to native-PCI mode
> satalink0: using ioapic0 pin 17, event channel 10 for native-PCI interrupt
> atabus1 at satalink0 channel 0
> satalink0: secondary channel wired to native-PCI mode
> atabus2 at satalink0 channel 1
> satalink0: port 0: device present, speed: 1.5Gb/s
> satalink0: port 1: device present, speed: 1.5Gb/s
> satalink0:0: unable to create xfer table DMA map for drive 0, error=22
> wd0(satalink0:0:0): using PIO mode 4
> satalink0:1: unable to create xfer table DMA map for drive 0, error=22
> wd1(satalink0:1:0): using PIO mode 4
> 
> 
> 
> >How-To-Repeat:
> Use an amd64 system equipped with a PCI bus and a SataLink 3512 card.  Boot 
> with NetBSD 5.0.2 amd64 (xen or native); it fails with the message described, 
> and falls back to PIO mode 4 giving about 3MB/s for attached devices.
> 
> Boot with NetBSD 5.0.2 i386 (native); it succeeds for DMA and gives about 
> 100MB/s for attached devices (in this case a pair of WD7500AALS drives).
> >Fix:
> Not sure exactly how to solve the problem, but I did look at the satalink 
> code and it seems like it *might* be failing because it requests 32bit 
> memory, rather than 64bit memory for DMA.

It's expected that the driver requests 32bit memory for DMA if the card
doesn't support 64bits. 22 is EINVAL, could you see which bus_dma call
fails, and what arguments were passed to it ? it looks like a
bus_dma(9) function is called with wrong arguments.

-- 
Manuel Bouyer <bouyer%antioche.eu.org@localhost>
     NetBSD: 26 ans d'experience feront toujours la difference
--


Home | Main Index | Thread Index | Old Index