xref: /openbmc/linux/arch/xtensa/Kconfig (revision 6aeadf78)
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