disable 64-bit dma for one PCI slot only?

John Baldwin jhb at freebsd.org
Mon Jul 18 21:14:49 UTC 2011

On Monday, July 18, 2011 5:06:40 pm Scott Long wrote:
> On Jul 18, 2011, at 12:02 PM, John Baldwin wrote:
> > On Friday, July 15, 2011 6:07:31 pm Mark McConnell wrote:
> >> Dear folks,
> >> 
> >> I have two LSI raid cards, one of which (SCSI 320-I) supports 
> >> 64-bit DMA when 4GB+ of DDR is present and another which 
> >> does not (SATA 150-D) .  Consquently I've disabled 64-bit 
> >> addressing for amr devices.
> >> 
> >> I would like to disable 64-bit addressing for the SATA card, but 
> >> permit it for the SCSI card.  Is this possible?
> > 
> > You'd have to hack the driver perhaps to only disable 64-bit DMA for certain 
> > PCI IDs.  It probably already does this?
> > 
> The driver already had a table for determining 64bit DMA based on the PCI ID.
> I guess there's a mistake in the table for this particular card.  I think that
> changing the following line to remove the AMR_ID_DO_SG64 flag will fix the
> problem:
>     {0x1000, 0x1960, AMR_ID_QUARTZ | AMR_ID_DO_SG64 | AMR_ID_PROBE_SIG},
> Actually, what's probably going on is that the driver is only looking at the
> vendor and device id's, and is ignoring the subvendor and subdevice id's that
> would give it a better clue on the exact hardware in use.  Fixing the driver
> to look at all 64bits of id info (and take into account wildcards where
> needed) would be a good project, if anyone is interested.
> Btw, I *HATE* the "chip" and "card" identifiers used in pciconf.  Can we
> change it to emit the standard (sub)vendor/(sub)device terminology?

Oh, yeah.  I hate that too.  Would you want them as 4 separate entities or to
just rename the labels to 'devid' and 'subdevid'?

John Baldwin

More information about the freebsd-stable mailing list