MIPS: malta: Configure Segment Control registers for EVA boot
authorMarkos Chandras <markos.chandras@imgtec.com>
Wed, 15 Jan 2014 11:18:56 +0000 (11:18 +0000)
committerRalf Baechle <ralf@linux-mips.org>
Wed, 26 Mar 2014 22:09:19 +0000 (23:09 +0100)
commitf8b7faf17b36af3f2d0db0dbd3e60358965152fa
tree53414da56fe27d369ecf1358af5cbacc966e5ea2
parent4676f9359fa5190ee6f42bbf2c27d28beb14d26a
MIPS: malta: Configure Segment Control registers for EVA boot

The Malta board aliases 0x80000000 - 0xffffffff to 0x00000000
- 0x7fffffff ignoring the 256 MB IO hole in 0x10000000.
The physical memory is shifted to 0x80000000 so up to 2GB
can be used. Kuseg is expanded to 3GB (due to board limitations
only 2GB can be accessed) and lowmem (kernel space) is expanded to 2GB.

The Segment Control registers are programmed as follows:

Virtual memory           Physical memory           Mapping
0x00000000 - 0x7fffffff  0x80000000 - 0xfffffffff   MUSUK (kuseg)
0x80000000 - 0x9fffffff  0x00000000 - 0x1ffffffff   MUSUK (kseg0)
0xa0000000 - 0xbf000000  0x00000000 - 0x1ffffffff   MUSUK (kseg1)
0xc0000000 - 0xdfffffff             -                 MK  (kseg2)
0xe0000000 - 0xffffffff             -                 MK  (kseg3)

The location of exception vectors remain the same since 0xbfc00000
(traditional exception base) still maps to 0x1fc00000 physical.

Signed-off-by: Markos Chandras <markos.chandras@imgtec.com>
arch/mips/include/asm/mach-malta/kernel-entry-init.h
arch/mips/mti-malta/malta-setup.c