diff options
| -rw-r--r-- | Makefile | 7 | ||||
| -rw-r--r-- | arch/sh/Kconfig | 537 | ||||
| -rw-r--r-- | arch/sh/Kconfig.debug | 2 | ||||
| -rw-r--r-- | arch/sh/Makefile | 60 | ||||
| -rw-r--r-- | arch/sh/mm/Kconfig | 233 |
5 files changed, 489 insertions, 350 deletions
| @@ -263,6 +263,13 @@ export quiet Q KBUILD_VERBOSE | |||
| 263 | # cc support functions to be used (only) in arch/$(ARCH)/Makefile | 263 | # cc support functions to be used (only) in arch/$(ARCH)/Makefile |
| 264 | # See documentation in Documentation/kbuild/makefiles.txt | 264 | # See documentation in Documentation/kbuild/makefiles.txt |
| 265 | 265 | ||
| 266 | # as-option | ||
| 267 | # Usage: cflags-y += $(call as-option, -Wa$(comma)-isa=foo,) | ||
| 268 | |||
| 269 | as-option = $(shell if $(CC) $(CFLAGS) $(1) -Wa,-Z -c -o /dev/null \ | ||
| 270 | -xassembler /dev/null > /dev/null 2>&1; then echo "$(1)"; \ | ||
| 271 | else echo "$(2)"; fi ;) | ||
| 272 | |||
| 266 | # cc-option | 273 | # cc-option |
| 267 | # Usage: cflags-y += $(call cc-option, -march=winchip-c6, -march=i586) | 274 | # Usage: cflags-y += $(call cc-option, -march=winchip-c6, -march=i586) |
| 268 | 275 | ||
diff --git a/arch/sh/Kconfig b/arch/sh/Kconfig index 8cf6d437a630..01bc7d589afe 100644 --- a/arch/sh/Kconfig +++ b/arch/sh/Kconfig | |||
| @@ -33,9 +33,11 @@ config GENERIC_CALIBRATE_DELAY | |||
| 33 | bool | 33 | bool |
| 34 | default y | 34 | default y |
| 35 | 35 | ||
| 36 | config GENERIC_IOMAP | ||
| 37 | bool | ||
| 38 | |||
| 36 | config ARCH_MAY_HAVE_PC_FDC | 39 | config ARCH_MAY_HAVE_PC_FDC |
| 37 | bool | 40 | bool |
| 38 | default y | ||
| 39 | 41 | ||
| 40 | source "init/Kconfig" | 42 | source "init/Kconfig" |
| 41 | 43 | ||
| @@ -53,24 +55,28 @@ config SH_SOLUTION_ENGINE | |||
| 53 | 55 | ||
| 54 | config SH_7751_SOLUTION_ENGINE | 56 | config SH_7751_SOLUTION_ENGINE |
| 55 | bool "SolutionEngine7751" | 57 | bool "SolutionEngine7751" |
| 58 | select CPU_SUBTYPE_SH7751 | ||
| 56 | help | 59 | help |
| 57 | Select 7751 SolutionEngine if configuring for a Hitachi SH7751 | 60 | Select 7751 SolutionEngine if configuring for a Hitachi SH7751 |
| 58 | evaluation board. | 61 | evaluation board. |
| 59 | 62 | ||
| 60 | config SH_7300_SOLUTION_ENGINE | 63 | config SH_7300_SOLUTION_ENGINE |
| 61 | bool "SolutionEngine7300" | 64 | bool "SolutionEngine7300" |
| 65 | select CPU_SUBTYPE_SH7300 | ||
| 62 | help | 66 | help |
| 63 | Select 7300 SolutionEngine if configuring for a Hitachi SH7300(SH-Mobile V) | 67 | Select 7300 SolutionEngine if configuring for a Hitachi SH7300(SH-Mobile V) |
| 64 | evaluation board. | 68 | evaluation board. |
| 65 | 69 | ||
| 66 | config SH_73180_SOLUTION_ENGINE | 70 | config SH_73180_SOLUTION_ENGINE |
| 67 | bool "SolutionEngine73180" | 71 | bool "SolutionEngine73180" |
| 72 | select CPU_SUBTYPE_SH73180 | ||
| 68 | help | 73 | help |
| 69 | Select 73180 SolutionEngine if configuring for a Hitachi SH73180(SH-Mobile 3) | 74 | Select 73180 SolutionEngine if configuring for a Hitachi SH73180(SH-Mobile 3) |
| 70 | evaluation board. | 75 | evaluation board. |
| 71 | 76 | ||
| 72 | config SH_7751_SYSTEMH | 77 | config SH_7751_SYSTEMH |
| 73 | bool "SystemH7751R" | 78 | bool "SystemH7751R" |
| 79 | select CPU_SUBTYPE_SH7751R | ||
| 74 | help | 80 | help |
| 75 | Select SystemH if you are configuring for a Renesas SystemH | 81 | Select SystemH if you are configuring for a Renesas SystemH |
| 76 | 7751R evaluation board. | 82 | 7751R evaluation board. |
| @@ -81,27 +87,13 @@ config SH_STB1_HARP | |||
| 81 | config SH_STB1_OVERDRIVE | 87 | config SH_STB1_OVERDRIVE |
| 82 | bool "STB1_Overdrive" | 88 | bool "STB1_Overdrive" |
| 83 | 89 | ||
| 84 | config SH_HP620 | 90 | config SH_HP6XX |
| 85 | bool "HP620" | 91 | bool "HP6XX" |
| 86 | help | 92 | help |
| 87 | Select HP620 if configuring for a HP jornada HP620. | 93 | Select HP6XX if configuring for a HP jornada HP6xx. |
| 88 | More information (hardware only) at | 94 | More information (hardware only) at |
| 89 | <http://www.hp.com/jornada/>. | 95 | <http://www.hp.com/jornada/>. |
| 90 | 96 | ||
| 91 | config SH_HP680 | ||
| 92 | bool "HP680" | ||
| 93 | help | ||
| 94 | Select HP680 if configuring for a HP Jornada HP680. | ||
| 95 | More information (hardware only) at | ||
| 96 | <http://www.hp.com/jornada/products/680/>. | ||
| 97 | |||
| 98 | config SH_HP690 | ||
| 99 | bool "HP690" | ||
| 100 | help | ||
| 101 | Select HP690 if configuring for a HP Jornada HP690. | ||
| 102 | More information (hardware only) | ||
| 103 | at <http://www.hp.com/jornada/products/680/>. | ||
| 104 | |||
| 105 | config SH_CQREEK | 97 | config SH_CQREEK |
| 106 | bool "CqREEK" | 98 | bool "CqREEK" |
| 107 | help | 99 | help |
| @@ -123,11 +115,13 @@ config SH_EC3104 | |||
| 123 | 115 | ||
| 124 | config SH_SATURN | 116 | config SH_SATURN |
| 125 | bool "Saturn" | 117 | bool "Saturn" |
| 118 | select CPU_SUBTYPE_SH7604 | ||
| 126 | help | 119 | help |
| 127 | Select Saturn if configuring for a SEGA Saturn. | 120 | Select Saturn if configuring for a SEGA Saturn. |
| 128 | 121 | ||
| 129 | config SH_DREAMCAST | 122 | config SH_DREAMCAST |
| 130 | bool "Dreamcast" | 123 | bool "Dreamcast" |
| 124 | select CPU_SUBTYPE_SH7091 | ||
| 131 | help | 125 | help |
| 132 | Select Dreamcast if configuring for a SEGA Dreamcast. | 126 | Select Dreamcast if configuring for a SEGA Dreamcast. |
| 133 | More information at | 127 | More information at |
| @@ -142,6 +136,7 @@ config SH_BIGSUR | |||
| 142 | 136 | ||
| 143 | config SH_SH2000 | 137 | config SH_SH2000 |
| 144 | bool "SH2000" | 138 | bool "SH2000" |
| 139 | select CPU_SUBTYPE_SH7709 | ||
| 145 | help | 140 | help |
| 146 | SH-2000 is a single-board computer based around SH7709A chip | 141 | SH-2000 is a single-board computer based around SH7709A chip |
| 147 | intended for embedded applications. | 142 | intended for embedded applications. |
| @@ -153,20 +148,22 @@ config SH_ADX | |||
| 153 | bool "ADX" | 148 | bool "ADX" |
| 154 | 149 | ||
| 155 | config SH_MPC1211 | 150 | config SH_MPC1211 |
| 156 | bool "MPC1211" | 151 | bool "Interface MPC1211" |
| 152 | help | ||
| 153 | CTP/PCI-SH02 is a CPU module computer that is produced | ||
| 154 | by Interface Corporation. | ||
| 155 | More information at <http://www.interface.co.jp> | ||
| 157 | 156 | ||
| 158 | config SH_SH03 | 157 | config SH_SH03 |
| 159 | bool "SH03" | 158 | bool "Interface CTP/PCI-SH03" |
| 160 | help | 159 | help |
| 161 | CTP/PCI-SH03 is a CPU module computer that produced | 160 | CTP/PCI-SH03 is a CPU module computer that is produced |
| 162 | by Interface Corporation. | 161 | by Interface Corporation. |
| 163 | It is compact and excellent in durability. | ||
| 164 | It will play an active part in your factory or laboratory | ||
| 165 | as a FA computer. | ||
| 166 | More information at <http://www.interface.co.jp> | 162 | More information at <http://www.interface.co.jp> |
| 167 | 163 | ||
| 168 | config SH_SECUREEDGE5410 | 164 | config SH_SECUREEDGE5410 |
| 169 | bool "SecureEdge5410" | 165 | bool "SecureEdge5410" |
| 166 | select CPU_SUBTYPE_SH7751R | ||
| 170 | help | 167 | help |
| 171 | Select SecureEdge5410 if configuring for a SnapGear SH board. | 168 | Select SecureEdge5410 if configuring for a SnapGear SH board. |
| 172 | This includes both the OEM SecureEdge products as well as the | 169 | This includes both the OEM SecureEdge products as well as the |
| @@ -174,25 +171,49 @@ config SH_SECUREEDGE5410 | |||
| 174 | 171 | ||
| 175 | config SH_HS7751RVOIP | 172 | config SH_HS7751RVOIP |
| 176 | bool "HS7751RVOIP" | 173 | bool "HS7751RVOIP" |
| 174 | select CPU_SUBTYPE_SH7751R | ||
| 177 | help | 175 | help |
| 178 | Select HS7751RVOIP if configuring for a Renesas Technology | 176 | Select HS7751RVOIP if configuring for a Renesas Technology |
| 179 | Sales VoIP board. | 177 | Sales VoIP board. |
| 180 | 178 | ||
| 181 | config SH_RTS7751R2D | 179 | config SH_RTS7751R2D |
| 182 | bool "RTS7751R2D" | 180 | bool "RTS7751R2D" |
| 181 | select CPU_SUBTYPE_SH7751R | ||
| 183 | help | 182 | help |
| 184 | Select RTS7751R2D if configuring for a Renesas Technology | 183 | Select RTS7751R2D if configuring for a Renesas Technology |
| 185 | Sales SH-Graphics board. | 184 | Sales SH-Graphics board. |
| 186 | 185 | ||
| 186 | config SH_R7780RP | ||
| 187 | bool "R7780RP-1" | ||
| 188 | select CPU_SUBTYPE_SH7780 | ||
| 189 | help | ||
| 190 | Select R7780RP-1 if configuring for a Renesas Solutions | ||
| 191 | HIGHLANDER board. | ||
| 192 | |||
| 187 | config SH_EDOSK7705 | 193 | config SH_EDOSK7705 |
| 188 | bool "EDOSK7705" | 194 | bool "EDOSK7705" |
| 195 | select CPU_SUBTYPE_SH7705 | ||
| 189 | 196 | ||
| 190 | config SH_SH4202_MICRODEV | 197 | config SH_SH4202_MICRODEV |
| 191 | bool "SH4-202 MicroDev" | 198 | bool "SH4-202 MicroDev" |
| 199 | select CPU_SUBTYPE_SH4_202 | ||
| 192 | help | 200 | help |
| 193 | Select SH4-202 MicroDev if configuring for a SuperH MicroDev board | 201 | Select SH4-202 MicroDev if configuring for a SuperH MicroDev board |
| 194 | with an SH4-202 CPU. | 202 | with an SH4-202 CPU. |
| 195 | 203 | ||
| 204 | config SH_LANDISK | ||
| 205 | bool "LANDISK" | ||
| 206 | select CPU_SUBTYPE_SH7751R | ||
| 207 | help | ||
| 208 | I-O DATA DEVICE, INC. "LANDISK Series" support. | ||
| 209 | |||
| 210 | config SH_TITAN | ||
| 211 | bool "TITAN" | ||
| 212 | select CPU_SUBTYPE_SH7751R | ||
| 213 | help | ||
| 214 | Select Titan if you are configuring for a Nimble Microsystems | ||
| 215 | NetEngine NP51R. | ||
| 216 | |||
| 196 | config SH_UNKNOWN | 217 | config SH_UNKNOWN |
| 197 | bool "BareCPU" | 218 | bool "BareCPU" |
| 198 | help | 219 | help |
| @@ -207,168 +228,27 @@ config SH_UNKNOWN | |||
| 207 | 228 | ||
| 208 | endchoice | 229 | endchoice |
| 209 | 230 | ||
| 210 | choice | 231 | source "arch/sh/mm/Kconfig" |
| 211 | prompt "Processor family" | ||
| 212 | default CPU_SH4 | ||
| 213 | help | ||
| 214 | This option determines the CPU family to compile for. Supported | ||
| 215 | targets are SH-2, SH-3, and SH-4. These options are independent of | ||
| 216 | CPU functionality. As such, SH-DSP users will still want to select | ||
| 217 | their respective processor family in addition to the DSP support | ||
| 218 | option. | ||
| 219 | |||
| 220 | config CPU_SH2 | ||
| 221 | bool "SH-2" | ||
| 222 | select SH_WRITETHROUGH | ||
| 223 | |||
| 224 | config CPU_SH3 | ||
| 225 | bool "SH-3" | ||
| 226 | |||
| 227 | config CPU_SH4 | ||
| 228 | bool "SH-4" | ||
| 229 | |||
| 230 | endchoice | ||
| 231 | |||
| 232 | choice | ||
| 233 | prompt "Processor subtype" | ||
| 234 | |||
| 235 | config CPU_SUBTYPE_SH7604 | ||
| 236 | bool "SH7604" | ||
| 237 | depends on CPU_SH2 | ||
| 238 | help | ||
| 239 | Select SH7604 if you have SH7604 | ||
| 240 | |||
| 241 | config CPU_SUBTYPE_SH7300 | ||
| 242 | bool "SH7300" | ||
| 243 | depends on CPU_SH3 | ||
| 244 | |||
| 245 | config CPU_SUBTYPE_SH7705 | ||
| 246 | bool "SH7705" | ||
| 247 | depends on CPU_SH3 | ||
| 248 | |||
| 249 | config CPU_SUBTYPE_SH7707 | ||
| 250 | bool "SH7707" | ||
| 251 | depends on CPU_SH3 | ||
| 252 | help | ||
| 253 | Select SH7707 if you have a 60 Mhz SH-3 HD6417707 CPU. | ||
| 254 | |||
| 255 | config CPU_SUBTYPE_SH7708 | ||
| 256 | bool "SH7708" | ||
| 257 | depends on CPU_SH3 | ||
| 258 | help | ||
| 259 | Select SH7708 if you have a 60 Mhz SH-3 HD6417708S or | ||
| 260 | if you have a 100 Mhz SH-3 HD6417708R CPU. | ||
| 261 | |||
| 262 | config CPU_SUBTYPE_SH7709 | ||
| 263 | bool "SH7709" | ||
| 264 | depends on CPU_SH3 | ||
| 265 | help | ||
| 266 | Select SH7709 if you have a 80 Mhz SH-3 HD6417709 CPU. | ||
| 267 | |||
| 268 | config CPU_SUBTYPE_SH7750 | ||
| 269 | bool "SH7750" | ||
| 270 | depends on CPU_SH4 | ||
| 271 | help | ||
| 272 | Select SH7750 if you have a 200 Mhz SH-4 HD6417750 CPU. | ||
| 273 | |||
| 274 | config CPU_SUBTYPE_SH7751 | ||
| 275 | bool "SH7751/SH7751R" | ||
| 276 | depends on CPU_SH4 | ||
| 277 | help | ||
| 278 | Select SH7751 if you have a 166 Mhz SH-4 HD6417751 CPU, | ||
| 279 | or if you have a HD6417751R CPU. | ||
| 280 | |||
| 281 | config CPU_SUBTYPE_SH7760 | ||
| 282 | bool "SH7760" | ||
| 283 | depends on CPU_SH4 | ||
| 284 | |||
| 285 | config CPU_SUBTYPE_SH73180 | ||
| 286 | bool "SH73180" | ||
| 287 | depends on CPU_SH4 | ||
| 288 | |||
| 289 | config CPU_SUBTYPE_ST40STB1 | ||
| 290 | bool "ST40STB1 / ST40RA" | ||
| 291 | depends on CPU_SH4 | ||
| 292 | help | ||
| 293 | Select ST40STB1 if you have a ST40RA CPU. | ||
| 294 | This was previously called the ST40STB1, hence the option name. | ||
| 295 | |||
| 296 | config CPU_SUBTYPE_ST40GX1 | ||
| 297 | bool "ST40GX1" | ||
| 298 | depends on CPU_SH4 | ||
| 299 | help | ||
| 300 | Select ST40GX1 if you have a ST40GX1 CPU. | ||
| 301 | |||
| 302 | config CPU_SUBTYPE_SH4_202 | ||
| 303 | bool "SH4-202" | ||
| 304 | depends on CPU_SH4 | ||
| 305 | |||
| 306 | endchoice | ||
| 307 | |||
| 308 | config SH7705_CACHE_32KB | ||
| 309 | bool "Enable 32KB cache size for SH7705" | ||
| 310 | depends on CPU_SUBTYPE_SH7705 | ||
| 311 | default y | ||
| 312 | |||
| 313 | config MMU | ||
| 314 | bool "Support for memory management hardware" | ||
| 315 | depends on !CPU_SH2 | ||
| 316 | default y | ||
| 317 | help | ||
| 318 | Early SH processors (such as the SH7604) lack an MMU. In order to | ||
| 319 | boot on these systems, this option must not be set. | ||
| 320 | |||
| 321 | On other systems (such as the SH-3 and 4) where an MMU exists, | ||
| 322 | turning this off will boot the kernel on these machines with the | ||
| 323 | MMU implicitly switched off. | ||
| 324 | |||
| 325 | choice | ||
| 326 | prompt "HugeTLB page size" | ||
| 327 | depends on HUGETLB_PAGE && CPU_SH4 && MMU | ||
| 328 | default HUGETLB_PAGE_SIZE_64K | ||
| 329 | |||
| 330 | config HUGETLB_PAGE_SIZE_64K | ||
| 331 | bool "64K" | ||
| 332 | |||
| 333 | config HUGETLB_PAGE_SIZE_1MB | ||
| 334 | bool "1MB" | ||
| 335 | |||
| 336 | endchoice | ||
| 337 | |||
| 338 | config CMDLINE_BOOL | ||
| 339 | bool "Default bootloader kernel arguments" | ||
| 340 | |||
| 341 | config CMDLINE | ||
| 342 | string "Initial kernel command string" | ||
| 343 | depends on CMDLINE_BOOL | ||
| 344 | default "console=ttySC1,115200" | ||
| 345 | 232 | ||
| 346 | # Platform-specific memory start and size definitions | ||
| 347 | config MEMORY_START | 233 | config MEMORY_START |
| 348 | hex "Physical memory start address" if !MEMORY_SET || MEMORY_OVERRIDE | 234 | hex "Physical memory start address" |
| 349 | default "0x08000000" if !MEMORY_SET || MEMORY_OVERRIDE || !MEMORY_OVERRIDE && SH_ADX || SH_MPC1211 || SH_SH03 || SH_SECUREEDGE5410 || SH_SH4202_MICRODEV | 235 | default "0x08000000" |
| 350 | default "0x0c000000" if !MEMORY_OVERRIDE && (SH_DREAMCAST || SH_HP600 || SH_BIGSUR || SH_SH2000 || SH_73180_SOLUTION_ENGINE || SH_7300_SOLUTION_ENGINE || SH_7751_SOLUTION_ENGINE || SH_SOLUTION_ENGINE || SH_HS7751RVOIP || SH_RTS7751R2D || SH_EDOSK7705) | ||
| 351 | ---help--- | 236 | ---help--- |
| 352 | Computers built with Hitachi SuperH processors always | 237 | Computers built with Hitachi SuperH processors always |
| 353 | map the ROM starting at address zero. But the processor | 238 | map the ROM starting at address zero. But the processor |
| 354 | does not specify the range that RAM takes. | 239 | does not specify the range that RAM takes. |
| 355 | 240 | ||
| 356 | The physical memory (RAM) start address will be automatically | 241 | The physical memory (RAM) start address will be automatically |
| 357 | set to 08000000, unless you selected one of the following | 242 | set to 08000000. Other platforms, such as the Solution Engine |
| 358 | processor types: SolutionEngine, Overdrive, HP620, HP680, HP690, | 243 | boards typically map RAM at 0C000000. |
| 359 | in which case the start address will be set to 0c000000. | ||
| 360 | 244 | ||
| 361 | Tweak this only when porting to a new machine which is not already | 245 | Tweak this only when porting to a new machine which does not |
| 362 | known by the config system. Changing it from the known correct | 246 | already have a defconfig. Changing it from the known correct |
| 363 | value on any of the known systems will only lead to disaster. | 247 | value on any of the known systems will only lead to disaster. |
| 364 | 248 | ||
| 365 | config MEMORY_SIZE | 249 | config MEMORY_SIZE |
| 366 | hex "Physical memory size" if !MEMORY_SET || MEMORY_OVERRIDE | 250 | hex "Physical memory size" |
| 367 | default "0x00400000" if !MEMORY_SET || MEMORY_OVERRIDE || !MEMORY_OVERRIDE && SH_ADX || !MEMORY_OVERRIDE && (SH_HP600 || SH_BIGSUR || SH_SH2000) | 251 | default "0x00400000" |
| 368 | default "0x01000000" if !MEMORY_OVERRIDE && SH_DREAMCAST || SH_SECUREEDGE5410 || SH_EDOSK7705 | ||
| 369 | default "0x02000000" if !MEMORY_OVERRIDE && (SH_73180_SOLUTION_ENGINE || SH_SOLUTION_ENGINE) | ||
| 370 | default "0x04000000" if !MEMORY_OVERRIDE && (SH_7300_SOLUTION_ENGINE || SH_7751_SOLUTION_ENGINE || SH_HS7751RVOIP || SH_RTS7751R2D || SH_SH4202_MICRODEV) | ||
| 371 | default "0x08000000" if SH_MPC1211 || SH_SH03 | ||
| 372 | help | 252 | help |
| 373 | This sets the default memory size assumed by your SH kernel. It can | 253 | This sets the default memory size assumed by your SH kernel. It can |
| 374 | be overridden as normal by the 'mem=' argument on the kernel command | 254 | be overridden as normal by the 'mem=' argument on the kernel command |
| @@ -376,21 +256,6 @@ config MEMORY_SIZE | |||
| 376 | as 0x00400000 which was the default value before this became | 256 | as 0x00400000 which was the default value before this became |
| 377 | configurable. | 257 | configurable. |
| 378 | 258 | ||
| 379 | config MEMORY_SET | ||
| 380 | bool | ||
| 381 | depends on !MEMORY_OVERRIDE && (SH_MPC1211 || SH_SH03 || SH_ADX || SH_DREAMCAST || SH_HP600 || SH_BIGSUR || SH_SH2000 || SH_7751_SOLUTION_ENGINE || SH_SOLUTION_ENGINE || SH_SECUREEDGE5410 || SH_HS7751RVOIP || SH_RTS7751R2D || SH_SH4202_MICRODEV || SH_EDOSK7705) | ||
| 382 | default y | ||
| 383 | help | ||
| 384 | This is an option about which you will never be asked a question. | ||
| 385 | Therefore, I conclude that you do not exist - go away. | ||
| 386 | |||
| 387 | There is a grue here. | ||
| 388 | |||
| 389 | # If none of the above have set memory start/size, ask the user. | ||
| 390 | config MEMORY_OVERRIDE | ||
| 391 | bool "Override default load address and memory size" | ||
| 392 | |||
| 393 | # XXX: break these out into the board-specific configs below | ||
| 394 | config CF_ENABLER | 259 | config CF_ENABLER |
| 395 | bool "Compact Flash Enabler support" | 260 | bool "Compact Flash Enabler support" |
| 396 | depends on SH_ADX || SH_SOLUTION_ENGINE || SH_UNKNOWN || SH_CAT68701 || SH_SH03 | 261 | depends on SH_ADX || SH_SOLUTION_ENGINE || SH_UNKNOWN || SH_CAT68701 || SH_SH03 |
| @@ -434,10 +299,21 @@ config CF_BASE_ADDR | |||
| 434 | default "0xb8000000" if CF_AREA6 | 299 | default "0xb8000000" if CF_AREA6 |
| 435 | default "0xb4000000" if CF_AREA5 | 300 | default "0xb4000000" if CF_AREA5 |
| 436 | 301 | ||
| 302 | menu "Processor features" | ||
| 303 | |||
| 304 | config CPU_LITTLE_ENDIAN | ||
| 305 | bool "Little Endian" | ||
| 306 | help | ||
| 307 | Some SuperH machines can be configured for either little or big | ||
| 308 | endian byte order. These modes require different kernels. Say Y if | ||
| 309 | your machine is little endian, N if it's a big endian machine. | ||
| 310 | |||
| 437 | # The SH7750 RTC module is disabled in the Dreamcast | 311 | # The SH7750 RTC module is disabled in the Dreamcast |
| 438 | config SH_RTC | 312 | config SH_RTC |
| 439 | bool | 313 | bool |
| 440 | depends on !SH_DREAMCAST && !SH_SATURN && !SH_7300_SOLUTION_ENGINE && !SH_73180_SOLUTION_ENGINE | 314 | depends on !SH_DREAMCAST && !SH_SATURN && !SH_7300_SOLUTION_ENGINE && \ |
| 315 | !SH_73180_SOLUTION_ENGINE && !SH_LANDISK && \ | ||
| 316 | !SH_R7780RP | ||
| 441 | default y | 317 | default y |
| 442 | help | 318 | help |
| 443 | Selecting this option will allow the Linux kernel to emulate | 319 | Selecting this option will allow the Linux kernel to emulate |
| @@ -476,104 +352,131 @@ config SH_ADC | |||
| 476 | 352 | ||
| 477 | If unsure, say N. | 353 | If unsure, say N. |
| 478 | 354 | ||
| 479 | config SH_HP600 | 355 | config SH_STORE_QUEUES |
| 356 | bool "Support for Store Queues" | ||
| 357 | depends on CPU_SH4 | ||
| 358 | help | ||
| 359 | Selecting this option will enable an in-kernel API for manipulating | ||
| 360 | the store queues integrated in the SH-4 processors. | ||
| 361 | |||
| 362 | config CPU_HAS_INTEVT | ||
| 480 | bool | 363 | bool |
| 481 | depends on SH_HP620 || SH_HP680 || SH_HP690 | ||
| 482 | default y | ||
| 483 | 364 | ||
| 484 | config CPU_SUBTYPE_ST40 | 365 | config CPU_HAS_PINT_IRQ |
| 485 | bool | 366 | bool |
| 486 | depends on CPU_SUBTYPE_ST40STB1 || CPU_SUBTYPE_ST40GX1 | ||
| 487 | default y | ||
| 488 | 367 | ||
| 489 | source "mm/Kconfig" | 368 | config CPU_HAS_INTC2_IRQ |
| 369 | bool | ||
| 490 | 370 | ||
| 491 | config ZERO_PAGE_OFFSET | 371 | config CPU_HAS_SR_RB |
| 492 | hex "Zero page offset" | 372 | bool "CPU has SR.RB" |
| 493 | default "0x00001000" if !(SH_MPC1211 || SH_SH03) | 373 | depends on CPU_SH3 || CPU_SH4 |
| 494 | default "0x00004000" if SH_MPC1211 || SH_SH03 | 374 | default y |
| 495 | help | 375 | help |
| 496 | This sets the default offset of zero page. | 376 | This will enable the use of SR.RB register bank usage. Processors |
| 377 | that are lacking this bit must have another method in place for | ||
| 378 | accomplishing what is taken care of by the banked registers. | ||
| 497 | 379 | ||
| 498 | # XXX: needs to lose subtype for system type | 380 | See <file:Documentation/sh/register-banks.txt> for further |
| 499 | config ST40_LMI_MEMORY | 381 | information on SR.RB and register banking in the kernel in general. |
| 500 | bool "Memory on LMI" | ||
| 501 | depends on CPU_SUBTYPE_ST40STB1 | ||
| 502 | 382 | ||
| 503 | config MEMORY_START | 383 | endmenu |
| 504 | hex | ||
| 505 | depends on CPU_SUBTYPE_ST40STB1 && ST40_LMI_MEMORY | ||
| 506 | default "0x08000000" | ||
| 507 | 384 | ||
| 508 | config MEMORY_SIZE | 385 | menu "Timer support" |
| 509 | hex | ||
| 510 | depends on CPU_SUBTYPE_ST40STB1 && ST40_LMI_MEMORY | ||
| 511 | default "0x00400000" | ||
| 512 | 386 | ||
| 513 | config MEMORY_SET | 387 | config SH_TMU |
| 514 | bool | 388 | bool "TMU timer support" |
| 515 | depends on CPU_SUBTYPE_ST40STB1 && ST40_LMI_MEMORY | ||
| 516 | default y | 389 | default y |
| 517 | |||
| 518 | config BOOT_LINK_OFFSET | ||
| 519 | hex "Link address offset for booting" | ||
| 520 | default "0x00800000" | ||
| 521 | help | 390 | help |
| 522 | This option allows you to set the link address offset of the zImage. | 391 | This enables the use of the TMU as the system timer. |
| 523 | This can be useful if you are on a board which has a small amount of | ||
| 524 | memory. | ||
| 525 | 392 | ||
| 526 | config CPU_LITTLE_ENDIAN | 393 | endmenu |
| 527 | bool "Little Endian" | ||
| 528 | help | ||
| 529 | Some SuperH machines can be configured for either little or big | ||
| 530 | endian byte order. These modes require different kernels. Say Y if | ||
| 531 | your machine is little endian, N if it's a big endian machine. | ||
| 532 | 394 | ||
| 533 | config PREEMPT | 395 | source "arch/sh/boards/renesas/hs7751rvoip/Kconfig" |
| 534 | bool "Preemptible Kernel (EXPERIMENTAL)" | ||
| 535 | depends on EXPERIMENTAL | ||
| 536 | 396 | ||
| 537 | config UBC_WAKEUP | 397 | source "arch/sh/boards/renesas/rts7751r2d/Kconfig" |
| 538 | bool "Wakeup UBC on startup" | 398 | |
| 399 | config SH_PCLK_FREQ_BOOL | ||
| 400 | bool "Set default pclk frequency" | ||
| 401 | default y if !SH_RTC | ||
| 402 | default n | ||
| 403 | |||
| 404 | config SH_PCLK_FREQ | ||
| 405 | int "Peripheral clock frequency (in Hz)" | ||
| 406 | depends on SH_PCLK_FREQ_BOOL | ||
| 407 | default "50000000" if CPU_SUBTYPE_SH7750 || CPU_SUBTYPE_SH7780 | ||
| 408 | default "60000000" if CPU_SUBTYPE_SH7751 | ||
| 409 | default "33333333" if CPU_SUBTYPE_SH7300 || CPU_SUBTYPE_SH7770 || CPU_SUBTYPE_SH7760 | ||
| 410 | default "27000000" if CPU_SUBTYPE_SH73180 | ||
| 411 | default "66000000" if CPU_SUBTYPE_SH4_202 | ||
| 539 | help | 412 | help |
| 540 | Selecting this option will wakeup the User Break Controller (UBC) on | 413 | This option is used to specify the peripheral clock frequency. |
| 541 | startup. Although the UBC is left in an awake state when the processor | 414 | This is necessary for determining the reference clock value on |
| 542 | comes up, some boot loaders misbehave by putting the UBC to sleep in a | 415 | platforms lacking an RTC. |
| 543 | power saving state, which causes issues with things like ptrace(). | ||
| 544 | 416 | ||
| 545 | If unsure, say N. | 417 | menu "CPU Frequency scaling" |
| 418 | |||
| 419 | source "drivers/cpufreq/Kconfig" | ||
| 546 | 420 | ||
| 547 | config SH_WRITETHROUGH | 421 | config SH_CPU_FREQ |
| 548 | bool "Use write-through caching" | 422 | tristate "SuperH CPU Frequency driver" |
| 549 | default y if CPU_SH2 | 423 | depends on CPU_FREQ |
| 424 | select CPU_FREQ_TABLE | ||
| 550 | help | 425 | help |
| 551 | Selecting this option will configure the caches in write-through | 426 | This adds the cpufreq driver for SuperH. At present, only |
| 552 | mode, as opposed to the default write-back configuration. | 427 | the SH-4 is supported. |
| 553 | 428 | ||
| 554 | Since there's sill some aliasing issues on SH-4, this option will | 429 | For details, take a look at <file:Documentation/cpu-freq>. |
| 555 | unfortunately still require the majority of flushing functions to | ||
| 556 | be implemented to deal with aliasing. | ||
| 557 | 430 | ||
| 558 | If unsure, say N. | 431 | If unsure, say N. |
| 559 | 432 | ||
| 560 | config SH_OCRAM | 433 | endmenu |
| 561 | bool "Operand Cache RAM (OCRAM) support" | 434 | |
| 435 | source "arch/sh/drivers/dma/Kconfig" | ||
| 436 | |||
| 437 | source "arch/sh/cchips/Kconfig" | ||
| 438 | |||
| 439 | config HEARTBEAT | ||
| 440 | bool "Heartbeat LED" | ||
| 441 | depends on SH_MPC1211 || SH_SH03 || SH_CAT68701 || \ | ||
| 442 | SH_STB1_HARP || SH_STB1_OVERDRIVE || SH_BIGSUR || \ | ||
| 443 | SH_7751_SOLUTION_ENGINE || SH_7300_SOLUTION_ENGINE || \ | ||
| 444 | SH_73180_SOLUTION_ENGINE || SH_SOLUTION_ENGINE || \ | ||
| 445 | SH_RTS7751R2D || SH_SH4202_MICRODEV || SH_LANDISK | ||
| 562 | help | 446 | help |
| 563 | Selecting this option will automatically tear down the number of | 447 | Use the power-on LED on your machine as a load meter. The exact |
| 564 | sets in the dcache by half, which in turn exposes a memory range. | 448 | behavior is platform-dependent, but normally the flash frequency is |
| 449 | a hyperbolic function of the 5-minute load average. | ||
| 565 | 450 | ||
| 566 | The addresses for the OC RAM base will vary according to the | 451 | endmenu |
| 567 | processor version. Consult vendor documentation for specifics. | ||
| 568 | 452 | ||
| 569 | If unsure, say N. | 453 | config ISA_DMA_API |
| 454 | bool | ||
| 455 | depends on MPC1211 | ||
| 456 | default y | ||
| 570 | 457 | ||
| 571 | config SH_STORE_QUEUES | 458 | menu "Kernel features" |
| 572 | bool "Support for Store Queues" | 459 | |
| 573 | depends on CPU_SH4 | 460 | config KEXEC |
| 461 | bool "kexec system call (EXPERIMENTAL)" | ||
| 462 | depends on EXPERIMENTAL | ||
| 574 | help | 463 | help |
| 575 | Selecting this option will enable an in-kernel API for manipulating | 464 | kexec is a system call that implements the ability to shutdown your |
| 576 | the store queues integrated in the SH-4 processors. | 465 | current kernel, and to start another kernel. It is like a reboot |
| 466 | but it is indepedent of the system firmware. And like a reboot | ||
| 467 | you can start any kernel with it, not just Linux. | ||
| 468 | |||
| 469 | The name comes from the similiarity to the exec system call. | ||
| 470 | |||
| 471 | It is an ongoing process to be certain the hardware in a machine | ||
| 472 | is properly shutdown, so do not be surprised if this code does not | ||
| 473 | initially work for you. It may help to enable device hotplugging | ||
| 474 | support. As of this writing the exact hardware interface is | ||
| 475 | strongly in flux, so no good recommendation can be made. | ||
| 476 | |||
| 477 | config PREEMPT | ||
| 478 | bool "Preemptible Kernel (EXPERIMENTAL)" | ||
| 479 | depends on EXPERIMENTAL | ||
| 577 | 480 | ||
| 578 | config SMP | 481 | config SMP |
| 579 | bool "Symmetric multi-processing support" | 482 | bool "Symmetric multi-processing support" |
| @@ -610,87 +513,58 @@ config NR_CPUS | |||
| 610 | This is purely to save memory - each supported CPU adds | 513 | This is purely to save memory - each supported CPU adds |
| 611 | approximately eight kilobytes to the kernel image. | 514 | approximately eight kilobytes to the kernel image. |
| 612 | 515 | ||
| 613 | config HS7751RVOIP_CODEC | 516 | config CPU_HAS_SR_RB |
| 614 | bool "Support VoIP Codec section" | 517 | bool "CPU has SR.RB" |
| 615 | depends on SH_HS7751RVOIP | 518 | depends on CPU_SH3 || CPU_SH4 |
| 616 | help | ||
| 617 | Selecting this option will support CODEC section. | ||
| 618 | |||
| 619 | config RTS7751R2D_REV11 | ||
| 620 | bool "RTS7751R2D Rev. 1.1 board support" | ||
| 621 | depends on SH_RTS7751R2D | ||
| 622 | help | ||
| 623 | Selecting this option will support version rev. 1.1. | ||
| 624 | |||
| 625 | config SH_PCLK_CALC | ||
| 626 | bool | ||
| 627 | default n if CPU_SUBTYPE_SH7300 || CPU_SUBTYPE_SH73180 | ||
| 628 | default y | 519 | default y |
| 629 | help | 520 | help |
| 630 | This option will cause the PCLK value to be probed at run-time. It | 521 | This will enable the use of SR.RB register bank usage. Processors |
| 631 | will display a notification if the probed value has greater than a | 522 | that are lacking this bit must have another method in place for |
| 632 | 1% variance of the hardcoded CONFIG_SH_PCLK_FREQ. | 523 | accomplishing what is taken care of by the banked registers. |
| 633 | 524 | ||
| 634 | config SH_PCLK_FREQ | 525 | See <file:Documentation/sh/register-banks.txt> for further |
| 635 | int "Peripheral clock frequency (in Hz)" | 526 | information on SR.RB and register banking in the kernel in general. |
| 636 | default "50000000" if CPU_SUBTYPE_SH7750 | ||
| 637 | default "60000000" if CPU_SUBTYPE_SH7751 | ||
| 638 | default "33333333" if CPU_SUBTYPE_SH7300 | ||
| 639 | default "27000000" if CPU_SUBTYPE_SH73180 | ||
| 640 | default "66000000" if CPU_SUBTYPE_SH4_202 | ||
| 641 | default "1193182" | ||
| 642 | help | ||
| 643 | This option is used to specify the peripheral clock frequency. This | ||
| 644 | option must be set for each processor in order for the kernel to | ||
| 645 | function reliably. If no sane default exists, we use a default from | ||
| 646 | the legacy i8254. Any discrepancies will be reported on boot time | ||
| 647 | with an auto-probed frequency which should be considered the proper | ||
| 648 | value for your hardware. | ||
| 649 | 527 | ||
| 650 | menu "CPU Frequency scaling" | 528 | endmenu |
| 651 | 529 | ||
| 652 | source "drivers/cpufreq/Kconfig" | 530 | menu "Boot options" |
| 653 | 531 | ||
| 654 | config SH_CPU_FREQ | 532 | config ZERO_PAGE_OFFSET |
| 655 | tristate "SuperH CPU Frequency driver" | 533 | hex "Zero page offset" |
| 656 | depends on CPU_FREQ | 534 | default "0x00004000" if SH_MPC1211 || SH_SH03 |
| 657 | select CPU_FREQ_TABLE | 535 | default "0x00001000" |
| 658 | help | 536 | help |
| 659 | This adds the cpufreq driver for SuperH. At present, only | 537 | This sets the default offset of zero page. |
| 660 | the SH-4 is supported. | ||
| 661 | |||
| 662 | For details, take a look at <file:Documentation/cpu-freq>. | ||
| 663 | |||
| 664 | If unsure, say N. | ||
| 665 | 538 | ||
| 666 | endmenu | 539 | config BOOT_LINK_OFFSET |
| 540 | hex "Link address offset for booting" | ||
| 541 | default "0x00800000" | ||
| 542 | help | ||
| 543 | This option allows you to set the link address offset of the zImage. | ||
| 544 | This can be useful if you are on a board which has a small amount of | ||
| 545 | memory. | ||
| 667 | 546 | ||
| 668 | source "arch/sh/drivers/dma/Kconfig" | 547 | config UBC_WAKEUP |
| 548 | bool "Wakeup UBC on startup" | ||
| 549 | help | ||
| 550 | Selecting this option will wakeup the User Break Controller (UBC) on | ||
| 551 | startup. Although the UBC is left in an awake state when the processor | ||
| 552 | comes up, some boot loaders misbehave by putting the UBC to sleep in a | ||
| 553 | power saving state, which causes issues with things like ptrace(). | ||
| 669 | 554 | ||
| 670 | source "arch/sh/cchips/Kconfig" | 555 | If unsure, say N. |
| 671 | 556 | ||
| 672 | config HEARTBEAT | 557 | config CMDLINE_BOOL |
| 673 | bool "Heartbeat LED" | 558 | bool "Default bootloader kernel arguments" |
| 674 | depends on SH_MPC1211 || SH_SH03 || SH_CAT68701 || SH_STB1_HARP || SH_STB1_OVERDRIVE || SH_BIGSUR || SH_7751_SOLUTION_ENGINE || SH_7300_SOLUTION_ENGINE || SH_73180_SOLUTION_ENGINE || SH_SOLUTION_ENGINE || SH_RTS7751R2D || SH_SH4202_MICRODEV | ||
| 675 | help | ||
| 676 | Use the power-on LED on your machine as a load meter. The exact | ||
| 677 | behavior is platform-dependent, but normally the flash frequency is | ||
| 678 | a hyperbolic function of the 5-minute load average. | ||
| 679 | 559 | ||
| 680 | config RTC_9701JE | 560 | config CMDLINE |
| 681 | tristate "EPSON RTC-9701JE support" | 561 | string "Initial kernel command string" |
| 682 | depends on SH_RTS7751R2D | 562 | depends on CMDLINE_BOOL |
| 683 | help | 563 | default "console=ttySC1,115200" |
| 684 | Selecting this option will support EPSON RTC-9701JE. | ||
| 685 | 564 | ||
| 686 | endmenu | 565 | endmenu |
| 687 | 566 | ||
| 688 | config ISA_DMA_API | 567 | menu "Bus options" |
| 689 | bool | ||
| 690 | depends on MPC1211 | ||
| 691 | default y | ||
| 692 | |||
| 693 | menu "Bus options (PCI, PCMCIA, EISA, MCA, ISA)" | ||
| 694 | 568 | ||
| 695 | # Even on SuperH devices which don't have an ISA bus, | 569 | # Even on SuperH devices which don't have an ISA bus, |
| 696 | # this variable helps the PCMCIA modules handle | 570 | # this variable helps the PCMCIA modules handle |
| @@ -701,7 +575,7 @@ menu "Bus options (PCI, PCMCIA, EISA, MCA, ISA)" | |||
| 701 | # PCMCIA outright. -- PFM. | 575 | # PCMCIA outright. -- PFM. |
| 702 | config ISA | 576 | config ISA |
| 703 | bool | 577 | bool |
| 704 | default y if PCMCIA || SMC91X | 578 | default y if PCMCIA |
| 705 | help | 579 | help |
| 706 | Find out whether you have ISA slots on your motherboard. ISA is the | 580 | Find out whether you have ISA slots on your motherboard. ISA is the |
| 707 | name of a bus system, i.e. the way the CPU talks to the other stuff | 581 | name of a bus system, i.e. the way the CPU talks to the other stuff |
| @@ -735,10 +609,9 @@ config MCA | |||
| 735 | config SBUS | 609 | config SBUS |
| 736 | bool | 610 | bool |
| 737 | 611 | ||
| 738 | config MAPLE | 612 | config SUPERHYWAY |
| 739 | tristate "Maple Bus support" | 613 | tristate "SuperHyway Bus support" |
| 740 | depends on SH_DREAMCAST | 614 | depends on CPU_SUBTYPE_SH4_202 |
| 741 | default y | ||
| 742 | 615 | ||
| 743 | source "arch/sh/drivers/pci/Kconfig" | 616 | source "arch/sh/drivers/pci/Kconfig" |
| 744 | 617 | ||
diff --git a/arch/sh/Kconfig.debug b/arch/sh/Kconfig.debug index 3fab181da364..8fb31ab2c02c 100644 --- a/arch/sh/Kconfig.debug +++ b/arch/sh/Kconfig.debug | |||
| @@ -17,7 +17,7 @@ config SH_STANDARD_BIOS | |||
| 17 | 17 | ||
| 18 | config EARLY_SCIF_CONSOLE | 18 | config EARLY_SCIF_CONSOLE |
| 19 | bool "Use early SCIF console" | 19 | bool "Use early SCIF console" |
| 20 | depends on CPU_SH4 | 20 | depends on CPU_SH4 || CPU_SH2A && !SH_STANDARD_BIOS |
| 21 | 21 | ||
| 22 | config EARLY_PRINTK | 22 | config EARLY_PRINTK |
| 23 | bool "Early printk support" | 23 | bool "Early printk support" |
diff --git a/arch/sh/Makefile b/arch/sh/Makefile index 67192d6b00d8..08c9515c4806 100644 --- a/arch/sh/Makefile +++ b/arch/sh/Makefile | |||
| @@ -17,10 +17,30 @@ | |||
| 17 | cflags-y := -mb | 17 | cflags-y := -mb |
| 18 | cflags-$(CONFIG_CPU_LITTLE_ENDIAN) := -ml | 18 | cflags-$(CONFIG_CPU_LITTLE_ENDIAN) := -ml |
| 19 | 19 | ||
| 20 | isa-y := any | ||
| 21 | isa-$(CONFIG_CPU_SH2) := sh2 | ||
| 22 | isa-$(CONFIG_CPU_SH3) := sh3 | ||
| 23 | isa-$(CONFIG_CPU_SH4) := sh4 | ||
| 24 | isa-$(CONFIG_CPU_SH4A) := sh4a | ||
| 25 | isa-$(CONFIG_CPU_SH2A) := sh2a | ||
| 26 | |||
| 27 | isa-$(CONFIG_SH_DSP) := $(isa-y)-dsp | ||
| 28 | |||
| 29 | ifndef CONFIG_MMU | ||
| 30 | isa-y := $(isa-y)-nommu | ||
| 31 | endif | ||
| 32 | |||
| 33 | ifndef CONFIG_SH_FPU | ||
| 34 | isa-y := $(isa-y)-nofpu | ||
| 35 | endif | ||
| 36 | |||
| 37 | cflags-y += $(call as-option,-Wa$(comma)-isa=$(isa-y),) | ||
| 38 | |||
| 20 | cflags-$(CONFIG_CPU_SH2) += -m2 | 39 | cflags-$(CONFIG_CPU_SH2) += -m2 |
| 21 | cflags-$(CONFIG_CPU_SH3) += -m3 | 40 | cflags-$(CONFIG_CPU_SH3) += -m3 |
| 22 | cflags-$(CONFIG_CPU_SH4) += -m4 \ | 41 | cflags-$(CONFIG_CPU_SH4) += -m4 \ |
| 23 | $(call cc-option,-mno-implicit-fp,-m4-nofpu) | 42 | $(call cc-option,-mno-implicit-fp,-m4-nofpu) |
| 43 | cflags-$(CONFIG_CPU_SH4A) += $(call cc-option,-m4a-nofpu,) | ||
| 24 | 44 | ||
| 25 | cflags-$(CONFIG_SH_DSP) += -Wa,-dsp | 45 | cflags-$(CONFIG_SH_DSP) += -Wa,-dsp |
| 26 | cflags-$(CONFIG_SH_KGDB) += -g | 46 | cflags-$(CONFIG_SH_KGDB) += -g |
| @@ -67,9 +87,7 @@ machdir-$(CONFIG_SH_7300_SOLUTION_ENGINE) := se/7300 | |||
| 67 | machdir-$(CONFIG_SH_73180_SOLUTION_ENGINE) := se/73180 | 87 | machdir-$(CONFIG_SH_73180_SOLUTION_ENGINE) := se/73180 |
| 68 | machdir-$(CONFIG_SH_STB1_HARP) := harp | 88 | machdir-$(CONFIG_SH_STB1_HARP) := harp |
| 69 | machdir-$(CONFIG_SH_STB1_OVERDRIVE) := overdrive | 89 | machdir-$(CONFIG_SH_STB1_OVERDRIVE) := overdrive |
| 70 | machdir-$(CONFIG_SH_HP620) := hp6xx/hp620 | 90 | machdir-$(CONFIG_SH_HP6XX) := hp6xx |
| 71 | machdir-$(CONFIG_SH_HP680) := hp6xx/hp680 | ||
| 72 | machdir-$(CONFIG_SH_HP690) := hp6xx/hp690 | ||
| 73 | machdir-$(CONFIG_SH_CQREEK) := cqreek | 91 | machdir-$(CONFIG_SH_CQREEK) := cqreek |
| 74 | machdir-$(CONFIG_SH_DMIDA) := dmida | 92 | machdir-$(CONFIG_SH_DMIDA) := dmida |
| 75 | machdir-$(CONFIG_SH_EC3104) := ec3104 | 93 | machdir-$(CONFIG_SH_EC3104) := ec3104 |
| @@ -119,31 +137,39 @@ boot := arch/sh/boot | |||
| 119 | 137 | ||
| 120 | CPPFLAGS_vmlinux.lds := -traditional | 138 | CPPFLAGS_vmlinux.lds := -traditional |
| 121 | 139 | ||
| 140 | ifneq ($(KBUILD_SRC),) | ||
| 141 | incdir-prefix := $(srctree)/include/asm-sh/ | ||
| 142 | else | ||
| 143 | incdir-prefix := | ||
| 144 | endif | ||
| 145 | |||
| 122 | # Update machine arch and proc symlinks if something which affects | 146 | # Update machine arch and proc symlinks if something which affects |
| 123 | # them changed. We use .arch and .mach to indicate when they were | 147 | # them changed. We use .arch and .mach to indicate when they were |
| 124 | # updated last, otherwise make uses the target directory mtime. | 148 | # updated last, otherwise make uses the target directory mtime. |
| 125 | 149 | ||
| 126 | include/asm-sh/.cpu: $(wildcard include/config/cpu/*.h) include/config/MARKER | 150 | include/asm-sh/.cpu: $(wildcard include/config/cpu/*.h) include/config/MARKER |
| 127 | @echo ' SYMLINK include/asm-sh/cpu -> include/asm-sh/$(cpuincdir-y)' | 151 | @echo ' SYMLINK include/asm-sh/cpu -> include/asm-sh/$(cpuincdir-y)' |
| 128 | ifneq ($(KBUILD_SRC),) | 152 | $(Q)if [ ! -d include/asm-sh ]; then mkdir -p include/asm-sh; fi |
| 129 | $(Q)mkdir -p include/asm-sh | 153 | $(Q)ln -fsn $(incdir-prefix)$(cpuincdir-y) include/asm-sh/cpu |
| 130 | $(Q)ln -fsn $(srctree)/include/asm-sh/$(cpuincdir-y) include/asm-sh/cpu | ||
| 131 | else | ||
| 132 | $(Q)ln -fsn $(cpuincdir-y) include/asm-sh/cpu | ||
| 133 | endif | ||
| 134 | @touch $@ | 154 | @touch $@ |
| 135 | 155 | ||
| 156 | # Most boards have their own mach directories. For the ones that | ||
| 157 | # don't, just reference the parent directory so the semantics are | ||
| 158 | # kept roughly the same. | ||
| 159 | |||
| 136 | include/asm-sh/.mach: $(wildcard include/config/sh/*.h) include/config/MARKER | 160 | include/asm-sh/.mach: $(wildcard include/config/sh/*.h) include/config/MARKER |
| 137 | @echo ' SYMLINK include/asm-sh/mach -> include/asm-sh/$(incdir-y)' | 161 | @echo -n ' SYMLINK include/asm-sh/mach -> ' |
| 138 | ifneq ($(KBUILD_SRC),) | 162 | $(Q)if [ ! -d include/asm-sh ]; then mkdir -p include/asm-sh; fi |
| 139 | $(Q)mkdir -p include/asm-sh | 163 | $(Q)if [ -d $(incdir-prefix)$(incdir-y) ]; then \ |
| 140 | $(Q)ln -fsn $(srctree)/include/asm-sh/$(incdir-y) include/asm-sh/mach | 164 | echo -e 'include/asm-sh/$(incdir-y)'; \ |
| 141 | else | 165 | ln -fsn $(incdir-prefix)$(incdir-y) \ |
| 142 | $(Q)ln -fsn $(incdir-y) include/asm-sh/mach | 166 | include/asm-sh/mach; \ |
| 143 | endif | 167 | else \ |
| 168 | echo -e 'include/asm-sh'; \ | ||
| 169 | ln -fsn $(incdir-prefix) include/asm-sh/mach; \ | ||
| 170 | fi | ||
| 144 | @touch $@ | 171 | @touch $@ |
| 145 | 172 | ||
| 146 | |||
| 147 | archprepare: maketools include/asm-sh/.cpu include/asm-sh/.mach | 173 | archprepare: maketools include/asm-sh/.cpu include/asm-sh/.mach |
| 148 | 174 | ||
| 149 | .PHONY: maketools FORCE | 175 | .PHONY: maketools FORCE |
diff --git a/arch/sh/mm/Kconfig b/arch/sh/mm/Kconfig new file mode 100644 index 000000000000..fb586b1cf8bb --- /dev/null +++ b/arch/sh/mm/Kconfig | |||
| @@ -0,0 +1,233 @@ | |||
| 1 | menu "Processor selection" | ||
| 2 | |||
| 3 | # | ||
| 4 | # Processor families | ||
| 5 | # | ||
| 6 | config CPU_SH2 | ||
| 7 | bool | ||
| 8 | select SH_WRITETHROUGH | ||
| 9 | |||
| 10 | config CPU_SH3 | ||
| 11 | bool | ||
| 12 | select CPU_HAS_INTEVT | ||
| 13 | select CPU_HAS_SR_RB | ||
| 14 | |||
| 15 | config CPU_SH4 | ||
| 16 | bool | ||
| 17 | select CPU_HAS_INTEVT | ||
| 18 | select CPU_HAS_SR_RB | ||
| 19 | |||
| 20 | config CPU_SH4A | ||
| 21 | bool | ||
| 22 | select CPU_SH4 | ||
| 23 | select CPU_HAS_INTC2_IRQ | ||
| 24 | |||
| 25 | config CPU_SUBTYPE_ST40 | ||
| 26 | bool | ||
| 27 | select CPU_SH4 | ||
| 28 | select CPU_HAS_INTC2_IRQ | ||
| 29 | |||
| 30 | # | ||
| 31 | # Processor subtypes | ||
| 32 | # | ||
| 33 | |||
| 34 | comment "SH-2 Processor Support" | ||
| 35 | |||
| 36 | config CPU_SUBTYPE_SH7604 | ||
| 37 | bool "Support SH7604 processor" | ||
| 38 | select CPU_SH2 | ||
| 39 | |||
| 40 | comment "SH-3 Processor Support" | ||
| 41 | |||
| 42 | config CPU_SUBTYPE_SH7300 | ||
| 43 | bool "Support SH7300 processor" | ||
| 44 | select CPU_SH3 | ||
| 45 | |||
| 46 | config CPU_SUBTYPE_SH7705 | ||
| 47 | bool "Support SH7705 processor" | ||
| 48 | select CPU_SH3 | ||
| 49 | select CPU_HAS_PINT_IRQ | ||
| 50 | |||
| 51 | config CPU_SUBTYPE_SH7707 | ||
| 52 | bool "Support SH7707 processor" | ||
| 53 | select CPU_SH3 | ||
| 54 | select CPU_HAS_PINT_IRQ | ||
| 55 | help | ||
| 56 | Select SH7707 if you have a 60 Mhz SH-3 HD6417707 CPU. | ||
| 57 | |||
| 58 | config CPU_SUBTYPE_SH7708 | ||
| 59 | bool "Support SH7708 processor" | ||
| 60 | select CPU_SH3 | ||
| 61 | help | ||
| 62 | Select SH7708 if you have a 60 Mhz SH-3 HD6417708S or | ||
| 63 | if you have a 100 Mhz SH-3 HD6417708R CPU. | ||
| 64 | |||
| 65 | config CPU_SUBTYPE_SH7709 | ||
| 66 | bool "Support SH7709 processor" | ||
| 67 | select CPU_SH3 | ||
| 68 | select CPU_HAS_PINT_IRQ | ||
| 69 | help | ||
| 70 | Select SH7709 if you have a 80 Mhz SH-3 HD6417709 CPU. | ||
| 71 | |||
| 72 | comment "SH-4 Processor Support" | ||
| 73 | |||
| 74 | config CPU_SUBTYPE_SH7750 | ||
| 75 | bool "Support SH7750 processor" | ||
| 76 | select CPU_SH4 | ||
| 77 | help | ||
| 78 | Select SH7750 if you have a 200 Mhz SH-4 HD6417750 CPU. | ||
| 79 | |||
| 80 | config CPU_SUBTYPE_SH7091 | ||
| 81 | bool "Support SH7091 processor" | ||
| 82 | select CPU_SH4 | ||
| 83 | select CPU_SUBTYPE_SH7750 | ||
| 84 | help | ||
| 85 | Select SH7091 if you have an SH-4 based Sega device (such as | ||
| 86 | the Dreamcast, Naomi, and Naomi 2). | ||
| 87 | |||
| 88 | config CPU_SUBTYPE_SH7750R | ||
| 89 | bool "Support SH7750R processor" | ||
| 90 | select CPU_SH4 | ||
| 91 | select CPU_SUBTYPE_SH7750 | ||
| 92 | |||
| 93 | config CPU_SUBTYPE_SH7750S | ||
| 94 | bool "Support SH7750S processor" | ||
| 95 | select CPU_SH4 | ||
| 96 | select CPU_SUBTYPE_SH7750 | ||
| 97 | |||
| 98 | config CPU_SUBTYPE_SH7751 | ||
| 99 | bool "Support SH7751 processor" | ||
| 100 | select CPU_SH4 | ||
| 101 | help | ||
| 102 | Select SH7751 if you have a 166 Mhz SH-4 HD6417751 CPU, | ||
| 103 | or if you have a HD6417751R CPU. | ||
| 104 | |||
| 105 | config CPU_SUBTYPE_SH7751R | ||
| 106 | bool "Support SH7751R processor" | ||
| 107 | select CPU_SH4 | ||
| 108 | select CPU_SUBTYPE_SH7751 | ||
| 109 | |||
| 110 | config CPU_SUBTYPE_SH7760 | ||
| 111 | bool "Support SH7760 processor" | ||
| 112 | select CPU_SH4 | ||
| 113 | select CPU_HAS_INTC2_IRQ | ||
| 114 | |||
| 115 | config CPU_SUBTYPE_SH4_202 | ||
| 116 | bool "Support SH4-202 processor" | ||
| 117 | select CPU_SH4 | ||
| 118 | |||
| 119 | comment "ST40 Processor Support" | ||
| 120 | |||
| 121 | config CPU_SUBTYPE_ST40STB1 | ||
| 122 | bool "Support ST40STB1/ST40RA processors" | ||
| 123 | select CPU_SUBTYPE_ST40 | ||
| 124 | help | ||
| 125 | Select ST40STB1 if you have a ST40RA CPU. | ||
| 126 | This was previously called the ST40STB1, hence the option name. | ||
| 127 | |||
| 128 | config CPU_SUBTYPE_ST40GX1 | ||
| 129 | bool "Support ST40GX1 processor" | ||
| 130 | select CPU_SUBTYPE_ST40 | ||
| 131 | help | ||
| 132 | Select ST40GX1 if you have a ST40GX1 CPU. | ||
| 133 | |||
| 134 | comment "SH-4A Processor Support" | ||
| 135 | |||
| 136 | config CPU_SUBTYPE_SH73180 | ||
| 137 | bool "Support SH73180 processor" | ||
| 138 | select CPU_SH4A | ||
| 139 | |||
| 140 | config CPU_SUBTYPE_SH7770 | ||
| 141 | bool "Support SH7770 processor" | ||
| 142 | select CPU_SH4A | ||
| 143 | |||
| 144 | config CPU_SUBTYPE_SH7780 | ||
| 145 | bool "Support SH7780 processor" | ||
| 146 | select CPU_SH4A | ||
| 147 | |||
| 148 | endmenu | ||
| 149 | |||
| 150 | menu "Memory management options" | ||
| 151 | |||
| 152 | config MMU | ||
| 153 | bool "Support for memory management hardware" | ||
| 154 | depends on !CPU_SH2 | ||
| 155 | default y | ||
| 156 | help | ||
| 157 | Some SH processors (such as SH-2/SH-2A) lack an MMU. In order to | ||
| 158 | boot on these systems, this option must not be set. | ||
| 159 | |||
| 160 | On other systems (such as the SH-3 and 4) where an MMU exists, | ||
| 161 | turning this off will boot the kernel on these machines with the | ||
| 162 | MMU implicitly switched off. | ||
| 163 | |||
| 164 | config 32BIT | ||
| 165 | bool "Support 32-bit physical addressing through PMB" | ||
| 166 | depends on CPU_SH4A | ||
| 167 | default y | ||
| 168 | help | ||
| 169 | If you say Y here, physical addressing will be extended to | ||
| 170 | 32-bits through the SH-4A PMB. If this is not set, legacy | ||
| 171 | 29-bit physical addressing will be used. | ||
| 172 | |||
| 173 | choice | ||
| 174 | prompt "HugeTLB page size" | ||
| 175 | depends on HUGETLB_PAGE && CPU_SH4 && MMU | ||
| 176 | default HUGETLB_PAGE_SIZE_64K | ||
| 177 | |||
| 178 | config HUGETLB_PAGE_SIZE_64K | ||
| 179 | bool "64K" | ||
| 180 | |||
| 181 | config HUGETLB_PAGE_SIZE_1MB | ||
| 182 | bool "1MB" | ||
| 183 | |||
| 184 | endchoice | ||
| 185 | |||
| 186 | source "mm/Kconfig" | ||
| 187 | |||
| 188 | endmenu | ||
| 189 | |||
| 190 | menu "Cache configuration" | ||
| 191 | |||
| 192 | config SH7705_CACHE_32KB | ||
| 193 | bool "Enable 32KB cache size for SH7705" | ||
| 194 | depends on CPU_SUBTYPE_SH7705 | ||
| 195 | default y | ||
| 196 | |||
| 197 | config SH_DIRECT_MAPPED | ||
| 198 | bool "Use direct-mapped caching" | ||
| 199 | default n | ||
| 200 | help | ||
| 201 | Selecting this option will configure the caches to be direct-mapped, | ||
| 202 | even if the cache supports a 2 or 4-way mode. This is useful primarily | ||
| 203 | for debugging on platforms with 2 and 4-way caches (SH7750R/SH7751R, | ||
| 204 | SH4-202, SH4-501, etc.) | ||
| 205 | |||
| 206 | Turn this option off for platforms that do not have a direct-mapped | ||
| 207 | cache, and you have no need to run the caches in such a configuration. | ||
| 208 | |||
| 209 | config SH_WRITETHROUGH | ||
| 210 | bool "Use write-through caching" | ||
| 211 | default y if CPU_SH2 | ||
| 212 | help | ||
| 213 | Selecting this option will configure the caches in write-through | ||
| 214 | mode, as opposed to the default write-back configuration. | ||
| 215 | |||
| 216 | Since there's sill some aliasing issues on SH-4, this option will | ||
| 217 | unfortunately still require the majority of flushing functions to | ||
| 218 | be implemented to deal with aliasing. | ||
| 219 | |||
| 220 | If unsure, say N. | ||
| 221 | |||
| 222 | config SH_OCRAM | ||
| 223 | bool "Operand Cache RAM (OCRAM) support" | ||
| 224 | help | ||
| 225 | Selecting this option will automatically tear down the number of | ||
| 226 | sets in the dcache by half, which in turn exposes a memory range. | ||
| 227 | |||
| 228 | The addresses for the OC RAM base will vary according to the | ||
| 229 | processor version. Consult vendor documentation for specifics. | ||
| 230 | |||
| 231 | If unsure, say N. | ||
| 232 | |||
| 233 | endmenu | ||
