Discontiguous Memory

jbahr jbahr at set-software-services.com
Sat Sep 16 06:22:48 EST 2006

We have a client building a PPC8548-based product who insists that we
allocate DRAM real address space in two large chunks at 0-2GB and 4-6GB in
the 36-bit address space.  It doesn't look like U-Boot's bd_info structure
allows for that, and it doesn't look like the Linux init routines (which
accesses the passed table) knows how to handle discontiguous memory either
(as opposed to X86 Linux, which can accept an E820 table). 

It looks like Linux cleans out the TLB's pretty quickly, so it wouldn't know
the VA-to-RA mapping.   

I've seen papers on some PPC Linuxes that handle large discontiguous real
DRAM memory spaces, but it doesn't look like the Linux in ELDK does.  Is
that correct? 

This is just the start of a headache between the architects and we poor
implementers.  It's not clear to us that, even with ATMU support, how normal
drivers are going to know how to create real addresses for buffers and such
to use when programming DMA controllers or external PCI devices. 

Are this really a problem or is there kernel provision for the PPC for
discontiguous real memory DRAM space?

Any comments would be VERY appreciated. 

View this message in context: http://www.nabble.com/Discontiguous-Memory-tf2279691.html#a6332580
Sent from the linuxppc-dev forum at Nabble.com.

More information about the Linuxppc-dev mailing list