diff options
| author | Paul Mundt <lethal@linux-sh.org> | 2006-09-27 04:19:13 -0400 |
|---|---|---|
| committer | Paul Mundt <lethal@linux-sh.org> | 2006-09-27 04:19:13 -0400 |
| commit | e7f93a355c7e32c26eab8910cf53b7506bb046c5 (patch) | |
| tree | 0f4f2e60423a2c4c70134e6734b57b97e277af65 /arch/sh | |
| parent | adf1890b0cd63f754b2171b73e4d845c0950d407 (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>
Diffstat (limited to 'arch/sh')
| -rw-r--r-- | arch/sh/Kconfig | 26 | ||||
| -rw-r--r-- | arch/sh/boot/compressed/Makefile | 3 | ||||
| -rw-r--r-- | arch/sh/kernel/vmlinux.lds.S | 2 | ||||
| -rw-r--r-- | arch/sh/mm/Kconfig | 31 |
4 files changed, 34 insertions, 28 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 | ||
| 239 | source "arch/sh/mm/Kconfig" | 239 | source "arch/sh/mm/Kconfig" |
| 240 | 240 | ||
| 241 | config 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 | |||
| 257 | config 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 | |||
| 267 | config CF_ENABLER | 241 | config 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 | # |
| 21 | CONFIG_PAGE_OFFSET ?= 0x80000000 | ||
| 21 | CONFIG_MEMORY_START ?= 0x0c000000 | 22 | CONFIG_MEMORY_START ?= 0x0c000000 |
| 22 | CONFIG_BOOT_LINK_OFFSET ?= 0x00800000 | 23 | CONFIG_BOOT_LINK_OFFSET ?= 0x00800000 |
| 23 | IMAGE_OFFSET := $(shell printf "0x%8x" $$[0x80000000+$(CONFIG_MEMORY_START)+$(CONFIG_BOOT_LINK_OFFSET)]) | 24 | IMAGE_OFFSET := $(shell printf "0x%8x" $$[$(CONFIG_PAGE_OFFSET)+$(CONFIG_MEMORY_START)+$(CONFIG_BOOT_LINK_OFFSET)]) |
| 24 | 25 | ||
| 25 | LDFLAGS_vmlinux := -Ttext $(IMAGE_OFFSET) -e startup -T $(obj)/../../kernel/vmlinux.lds | 26 | LDFLAGS_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) | |||
| 13 | ENTRY(_start) | 13 | ENTRY(_start) |
| 14 | SECTIONS | 14 | SECTIONS |
| 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 | ||
| 164 | config PAGE_OFFSET | ||
| 165 | hex | ||
| 166 | default "0x80000000" if MMU | ||
| 167 | default "0x00000000" | ||
| 168 | |||
| 169 | config 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 | |||
| 185 | config 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 | |||
| 164 | config 32BIT | 195 | config 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 |
