From: "White, Charles" <Charles.White@COMPAQ.com>
To: linux-ia64@vger.kernel.org
Subject: RE: [Linux-ia64] RE: DMA memory limitation?
Date: Mon, 09 Jul 2001 15:02:58 +0000 [thread overview]
Message-ID: <marc-linux-ia64-105590693005827@msgid-missing> (raw)
In-Reply-To: <marc-linux-ia64-105590693005820@msgid-missing>
Sorry, just to clarify...
My device has the limitation that the command buffers I send must be in 32
bit space, but the IO can be in 64 bit. But there is only ONE dma_mask for
the device. The way I figured out how to do 64 bit DMA (from reading the
information in the DMA-mapping.txt) was to set my DMA mask of the pci_dev
for my device to allow 64 bit DMA, but when I allocated my command buffers(
with pci_alloc_consistent) send a pci_dev of NULL. So I would get the
default of memory that was 24bit addressable.
This Seg faulted in earlier versions of the IA64 port, but works great in
the latest versions. But now I have been asked if I can get this to work
with the kernels that are released IA64 CDs.
So, I was wondering if there was already a patch that would fix this one
problem with the some of the older trees.
-----Original Message-----
From: Matt_Domsch@Dell.com [mailto:Matt_Domsch@Dell.com]
Sent: Monday, July 09, 2001 9:47 AM
To: White, Charles
Cc: linux-ia64@linuxia64.org
Subject: RE: [Linux-ia64] RE: DMA memory limitation?
> Is there a patch that fixes the pci_alloc_consistent for
> older versions of
> the IA-64 kernels? To do 64bit DMA in my driver I need to
pass
> pci_alloc_consistent pci_dev pointer of NULL.
You're not going to find such a thing, and it wouldn't make
sense even if
you did. See Jeff Garzik's note again:
>> The important thing is that pci_alloc_consistent and the
other PCI DMA
>> functions work as advertised on IA64. If you pass NULL
to
>> pci_alloc_consistent, IA64 should give you an ISA
DMA-able
>> address. If you don't, you get a 32-bit PCI DMA address.
Never have I seen a using NULL pci_dev pointer give you a
64-bit DMA
address. Per Jeff's comment, it should give you an address
with a mask of
24-bits (within ISA space, i.e. <16MB), but since you can't
add in any ISA
cards on IA-64, this wouldn't make much sense either.
At present, the DMA address is entirely dependent upon
pci_dev->dma_mask,
which by default is a 32-bit mask, and which you can set to
be a 64-bit
mask. If you need a 64-bit DMA address, create a new
pci_dev structure, set
the mask to ~0L and pass that in. (This may cause other
problems, I can't
say for certain.)
Thanks,
Matt
--
Matt Domsch
Sr. Software Engineer
Dell Linux Solutions
www.dell.com/linux
#2 Linux Server provider with 17% in the US and 14%
Worldwide (IDC)!
#3 Unix provider with 18% in the US (Dataquest)!
next prev parent reply other threads:[~2001-07-09 15:02 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2001-07-06 15:56 [Linux-ia64] RE: DMA memory limitation? Matt_Domsch
2001-07-09 13:54 ` White, Charles
2001-07-09 14:46 ` Matt_Domsch
2001-07-09 15:02 ` White, Charles [this message]
2001-07-09 15:20 ` Matt_Domsch
2001-07-09 15:33 ` White, Charles
2001-07-10 15:42 ` Jes Sorensen
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=marc-linux-ia64-105590693005827@msgid-missing \
--to=charles.white@compaq.com \
--cc=linux-ia64@vger.kernel.org \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.