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