Merge branch 'work.set_fs' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
[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_DEBUG_KMEMLEAK
30         select HAVE_DMA_CONTIGUOUS
31         select HAVE_EXIT_THREAD
32         select HAVE_FUNCTION_TRACER
33         select HAVE_FUTEX_CMPXCHG if !MMU
34         select HAVE_HW_BREAKPOINT if PERF_EVENTS
35         select HAVE_IRQ_TIME_ACCOUNTING
36         select HAVE_OPROFILE
37         select HAVE_PCI
38         select HAVE_PERF_EVENTS
39         select HAVE_STACKPROTECTOR
40         select HAVE_SYSCALL_TRACEPOINTS
41         select IRQ_DOMAIN
42         select MODULES_USE_ELF_RELA
43         select PERF_USE_VMALLOC
44         select SET_FS
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 FAST_SYSCALL_XTENSA
222         bool "Enable fast atomic syscalls"
223         default n
224         help
225           fast_syscall_xtensa is a syscall that can make atomic operations
226           on UP kernel when processor has no s32c1i support.
227
228           This syscall is deprecated. It may have issues when called with
229           invalid arguments. It is provided only for backwards compatibility.
230           Only enable it if your userspace software requires it.
231
232           If unsure, say N.
233
234 config FAST_SYSCALL_SPILL_REGISTERS
235         bool "Enable spill registers syscall"
236         default n
237         help
238           fast_syscall_spill_registers is a syscall that spills all active
239           register windows of a calling userspace task onto its stack.
240
241           This syscall is deprecated. It may have issues when called with
242           invalid arguments. It is provided only for backwards compatibility.
243           Only enable it if your userspace software requires it.
244
245           If unsure, say N.
246
247 config USER_ABI_CALL0
248         bool
249
250 choice
251         prompt "Userspace ABI"
252         default USER_ABI_DEFAULT
253         help
254           Select supported userspace ABI.
255
256           If unsure, choose the default ABI.
257
258 config USER_ABI_DEFAULT
259         bool "Default ABI only"
260         help
261           Assume default userspace ABI. For XEA2 cores it is windowed ABI.
262           call0 ABI binaries may be run on such kernel, but signal delivery
263           will not work correctly for them.
264
265 config USER_ABI_CALL0_ONLY
266         bool "Call0 ABI only"
267         select USER_ABI_CALL0
268         help
269           Select this option to support only call0 ABI in userspace.
270           Windowed ABI binaries will crash with a segfault caused by
271           an illegal instruction exception on the first 'entry' opcode.
272
273           Choose this option if you're planning to run only user code
274           built with call0 ABI.
275
276 config USER_ABI_CALL0_PROBE
277         bool "Support both windowed and call0 ABI by probing"
278         select USER_ABI_CALL0
279         help
280           Select this option to support both windowed and call0 userspace
281           ABIs. When enabled all processes are started with PS.WOE disabled
282           and a fast user exception handler for an illegal instruction is
283           used to turn on PS.WOE bit on the first 'entry' opcode executed by
284           the userspace.
285
286           This option should be enabled for the kernel that must support
287           both call0 and windowed ABIs in userspace at the same time.
288
289           Note that Xtensa ISA does not guarantee that entry opcode will
290           raise an illegal instruction exception on cores with XEA2 when
291           PS.WOE is disabled, check whether the target core supports it.
292
293 endchoice
294
295 endmenu
296
297 config XTENSA_CALIBRATE_CCOUNT
298         def_bool n
299         help
300           On some platforms (XT2000, for example), the CPU clock rate can
301           vary.  The frequency can be determined, however, by measuring
302           against a well known, fixed frequency, such as an UART oscillator.
303
304 config SERIAL_CONSOLE
305         def_bool n
306
307 config PLATFORM_HAVE_XIP
308         def_bool n
309
310 menu "Platform options"
311
312 choice
313         prompt "Xtensa System Type"
314         default XTENSA_PLATFORM_ISS
315
316 config XTENSA_PLATFORM_ISS
317         bool "ISS"
318         select XTENSA_CALIBRATE_CCOUNT
319         select SERIAL_CONSOLE
320         help
321           ISS is an acronym for Tensilica's Instruction Set Simulator.
322
323 config XTENSA_PLATFORM_XT2000
324         bool "XT2000"
325         select HAVE_IDE
326         help
327           XT2000 is the name of Tensilica's feature-rich emulation platform.
328           This hardware is capable of running a full Linux distribution.
329
330 config XTENSA_PLATFORM_XTFPGA
331         bool "XTFPGA"
332         select ETHOC if ETHERNET
333         select PLATFORM_WANT_DEFAULT_MEM if !MMU
334         select SERIAL_CONSOLE
335         select XTENSA_CALIBRATE_CCOUNT
336         select PLATFORM_HAVE_XIP
337         help
338           XTFPGA is the name of Tensilica board family (LX60, LX110, LX200, ML605).
339           This hardware is capable of running a full Linux distribution.
340
341 endchoice
342
343 config PLATFORM_NR_IRQS
344         int
345         default 3 if XTENSA_PLATFORM_XT2000
346         default 0
347
348 config XTENSA_CPU_CLOCK
349         int "CPU clock rate [MHz]"
350         depends on !XTENSA_CALIBRATE_CCOUNT
351         default 16
352
353 config GENERIC_CALIBRATE_DELAY
354         bool "Auto calibration of the BogoMIPS value"
355         help
356           The BogoMIPS value can easily be derived from the CPU frequency.
357
358 config CMDLINE_BOOL
359         bool "Default bootloader kernel arguments"
360
361 config CMDLINE
362         string "Initial kernel command string"
363         depends on CMDLINE_BOOL
364         default "console=ttyS0,38400 root=/dev/ram"
365         help
366           On some architectures (EBSA110 and CATS), there is currently no way
367           for the boot loader to pass arguments to the kernel. For these
368           architectures, you should supply some command-line options at build
369           time by entering them here. As a minimum, you should specify the
370           memory size and the root device (e.g., mem=64M root=/dev/nfs).
371
372 config USE_OF
373         bool "Flattened Device Tree support"
374         select OF
375         select OF_EARLY_FLATTREE
376         help
377           Include support for flattened device tree machine descriptions.
378
379 config BUILTIN_DTB_SOURCE
380         string "DTB to build into the kernel image"
381         depends on OF
382
383 config PARSE_BOOTPARAM
384         bool "Parse bootparam block"
385         default y
386         help
387           Parse parameters passed to the kernel from the bootloader. It may
388           be disabled if the kernel is known to run without the bootloader.
389
390           If unsure, say Y.
391
392 config BLK_DEV_SIMDISK
393         tristate "Host file-based simulated block device support"
394         default n
395         depends on XTENSA_PLATFORM_ISS && BLOCK
396         help
397           Create block devices that map to files in the host file system.
398           Device binding to host file may be changed at runtime via proc
399           interface provided the device is not in use.
400
401 config BLK_DEV_SIMDISK_COUNT
402         int "Number of host file-based simulated block devices"
403         range 1 10
404         depends on BLK_DEV_SIMDISK
405         default 2
406         help
407           This is the default minimal number of created block devices.
408           Kernel/module parameter 'simdisk_count' may be used to change this
409           value at runtime. More file names (but no more than 10) may be
410           specified as parameters, simdisk_count grows accordingly.
411
412 config SIMDISK0_FILENAME
413         string "Host filename for the first simulated device"
414         depends on BLK_DEV_SIMDISK = y
415         default ""
416         help
417           Attach a first simdisk to a host file. Conventionally, this file
418           contains a root file system.
419
420 config SIMDISK1_FILENAME
421         string "Host filename for the second simulated device"
422         depends on BLK_DEV_SIMDISK = y && BLK_DEV_SIMDISK_COUNT != 1
423         default ""
424         help
425           Another simulated disk in a host file for a buildroot-independent
426           storage.
427
428 config XTFPGA_LCD
429         bool "Enable XTFPGA LCD driver"
430         depends on XTENSA_PLATFORM_XTFPGA
431         default n
432         help
433           There's a 2x16 LCD on most of XTFPGA boards, kernel may output
434           progress messages there during bootup/shutdown. It may be useful
435           during board bringup.
436
437           If unsure, say N.
438
439 config XTFPGA_LCD_BASE_ADDR
440         hex "XTFPGA LCD base address"
441         depends on XTFPGA_LCD
442         default "0x0d0c0000"
443         help
444           Base address of the LCD controller inside KIO region.
445           Different boards from XTFPGA family have LCD controller at different
446           addresses. Please consult prototyping user guide for your board for
447           the correct address. Wrong address here may lead to hardware lockup.
448
449 config XTFPGA_LCD_8BIT_ACCESS
450         bool "Use 8-bit access to XTFPGA LCD"
451         depends on XTFPGA_LCD
452         default n
453         help
454           LCD may be connected with 4- or 8-bit interface, 8-bit access may
455           only be used with 8-bit interface. Please consult prototyping user
456           guide for your board for the correct interface width.
457
458 comment "Kernel memory layout"
459
460 config INITIALIZE_XTENSA_MMU_INSIDE_VMLINUX
461         bool "Initialize Xtensa MMU inside the Linux kernel code"
462         depends on !XTENSA_VARIANT_FSF && !XTENSA_VARIANT_DC232B
463         default y if XTENSA_VARIANT_DC233C || XTENSA_VARIANT_CUSTOM
464         help
465           Earlier version initialized the MMU in the exception vector
466           before jumping to _startup in head.S and had an advantage that
467           it was possible to place a software breakpoint at 'reset' and
468           then enter your normal kernel breakpoints once the MMU was mapped
469           to the kernel mappings (0XC0000000).
470
471           This unfortunately won't work for U-Boot and likely also wont
472           work for using KEXEC to have a hot kernel ready for doing a
473           KDUMP.
474
475           So now the MMU is initialized in head.S but it's necessary to
476           use hardware breakpoints (gdb 'hbreak' cmd) to break at _startup.
477           xt-gdb can't place a Software Breakpoint in the  0XD region prior
478           to mapping the MMU and after mapping even if the area of low memory
479           was mapped gdb wouldn't remove the breakpoint on hitting it as the
480           PC wouldn't match. Since Hardware Breakpoints are recommended for
481           Linux configurations it seems reasonable to just assume they exist
482           and leave this older mechanism for unfortunate souls that choose
483           not to follow Tensilica's recommendation.
484
485           Selecting this will cause U-Boot to set the KERNEL Load and Entry
486           address at 0x00003000 instead of the mapped std of 0xD0003000.
487
488           If in doubt, say Y.
489
490 config XIP_KERNEL
491         bool "Kernel Execute-In-Place from ROM"
492         depends on PLATFORM_HAVE_XIP
493         help
494           Execute-In-Place allows the kernel to run from non-volatile storage
495           directly addressable by the CPU, such as NOR flash. This saves RAM
496           space since the text section of the kernel is not loaded from flash
497           to RAM. Read-write sections, such as the data section and stack,
498           are still copied to RAM. The XIP kernel is not compressed since
499           it has to run directly from flash, so it will take more space to
500           store it. The flash address used to link the kernel object files,
501           and for storing it, is configuration dependent. Therefore, if you
502           say Y here, you must know the proper physical address where to
503           store the kernel image depending on your own flash memory usage.
504
505           Also note that the make target becomes "make xipImage" rather than
506           "make Image" or "make uImage". The final kernel binary to put in
507           ROM memory will be arch/xtensa/boot/xipImage.
508
509           If unsure, say N.
510
511 config MEMMAP_CACHEATTR
512         hex "Cache attributes for the memory address space"
513         depends on !MMU
514         default 0x22222222
515         help
516           These cache attributes are set up for noMMU systems. Each hex digit
517           specifies cache attributes for the corresponding 512MB memory
518           region: bits 0..3 -- for addresses 0x00000000..0x1fffffff,
519           bits 4..7 -- for addresses 0x20000000..0x3fffffff, and so on.
520
521           Cache attribute values are specific for the MMU type.
522           For region protection MMUs:
523             1: WT cached,
524             2: cache bypass,
525             4: WB cached,
526             f: illegal.
527           For full MMU:
528             bit 0: executable,
529             bit 1: writable,
530             bits 2..3:
531               0: cache bypass,
532               1: WB cache,
533               2: WT cache,
534               3: special (c and e are illegal, f is reserved).
535           For MPU:
536             0: illegal,
537             1: WB cache,
538             2: WB, no-write-allocate cache,
539             3: WT cache,
540             4: cache bypass.
541
542 config KSEG_PADDR
543         hex "Physical address of the KSEG mapping"
544         depends on INITIALIZE_XTENSA_MMU_INSIDE_VMLINUX && MMU
545         default 0x00000000
546         help
547           This is the physical address where KSEG is mapped. Please refer to
548           the chosen KSEG layout help for the required address alignment.
549           Unpacked kernel image (including vectors) must be located completely
550           within KSEG.
551           Physical memory below this address is not available to linux.
552
553           If unsure, leave the default value here.
554
555 config KERNEL_VIRTUAL_ADDRESS
556         hex "Kernel virtual address"
557         depends on MMU && XIP_KERNEL
558         default 0xd0003000
559         help
560           This is the virtual address where the XIP kernel is mapped.
561           XIP kernel may be mapped into KSEG or KIO region, virtual address
562           provided here must match kernel load address provided in
563           KERNEL_LOAD_ADDRESS.
564
565 config KERNEL_LOAD_ADDRESS
566         hex "Kernel load address"
567         default 0x60003000 if !MMU
568         default 0x00003000 if MMU && INITIALIZE_XTENSA_MMU_INSIDE_VMLINUX
569         default 0xd0003000 if MMU && !INITIALIZE_XTENSA_MMU_INSIDE_VMLINUX
570         help
571           This is the address where the kernel is loaded.
572           It is virtual address for MMUv2 configurations and physical address
573           for all other configurations.
574
575           If unsure, leave the default value here.
576
577 choice
578         prompt "Relocatable vectors location"
579         default XTENSA_VECTORS_IN_TEXT
580         help
581           Choose whether relocatable vectors are merged into the kernel .text
582           or placed separately at runtime. This option does not affect
583           configurations without VECBASE register where vectors are always
584           placed at their hardware-defined locations.
585
586 config XTENSA_VECTORS_IN_TEXT
587         bool "Merge relocatable vectors into kernel text"
588         depends on !MTD_XIP
589         help
590           This option puts relocatable vectors into the kernel .text section
591           with proper alignment.
592           This is a safe choice for most configurations.
593
594 config XTENSA_VECTORS_SEPARATE
595         bool "Put relocatable vectors at fixed address"
596         help
597           This option puts relocatable vectors at specific virtual address.
598           Vectors are merged with the .init data in the kernel image and
599           are copied into their designated location during kernel startup.
600           Use it to put vectors into IRAM or out of FLASH on kernels with
601           XIP-aware MTD support.
602
603 endchoice
604
605 config VECTORS_ADDR
606         hex "Kernel vectors virtual address"
607         default 0x00000000
608         depends on XTENSA_VECTORS_SEPARATE
609         help
610           This is the virtual address of the (relocatable) vectors base.
611           It must be within KSEG if MMU is used.
612
613 config XIP_DATA_ADDR
614         hex "XIP kernel data virtual address"
615         depends on XIP_KERNEL
616         default 0x00000000
617         help
618           This is the virtual address where XIP kernel data is copied.
619           It must be within KSEG if MMU is used.
620
621 config PLATFORM_WANT_DEFAULT_MEM
622         def_bool n
623
624 config DEFAULT_MEM_START
625         hex
626         prompt "PAGE_OFFSET/PHYS_OFFSET" if !MMU && PLATFORM_WANT_DEFAULT_MEM
627         default 0x60000000 if PLATFORM_WANT_DEFAULT_MEM
628         default 0x00000000
629         help
630           This is the base address used for both PAGE_OFFSET and PHYS_OFFSET
631           in noMMU configurations.
632
633           If unsure, leave the default value here.
634
635 choice
636         prompt "KSEG layout"
637         depends on MMU
638         default XTENSA_KSEG_MMU_V2
639
640 config XTENSA_KSEG_MMU_V2
641         bool "MMUv2: 128MB cached + 128MB uncached"
642         help
643           MMUv2 compatible kernel memory map: TLB way 5 maps 128MB starting
644           at KSEG_PADDR to 0xd0000000 with cache and to 0xd8000000
645           without cache.
646           KSEG_PADDR must be aligned to 128MB.
647
648 config XTENSA_KSEG_256M
649         bool "256MB cached + 256MB uncached"
650         depends on INITIALIZE_XTENSA_MMU_INSIDE_VMLINUX
651         help
652           TLB way 6 maps 256MB starting at KSEG_PADDR to 0xb0000000
653           with cache and to 0xc0000000 without cache.
654           KSEG_PADDR must be aligned to 256MB.
655
656 config XTENSA_KSEG_512M
657         bool "512MB cached + 512MB uncached"
658         depends on INITIALIZE_XTENSA_MMU_INSIDE_VMLINUX
659         help
660           TLB way 6 maps 512MB starting at KSEG_PADDR to 0xa0000000
661           with cache and to 0xc0000000 without cache.
662           KSEG_PADDR must be aligned to 256MB.
663
664 endchoice
665
666 config HIGHMEM
667         bool "High Memory Support"
668         depends on MMU
669         help
670           Linux can use the full amount of RAM in the system by
671           default. However, the default MMUv2 setup only maps the
672           lowermost 128 MB of memory linearly to the areas starting
673           at 0xd0000000 (cached) and 0xd8000000 (uncached).
674           When there are more than 128 MB memory in the system not
675           all of it can be "permanently mapped" by the kernel.
676           The physical memory that's not permanently mapped is called
677           "high memory".
678
679           If you are compiling a kernel which will never run on a
680           machine with more than 128 MB total physical RAM, answer
681           N here.
682
683           If unsure, say Y.
684
685 config FORCE_MAX_ZONEORDER
686         int "Maximum zone order"
687         default "11"
688         help
689           The kernel memory allocator divides physically contiguous memory
690           blocks into "zones", where each zone is a power of two number of
691           pages.  This option selects the largest power of two that the kernel
692           keeps in the memory allocator.  If you need to allocate very large
693           blocks of physically contiguous memory, then you may need to
694           increase this value.
695
696           This config option is actually maximum order plus one. For example,
697           a value of 11 means that the largest free memory block is 2^10 pages.
698
699 endmenu
700
701 menu "Power management options"
702
703 source "kernel/power/Kconfig"
704
705 endmenu