aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid Howells <dhowells@redhat.com>2008-02-05 01:29:53 -0500
committerLinus Torvalds <torvalds@woody.linux-foundation.org>2008-02-05 12:44:20 -0500
commit7038220aa511131f348018b85df172a21476fef9 (patch)
tree5db462fef58448349701c1b9db4e4bf93dc848ad
parente114e473771c848c3cfec05f0123e70f1cdbdc99 (diff)
FRV: permit the memory to be located elsewhere in NOMMU mode
Permit the memory to be located somewhere other than address 0xC0000000 in NOMMU mode. The configuration options are already present, it just requires wiring up in the linker script. Note that only a limited set of locations of runtime addresses are available because of the way the CPU protection registers work. Signed-off-by: David Howells <dhowells@redhat.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
-rw-r--r--arch/frv/Kconfig9
-rw-r--r--arch/frv/kernel/vmlinux.lds.S2
2 files changed, 10 insertions, 1 deletions
diff --git a/arch/frv/Kconfig b/arch/frv/Kconfig
index bf0468cbe713..96f7d70f4473 100644
--- a/arch/frv/Kconfig
+++ b/arch/frv/Kconfig
@@ -138,6 +138,15 @@ config UCPAGE_OFFSET_C0000000
138 138
139endchoice 139endchoice
140 140
141config PAGE_OFFSET
142 hex
143 default 0x20000000 if UCPAGE_OFFSET_20000000
144 default 0x40000000 if UCPAGE_OFFSET_40000000
145 default 0x60000000 if UCPAGE_OFFSET_60000000
146 default 0x80000000 if UCPAGE_OFFSET_80000000
147 default 0xA0000000 if UCPAGE_OFFSET_A0000000
148 default 0xC0000000
149
141config PROTECT_KERNEL 150config PROTECT_KERNEL
142 bool "Protect core kernel against userspace" 151 bool "Protect core kernel against userspace"
143 depends on !MMU 152 depends on !MMU
diff --git a/arch/frv/kernel/vmlinux.lds.S b/arch/frv/kernel/vmlinux.lds.S
index f42b328b1dd0..ef7527b8b0c7 100644
--- a/arch/frv/kernel/vmlinux.lds.S
+++ b/arch/frv/kernel/vmlinux.lds.S
@@ -13,7 +13,7 @@ ENTRY(_start)
13 13
14jiffies = jiffies_64 + 4; 14jiffies = jiffies_64 + 4;
15 15
16__page_offset = 0xc0000000; /* start of area covered by struct pages */ 16__page_offset = CONFIG_PAGE_OFFSET; /* start of area covered by struct pages */
17__kernel_image_start = __page_offset; /* address at which kernel image resides */ 17__kernel_image_start = __page_offset; /* address at which kernel image resides */
18 18
19SECTIONS 19SECTIONS