[PATCH 0/3] 8xx: Large page(8MB) support for 2.4

Joakim Tjernlund joakim.tjernlund at transmode.se
Fri Oct 14 01:00:45 EST 2011


Dan Malek <ppc6dev at digitaldans.com> wrote on 2011/10/13 03:08:12:
>
>
> Hi Joakim.
>
> On Oct 12, 2011, at 2:36 PM, Joakim Tjernlund wrote:
>
> > Dan, where did you go? I figured you would throw yourself at this as
> > this is
> > something you been meaning to do yourself for years :)
>
> Too many things to do :-)  I did have the wired page version that I've
> been using now and then.

ehhm, do the fun stuff first? :)

>
> I had the bad thought yesterday that we need to check the
> implementation for coherent memory.  It appears we set the
> pages non-cached, which could cause some trouble.  We
> have to ensure we never access the same physical page
> with different attributes from the 8M mapping and the single
> page "coherent" mapping.
>
> I'll try to get some testing done.

In 2.4 this seems fine:
#ifdef CONFIG_PIN_TLB
#define VMALLOC_OFFSET (0x2000000) /* 32M */
#else
#define VMALLOC_OFFSET (0x1000000) /* 16M */
#endif
...
	/* adjust vmalloc_start */
	vmalloc_start = (vmalloc_start + VMALLOC_OFFSET) & ~(VMALLOC_OFFSET-1);

Earlier you have
MMU_init(void)
{
....
	vmalloc_start = KERNELBASE + total_lowmem;

You could add 8MB to that just to be sure. In my system there is no consistent_alloc so
early though.

 Jocke

BTW, I noted that you can remove the
	ori	r11, r11, 1	/* Set valid bit in physical L2 page */
insns in the TLB routines in 3.0, the valid bit is now set be the mm system.

 Jocke



More information about the Linuxppc-dev mailing list