Making only part of memory DMA-able [CONFIG_DISCONTIGMEM?]

2 messages, 2 authors, 2003-01-24 · open the first message on its own page

Making only part of memory DMA-able [CONFIG_DISCONTIGMEM?]

From: Anders Blomdell <hidden>
Date: 2003-01-24 15:34:46

Hi,

I'm trying to get my PrPMC800's running as NON-MONARCHS, but I have
problems with DMA memory. Since the system is a NON-MONARCH, it has to be
satisfied with whatever PCI-window is given to it by the PCI-monarch (which
is not a Linux system).

The simple solution to this is to tweak the 'zones_size' array passed to
'free_area_init' to only make as much memory DMA-able as is given by the
PCI-monarch, unfortunately this only works if the PCI-window is bigger than
'1<<(PAGE_SHIFT+MAX_ORDER-1)' (due to alignment requirements in 'page_alloc.
c'), and even then the DMA-able area will be less than optimal, since the
DMA adresses starts at low addresses, and thus are filled with kernel pages,
  which does not need to be DMA-able.

Is there anybody working on DISCONTIGOUS memory allocation for PowerPC's,
that could shed some light on what should be done? A lot of memory
management seems to be specialized for CONFIG_440, which further clutters
my vision...

Regards

Anders Blomdell

------------------------------------------------------------------------------
  Anders Blomdell
  Department of Automatic Control        Email: anders.blomdell@control.lth.
se
  Lund Institute of Technology           Phone: +46 46 222 4625
  Box 118, S-221 00 Lund, Sweden         Fax:   +46 46 138118


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

Re: Making only part of memory DMA-able [CONFIG_DISCONTIGMEM?]

From: Adrian Cox <hidden>
Date: 2003-01-24 16:14:43

On Fri, 2003-01-24 at 15:34, Anders Blomdell wrote:
Is there anybody working on DISCONTIGOUS memory allocation for PowerPC's,
that could shed some light on what should be done? A lot of memory
management seems to be specialized for CONFIG_440, which further clutters
my vision...
I've dealt with a very similar system architecture^(1). The main lesson
I learned from this was to always use a non-transparent PCI-PCI bridge.

In your case, I presume that this is a fixed system design, and you
don't have to make every device driver in the Linux kernel work. You
might consider writing a special purpose allocator and modifying the
individual drivers you require to use it.


(1: http://www.varisys.co.uk/tpe3.html )

--
Adrian Cox
http://www.humboldt.co.uk/


** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help