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