How does Linux treat memory above the "mem=" mark?

Kumar Gala galak at kernel.crashing.org
Wed Oct 18 23:42:53 EST 2006


On Oct 17, 2006, at 1:04 PM, Howard, Marc wrote:

> Hi,
>
> I have a PPC440GX board with 512M of memory.  I use "mem=496M" boot
> argument to keep Linux from using the uppermost 16MB of memory.  That
> region of memory is instead used for hardware communications.
> Occasionally however the CPU will read/write this space as well.
>
> My questions concerns TLB entries.  How does Linux define this  
> region in
> the TLB?  Does it define this region as non-cacheable in the TLB?  If
> not, what is the correct way to define an area of memory that is  
> outside
> the OS's control as non-cacheable?

Linux will not touch the the memory from 496 to 512M.  If you want to  
have access to it you'll have to explicitly map it.  Depending on  
what type of mapping you use will get different page attributes.  For  
example of use ioremap() it will be marked non-cacheable/guarded (I  
forget if 44x adds any other attributes).

It sounds like you want to access the region as non-cacheable, you  
can than just use ioremap() to get the desired effect.

- k



More information about the Linuxppc-embedded mailing list