sh: Setup early PMB mappings.
authorMatt Fleming <matt@console-pimps.org>
Mon, 18 Jan 2010 10:33:10 +0000 (19:33 +0900)
committerPaul Mundt <lethal@linux-sh.org>
Mon, 18 Jan 2010 10:33:10 +0000 (19:33 +0900)
commit3d467676abf5f01f5ee99056273a58486968e252
tree4824c0f9a6dc7ade813a58f6ac4fa1e3780f035e
parent7dcaa8e8e67b2cfbe0097c9bb52e23aed5443b8b
sh: Setup early PMB mappings.

More and more boards are going to start shipping that boot with the MMU
in 32BIT mode by default. Previously we relied on the bootloader to
setup PMB mappings for use by the kernel but we also need to cater for
boards whose bootloaders don't set them up.

If CONFIG_PMB_LEGACY is not enabled we have full control over our PMB
mappings and can compress our address space. Usually, the distance
between the the cached and uncached mappings of RAM is always 512MB,
however we can compress the distance to be the amount of RAM on the
board.

pmb_init() now becomes much simpler. It no longer has to calculate any
mappings, it just has to synchronise the software PMB table with the
hardware.

Tested on SDK7786 and SH7785LCR.

Signed-off-by: Matt Fleming <matt@console-pimps.org>
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
arch/sh/kernel/head_32.S
arch/sh/mm/pmb.c