linux-ide.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Robert Hancock <hancockr@shaw.ca>
To: ltuikov@yahoo.com
Cc: linux-arch@vger.kernel.org, ide <linux-ide@vger.kernel.org>,
	linux-kernel <linux-kernel@vger.kernel.org>,
	linux-scsi@vger.kernel.org
Subject: Re: DMA mapping on SCSI device?
Date: Tue, 29 Jan 2008 20:00:50 -0600	[thread overview]
Message-ID: <479FDA52.8050204@shaw.ca> (raw)
In-Reply-To: <896139.88121.qm@web31812.mail.mud.yahoo.com>

Luben Tuikov wrote:
> --- On Mon, 1/28/08, Robert Hancock <hancockr@shaw.ca> 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?

Will do so. However, previous statements from NVIDIA fairly clearly 
indicate that this is the case.

> 
>> 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.

Well, there is an indirect link. The ADMA interface (which supports 
64-bit DMA) cannot be used to issue ATAPI commands, so if an ATAPI 
device is connected we have to go to legacy mode, which supports only 
32-bit DMA.

I'm not sure why ADMA mode doesn't support ATAPI. The only reason I can 
think of is that there's issues since ATAPI commands can potentially be 
of unpredictable transfer size. The "real" ADMA spec that the NVIDIA 
implementation is loosely based on does have some special "ignore 
excess" controls that don't seem to be in the NVIDIA version (or at 
least not to the knowledge I have on this hardware).

And yes, it is a rather unfortunate hardware shortcoming (presuming that 
it is entirely true).

> 
>> 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
> 
> 

  reply	other threads:[~2008-01-30  2:00 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-01-29  0:08 DMA mapping on SCSI device? Robert Hancock
2008-01-29  3:21 ` Grant Grundler
2008-01-29  3:37 ` Matthew Wilcox
2008-01-29  4:28 ` Andi Kleen
2008-01-29 15:33   ` James Bottomley
2008-01-29 22:23   ` Luben Tuikov
2008-01-29 22:09 ` Luben Tuikov
2008-01-30  2:00   ` Robert Hancock [this message]
2008-01-30 16:56     ` Mark Lord
2008-01-30 17:00       ` Mark Lord
2008-01-31  0:09       ` Robert Hancock
2008-01-31  5:01   ` Matthew Wilcox

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=479FDA52.8050204@shaw.ca \
    --to=hancockr@shaw.ca \
    --cc=linux-arch@vger.kernel.org \
    --cc=linux-ide@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-scsi@vger.kernel.org \
    --cc=ltuikov@yahoo.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).