1# SPDX-License-Identifier: GPL-2.0 2config XTENSA 3 def_bool y 4 select ARCH_32BIT_OFF_T 5 select ARCH_HAS_BINFMT_FLAT if !MMU 6 select ARCH_HAS_CURRENT_STACK_POINTER 7 select ARCH_HAS_DEBUG_VM_PGTABLE 8 select ARCH_HAS_DMA_PREP_COHERENT if MMU 9 select ARCH_HAS_GCOV_PROFILE_ALL 10 select ARCH_HAS_KCOV 11 select ARCH_HAS_SYNC_DMA_FOR_CPU if MMU 12 select ARCH_HAS_SYNC_DMA_FOR_DEVICE if MMU 13 select ARCH_HAS_DMA_SET_UNCACHED if MMU 14 select ARCH_HAS_STRNCPY_FROM_USER if !KASAN 15 select ARCH_HAS_STRNLEN_USER 16 select ARCH_USE_MEMTEST 17 select ARCH_USE_QUEUED_RWLOCKS 18 select ARCH_USE_QUEUED_SPINLOCKS 19 select ARCH_WANT_IPC_PARSE_VERSION 20 select BUILDTIME_TABLE_SORT 21 select CLONE_BACKWARDS 22 select COMMON_CLK 23 select DMA_NONCOHERENT_MMAP if MMU 24 select GENERIC_ATOMIC64 25 select GENERIC_IRQ_SHOW 26 select GENERIC_LIB_CMPDI2 27 select GENERIC_LIB_MULDI3 28 select GENERIC_LIB_UCMPDI2 29 select GENERIC_PCI_IOMAP 30 select GENERIC_SCHED_CLOCK 31 select HAVE_ARCH_AUDITSYSCALL 32 select HAVE_ARCH_JUMP_LABEL if !XIP_KERNEL 33 select HAVE_ARCH_KASAN if MMU && !XIP_KERNEL 34 select HAVE_ARCH_KCSAN 35 select HAVE_ARCH_SECCOMP_FILTER 36 select HAVE_ARCH_TRACEHOOK 37 select HAVE_ASM_MODVERSIONS 38 select HAVE_CONTEXT_TRACKING_USER 39 select HAVE_DEBUG_KMEMLEAK 40 select HAVE_DMA_CONTIGUOUS 41 select HAVE_EXIT_THREAD 42 select HAVE_FUNCTION_TRACER 43 select HAVE_GCC_PLUGINS if GCC_VERSION >= 120000 44 select HAVE_HW_BREAKPOINT if PERF_EVENTS 45 select HAVE_IRQ_TIME_ACCOUNTING 46 select HAVE_PCI 47 select HAVE_PERF_EVENTS 48 select HAVE_STACKPROTECTOR 49 select HAVE_SYSCALL_TRACEPOINTS 50 select HAVE_VIRT_CPU_ACCOUNTING_GEN 51 select IRQ_DOMAIN 52 select MODULES_USE_ELF_RELA 53 select PERF_USE_VMALLOC 54 select TRACE_IRQFLAGS_SUPPORT 55 help 56 Xtensa processors are 32-bit RISC machines designed by Tensilica 57 primarily for embedded systems. These processors are both 58 configurable and extensible. The Linux port to the Xtensa 59 architecture supports all processor configurations and extensions, 60 with reasonable minimum requirements. The Xtensa Linux project has 61 a home page at <http://www.linux-xtensa.org/>. 62 63config GENERIC_HWEIGHT 64 def_bool y 65 66config ARCH_HAS_ILOG2_U32 67 def_bool n 68 69config ARCH_HAS_ILOG2_U64 70 def_bool n 71 72config NO_IOPORT_MAP 73 def_bool n 74 75config HZ 76 int 77 default 100 78 79config LOCKDEP_SUPPORT 80 def_bool y 81 82config STACKTRACE_SUPPORT 83 def_bool y 84 85config MMU 86 def_bool n 87 select PFAULT 88 89config HAVE_XTENSA_GPIO32 90 def_bool n 91 92config KASAN_SHADOW_OFFSET 93 hex 94 default 0x6e400000 95 96config CPU_BIG_ENDIAN 97 def_bool $(success,test "$(shell,echo __XTENSA_EB__ | $(CC) -E -P -)" = 1) 98 99config CPU_LITTLE_ENDIAN 100 def_bool !CPU_BIG_ENDIAN 101 102config CC_HAVE_CALL0_ABI 103 def_bool $(success,test "$(shell,echo __XTENSA_CALL0_ABI__ | $(CC) -mabi=call0 -E -P - 2>/dev/null)" = 1) 104 105menu "Processor type and features" 106 107choice 108 prompt "Xtensa Processor Configuration" 109 default XTENSA_VARIANT_FSF 110 111config XTENSA_VARIANT_FSF 112 bool "fsf - default (not generic) configuration" 113 select MMU 114 115config XTENSA_VARIANT_DC232B 116 bool "dc232b - Diamond 232L Standard Core Rev.B (LE)" 117 select MMU 118 select HAVE_XTENSA_GPIO32 119 help 120 This variant refers to Tensilica's Diamond 232L Standard core Rev.B (LE). 121 122config XTENSA_VARIANT_DC233C 123 bool "dc233c - Diamond 233L Standard Core Rev.C (LE)" 124 select MMU 125 select HAVE_XTENSA_GPIO32 126 help 127 This variant refers to Tensilica's Diamond 233L Standard core Rev.C (LE). 128 129config XTENSA_VARIANT_CUSTOM 130 bool "Custom Xtensa processor configuration" 131 select HAVE_XTENSA_GPIO32 132 help 133 Select this variant to use a custom Xtensa processor configuration. 134 You will be prompted for a processor variant CORENAME. 135endchoice 136 137config XTENSA_VARIANT_CUSTOM_NAME 138 string "Xtensa Processor Custom Core Variant Name" 139 depends on XTENSA_VARIANT_CUSTOM 140 help 141 Provide the name of a custom Xtensa processor variant. 142 This CORENAME selects arch/xtensa/variant/CORENAME. 143 Don't forget you have to select MMU if you have one. 144 145config XTENSA_VARIANT_NAME 146 string 147 default "dc232b" if XTENSA_VARIANT_DC232B 148 default "dc233c" if XTENSA_VARIANT_DC233C 149 default "fsf" if XTENSA_VARIANT_FSF 150 default XTENSA_VARIANT_CUSTOM_NAME if XTENSA_VARIANT_CUSTOM 151 152config XTENSA_VARIANT_MMU 153 bool "Core variant has a Full MMU (TLB, Pages, Protection, etc)" 154 depends on XTENSA_VARIANT_CUSTOM 155 default y 156 select MMU 157 help 158 Build a Conventional Kernel with full MMU support, 159 ie: it supports a TLB with auto-loading, page protection. 160 161config XTENSA_VARIANT_HAVE_PERF_EVENTS 162 bool "Core variant has Performance Monitor Module" 163 depends on XTENSA_VARIANT_CUSTOM 164 default n 165 help 166 Enable if core variant has Performance Monitor Module with 167 External Registers Interface. 168 169 If unsure, say N. 170 171config XTENSA_FAKE_NMI 172 bool "Treat PMM IRQ as NMI" 173 depends on XTENSA_VARIANT_HAVE_PERF_EVENTS 174 default n 175 help 176 If PMM IRQ is the only IRQ at EXCM level it is safe to 177 treat it as NMI, which improves accuracy of profiling. 178 179 If there are other interrupts at or above PMM IRQ priority level 180 but not above the EXCM level, PMM IRQ still may be treated as NMI, 181 but only if these IRQs are not used. There will be a build warning 182 saying that this is not safe, and a bugcheck if one of these IRQs 183 actually fire. 184 185 If unsure, say N. 186 187config PFAULT 188 bool "Handle protection faults" if EXPERT && !MMU 189 default y 190 help 191 Handle protection faults. MMU configurations must enable it. 192 noMMU configurations may disable it if used memory map never 193 generates protection faults or faults are always fatal. 194 195 If unsure, say Y. 196 197config XTENSA_UNALIGNED_USER 198 bool "Unaligned memory access in user space" 199 help 200 The Xtensa architecture currently does not handle unaligned 201 memory accesses in hardware but through an exception handler. 202 Per default, unaligned memory accesses are disabled in user space. 203 204 Say Y here to enable unaligned memory access in user space. 205 206config XTENSA_LOAD_STORE 207 bool "Load/store exception handler for memory only readable with l32" 208 help 209 The Xtensa architecture only allows reading memory attached to its 210 instruction bus with l32r and l32i instructions, all other 211 instructions raise an exception with the LoadStoreErrorCause code. 212 This makes it hard to use some configurations, e.g. store string 213 literals in FLASH memory attached to the instruction bus. 214 215 Say Y here to enable exception handler that allows transparent 216 byte and 2-byte access to memory attached to instruction bus. 217 218config HAVE_SMP 219 bool "System Supports SMP (MX)" 220 depends on XTENSA_VARIANT_CUSTOM 221 select XTENSA_MX 222 help 223 This option is used to indicate that the system-on-a-chip (SOC) 224 supports Multiprocessing. Multiprocessor support implemented above 225 the CPU core definition and currently needs to be selected manually. 226 227 Multiprocessor support is implemented with external cache and 228 interrupt controllers. 229 230 The MX interrupt distributer adds Interprocessor Interrupts 231 and causes the IRQ numbers to be increased by 4 for devices 232 like the open cores ethernet driver and the serial interface. 233 234 You still have to select "Enable SMP" to enable SMP on this SOC. 235 236config SMP 237 bool "Enable Symmetric multi-processing support" 238 depends on HAVE_SMP 239 select GENERIC_SMP_IDLE_THREAD 240 help 241 Enabled SMP Software; allows more than one CPU/CORE 242 to be activated during startup. 243 244config NR_CPUS 245 depends on SMP 246 int "Maximum number of CPUs (2-32)" 247 range 2 32 248 default "4" 249 250config HOTPLUG_CPU 251 bool "Enable CPU hotplug support" 252 depends on SMP 253 help 254 Say Y here to allow turning CPUs off and on. CPUs can be 255 controlled through /sys/devices/system/cpu. 256 257 Say N if you want to disable CPU hotplug. 258 259config SECONDARY_RESET_VECTOR 260 bool "Secondary cores use alternative reset vector" 261 default y 262 depends on HAVE_SMP 263 help 264 Secondary cores may be configured to use alternative reset vector, 265 or all cores may use primary reset vector. 266 Say Y here to supply handler for the alternative reset location. 267 268config FAST_SYSCALL_XTENSA 269 bool "Enable fast atomic syscalls" 270 default n 271 help 272 fast_syscall_xtensa is a syscall that can make atomic operations 273 on UP kernel when processor has no s32c1i support. 274 275 This syscall is deprecated. It may have issues when called with 276 invalid arguments. It is provided only for backwards compatibility. 277 Only enable it if your userspace software requires it. 278 279 If unsure, say N. 280 281config FAST_SYSCALL_SPILL_REGISTERS 282 bool "Enable spill registers syscall" 283 default n 284 help 285 fast_syscall_spill_registers is a syscall that spills all active 286 register windows of a calling userspace task onto its stack. 287 288 This syscall is deprecated. It may have issues when called with 289 invalid arguments. It is provided only for backwards compatibility. 290 Only enable it if your userspace software requires it. 291 292 If unsure, say N. 293 294choice 295 prompt "Kernel ABI" 296 default KERNEL_ABI_DEFAULT 297 help 298 Select ABI for the kernel code. This ABI is independent of the 299 supported userspace ABI and any combination of the 300 kernel/userspace ABI is possible and should work. 301 302 In case both kernel and userspace support only call0 ABI 303 all register windows support code will be omitted from the 304 build. 305 306 If unsure, choose the default ABI. 307 308config KERNEL_ABI_DEFAULT 309 bool "Default ABI" 310 help 311 Select this option to compile kernel code with the default ABI 312 selected for the toolchain. 313 Normally cores with windowed registers option use windowed ABI and 314 cores without it use call0 ABI. 315 316config KERNEL_ABI_CALL0 317 bool "Call0 ABI" if CC_HAVE_CALL0_ABI 318 help 319 Select this option to compile kernel code with call0 ABI even with 320 toolchain that defaults to windowed ABI. 321 When this option is not selected the default toolchain ABI will 322 be used for the kernel code. 323 324endchoice 325 326config USER_ABI_CALL0 327 bool 328 329choice 330 prompt "Userspace ABI" 331 default USER_ABI_DEFAULT 332 help 333 Select supported userspace ABI. 334 335 If unsure, choose the default ABI. 336 337config USER_ABI_DEFAULT 338 bool "Default ABI only" 339 help 340 Assume default userspace ABI. For XEA2 cores it is windowed ABI. 341 call0 ABI binaries may be run on such kernel, but signal delivery 342 will not work correctly for them. 343 344config USER_ABI_CALL0_ONLY 345 bool "Call0 ABI only" 346 select USER_ABI_CALL0 347 help 348 Select this option to support only call0 ABI in userspace. 349 Windowed ABI binaries will crash with a segfault caused by 350 an illegal instruction exception on the first 'entry' opcode. 351 352 Choose this option if you're planning to run only user code 353 built with call0 ABI. 354 355config USER_ABI_CALL0_PROBE 356 bool "Support both windowed and call0 ABI by probing" 357 select USER_ABI_CALL0 358 help 359 Select this option to support both windowed and call0 userspace 360 ABIs. When enabled all processes are started with PS.WOE disabled 361 and a fast user exception handler for an illegal instruction is 362 used to turn on PS.WOE bit on the first 'entry' opcode executed by 363 the userspace. 364 365 This option should be enabled for the kernel that must support 366 both call0 and windowed ABIs in userspace at the same time. 367 368 Note that Xtensa ISA does not guarantee that entry opcode will 369 raise an illegal instruction exception on cores with XEA2 when 370 PS.WOE is disabled, check whether the target core supports it. 371 372endchoice 373 374endmenu 375 376config XTENSA_CALIBRATE_CCOUNT 377 def_bool n 378 help 379 On some platforms (XT2000, for example), the CPU clock rate can 380 vary. The frequency can be determined, however, by measuring 381 against a well known, fixed frequency, such as an UART oscillator. 382 383config SERIAL_CONSOLE 384 def_bool n 385 386config PLATFORM_HAVE_XIP 387 def_bool n 388 389menu "Platform options" 390 391choice 392 prompt "Xtensa System Type" 393 default XTENSA_PLATFORM_ISS 394 395config XTENSA_PLATFORM_ISS 396 bool "ISS" 397 select XTENSA_CALIBRATE_CCOUNT 398 select SERIAL_CONSOLE 399 help 400 ISS is an acronym for Tensilica's Instruction Set Simulator. 401 402config XTENSA_PLATFORM_XT2000 403 bool "XT2000" 404 help 405 XT2000 is the name of Tensilica's feature-rich emulation platform. 406 This hardware is capable of running a full Linux distribution. 407 408config XTENSA_PLATFORM_XTFPGA 409 bool "XTFPGA" 410 select ETHOC if ETHERNET 411 select PLATFORM_WANT_DEFAULT_MEM if !MMU 412 select SERIAL_CONSOLE 413 select XTENSA_CALIBRATE_CCOUNT 414 select PLATFORM_HAVE_XIP 415 help 416 XTFPGA is the name of Tensilica board family (LX60, LX110, LX200, ML605). 417 This hardware is capable of running a full Linux distribution. 418 419endchoice 420 421config PLATFORM_NR_IRQS 422 int 423 default 3 if XTENSA_PLATFORM_XT2000 424 default 0 425 426config XTENSA_CPU_CLOCK 427 int "CPU clock rate [MHz]" 428 depends on !XTENSA_CALIBRATE_CCOUNT 429 default 16 430 431config GENERIC_CALIBRATE_DELAY 432 bool "Auto calibration of the BogoMIPS value" 433 help 434 The BogoMIPS value can easily be derived from the CPU frequency. 435 436config CMDLINE_BOOL 437 bool "Default bootloader kernel arguments" 438 439config CMDLINE 440 string "Initial kernel command string" 441 depends on CMDLINE_BOOL 442 default "console=ttyS0,38400 root=/dev/ram" 443 help 444 On some architectures (EBSA110 and CATS), there is currently no way 445 for the boot loader to pass arguments to the kernel. For these 446 architectures, you should supply some command-line options at build 447 time by entering them here. As a minimum, you should specify the 448 memory size and the root device (e.g., mem=64M root=/dev/nfs). 449 450config USE_OF 451 bool "Flattened Device Tree support" 452 select OF 453 select OF_EARLY_FLATTREE 454 help 455 Include support for flattened device tree machine descriptions. 456 457config BUILTIN_DTB_SOURCE 458 string "DTB to build into the kernel image" 459 depends on OF 460 461config PARSE_BOOTPARAM 462 bool "Parse bootparam block" 463 default y 464 help 465 Parse parameters passed to the kernel from the bootloader. It may 466 be disabled if the kernel is known to run without the bootloader. 467 468 If unsure, say Y. 469 470choice 471 prompt "Semihosting interface" 472 default XTENSA_SIMCALL_ISS 473 depends on XTENSA_PLATFORM_ISS 474 help 475 Choose semihosting interface that will be used for serial port, 476 block device and networking. 477 478config XTENSA_SIMCALL_ISS 479 bool "simcall" 480 help 481 Use simcall instruction. simcall is only available on simulators, 482 it does nothing on hardware. 483 484config XTENSA_SIMCALL_GDBIO 485 bool "GDBIO" 486 help 487 Use break instruction. It is available on real hardware when GDB 488 is attached to it via JTAG. 489 490endchoice 491 492config BLK_DEV_SIMDISK 493 tristate "Host file-based simulated block device support" 494 default n 495 depends on XTENSA_PLATFORM_ISS && BLOCK 496 help 497 Create block devices that map to files in the host file system. 498 Device binding to host file may be changed at runtime via proc 499 interface provided the device is not in use. 500 501config BLK_DEV_SIMDISK_COUNT 502 int "Number of host file-based simulated block devices" 503 range 1 10 504 depends on BLK_DEV_SIMDISK 505 default 2 506 help 507 This is the default minimal number of created block devices. 508 Kernel/module parameter 'simdisk_count' may be used to change this 509 value at runtime. More file names (but no more than 10) may be 510 specified as parameters, simdisk_count grows accordingly. 511 512config SIMDISK0_FILENAME 513 string "Host filename for the first simulated device" 514 depends on BLK_DEV_SIMDISK = y 515 default "" 516 help 517 Attach a first simdisk to a host file. Conventionally, this file 518 contains a root file system. 519 520config SIMDISK1_FILENAME 521 string "Host filename for the second simulated device" 522 depends on BLK_DEV_SIMDISK = y && BLK_DEV_SIMDISK_COUNT != 1 523 default "" 524 help 525 Another simulated disk in a host file for a buildroot-independent 526 storage. 527 528config XTFPGA_LCD 529 bool "Enable XTFPGA LCD driver" 530 depends on XTENSA_PLATFORM_XTFPGA 531 default n 532 help 533 There's a 2x16 LCD on most of XTFPGA boards, kernel may output 534 progress messages there during bootup/shutdown. It may be useful 535 during board bringup. 536 537 If unsure, say N. 538 539config XTFPGA_LCD_BASE_ADDR 540 hex "XTFPGA LCD base address" 541 depends on XTFPGA_LCD 542 default "0x0d0c0000" 543 help 544 Base address of the LCD controller inside KIO region. 545 Different boards from XTFPGA family have LCD controller at different 546 addresses. Please consult prototyping user guide for your board for 547 the correct address. Wrong address here may lead to hardware lockup. 548 549config XTFPGA_LCD_8BIT_ACCESS 550 bool "Use 8-bit access to XTFPGA LCD" 551 depends on XTFPGA_LCD 552 default n 553 help 554 LCD may be connected with 4- or 8-bit interface, 8-bit access may 555 only be used with 8-bit interface. Please consult prototyping user 556 guide for your board for the correct interface width. 557 558comment "Kernel memory layout" 559 560config INITIALIZE_XTENSA_MMU_INSIDE_VMLINUX 561 bool "Initialize Xtensa MMU inside the Linux kernel code" 562 depends on !XTENSA_VARIANT_FSF && !XTENSA_VARIANT_DC232B 563 default y if XTENSA_VARIANT_DC233C || XTENSA_VARIANT_CUSTOM 564 help 565 Earlier version initialized the MMU in the exception vector 566 before jumping to _startup in head.S and had an advantage that 567 it was possible to place a software breakpoint at 'reset' and 568 then enter your normal kernel breakpoints once the MMU was mapped 569 to the kernel mappings (0XC0000000). 570 571 This unfortunately won't work for U-Boot and likely also won't 572 work for using KEXEC to have a hot kernel ready for doing a 573 KDUMP. 574 575 So now the MMU is initialized in head.S but it's necessary to 576 use hardware breakpoints (gdb 'hbreak' cmd) to break at _startup. 577 xt-gdb can't place a Software Breakpoint in the 0XD region prior 578 to mapping the MMU and after mapping even if the area of low memory 579 was mapped gdb wouldn't remove the breakpoint on hitting it as the 580 PC wouldn't match. Since Hardware Breakpoints are recommended for 581 Linux configurations it seems reasonable to just assume they exist 582 and leave this older mechanism for unfortunate souls that choose 583 not to follow Tensilica's recommendation. 584 585 Selecting this will cause U-Boot to set the KERNEL Load and Entry 586 address at 0x00003000 instead of the mapped std of 0xD0003000. 587 588 If in doubt, say Y. 589 590config XIP_KERNEL 591 bool "Kernel Execute-In-Place from ROM" 592 depends on PLATFORM_HAVE_XIP 593 help 594 Execute-In-Place allows the kernel to run from non-volatile storage 595 directly addressable by the CPU, such as NOR flash. This saves RAM 596 space since the text section of the kernel is not loaded from flash 597 to RAM. Read-write sections, such as the data section and stack, 598 are still copied to RAM. The XIP kernel is not compressed since 599 it has to run directly from flash, so it will take more space to 600 store it. The flash address used to link the kernel object files, 601 and for storing it, is configuration dependent. Therefore, if you 602 say Y here, you must know the proper physical address where to 603 store the kernel image depending on your own flash memory usage. 604 605 Also note that the make target becomes "make xipImage" rather than 606 "make Image" or "make uImage". The final kernel binary to put in 607 ROM memory will be arch/xtensa/boot/xipImage. 608 609 If unsure, say N. 610 611config MEMMAP_CACHEATTR 612 hex "Cache attributes for the memory address space" 613 depends on !MMU 614 default 0x22222222 615 help 616 These cache attributes are set up for noMMU systems. Each hex digit 617 specifies cache attributes for the corresponding 512MB memory 618 region: bits 0..3 -- for addresses 0x00000000..0x1fffffff, 619 bits 4..7 -- for addresses 0x20000000..0x3fffffff, and so on. 620 621 Cache attribute values are specific for the MMU type. 622 For region protection MMUs: 623 1: WT cached, 624 2: cache bypass, 625 4: WB cached, 626 f: illegal. 627 For full MMU: 628 bit 0: executable, 629 bit 1: writable, 630 bits 2..3: 631 0: cache bypass, 632 1: WB cache, 633 2: WT cache, 634 3: special (c and e are illegal, f is reserved). 635 For MPU: 636 0: illegal, 637 1: WB cache, 638 2: WB, no-write-allocate cache, 639 3: WT cache, 640 4: cache bypass. 641 642config KSEG_PADDR 643 hex "Physical address of the KSEG mapping" 644 depends on INITIALIZE_XTENSA_MMU_INSIDE_VMLINUX && MMU 645 default 0x00000000 646 help 647 This is the physical address where KSEG is mapped. Please refer to 648 the chosen KSEG layout help for the required address alignment. 649 Unpacked kernel image (including vectors) must be located completely 650 within KSEG. 651 Physical memory below this address is not available to linux. 652 653 If unsure, leave the default value here. 654 655config KERNEL_VIRTUAL_ADDRESS 656 hex "Kernel virtual address" 657 depends on MMU && XIP_KERNEL 658 default 0xd0003000 659 help 660 This is the virtual address where the XIP kernel is mapped. 661 XIP kernel may be mapped into KSEG or KIO region, virtual address 662 provided here must match kernel load address provided in 663 KERNEL_LOAD_ADDRESS. 664 665config KERNEL_LOAD_ADDRESS 666 hex "Kernel load address" 667 default 0x60003000 if !MMU 668 default 0x00003000 if MMU && INITIALIZE_XTENSA_MMU_INSIDE_VMLINUX 669 default 0xd0003000 if MMU && !INITIALIZE_XTENSA_MMU_INSIDE_VMLINUX 670 help 671 This is the address where the kernel is loaded. 672 It is virtual address for MMUv2 configurations and physical address 673 for all other configurations. 674 675 If unsure, leave the default value here. 676 677choice 678 prompt "Relocatable vectors location" 679 default XTENSA_VECTORS_IN_TEXT 680 help 681 Choose whether relocatable vectors are merged into the kernel .text 682 or placed separately at runtime. This option does not affect 683 configurations without VECBASE register where vectors are always 684 placed at their hardware-defined locations. 685 686config XTENSA_VECTORS_IN_TEXT 687 bool "Merge relocatable vectors into kernel text" 688 depends on !MTD_XIP 689 help 690 This option puts relocatable vectors into the kernel .text section 691 with proper alignment. 692 This is a safe choice for most configurations. 693 694config XTENSA_VECTORS_SEPARATE 695 bool "Put relocatable vectors at fixed address" 696 help 697 This option puts relocatable vectors at specific virtual address. 698 Vectors are merged with the .init data in the kernel image and 699 are copied into their designated location during kernel startup. 700 Use it to put vectors into IRAM or out of FLASH on kernels with 701 XIP-aware MTD support. 702 703endchoice 704 705config VECTORS_ADDR 706 hex "Kernel vectors virtual address" 707 default 0x00000000 708 depends on XTENSA_VECTORS_SEPARATE 709 help 710 This is the virtual address of the (relocatable) vectors base. 711 It must be within KSEG if MMU is used. 712 713config XIP_DATA_ADDR 714 hex "XIP kernel data virtual address" 715 depends on XIP_KERNEL 716 default 0x00000000 717 help 718 This is the virtual address where XIP kernel data is copied. 719 It must be within KSEG if MMU is used. 720 721config PLATFORM_WANT_DEFAULT_MEM 722 def_bool n 723 724config DEFAULT_MEM_START 725 hex 726 prompt "PAGE_OFFSET/PHYS_OFFSET" if !MMU && PLATFORM_WANT_DEFAULT_MEM 727 default 0x60000000 if PLATFORM_WANT_DEFAULT_MEM 728 default 0x00000000 729 help 730 This is the base address used for both PAGE_OFFSET and PHYS_OFFSET 731 in noMMU configurations. 732 733 If unsure, leave the default value here. 734 735choice 736 prompt "KSEG layout" 737 depends on MMU 738 default XTENSA_KSEG_MMU_V2 739 740config XTENSA_KSEG_MMU_V2 741 bool "MMUv2: 128MB cached + 128MB uncached" 742 help 743 MMUv2 compatible kernel memory map: TLB way 5 maps 128MB starting 744 at KSEG_PADDR to 0xd0000000 with cache and to 0xd8000000 745 without cache. 746 KSEG_PADDR must be aligned to 128MB. 747 748config XTENSA_KSEG_256M 749 bool "256MB cached + 256MB uncached" 750 depends on INITIALIZE_XTENSA_MMU_INSIDE_VMLINUX 751 help 752 TLB way 6 maps 256MB starting at KSEG_PADDR to 0xb0000000 753 with cache and to 0xc0000000 without cache. 754 KSEG_PADDR must be aligned to 256MB. 755 756config XTENSA_KSEG_512M 757 bool "512MB cached + 512MB uncached" 758 depends on INITIALIZE_XTENSA_MMU_INSIDE_VMLINUX 759 help 760 TLB way 6 maps 512MB starting at KSEG_PADDR to 0xa0000000 761 with cache and to 0xc0000000 without cache. 762 KSEG_PADDR must be aligned to 256MB. 763 764endchoice 765 766config HIGHMEM 767 bool "High Memory Support" 768 depends on MMU 769 select KMAP_LOCAL 770 help 771 Linux can use the full amount of RAM in the system by 772 default. However, the default MMUv2 setup only maps the 773 lowermost 128 MB of memory linearly to the areas starting 774 at 0xd0000000 (cached) and 0xd8000000 (uncached). 775 When there are more than 128 MB memory in the system not 776 all of it can be "permanently mapped" by the kernel. 777 The physical memory that's not permanently mapped is called 778 "high memory". 779 780 If you are compiling a kernel which will never run on a 781 machine with more than 128 MB total physical RAM, answer 782 N here. 783 784 If unsure, say Y. 785 786config ARCH_FORCE_MAX_ORDER 787 int "Order of maximal physically contiguous allocations" 788 default "10" 789 help 790 The kernel page allocator limits the size of maximal physically 791 contiguous allocations. The limit is called MAX_ORDER and it 792 defines the maximal power of two of number of pages that can be 793 allocated as a single contiguous block. This option allows 794 overriding the default setting when ability to allocate very 795 large blocks of physically contiguous memory is required. 796 797 Don't change if unsure. 798 799endmenu 800 801menu "Power management options" 802 803config ARCH_HIBERNATION_POSSIBLE 804 def_bool y 805 806source "kernel/power/Kconfig" 807 808endmenu 809