lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:	Wed, 30 Jan 2008 11:56:19 -0500
From:	Mark Lord <liml@....ca>
To:	Robert Hancock <hancockr@...w.ca>
Cc:	ltuikov@...oo.com, linux-arch@...r.kernel.org,
	ide <linux-ide@...r.kernel.org>,
	linux-kernel <linux-kernel@...r.kernel.org>,
	linux-scsi@...r.kernel.org
Subject: Re: DMA mapping on SCSI device?

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

The original Pacific Digital ADMA cores *do* support most ATAPI commands
in ADMA mode, including READ_CD, READ_10, etc..  With the caveat that if
DSC completion state is required, the driver has to drop out of ADMA
and poll for it after the ADMA command completes.

Commands which were not ADMA compatible (eg. MODE_SENSE, TEST_UNIT_READY, ..)
were simply handled with PIO (in the driver) rather than any form of DMA,
which is okay because those commands are relatively infrequent.

Note that Pacific Digital "officially" said "no ATAPI" for the ADMA design,
but I implemented it regardless (for Linux) and it worked rather well.
We could burn DVDs and back-up to tape simultaneously, with the burner
and the tape unit sharing a single IDE cable/channel.

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

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ