aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPaul Mundt <lethal@linux-sh.org>2006-09-27 04:19:13 -0400
committerPaul Mundt <lethal@linux-sh.org>2006-09-27 04:19:13 -0400
commite7f93a355c7e32c26eab8910cf53b7506bb046c5 (patch)
tree0f4f2e60423a2c4c70134e6734b57b97e277af65
parentadf1890b0cd63f754b2171b73e4d845c0950d407 (diff)
sh: Make PAGE_OFFSET configurable.
nommu needs to be able to shift PAGE_OFFSET, so we switch it to a non-user-visible CONFIG_PAGE_OFFSET and use that in the few places where it matters. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
-rw-r--r--arch/sh/Kconfig26
-rw-r--r--arch/sh/boot/compressed/Makefile3
-rw-r--r--arch/sh/kernel/vmlinux.lds.S2
-rw-r--r--arch/sh/mm/Kconfig31
-rw-r--r--include/asm-sh/page.h2
5 files changed, 35 insertions, 29 deletions
diff --git a/arch/sh/Kconfig b/arch/sh/Kconfig
index 07d6d699e9c2..035df7fb2237 100644
--- a/arch/sh/Kconfig
+++ b/arch/sh/Kconfig
@@ -238,32 +238,6 @@ endchoice
238 238
239source "arch/sh/mm/Kconfig" 239source "arch/sh/mm/Kconfig"
240 240
241config MEMORY_START
242 hex "Physical memory start address"
243 default "0x08000000"
244 ---help---
245 Computers built with Hitachi SuperH processors always
246 map the ROM starting at address zero. But the processor
247 does not specify the range that RAM takes.
248
249 The physical memory (RAM) start address will be automatically
250 set to 08000000. Other platforms, such as the Solution Engine
251 boards typically map RAM at 0C000000.
252
253 Tweak this only when porting to a new machine which does not
254 already have a defconfig. Changing it from the known correct
255 value on any of the known systems will only lead to disaster.
256
257config MEMORY_SIZE
258 hex "Physical memory size"
259 default "0x00400000"
260 help
261 This sets the default memory size assumed by your SH kernel. It can
262 be overridden as normal by the 'mem=' argument on the kernel command
263 line. If unsure, consult your board specifications or just leave it
264 as 0x00400000 which was the default value before this became
265 configurable.
266
267config CF_ENABLER 241config CF_ENABLER
268 bool "Compact Flash Enabler support" 242 bool "Compact Flash Enabler support"
269 depends on SH_ADX || SH_SOLUTION_ENGINE || SH_UNKNOWN || SH_CAT68701 || SH_SH03 243 depends on SH_ADX || SH_SOLUTION_ENGINE || SH_UNKNOWN || SH_CAT68701 || SH_SH03
diff --git a/arch/sh/boot/compressed/Makefile b/arch/sh/boot/compressed/Makefile
index 75a6876bf6c6..7074267c01b7 100644
--- a/arch/sh/boot/compressed/Makefile
+++ b/arch/sh/boot/compressed/Makefile
@@ -18,9 +18,10 @@ endif
18# Assign dummy values if these 2 variables are not defined, 18# Assign dummy values if these 2 variables are not defined,
19# in order to suppress error message. 19# in order to suppress error message.
20# 20#
21CONFIG_PAGE_OFFSET ?= 0x80000000
21CONFIG_MEMORY_START ?= 0x0c000000 22CONFIG_MEMORY_START ?= 0x0c000000
22CONFIG_BOOT_LINK_OFFSET ?= 0x00800000 23CONFIG_BOOT_LINK_OFFSET ?= 0x00800000
23IMAGE_OFFSET := $(shell printf "0x%8x" $$[0x80000000+$(CONFIG_MEMORY_START)+$(CONFIG_BOOT_LINK_OFFSET)]) 24IMAGE_OFFSET := $(shell printf "0x%8x" $$[$(CONFIG_PAGE_OFFSET)+$(CONFIG_MEMORY_START)+$(CONFIG_BOOT_LINK_OFFSET)])
24 25
25LDFLAGS_vmlinux := -Ttext $(IMAGE_OFFSET) -e startup -T $(obj)/../../kernel/vmlinux.lds 26LDFLAGS_vmlinux := -Ttext $(IMAGE_OFFSET) -e startup -T $(obj)/../../kernel/vmlinux.lds
26 27
diff --git a/arch/sh/kernel/vmlinux.lds.S b/arch/sh/kernel/vmlinux.lds.S
index 3f3e1e0735f5..eb860c51c697 100644
--- a/arch/sh/kernel/vmlinux.lds.S
+++ b/arch/sh/kernel/vmlinux.lds.S
@@ -13,7 +13,7 @@ OUTPUT_ARCH(sh)
13ENTRY(_start) 13ENTRY(_start)
14SECTIONS 14SECTIONS
15{ 15{
16 . = 0x80000000 + CONFIG_MEMORY_START + CONFIG_ZERO_PAGE_OFFSET; 16 . = CONFIG_PAGE_OFFSET + CONFIG_MEMORY_START + CONFIG_ZERO_PAGE_OFFSET;
17 _text = .; /* Text and read-only data */ 17 _text = .; /* Text and read-only data */
18 text = .; /* Text and read-only data */ 18 text = .; /* Text and read-only data */
19 .empty_zero_page : { 19 .empty_zero_page : {
diff --git a/arch/sh/mm/Kconfig b/arch/sh/mm/Kconfig
index 9064dfc91e6d..f25903aa607b 100644
--- a/arch/sh/mm/Kconfig
+++ b/arch/sh/mm/Kconfig
@@ -161,6 +161,37 @@ config MMU
161 turning this off will boot the kernel on these machines with the 161 turning this off will boot the kernel on these machines with the
162 MMU implicitly switched off. 162 MMU implicitly switched off.
163 163
164config PAGE_OFFSET
165 hex
166 default "0x80000000" if MMU
167 default "0x00000000"
168
169config MEMORY_START
170 hex "Physical memory start address"
171 default "0x08000000"
172 ---help---
173 Computers built with Hitachi SuperH processors always
174 map the ROM starting at address zero. But the processor
175 does not specify the range that RAM takes.
176
177 The physical memory (RAM) start address will be automatically
178 set to 08000000. Other platforms, such as the Solution Engine
179 boards typically map RAM at 0C000000.
180
181 Tweak this only when porting to a new machine which does not
182 already have a defconfig. Changing it from the known correct
183 value on any of the known systems will only lead to disaster.
184
185config MEMORY_SIZE
186 hex "Physical memory size"
187 default "0x00400000"
188 help
189 This sets the default memory size assumed by your SH kernel. It can
190 be overridden as normal by the 'mem=' argument on the kernel command
191 line. If unsure, consult your board specifications or just leave it
192 as 0x00400000 which was the default value before this became
193 configurable.
194
164config 32BIT 195config 32BIT
165 bool "Support 32-bit physical addressing through PMB" 196 bool "Support 32-bit physical addressing through PMB"
166 depends on CPU_SH4A 197 depends on CPU_SH4A
diff --git a/include/asm-sh/page.h b/include/asm-sh/page.h
index 51d7281a546a..1b3cfd165a66 100644
--- a/include/asm-sh/page.h
+++ b/include/asm-sh/page.h
@@ -84,7 +84,7 @@ typedef struct { unsigned long pgprot; } pgprot_t;
84#define __MEMORY_START CONFIG_MEMORY_START 84#define __MEMORY_START CONFIG_MEMORY_START
85#define __MEMORY_SIZE CONFIG_MEMORY_SIZE 85#define __MEMORY_SIZE CONFIG_MEMORY_SIZE
86 86
87#define PAGE_OFFSET (0x80000000UL) 87#define PAGE_OFFSET CONFIG_PAGE_OFFSET
88#define __pa(x) ((unsigned long)(x)-PAGE_OFFSET) 88#define __pa(x) ((unsigned long)(x)-PAGE_OFFSET)
89#define __va(x) ((void *)((unsigned long)(x)+PAGE_OFFSET)) 89#define __va(x) ((void *)((unsigned long)(x)+PAGE_OFFSET))
90 90