1config ZONE_DMA 2 def_bool y 3 4config XTENSA 5 def_bool y 6 select ARCH_WANT_FRAME_POINTERS 7 select ARCH_WANT_IPC_PARSE_VERSION 8 select ARCH_WANT_OPTIONAL_GPIOLIB 9 select BUILDTIME_EXTABLE_SORT 10 select CLONE_BACKWARDS 11 select COMMON_CLK 12 select GENERIC_ATOMIC64 13 select GENERIC_CLOCKEVENTS 14 select GENERIC_IRQ_SHOW 15 select GENERIC_PCI_IOMAP 16 select GENERIC_SCHED_CLOCK 17 select HAVE_FUNCTION_TRACER 18 select HAVE_IRQ_TIME_ACCOUNTING 19 select HAVE_OPROFILE 20 select HAVE_PERF_EVENTS 21 select IRQ_DOMAIN 22 select MODULES_USE_ELF_RELA 23 select VIRT_TO_BUS 24 help 25 Xtensa processors are 32-bit RISC machines designed by Tensilica 26 primarily for embedded systems. These processors are both 27 configurable and extensible. The Linux port to the Xtensa 28 architecture supports all processor configurations and extensions, 29 with reasonable minimum requirements. The Xtensa Linux project has 30 a home page at <http://www.linux-xtensa.org/>. 31 32config RWSEM_XCHGADD_ALGORITHM 33 def_bool y 34 35config GENERIC_HWEIGHT 36 def_bool y 37 38config ARCH_HAS_ILOG2_U32 39 def_bool n 40 41config ARCH_HAS_ILOG2_U64 42 def_bool n 43 44config NO_IOPORT_MAP 45 def_bool n 46 47config HZ 48 int 49 default 100 50 51source "init/Kconfig" 52source "kernel/Kconfig.freezer" 53 54config LOCKDEP_SUPPORT 55 def_bool y 56 57config STACKTRACE_SUPPORT 58 def_bool y 59 60config TRACE_IRQFLAGS_SUPPORT 61 def_bool y 62 63config MMU 64 bool 65 default n if !XTENSA_VARIANT_CUSTOM 66 default XTENSA_VARIANT_MMU if XTENSA_VARIANT_CUSTOM 67 68config VARIANT_IRQ_SWITCH 69 def_bool n 70 71config HAVE_XTENSA_GPIO32 72 def_bool n 73 74config MAY_HAVE_SMP 75 def_bool n 76 77menu "Processor type and features" 78 79choice 80 prompt "Xtensa Processor Configuration" 81 default XTENSA_VARIANT_FSF 82 83config XTENSA_VARIANT_FSF 84 bool "fsf - default (not generic) configuration" 85 select MMU 86 87config XTENSA_VARIANT_DC232B 88 bool "dc232b - Diamond 232L Standard Core Rev.B (LE)" 89 select MMU 90 select HAVE_XTENSA_GPIO32 91 help 92 This variant refers to Tensilica's Diamond 232L Standard core Rev.B (LE). 93 94config XTENSA_VARIANT_DC233C 95 bool "dc233c - Diamond 233L Standard Core Rev.C (LE)" 96 select MMU 97 select HAVE_XTENSA_GPIO32 98 help 99 This variant refers to Tensilica's Diamond 233L Standard core Rev.C (LE). 100 101config XTENSA_VARIANT_S6000 102 bool "s6000 - Stretch software configurable processor" 103 select VARIANT_IRQ_SWITCH 104 select ARCH_REQUIRE_GPIOLIB 105 select XTENSA_CALIBRATE_CCOUNT 106 107config XTENSA_VARIANT_CUSTOM 108 bool "Custom Xtensa processor configuration" 109 select MAY_HAVE_SMP 110 select HAVE_XTENSA_GPIO32 111 help 112 Select this variant to use a custom Xtensa processor configuration. 113 You will be prompted for a processor variant CORENAME. 114endchoice 115 116config XTENSA_VARIANT_CUSTOM_NAME 117 string "Xtensa Processor Custom Core Variant Name" 118 depends on XTENSA_VARIANT_CUSTOM 119 help 120 Provide the name of a custom Xtensa processor variant. 121 This CORENAME selects arch/xtensa/variant/CORENAME. 122 Dont forget you have to select MMU if you have one. 123 124config XTENSA_VARIANT_NAME 125 string 126 default "dc232b" if XTENSA_VARIANT_DC232B 127 default "dc233c" if XTENSA_VARIANT_DC233C 128 default "fsf" if XTENSA_VARIANT_FSF 129 default "s6000" if XTENSA_VARIANT_S6000 130 default XTENSA_VARIANT_CUSTOM_NAME if XTENSA_VARIANT_CUSTOM 131 132config XTENSA_VARIANT_MMU 133 bool "Core variant has a Full MMU (TLB, Pages, Protection, etc)" 134 depends on XTENSA_VARIANT_CUSTOM 135 default y 136 help 137 Build a Conventional Kernel with full MMU support, 138 ie: it supports a TLB with auto-loading, page protection. 139 140config XTENSA_UNALIGNED_USER 141 bool "Unaligned memory access in use space" 142 help 143 The Xtensa architecture currently does not handle unaligned 144 memory accesses in hardware but through an exception handler. 145 Per default, unaligned memory accesses are disabled in user space. 146 147 Say Y here to enable unaligned memory access in user space. 148 149source "kernel/Kconfig.preempt" 150 151config HAVE_SMP 152 bool "System Supports SMP (MX)" 153 depends on MAY_HAVE_SMP 154 select XTENSA_MX 155 help 156 This option is use to indicate that the system-on-a-chip (SOC) 157 supports Multiprocessing. Multiprocessor support implemented above 158 the CPU core definition and currently needs to be selected manually. 159 160 Multiprocessor support in implemented with external cache and 161 interrupt controlers. 162 163 The MX interrupt distributer adds Interprocessor Interrupts 164 and causes the IRQ numbers to be increased by 4 for devices 165 like the open cores ethernet driver and the serial interface. 166 167 You still have to select "Enable SMP" to enable SMP on this SOC. 168 169config SMP 170 bool "Enable Symmetric multi-processing support" 171 depends on HAVE_SMP 172 select GENERIC_SMP_IDLE_THREAD 173 help 174 Enabled SMP Software; allows more than one CPU/CORE 175 to be activated during startup. 176 177config NR_CPUS 178 depends on SMP 179 int "Maximum number of CPUs (2-32)" 180 range 2 32 181 default "4" 182 183config HOTPLUG_CPU 184 bool "Enable CPU hotplug support" 185 depends on SMP 186 help 187 Say Y here to allow turning CPUs off and on. CPUs can be 188 controlled through /sys/devices/system/cpu. 189 190 Say N if you want to disable CPU hotplug. 191 192config INITIALIZE_XTENSA_MMU_INSIDE_VMLINUX 193 bool "Initialize Xtensa MMU inside the Linux kernel code" 194 depends on MMU 195 default y 196 help 197 Earlier version initialized the MMU in the exception vector 198 before jumping to _startup in head.S and had an advantage that 199 it was possible to place a software breakpoint at 'reset' and 200 then enter your normal kernel breakpoints once the MMU was mapped 201 to the kernel mappings (0XC0000000). 202 203 This unfortunately doesn't work for U-Boot and likley also wont 204 work for using KEXEC to have a hot kernel ready for doing a 205 KDUMP. 206 207 So now the MMU is initialized in head.S but it's necessary to 208 use hardware breakpoints (gdb 'hbreak' cmd) to break at _startup. 209 xt-gdb can't place a Software Breakpoint in the 0XD region prior 210 to mapping the MMU and after mapping even if the area of low memory 211 was mapped gdb wouldn't remove the breakpoint on hitting it as the 212 PC wouldn't match. Since Hardware Breakpoints are recommended for 213 Linux configurations it seems reasonable to just assume they exist 214 and leave this older mechanism for unfortunate souls that choose 215 not to follow Tensilica's recommendation. 216 217 Selecting this will cause U-Boot to set the KERNEL Load and Entry 218 address at 0x00003000 instead of the mapped std of 0xD0003000. 219 220 If in doubt, say Y. 221 222config HIGHMEM 223 bool "High Memory Support" 224 depends on MMU 225 help 226 Linux can use the full amount of RAM in the system by 227 default. However, the default MMUv2 setup only maps the 228 lowermost 128 MB of memory linearly to the areas starting 229 at 0xd0000000 (cached) and 0xd8000000 (uncached). 230 When there are more than 128 MB memory in the system not 231 all of it can be "permanently mapped" by the kernel. 232 The physical memory that's not permanently mapped is called 233 "high memory". 234 235 If you are compiling a kernel which will never run on a 236 machine with more than 128 MB total physical RAM, answer 237 N here. 238 239 If unsure, say Y. 240 241config FAST_SYSCALL_XTENSA 242 bool "Enable fast atomic syscalls" 243 default n 244 help 245 fast_syscall_xtensa is a syscall that can make atomic operations 246 on UP kernel when processor has no s32c1i support. 247 248 This syscall is deprecated. It may have issues when called with 249 invalid arguments. It is provided only for backwards compatibility. 250 Only enable it if your userspace software requires it. 251 252 If unsure, say N. 253 254config FAST_SYSCALL_SPILL_REGISTERS 255 bool "Enable spill registers syscall" 256 default n 257 help 258 fast_syscall_spill_registers is a syscall that spills all active 259 register windows of a calling userspace task onto its stack. 260 261 This syscall is deprecated. It may have issues when called with 262 invalid arguments. It is provided only for backwards compatibility. 263 Only enable it if your userspace software requires it. 264 265 If unsure, say N. 266 267endmenu 268 269config XTENSA_CALIBRATE_CCOUNT 270 def_bool n 271 help 272 On some platforms (XT2000, for example), the CPU clock rate can 273 vary. The frequency can be determined, however, by measuring 274 against a well known, fixed frequency, such as an UART oscillator. 275 276config SERIAL_CONSOLE 277 def_bool n 278 279menu "Bus options" 280 281config PCI 282 bool "PCI support" 283 default y 284 help 285 Find out whether you have a PCI motherboard. PCI is the name of a 286 bus system, i.e. the way the CPU talks to the other stuff inside 287 your box. Other bus systems are ISA, EISA, MicroChannel (MCA) or 288 VESA. If you have PCI, say Y, otherwise N. 289 290source "drivers/pci/Kconfig" 291 292endmenu 293 294menu "Platform options" 295 296choice 297 prompt "Xtensa System Type" 298 default XTENSA_PLATFORM_ISS 299 300config XTENSA_PLATFORM_ISS 301 bool "ISS" 302 select XTENSA_CALIBRATE_CCOUNT 303 select SERIAL_CONSOLE 304 help 305 ISS is an acronym for Tensilica's Instruction Set Simulator. 306 307config XTENSA_PLATFORM_XT2000 308 bool "XT2000" 309 select HAVE_IDE 310 help 311 XT2000 is the name of Tensilica's feature-rich emulation platform. 312 This hardware is capable of running a full Linux distribution. 313 314config XTENSA_PLATFORM_S6105 315 bool "S6105" 316 select HAVE_IDE 317 select SERIAL_CONSOLE 318 select NO_IOPORT_MAP 319 320config XTENSA_PLATFORM_XTFPGA 321 bool "XTFPGA" 322 select SERIAL_CONSOLE 323 select ETHOC 324 select XTENSA_CALIBRATE_CCOUNT 325 help 326 XTFPGA is the name of Tensilica board family (LX60, LX110, LX200, ML605). 327 This hardware is capable of running a full Linux distribution. 328 329endchoice 330 331 332config XTENSA_CPU_CLOCK 333 int "CPU clock rate [MHz]" 334 depends on !XTENSA_CALIBRATE_CCOUNT 335 default 16 336 337config GENERIC_CALIBRATE_DELAY 338 bool "Auto calibration of the BogoMIPS value" 339 help 340 The BogoMIPS value can easily be derived from the CPU frequency. 341 342config CMDLINE_BOOL 343 bool "Default bootloader kernel arguments" 344 345config CMDLINE 346 string "Initial kernel command string" 347 depends on CMDLINE_BOOL 348 default "console=ttyS0,38400 root=/dev/ram" 349 help 350 On some architectures (EBSA110 and CATS), there is currently no way 351 for the boot loader to pass arguments to the kernel. For these 352 architectures, you should supply some command-line options at build 353 time by entering them here. As a minimum, you should specify the 354 memory size and the root device (e.g., mem=64M root=/dev/nfs). 355 356config USE_OF 357 bool "Flattened Device Tree support" 358 select OF 359 select OF_EARLY_FLATTREE 360 help 361 Include support for flattened device tree machine descriptions. 362 363config BUILTIN_DTB 364 string "DTB to build into the kernel image" 365 depends on OF 366 367config BLK_DEV_SIMDISK 368 tristate "Host file-based simulated block device support" 369 default n 370 depends on XTENSA_PLATFORM_ISS 371 help 372 Create block devices that map to files in the host file system. 373 Device binding to host file may be changed at runtime via proc 374 interface provided the device is not in use. 375 376config BLK_DEV_SIMDISK_COUNT 377 int "Number of host file-based simulated block devices" 378 range 1 10 379 depends on BLK_DEV_SIMDISK 380 default 2 381 help 382 This is the default minimal number of created block devices. 383 Kernel/module parameter 'simdisk_count' may be used to change this 384 value at runtime. More file names (but no more than 10) may be 385 specified as parameters, simdisk_count grows accordingly. 386 387config SIMDISK0_FILENAME 388 string "Host filename for the first simulated device" 389 depends on BLK_DEV_SIMDISK = y 390 default "" 391 help 392 Attach a first simdisk to a host file. Conventionally, this file 393 contains a root file system. 394 395config SIMDISK1_FILENAME 396 string "Host filename for the second simulated device" 397 depends on BLK_DEV_SIMDISK = y && BLK_DEV_SIMDISK_COUNT != 1 398 default "" 399 help 400 Another simulated disk in a host file for a buildroot-independent 401 storage. 402 403source "mm/Kconfig" 404 405source "drivers/pcmcia/Kconfig" 406 407source "drivers/pci/hotplug/Kconfig" 408 409endmenu 410 411menu "Executable file formats" 412 413source "fs/Kconfig.binfmt" 414 415endmenu 416 417source "net/Kconfig" 418 419source "drivers/Kconfig" 420 421source "fs/Kconfig" 422 423source "arch/xtensa/Kconfig.debug" 424 425source "security/Kconfig" 426 427source "crypto/Kconfig" 428 429source "lib/Kconfig" 430 431 432