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

2008-01-09 Thread Scott Wood
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 0x3000 to 0x8000.
> Change "Virtual address of kernel base" from 0xC000 to 0x6000.
> Change "Set custom user task size" from 0x8000 to 0x6000
> 
> Someone said that he could change "Virtual address of kernel base" to
> 0xA000 without problem.
> Could I change it to 0x6000? 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
___
Linuxppc-embedded mailing list
Linuxppc-embedded@ozlabs.org
https://ozlabs.org/mailman/listinfo/linuxppc-embedded


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

2008-01-09 Thread Dale Farnsworth
> 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. :~~
> 
> First, I change mem=512M to mem=2048M.
> 
> 1. vmalloc fail problem
> So, I change kernel config in "advanced setup"
> Change  "Set maximum low memory" from 0x3000 to 0x8000.
> Change "Virtual address of kernel base" from 0xC000 to 0x6000.
> Change "Set custom user task size" from 0x8000 to 0x6000

Just enable CONFIG_HIGHMEM=y to use your 2GB.  It's not worth the effort
to try making it all accessible as lowmem.

-Dale
___
Linuxppc-embedded mailing list
Linuxppc-embedded@ozlabs.org
https://ozlabs.org/mailman/listinfo/linuxppc-embedded


Use 2G RAM in 8548, vmalloc fail, adjust_total_lowmem

2008-01-08 Thread jay_chen
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. :~~

First, I change mem=512M to mem=2048M.

1. vmalloc fail problem
So, I change kernel config in "advanced setup"
Change  "Set maximum low memory" from 0x3000 to 0x8000.
Change "Virtual address of kernel base" from 0xC000 to 0x6000.
Change "Set custom user task size" from 0x8000 to 0x6000

Someone said that he could change "Virtual address of kernel base" to
0xA000 without problem.
Could I change it to 0x6000? Any possible problem?

2.
In MMU_init( ), init.c
#ifdef CONFIG_FSL_BOOKE
/* Freescale Book-E parts expect lowmem to be mapped by fixed TLB
 * entries, so we need to adjust lowmem to match the amount we can
map
 * in the fixed entries */
adjust_total_lowmem();
#endif /* CONFIG_FSL_BOOKE */

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?
Or could I use e500v2 new feature, that is 1 TLB could map up to 4G? Any
reference code?

Any comment is welcom. Thanks a lot.

  Jay Chen...

___
Linuxppc-embedded mailing list
Linuxppc-embedded@ozlabs.org
https://ozlabs.org/mailman/listinfo/linuxppc-embedded