1# SPDX-License-Identifier: GPL-2.0 2config M32R 3 bool 4 default y 5 select HAVE_IDE 6 select HAVE_OPROFILE 7 select INIT_ALL_POSSIBLE 8 select HAVE_KERNEL_GZIP 9 select HAVE_KERNEL_BZIP2 10 select HAVE_KERNEL_LZMA 11 select ARCH_WANT_IPC_PARSE_VERSION 12 select HAVE_DEBUG_BUGVERBOSE 13 select VIRT_TO_BUS 14 select GENERIC_IRQ_PROBE 15 select GENERIC_IRQ_SHOW 16 select GENERIC_ATOMIC64 17 select ARCH_HAS_DEVMEM_IS_ALLOWED 18 select ARCH_USES_GETTIMEOFFSET 19 select MODULES_USE_ELF_RELA 20 select HAVE_DEBUG_STACKOVERFLOW 21 select CPU_NO_EFFICIENT_FFS 22 select DMA_NOOP_OPS 23 select ARCH_NO_COHERENT_DMA_MMAP if !MMU 24 25config SBUS 26 bool 27 28config GENERIC_ISA_DMA 29 bool 30 default y 31 32config ZONE_DMA 33 bool 34 default y 35 36config NO_IOPORT_MAP 37 def_bool y 38 39config NO_DMA 40 def_bool n 41 42config HZ 43 int 44 default 100 45 46source "init/Kconfig" 47 48source "kernel/Kconfig.freezer" 49 50 51menu "Processor type and features" 52 53choice 54 prompt "Platform Type" 55 default PLAT_MAPPI 56 57config PLAT_MAPPI 58 bool "Mappi-I" 59 help 60 The Mappi-I is an FPGA board for SOC (System-On-a-Chip) prototyping. 61 You can operate a Linux system on this board by using an M32R 62 softmacro core, which is a fully-synthesizable functional model 63 described in Verilog-HDL. 64 65 The Mappi-I board was the first platform, which had been used 66 to port and develop a Linux system for the M32R processor. 67 Currently, the Mappi-II, an heir to the Mappi-I, is available. 68 69config PLAT_USRV 70 bool "uServer" 71 select PLAT_HAS_INT1ICU 72 73config PLAT_M32700UT 74 bool "M32700UT" 75 select PLAT_HAS_INT0ICU 76 select PLAT_HAS_INT1ICU 77 select PLAT_HAS_INT2ICU 78 help 79 The M3T-M32700UT is an evaluation board based on uT-Engine 80 specification. This board has an M32700 (Chaos) evaluation chip. 81 You can say Y for SMP, because the M32700 is a single chip 82 multiprocessor. 83 84config PLAT_OPSPUT 85 bool "OPSPUT" 86 select PLAT_HAS_INT0ICU 87 select PLAT_HAS_INT1ICU 88 select PLAT_HAS_INT2ICU 89 help 90 The OPSPUT is an evaluation board based on uT-Engine 91 specification. This board has a OPSP-REP chip. 92 93config PLAT_OAKS32R 94 bool "OAKS32R" 95 help 96 The OAKS32R is a tiny, inexpensive evaluation board. 97 Please note that if you say Y here and choose chip "M32102", 98 say N for MMU and select a no-MMU version kernel, otherwise 99 a kernel with MMU support will not work, because the M32102 100 is a microcontroller for embedded systems and it has no MMU. 101 102config PLAT_MAPPI2 103 bool "Mappi-II(M3A-ZA36/M3A-ZA52)" 104 105config PLAT_MAPPI3 106 bool "Mappi-III(M3A-2170)" 107 108config PLAT_M32104UT 109 bool "M32104UT" 110 select PLAT_HAS_INT1ICU 111 help 112 The M3T-M32104UT is an reference board based on uT-Engine 113 specification. This board has a M32104 chip. 114 115endchoice 116 117choice 118 prompt "Processor family" 119 default CHIP_M32700 120 121config CHIP_M32700 122 bool "M32700 (Chaos)" 123 124config CHIP_M32102 125 bool "M32102" 126 127config CHIP_M32104 128 bool "M32104" 129 depends on PLAT_M32104UT 130 131config CHIP_VDEC2 132 bool "VDEC2" 133 134config CHIP_OPSP 135 bool "OPSP" 136 137endchoice 138 139config MMU 140 bool "Support for memory management hardware" 141 depends on CHIP_M32700 || CHIP_VDEC2 || CHIP_OPSP 142 default y 143 144config TLB_ENTRIES 145 int "TLB Entries" 146 depends on CHIP_M32700 || CHIP_VDEC2 || CHIP_OPSP 147 default 32 if CHIP_M32700 || CHIP_OPSP 148 default 16 if CHIP_VDEC2 149 150 151config ISA_M32R 152 bool 153 depends on CHIP_M32102 || CHIP_M32104 154 default y 155 156config ISA_M32R2 157 bool 158 depends on CHIP_M32700 || CHIP_VDEC2 || CHIP_OPSP 159 default y 160 161config ISA_DSP_LEVEL2 162 bool 163 depends on CHIP_M32700 || CHIP_OPSP 164 default y 165 166config ISA_DUAL_ISSUE 167 bool 168 depends on CHIP_M32700 || CHIP_OPSP 169 default y 170 171config PLAT_HAS_INT0ICU 172 bool 173 default n 174 175config PLAT_HAS_INT1ICU 176 bool 177 default n 178 179config PLAT_HAS_INT2ICU 180 bool 181 default n 182 183config BUS_CLOCK 184 int "Bus Clock [Hz] (integer)" 185 default "70000000" if PLAT_MAPPI 186 default "25000000" if PLAT_USRV 187 default "50000000" if PLAT_MAPPI3 188 default "50000000" if PLAT_M32700UT 189 default "50000000" if PLAT_OPSPUT 190 default "54000000" if PLAT_M32104UT 191 default "33333333" if PLAT_OAKS32R 192 default "20000000" if PLAT_MAPPI2 193 194config TIMER_DIVIDE 195 int "Timer divider (integer)" 196 default "128" 197 198config CPU_BIG_ENDIAN 199 bool 200 default !CPU_LITTLE_ENDIAN 201 202config CPU_LITTLE_ENDIAN 203 bool "Generate little endian code" 204 default n 205 206config MEMORY_START 207 hex "Physical memory start address (hex)" 208 default "08000000" if PLAT_MAPPI || PLAT_MAPPI2 || PLAT_MAPPI3 209 default "08000000" if PLAT_USRV 210 default "08000000" if PLAT_M32700UT 211 default "08000000" if PLAT_OPSPUT 212 default "04000000" if PLAT_M32104UT 213 default "01000000" if PLAT_OAKS32R 214 215config MEMORY_SIZE 216 hex "Physical memory size (hex)" 217 default "08000000" if PLAT_MAPPI3 218 default "04000000" if PLAT_MAPPI || PLAT_MAPPI2 219 default "02000000" if PLAT_USRV 220 default "01000000" if PLAT_M32700UT 221 default "01000000" if PLAT_OPSPUT 222 default "01000000" if PLAT_M32104UT 223 default "00800000" if PLAT_OAKS32R 224 225config ARCH_DISCONTIGMEM_ENABLE 226 bool "Internal RAM Support" 227 depends on CHIP_M32700 || CHIP_M32102 || CHIP_VDEC2 || CHIP_OPSP || CHIP_M32104 228 default y 229 230source "mm/Kconfig" 231 232config IRAM_START 233 hex "Internal memory start address (hex)" 234 default "00f00000" if !CHIP_M32104 235 default "00700000" if CHIP_M32104 236 depends on (CHIP_M32700 || CHIP_M32102 || CHIP_VDEC2 || CHIP_OPSP || CHIP_M32104) && DISCONTIGMEM 237 238config IRAM_SIZE 239 hex "Internal memory size (hex)" 240 depends on (CHIP_M32700 || CHIP_M32102 || CHIP_VDEC2 || CHIP_OPSP || CHIP_M32104) && DISCONTIGMEM 241 default "00080000" if CHIP_M32700 242 default "00010000" if CHIP_M32102 || CHIP_OPSP || CHIP_M32104 243 default "00008000" if CHIP_VDEC2 244 245# 246# Define implied options from the CPU selection here 247# 248 249config GENERIC_LOCKBREAK 250 bool 251 default y 252 depends on SMP && PREEMPT 253 254config RWSEM_GENERIC_SPINLOCK 255 bool 256 depends on M32R 257 default y 258 259config RWSEM_XCHGADD_ALGORITHM 260 bool 261 default n 262 263config ARCH_HAS_ILOG2_U32 264 bool 265 default n 266 267config ARCH_HAS_ILOG2_U64 268 bool 269 default n 270 271config GENERIC_HWEIGHT 272 bool 273 default y 274 275config GENERIC_CALIBRATE_DELAY 276 bool 277 default y 278 279config SCHED_OMIT_FRAME_POINTER 280 bool 281 default y 282 283source "kernel/Kconfig.preempt" 284 285config SMP 286 bool "Symmetric multi-processing support" 287 depends on MMU 288 ---help--- 289 This enables support for systems with more than one CPU. If you have 290 a system with only one CPU, say N. If you have a system with more 291 than one CPU, say Y. 292 293 If you say N here, the kernel will run on uni- and multiprocessor 294 machines, but will use only one CPU of a multiprocessor machine. If 295 you say Y here, the kernel will run on many, but not all, 296 uniprocessor machines. On a uniprocessor machine, the kernel 297 will run faster if you say N here. 298 299 People using multiprocessor machines who say Y here should also say 300 Y to "Enhanced Real Time Clock Support", below. The "Advanced Power 301 Management" code will be disabled if you say Y here. 302 303 See also the SMP-HOWTO available at 304 <http://tldp.org/HOWTO/SMP-HOWTO.html>. 305 306 If you don't know what to do here, say N. 307 308config CHIP_M32700_TS1 309 bool "Workaround code for the M32700 TS1 chip's bug" 310 depends on (CHIP_M32700 && SMP) 311 default n 312 313config NR_CPUS 314 int "Maximum number of CPUs (2-32)" 315 range 2 32 316 depends on SMP 317 default "2" 318 help 319 This allows you to specify the maximum number of CPUs which this 320 kernel will support. The maximum supported value is 32 and the 321 minimum value which makes sense is 2. 322 323 This is purely to save memory - each supported CPU adds 324 approximately eight kilobytes to the kernel image. 325 326# Common NUMA Features 327config NUMA 328 bool "Numa Memory Allocation Support" 329 depends on SMP && BROKEN 330 default n 331 332config NODES_SHIFT 333 int 334 default "1" 335 depends on NEED_MULTIPLE_NODES 336 337endmenu 338 339 340menu "Bus options (PCI, PCMCIA, EISA, MCA, ISA)" 341 342config PCI 343 bool "PCI support" 344 depends on BROKEN 345 default n 346 help 347 Find out whether you have a PCI motherboard. PCI is the name of a 348 bus system, i.e. the way the CPU talks to the other stuff inside 349 your box. Other bus systems are ISA, EISA, MicroChannel (MCA) or 350 VESA. If you have PCI, say Y, otherwise N. 351 352choice 353 prompt "PCI access mode" 354 depends on PCI 355 default PCI_GOANY 356 357config PCI_GOBIOS 358 bool "BIOS" 359 ---help--- 360 On PCI systems, the BIOS can be used to detect the PCI devices and 361 determine their configuration. However, some old PCI motherboards 362 have BIOS bugs and may crash if this is done. Also, some embedded 363 PCI-based systems don't have any BIOS at all. Linux can also try to 364 detect the PCI hardware directly without using the BIOS. 365 366 With this option, you can specify how Linux should detect the PCI 367 devices. If you choose "BIOS", the BIOS will be used, if you choose 368 "Direct", the BIOS won't be used, and if you choose "Any", the 369 kernel will try the direct access method and falls back to the BIOS 370 if that doesn't work. If unsure, go with the default, which is 371 "Any". 372 373config PCI_GODIRECT 374 bool "Direct" 375 376config PCI_GOANY 377 bool "Any" 378 379endchoice 380 381config PCI_BIOS 382 bool 383 depends on PCI && (PCI_GOBIOS || PCI_GOANY) 384 default y 385 386config PCI_DIRECT 387 bool 388 depends on PCI && (PCI_GODIRECT || PCI_GOANY) 389 default y 390 391source "drivers/pci/Kconfig" 392 393config ISA 394 bool 395 396source "drivers/pcmcia/Kconfig" 397 398endmenu 399 400 401menu "Executable file formats" 402 403source "fs/Kconfig.binfmt" 404 405endmenu 406 407source "net/Kconfig" 408 409source "drivers/Kconfig" 410 411source "fs/Kconfig" 412 413source "arch/m32r/Kconfig.debug" 414 415source "security/Kconfig" 416 417source "crypto/Kconfig" 418 419source "lib/Kconfig" 420