[SPARC64]: Remove most limitations to kernel image size.
authorDavid S. Miller <davem@davemloft.net>
Sat, 22 Mar 2008 00:01:38 +0000 (17:01 -0700)
committerDavid S. Miller <davem@davemloft.net>
Sat, 22 Mar 2008 00:01:38 +0000 (17:01 -0700)
commit64658743fdd40021e3ac91e8ff260ad06578dd23
treeda9bd83e54702156d66ae9b6d282d610376feda8
parent4cfea5a7dfcc2766251e50ca30271a782d5004ad
[SPARC64]: Remove most limitations to kernel image size.

Currently kernel images are limited to 8MB in size, and this causes
problems especially when enabling features that take up a lot of
kernel image space such as lockdep.

The code now will align the kernel image size up to 4MB and map that
many locked TLB entries.  So, the only practical limitation is the
number of available locked TLB entries which is 16 on Cheetah and 64
on pre-Cheetah sparc64 cpus.  Niagara cpus don't actually have hw
locked TLB entry support.  Rather, the hypervisor transparently
provides support for "locked" TLB entries since it runs with physical
addressing and does the initial TLB miss processing.

Fully utilizing this change requires some help from SILO, a patch for
which will be submitted to the maintainer.  Essentially, SILO will
only currently map up to 8MB for the kernel image and that needs to be
increased.

Note that neither this patch nor the SILO bits will help with network
booting.  The openfirmware code will only map up to a certain amount
of kernel image during a network boot and there isn't much we can to
about that other than to implemented a layered network booting
facility.  Solaris has this, and calls it "wanboot" and we may
implement something similar at some point.

Signed-off-by: David S. Miller <davem@davemloft.net>
arch/sparc64/kernel/head.S
arch/sparc64/kernel/smp.c
arch/sparc64/kernel/trampoline.S
arch/sparc64/mm/init.c
include/asm-sparc64/hvtramp.h
include/asm-sparc64/spitfire.h