Subject: Re: Lots of memory on 826x

From: Matt Porter <[email-masked]>
Date: Tue, 8 Mar 2005 16:30:01 -0700

On Tue, Mar 08, 2005 at 05:20:38PM -0600, Rune Torgersen wrote:
> > -----Original Message-----
> > From: Kumar Gala [mailto:[email-masked]] 
> > Sent: Tuesday, March 08, 2005 17:14
> > To: Rune Torgersen
> > Cc: [email-masked]; Matt Porter
> > Subject: Re: Lots of memory on 826x
> > 
> > Hmm, I think there is an expectation that virt->phys is a simple 
> > translation (ie, subtract KERNELBASE) for lowmem.  lowmem most parts 
> > tops out at 768M.  So changing VMALLOC_START would break that.
> 
> Yep noticed..... (tried changing it...)

Yeah, sorry, got busy and couldn't reply to say, "don't do that!". :)
 
> > Is there an issue with moving the IMMR virt address up higher?
> Not really. Will have to redo a whole lot of address maps for some
> external devices, but not too bad...
> 
> I did change the kernel start address, and that seems to work better,
> except that things is still broken when CONFIG_HIGHMEM is set
> When that option is set, it maps the highmem to 0xFE000000, which is in
> the IO area mapped for IMMR and other memory mapped devices.
> (0xF0000000-0xFFFFFFFF)
> 
> This can be changed by CONFIG_HIGHMEM_START. Any good ideas on where to
> move it to?
> 
> (Maybe change IMMR/IO to 0xF8000000 and up, and set HIGHMEM_START to
> 0xF0000000?)

Ahh, but early ioremaps (before mm is inited) grow down from PKMAP_BASE,
so you will be overlapping the top of lowmem with those allocations.
It wants to be above vmalloc space.  Set HIGHMEM_START to 0xF6000000,
IMMR/IO to 0xF8000000 and you then have vmalloc space between
0xF1000000-0xF5FFFFFF.

-Matt