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