Subject: Re: Use 2G RAM in 8548, vmalloc fail, adjust_total_lowmem

From: Scott Wood <[email-masked]>
Date: Wed, 09 Jan 2008 12:59:28 -0600

jay_chen wrote:
> Hello, all~~~
> 
> I am using a MCP8548 board with 2.6.14.5 kernel.
> And I would like to upgrade memory from 512MB to 2048MB.
> Finally, I realize this is not so easy as I think. I encounter several
> problems. :~~

Well, it should be easy if you use highmem...

> First, I change mem=512M to mem=2048M.
> 
> 1. vmalloc fail problem

Are you saying you have vmalloc failures if you don't do any of the 
below, and enable highmem, with 2GB RAM?  Could you provide more details?

> So, I change kernel config in "advanced setup"
> Change  "Set maximum low memory" from 0x30000000 to 0x80000000.
> Change "Virtual address of kernel base" from 0xC0000000 to 0x60000000.
> Change "Set custom user task size" from 0x80000000 to 0x60000000
> 
> Someone said that he could change "Virtual address of kernel base" to
> 0xA0000000 without problem.
> Could I change it to 0x60000000? Any possible problem?

There are always *possible* problems. :-)
In theory it should work, but it's not a very well tread path.

> In adjust_total_lowmem(), fsl_booke_mmu.c 
> It always limits the low memory to 768MB.  (no matter we set mem=768MB or
> mem=1024MB, or mem=2048MB) 
> __max_low_memory = max_low_mem = __cam0 + __cam1 + __cam2; (each TLB could
> map up to 256MB)
> 
> My question is could I use more than 3 TLBs here? Such as 8 TLBs to map 2G
> ram?

Yes.

> Or could I use e500v2 new feature, that is 1 TLB could map up to 4G?

Yes.

-Scott