[PATCH 5/5] powerpc: booke: Allow larger CAM sizes than 256 MB

Kumar Gala galak at kernel.crashing.org
Wed Jan 14 02:43:24 EST 2009


On Dec 8, 2008, at 9:34 PM, Trent Piepho wrote:

> The code that maps kernel low memory would only use page sizes up to  
> 256
> MB.  On E500v2 pages up to 4 GB are supported.
>
> However, a page must be aligned to a multiple of the page's size.   
> I.e.
> 256 MB pages must aligned to a 256 MB boundary.  This was enforced  
> by a
> requirement that the physical and virtual addresses of the start of  
> lowmem
> be aligned to 256 MB.  Clearly requiring 1GB or 4GB alignment to allow
> pages of that size isn't acceptable.
>
> To solve this, I simply have adjust_total_lowmem() take alignment into
> account when it decides what size pages to use.  Give it PAGE_OFFSET =
> 0x7000_0000, PHYSICAL_START = 0x3000_0000, and 2GB of RAM, and it  
> will map
> pages like this:
> PA 0x3000_0000 VA 0x7000_0000 Size 256 MB
> PA 0x4000_0000 VA 0x8000_0000 Size 1 GB
> PA 0x8000_0000 VA 0xC000_0000 Size 256 MB
> PA 0x9000_0000 VA 0xD000_0000 Size 256 MB
> PA 0xA000_0000 VA 0xE000_0000 Size 256 MB
>
> Because the lowmem mapping code now takes alignment into account,
> PHYSICAL_ALIGN can be lowered from 256 MB to 64 MB.  Even lower  
> might be
> possible.  The lowmem code will work down to 4 kB but it's possible  
> some of
> the boot code will fail before then.  Poor alignment will force  
> small pages
> to be used, which combined with the limited number of TLB1 pages  
> available,
> will result in very little memory getting mapped.  So alignments  
> less than
> 64 MB probably aren't very useful anyway.
>
> Signed-off-by: Trent Piepho <tpiepho at freescale.com>
> ---
> arch/powerpc/Kconfig            |    2 +-
> arch/powerpc/mm/fsl_booke_mmu.c |   14 +++++++++++++-
> 2 files changed, 14 insertions(+), 2 deletions(-)

applied

- k




More information about the Linuxppc-dev mailing list