linuxppc-dev.lists.ozlabs.org archive mirror
 help / color / mirror / Atom feed
* 36 bit DMA address on IBM 440 PPC
@ 2003-03-10 13:15 jeff.boyd
  2003-03-10 14:12 ` Matt Porter
  0 siblings, 1 reply; 4+ messages in thread
From: jeff.boyd @ 2003-03-10 13:15 UTC (permalink / raw)
  To: linuxppc-embedded


I am having a problem doing PCI/memory DMA on the IBM 440 PPC because it has a
36 bit DMA address to/from the PCI bus (3_8000_0000), but the resource
structure uses an unsigned long (which is a 32 bit quantity for gcc) to
store 'physical/bus/dma' address. There is a kludge to get proper page table
entries, which is to remap the 32 bit quatities into their 36 bit counterparts
and then sending them on to __ioremap which takes a (36 bit) physical address
input. This of course is no help to DMA, which wants not cpu (virtual) address,
but physical (translated) address. I have done a similar kludge, making the 32
to 36 bit translation into a function which a driver doing DMA can use.
However, it seems to me that the real answer here is to change the resource
definition to use a phys_addr_t rather than an unsigned long, for start/end.
Does anyone know if this change has been made anywhere, or if it is being
planned?

** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2003-03-11  4:11 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2003-03-10 13:15 36 bit DMA address on IBM 440 PPC jeff.boyd
2003-03-10 14:12 ` Matt Porter
2003-03-11  0:58   ` Jeff Boyd
2003-03-11  4:11     ` Matt Porter

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