Re: DMA mapping on SCSI device?

From: Luben Tuikov
Date: Tue Jan 29 2008 - 17:16:49 EST


--- On Mon, 1/28/08, Robert Hancock <hancockr@xxxxxxx> wrote:
> The trick is that if an ATAPI device is connected, we (as
> far as I'm
> aware) can't use ADMA mode, so we have to switch that
> port into legacy
> mode.

Can you double check this with the HW architect of the
HW DMA engine of the ASIC?

> This means it's only capable of 32-bit DMA.
> However the other port
> on the controller may be connected to a hard drive and
> therefore still
> capable of 64-bit DMA.

If this is indeed the case as you've presented it here,
it sounds like a HW shortcoming. I cannot see how the device
type (or protocol) dictate how the DMA engine operates.
They live in two different domains.

> The ideal solution would be to do mapping against a
> different struct
> device for each port, so that we could maintain the proper
> DMA mask for
> each of them at all times. However I'm not sure if
> that's possible. The
> thought of using the SCSI struct device for DMA mapping was
> brought up
> at one point.. any thoughts on that?

The reason for this is that the object that a struct scsi_dev
represents has nothing to do with HW DMA engines.

It looks like your current solution is correct and
x86_64's blk_queue_bounce_limit needs work.

Luben

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/