RE: Lots of memory on 826x

2 messages, 2 authors, 2005-03-08 · open the first message on its own page

RE: Lots of memory on 826x

From: Rune Torgersen <hidden>
Date: 2005-03-08 21:16:55

What about moving the VMALLOC_START and VMALLOC_END #defines to
something else (like start at 0x80000000 and end at 0xc0000000), or will
that break some assumptions in the kernel about the position of the
vmalloc area?
-----Original Message-----
From: Matt Porter [mailto:mporter@kernel.crashing.org]=20
Sent: Tuesday, March 08, 2005 14:33
To: Rune Torgersen
Cc: Kumar Gala; linuxppc-embedded@ozlabs.org
Subject: Re: Lots of memory on 826x
=20
On Tue, Mar 08, 2005 at 12:37:33PM -0600, Rune Torgersen wrote:
quoted
Ok... Got a little closer....
=20
I have PCI (outbound) mapped in the area 0x80000000-0x8fffffff
(prefetch/non-prefetch and IO)
IMMR of cource is at 0xf0000000
=20
So I map the IO as following:
	/* Map IMMR region to a 256MB BAT */
	addr =3D (cpm2_immr !=3D NULL) ? (uint)cpm2_immr : CPM_MAP_ADDR;
	io_block_mapping(addr, addr, 0x10000000, _PAGE_IO);
=20
	io_block_mapping(0x80000000, 0x80000000, 0x10000000, _PAGE_IO);
=20
Now I can almost boot....:
It craches when trying to read from harddisk
(only happens with more than 512MB)
=20
That's expected if you are going to 768MB. You have kernel lowmem
being mapped at 0xc0000000+<size_of_system_memory>. With 768MB that
takes you all the way to where you have the IMMR mapped 1:1 I
guess. This leaves no room for vmalloc space.  With 768MB of ram
the kernel will calculate VMALLOC_START at 0xf1000000 which is a
problem.
=20
A few options are:
=20
* Move the IMMR much higher to allow vmalloc space
* Modify maximum low memory to limit to 512MB using the advanced
  options menu
* Modify KERNELBASE to something like 0xa0000000 using the advanced
  options menu
=20
All of these methods will provide addition vmalloc space.
=20
Don't forget to turn on HIGHMEM to use everything above MAX_LOW_MEM.
=20
-Matt
=20
=20

Re: Lots of memory on 826x

From: Kumar Gala <hidden>
Date: 2005-03-08 23:14:08

Hmm, I think there is an expectation that virt->phys is a simple=20
translation (ie, subtract KERNELBASE) for lowmem.  lowmem most parts=20
tops out at 768M.  So changing VMALLOC_START would break that.

Is there an issue with moving the IMMR virt address up higher?

- kumar

On Mar 8, 2005, at 3:16 PM, Rune Torgersen wrote:
What about moving the VMALLOC_START and VMALLOC_END #defines to
 something else (like start at 0x80000000 and end at 0xc0000000), or=20=
will
 that break some assumptions in the kernel about the position of the
 vmalloc area?
quoted
-----Original Message-----
 > From: Matt Porter [mailto:mporter@kernel.crashing.org]
quoted
Sent: Tuesday, March 08, 2005 14:33
 > To: Rune Torgersen
 > Cc: Kumar Gala; linuxppc-embedded@ozlabs.org
quoted
Subject: Re: Lots of memory on 826x
 >
quoted
On Tue, Mar 08, 2005 at 12:37:33PM -0600, Rune Torgersen wrote:
 > > Ok... Got a little closer....
 > >
quoted
quoted
I have PCI (outbound) mapped in the area 0x80000000-0x8fffffff
 > > (prefetch/non-prefetch and IO)
 > > IMMR of cource is at 0xf0000000
 > >
quoted
quoted
So I map the IO as following:
 > > =A0=A0=A0 /* Map IMMR region to a 256MB BAT */
 > > =A0=A0=A0 addr =3D (cpm2_immr !=3D NULL) ? (uint)cpm2_immr : =
CPM_MAP_ADDR;
quoted
quoted
=A0=A0=A0 io_block_mapping(addr, addr, 0x10000000, _PAGE_IO);
 > >
quoted
quoted
=A0=A0=A0 io_block_mapping(0x80000000, 0x80000000, 0x10000000, =
_PAGE_IO);
 > >
quoted
quoted
Now I can almost boot....:
It craches when trying to read from harddisk
 > > (only happens with more than 512MB)
 >
quoted
That's expected if you are going to 768MB. You have kernel lowmem
being mapped at 0xc0000000+<size_of_system_memory>. With 768MB that
 > takes you all the way to where you have the IMMR mapped 1:1 I
 > guess. This leaves no room for vmalloc space.=A0 With 768MB of ram
 > the kernel will calculate VMALLOC_START at 0xf1000000 which is a
 > problem.
 >
quoted
A few options are:
 >
quoted
* Move the IMMR much higher to allow vmalloc space
 > * Modify maximum low memory to limit to 512MB using the advanced
 >=A0=A0 options menu
 > * Modify KERNELBASE to something like 0xa0000000 using the advanced
 >=A0=A0 options menu
 >
quoted
All of these methods will provide addition vmalloc space.

Don't forget to turn on HIGHMEM to use everything above MAX_LOW_MEM.

-Matt
 >
quoted
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help