xref: /openbmc/linux/arch/xtensa/Kconfig (revision c900529f3d9161bfde5cca0754f83b4d3c3e0220)
1b2441318SGreg Kroah-Hartman# SPDX-License-Identifier: GPL-2.0
28e1a6dd2SChris Zankelconfig XTENSA
335f9cd08SJohannes Weiner	def_bool y
4942fa985SYury Norov	select ARCH_32BIT_OFF_T
5aef0f78eSChristoph Hellwig	select ARCH_HAS_BINFMT_FLAT if !MMU
692652cf9SKees Cook	select ARCH_HAS_CURRENT_STACK_POINTER
7af7a16e5SMax Filippov	select ARCH_HAS_DEBUG_VM_PGTABLE
80f665b9eSChristoph Hellwig	select ARCH_HAS_DMA_PREP_COHERENT if MMU
90847d167SMax Filippov	select ARCH_HAS_GCOV_PROFILE_ALL
10c49731a0SMax Filippov	select ARCH_HAS_KCOV
110f665b9eSChristoph Hellwig	select ARCH_HAS_SYNC_DMA_FOR_CPU if MMU
120f665b9eSChristoph Hellwig	select ARCH_HAS_SYNC_DMA_FOR_DEVICE if MMU
13fa7e2247SChristoph Hellwig	select ARCH_HAS_DMA_SET_UNCACHED if MMU
14e6226997SArnd Bergmann	select ARCH_HAS_STRNCPY_FROM_USER if !KASAN
15e6226997SArnd Bergmann	select ARCH_HAS_STRNLEN_USER
16dce44566SAnshuman Khandual	select ARCH_USE_MEMTEST
17579afe86SMax Filippov	select ARCH_USE_QUEUED_RWLOCKS
18579afe86SMax Filippov	select ARCH_USE_QUEUED_SPINLOCKS
19e969161bSMax Filippov	select ARCH_WANT_IPC_PARSE_VERSION
2010916706SShile Zhang	select BUILDTIME_TABLE_SORT
213e41f9baSAl Viro	select CLONE_BACKWARDS
22bda8932dSMax Filippov	select COMMON_CLK
23f5ff79fdSChristoph Hellwig	select DMA_NONCOHERENT_MMAP if MMU
24920f8a39SMax Filippov	select GENERIC_ATOMIC64
25920f8a39SMax Filippov	select GENERIC_IRQ_SHOW
2619c5699fSMax Filippov	select GENERIC_LIB_CMPDI2
2719c5699fSMax Filippov	select GENERIC_LIB_MULDI3
2819c5699fSMax Filippov	select GENERIC_LIB_UCMPDI2
29920f8a39SMax Filippov	select GENERIC_PCI_IOMAP
30920f8a39SMax Filippov	select GENERIC_SCHED_CLOCK
31ca6c1af3SBaoquan He	select GENERIC_IOREMAP if MMU
32ef1a935cSMax Filippov	select HAVE_ARCH_AUDITSYSCALL
337af710d9SMax Filippov	select HAVE_ARCH_JUMP_LABEL if !XIP_KERNEL
347af710d9SMax Filippov	select HAVE_ARCH_KASAN if MMU && !XIP_KERNEL
35725aea87SMax Filippov	select HAVE_ARCH_KCSAN
36da94a40fSMax Filippov	select HAVE_ARCH_SECCOMP_FILTER
379f24f3c1SMax Filippov	select HAVE_ARCH_TRACEHOOK
38338d9150SMax Filippov	select HAVE_ASM_MODVERSIONS
3924a9c541SFrederic Weisbecker	select HAVE_CONTEXT_TRACKING_USER
400e46c111SMax Filippov	select HAVE_DEBUG_KMEMLEAK
419d2ffe5cSMax Filippov	select HAVE_DMA_CONTIGUOUS
425f56a5dfSJiri Slaby	select HAVE_EXIT_THREAD
43920f8a39SMax Filippov	select HAVE_FUNCTION_TRACER
447dc0eb0bSMax Filippov	select HAVE_GCC_PLUGINS if GCC_VERSION >= 120000
45c91e02bdSMax Filippov	select HAVE_HW_BREAKPOINT if PERF_EVENTS
46920f8a39SMax Filippov	select HAVE_IRQ_TIME_ACCOUNTING
47eb01d42aSChristoph Hellwig	select HAVE_PCI
48920f8a39SMax Filippov	select HAVE_PERF_EVENTS
49d148eac0SMasahiro Yamada	select HAVE_STACKPROTECTOR
50af5395c2SMax Filippov	select HAVE_SYSCALL_TRACEPOINTS
5150718569SMax Filippov	select HAVE_VIRT_CPU_ACCOUNTING_GEN
52920f8a39SMax Filippov	select IRQ_DOMAIN
53a050ba1eSLinus Torvalds	select LOCK_MM_AND_FIND_VMA
54920f8a39SMax Filippov	select MODULES_USE_ELF_RELA
55db8165f5SMax Filippov	select PERF_USE_VMALLOC
564aae683fSMasahiro Yamada	select TRACE_IRQFLAGS_SUPPORT
578e1a6dd2SChris Zankel	help
588e1a6dd2SChris Zankel	  Xtensa processors are 32-bit RISC machines designed by Tensilica
598e1a6dd2SChris Zankel	  primarily for embedded systems.  These processors are both
608e1a6dd2SChris Zankel	  configurable and extensible.  The Linux port to the Xtensa
618e1a6dd2SChris Zankel	  architecture supports all processor configurations and extensions,
628e1a6dd2SChris Zankel	  with reasonable minimum requirements.  The Xtensa Linux project has
630ada4490SMasanari Iida	  a home page at <http://www.linux-xtensa.org/>.
648e1a6dd2SChris Zankel
65d4337aa5SAkinobu Mitaconfig GENERIC_HWEIGHT
6635f9cd08SJohannes Weiner	def_bool y
67d4337aa5SAkinobu Mita
68f0d1b0b3SDavid Howellsconfig ARCH_HAS_ILOG2_U32
6935f9cd08SJohannes Weiner	def_bool n
70f0d1b0b3SDavid Howells
71f0d1b0b3SDavid Howellsconfig ARCH_HAS_ILOG2_U64
7235f9cd08SJohannes Weiner	def_bool n
73f0d1b0b3SDavid Howells
74*03ce34cfSMax Filippovconfig ARCH_MTD_XIP
75*03ce34cfSMax Filippov	def_bool y
76*03ce34cfSMax Filippov
77ce816fa8SUwe Kleine-Königconfig NO_IOPORT_MAP
78d046f77eSMax Filippov	def_bool n
795ea81769SAl Viro
80bdc80787SH. Peter Anvinconfig HZ
81bdc80787SH. Peter Anvin	int
82bdc80787SH. Peter Anvin	default 100
83bdc80787SH. Peter Anvin
848f371c75SMax Filippovconfig LOCKDEP_SUPPORT
858f371c75SMax Filippov	def_bool y
868f371c75SMax Filippov
873e4196a5SMax Filippovconfig STACKTRACE_SUPPORT
883e4196a5SMax Filippov	def_bool y
893e4196a5SMax Filippov
9035f9cd08SJohannes Weinerconfig MMU
91de7c1c78SMax Filippov	def_bool n
92a8f0c31fSMax Filippov	select PFAULT
9335f9cd08SJohannes Weiner
94a1a2bdecSBaruch Siachconfig HAVE_XTENSA_GPIO32
95a1a2bdecSBaruch Siach	def_bool n
96a1a2bdecSBaruch Siach
97c633544aSMax Filippovconfig KASAN_SHADOW_OFFSET
98c633544aSMax Filippov	hex
99c633544aSMax Filippov	default 0x6e400000
100c633544aSMax Filippov
101c425c546SMasahiro Yamadaconfig CPU_BIG_ENDIAN
102c425c546SMasahiro Yamada	def_bool $(success,test "$(shell,echo __XTENSA_EB__ | $(CC) -E -P -)" = 1)
103c425c546SMasahiro Yamada
104c425c546SMasahiro Yamadaconfig CPU_LITTLE_ENDIAN
105c425c546SMasahiro Yamada	def_bool !CPU_BIG_ENDIAN
106c425c546SMasahiro Yamada
107c20e1117SMax Filippovconfig CC_HAVE_CALL0_ABI
108c20e1117SMax Filippov	def_bool $(success,test "$(shell,echo __XTENSA_CALL0_ABI__ | $(CC) -mabi=call0 -E -P - 2>/dev/null)" = 1)
109c20e1117SMax Filippov
1108e1a6dd2SChris Zankelmenu "Processor type and features"
1118e1a6dd2SChris Zankel
1128e1a6dd2SChris Zankelchoice
1138e1a6dd2SChris Zankel	prompt "Xtensa Processor Configuration"
114173d6681SChris Zankel	default XTENSA_VARIANT_FSF
1158e1a6dd2SChris Zankel
116173d6681SChris Zankelconfig XTENSA_VARIANT_FSF
1170025427eSChris Zankel	bool "fsf - default (not generic) configuration"
11835f9cd08SJohannes Weiner	select MMU
1190025427eSChris Zankel
1200025427eSChris Zankelconfig XTENSA_VARIANT_DC232B
1210025427eSChris Zankel	bool "dc232b - Diamond 232L Standard Core Rev.B (LE)"
12235f9cd08SJohannes Weiner	select MMU
123a1a2bdecSBaruch Siach	select HAVE_XTENSA_GPIO32
1240025427eSChris Zankel	help
1250025427eSChris Zankel	  This variant refers to Tensilica's Diamond 232L Standard core Rev.B (LE).
126000af2c5SJohannes Weiner
127d0b73b48SPete Delaneyconfig XTENSA_VARIANT_DC233C
128d0b73b48SPete Delaney	bool "dc233c - Diamond 233L Standard Core Rev.C (LE)"
129d0b73b48SPete Delaney	select MMU
130a1a2bdecSBaruch Siach	select HAVE_XTENSA_GPIO32
131d0b73b48SPete Delaney	help
132d0b73b48SPete Delaney	  This variant refers to Tensilica's Diamond 233L Standard core Rev.C (LE).
133d0b73b48SPete Delaney
134420ae951SMax Filippovconfig XTENSA_VARIANT_CUSTOM
135420ae951SMax Filippov	bool "Custom Xtensa processor configuration"
136420ae951SMax Filippov	select HAVE_XTENSA_GPIO32
137420ae951SMax Filippov	help
138420ae951SMax Filippov	  Select this variant to use a custom Xtensa processor configuration.
139420ae951SMax Filippov	  You will be prompted for a processor variant CORENAME.
1408e1a6dd2SChris Zankelendchoice
1418e1a6dd2SChris Zankel
142420ae951SMax Filippovconfig XTENSA_VARIANT_CUSTOM_NAME
143420ae951SMax Filippov	string "Xtensa Processor Custom Core Variant Name"
144420ae951SMax Filippov	depends on XTENSA_VARIANT_CUSTOM
145420ae951SMax Filippov	help
146420ae951SMax Filippov	  Provide the name of a custom Xtensa processor variant.
147420ae951SMax Filippov	  This CORENAME selects arch/xtensa/variant/CORENAME.
14870cbddb9SHu Haowen	  Don't forget you have to select MMU if you have one.
149420ae951SMax Filippov
150420ae951SMax Filippovconfig XTENSA_VARIANT_NAME
151420ae951SMax Filippov	string
152420ae951SMax Filippov	default "dc232b"			if XTENSA_VARIANT_DC232B
153420ae951SMax Filippov	default "dc233c"			if XTENSA_VARIANT_DC233C
154420ae951SMax Filippov	default "fsf"				if XTENSA_VARIANT_FSF
155420ae951SMax Filippov	default XTENSA_VARIANT_CUSTOM_NAME	if XTENSA_VARIANT_CUSTOM
156420ae951SMax Filippov
157420ae951SMax Filippovconfig XTENSA_VARIANT_MMU
158420ae951SMax Filippov	bool "Core variant has a Full MMU (TLB, Pages, Protection, etc)"
159420ae951SMax Filippov	depends on XTENSA_VARIANT_CUSTOM
160420ae951SMax Filippov	default y
161de7c1c78SMax Filippov	select MMU
162420ae951SMax Filippov	help
163420ae951SMax Filippov	  Build a Conventional Kernel with full MMU support,
164420ae951SMax Filippov	  ie: it supports a TLB with auto-loading, page protection.
165420ae951SMax Filippov
1669bd46da4SMax Filippovconfig XTENSA_VARIANT_HAVE_PERF_EVENTS
1679bd46da4SMax Filippov	bool "Core variant has Performance Monitor Module"
1689bd46da4SMax Filippov	depends on XTENSA_VARIANT_CUSTOM
1699bd46da4SMax Filippov	default n
1709bd46da4SMax Filippov	help
1719bd46da4SMax Filippov	  Enable if core variant has Performance Monitor Module with
1729bd46da4SMax Filippov	  External Registers Interface.
1739bd46da4SMax Filippov
1749bd46da4SMax Filippov	  If unsure, say N.
1759bd46da4SMax Filippov
176e4629194SMax Filippovconfig XTENSA_FAKE_NMI
177e4629194SMax Filippov	bool "Treat PMM IRQ as NMI"
178e4629194SMax Filippov	depends on XTENSA_VARIANT_HAVE_PERF_EVENTS
179e4629194SMax Filippov	default n
180e4629194SMax Filippov	help
181e4629194SMax Filippov	  If PMM IRQ is the only IRQ at EXCM level it is safe to
182e4629194SMax Filippov	  treat it as NMI, which improves accuracy of profiling.
183e4629194SMax Filippov
184e4629194SMax Filippov	  If there are other interrupts at or above PMM IRQ priority level
185e4629194SMax Filippov	  but not above the EXCM level, PMM IRQ still may be treated as NMI,
186e4629194SMax Filippov	  but only if these IRQs are not used. There will be a build warning
187e4629194SMax Filippov	  saying that this is not safe, and a bugcheck if one of these IRQs
188e4629194SMax Filippov	  actually fire.
189e4629194SMax Filippov
190e4629194SMax Filippov	  If unsure, say N.
191e4629194SMax Filippov
192a8f0c31fSMax Filippovconfig PFAULT
193a8f0c31fSMax Filippov	bool "Handle protection faults" if EXPERT && !MMU
194a8f0c31fSMax Filippov	default y
195a8f0c31fSMax Filippov	help
196a8f0c31fSMax Filippov	  Handle protection faults. MMU configurations must enable it.
197a8f0c31fSMax Filippov	  noMMU configurations may disable it if used memory map never
198a8f0c31fSMax Filippov	  generates protection faults or faults are always fatal.
199a8f0c31fSMax Filippov
200a8f0c31fSMax Filippov	  If unsure, say Y.
201a8f0c31fSMax Filippov
2028e1a6dd2SChris Zankelconfig XTENSA_UNALIGNED_USER
203ad33cc80SCorentin Labbe	bool "Unaligned memory access in user space"
20435f9cd08SJohannes Weiner	help
2058e1a6dd2SChris Zankel	  The Xtensa architecture currently does not handle unaligned
2068e1a6dd2SChris Zankel	  memory accesses in hardware but through an exception handler.
2078e1a6dd2SChris Zankel	  Per default, unaligned memory accesses are disabled in user space.
2088e1a6dd2SChris Zankel
2098e1a6dd2SChris Zankel	  Say Y here to enable unaligned memory access in user space.
2108e1a6dd2SChris Zankel
211f29cf776SMax Filippovconfig XTENSA_LOAD_STORE
212f29cf776SMax Filippov	bool "Load/store exception handler for memory only readable with l32"
213f29cf776SMax Filippov	help
214f29cf776SMax Filippov	  The Xtensa architecture only allows reading memory attached to its
215f29cf776SMax Filippov	  instruction bus with l32r and l32i instructions, all other
216f29cf776SMax Filippov	  instructions raise an exception with the LoadStoreErrorCause code.
217f29cf776SMax Filippov	  This makes it hard to use some configurations, e.g. store string
218f29cf776SMax Filippov	  literals in FLASH memory attached to the instruction bus.
219f29cf776SMax Filippov
220f29cf776SMax Filippov	  Say Y here to enable exception handler that allows transparent
221f29cf776SMax Filippov	  byte and 2-byte access to memory attached to instruction bus.
222f29cf776SMax Filippov
223f615136cSMax Filippovconfig HAVE_SMP
224f615136cSMax Filippov	bool "System Supports SMP (MX)"
225de7c1c78SMax Filippov	depends on XTENSA_VARIANT_CUSTOM
226f615136cSMax Filippov	select XTENSA_MX
227f615136cSMax Filippov	help
22858bc6c69SRandy Dunlap	  This option is used to indicate that the system-on-a-chip (SOC)
229f615136cSMax Filippov	  supports Multiprocessing. Multiprocessor support implemented above
230f615136cSMax Filippov	  the CPU core definition and currently needs to be selected manually.
231f615136cSMax Filippov
23258bc6c69SRandy Dunlap	  Multiprocessor support is implemented with external cache and
233769a12a9SMasanari Iida	  interrupt controllers.
234f615136cSMax Filippov
235f615136cSMax Filippov	  The MX interrupt distributer adds Interprocessor Interrupts
236f615136cSMax Filippov	  and causes the IRQ numbers to be increased by 4 for devices
237f615136cSMax Filippov	  like the open cores ethernet driver and the serial interface.
238f615136cSMax Filippov
239f615136cSMax Filippov	  You still have to select "Enable SMP" to enable SMP on this SOC.
240f615136cSMax Filippov
241f615136cSMax Filippovconfig SMP
242f615136cSMax Filippov	bool "Enable Symmetric multi-processing support"
243f615136cSMax Filippov	depends on HAVE_SMP
244f615136cSMax Filippov	select GENERIC_SMP_IDLE_THREAD
245f615136cSMax Filippov	help
246f615136cSMax Filippov	  Enabled SMP Software; allows more than one CPU/CORE
247f615136cSMax Filippov	  to be activated during startup.
248f615136cSMax Filippov
249f615136cSMax Filippovconfig NR_CPUS
250f615136cSMax Filippov	depends on SMP
251f615136cSMax Filippov	int "Maximum number of CPUs (2-32)"
252f615136cSMax Filippov	range 2 32
253f615136cSMax Filippov	default "4"
254f615136cSMax Filippov
25549b424feSMax Filippovconfig HOTPLUG_CPU
25649b424feSMax Filippov	bool "Enable CPU hotplug support"
25749b424feSMax Filippov	depends on SMP
25849b424feSMax Filippov	help
25949b424feSMax Filippov	  Say Y here to allow turning CPUs off and on. CPUs can be
26049b424feSMax Filippov	  controlled through /sys/devices/system/cpu.
26149b424feSMax Filippov
26249b424feSMax Filippov	  Say N if you want to disable CPU hotplug.
26349b424feSMax Filippov
26489b184f9SMax Filippovconfig SECONDARY_RESET_VECTOR
26589b184f9SMax Filippov	bool "Secondary cores use alternative reset vector"
26689b184f9SMax Filippov	default y
26789b184f9SMax Filippov	depends on HAVE_SMP
26889b184f9SMax Filippov	help
26989b184f9SMax Filippov	  Secondary cores may be configured to use alternative reset vector,
27089b184f9SMax Filippov	  or all cores may use primary reset vector.
27189b184f9SMax Filippov	  Say Y here to supply handler for the alternative reset location.
27289b184f9SMax Filippov
2739184289cSMax Filippovconfig FAST_SYSCALL_XTENSA
2749184289cSMax Filippov	bool "Enable fast atomic syscalls"
2759184289cSMax Filippov	default n
2769184289cSMax Filippov	help
2779184289cSMax Filippov	  fast_syscall_xtensa is a syscall that can make atomic operations
2789184289cSMax Filippov	  on UP kernel when processor has no s32c1i support.
2799184289cSMax Filippov
2809184289cSMax Filippov	  This syscall is deprecated. It may have issues when called with
2819184289cSMax Filippov	  invalid arguments. It is provided only for backwards compatibility.
2829184289cSMax Filippov	  Only enable it if your userspace software requires it.
2839184289cSMax Filippov
2849184289cSMax Filippov	  If unsure, say N.
2859184289cSMax Filippov
2869184289cSMax Filippovconfig FAST_SYSCALL_SPILL_REGISTERS
2879184289cSMax Filippov	bool "Enable spill registers syscall"
2889184289cSMax Filippov	default n
2899184289cSMax Filippov	help
2909184289cSMax Filippov	  fast_syscall_spill_registers is a syscall that spills all active
2919184289cSMax Filippov	  register windows of a calling userspace task onto its stack.
2929184289cSMax Filippov
2939184289cSMax Filippov	  This syscall is deprecated. It may have issues when called with
2949184289cSMax Filippov	  invalid arguments. It is provided only for backwards compatibility.
2959184289cSMax Filippov	  Only enable it if your userspace software requires it.
2969184289cSMax Filippov
2979184289cSMax Filippov	  If unsure, say N.
2989184289cSMax Filippov
299c20e1117SMax Filippovchoice
300c20e1117SMax Filippov	prompt "Kernel ABI"
301c20e1117SMax Filippov	default KERNEL_ABI_DEFAULT
302c20e1117SMax Filippov	help
303c20e1117SMax Filippov	  Select ABI for the kernel code. This ABI is independent of the
304c20e1117SMax Filippov	  supported userspace ABI and any combination of the
305c20e1117SMax Filippov	  kernel/userspace ABI is possible and should work.
306c20e1117SMax Filippov
307c20e1117SMax Filippov	  In case both kernel and userspace support only call0 ABI
308c20e1117SMax Filippov	  all register windows support code will be omitted from the
309c20e1117SMax Filippov	  build.
310c20e1117SMax Filippov
311c20e1117SMax Filippov	  If unsure, choose the default ABI.
312c20e1117SMax Filippov
313c20e1117SMax Filippovconfig KERNEL_ABI_DEFAULT
314c20e1117SMax Filippov	bool "Default ABI"
315c20e1117SMax Filippov	help
316c20e1117SMax Filippov	  Select this option to compile kernel code with the default ABI
317c20e1117SMax Filippov	  selected for the toolchain.
318c20e1117SMax Filippov	  Normally cores with windowed registers option use windowed ABI and
319c20e1117SMax Filippov	  cores without it use call0 ABI.
320c20e1117SMax Filippov
321c20e1117SMax Filippovconfig KERNEL_ABI_CALL0
322c20e1117SMax Filippov	bool "Call0 ABI" if CC_HAVE_CALL0_ABI
323c20e1117SMax Filippov	help
324c20e1117SMax Filippov	  Select this option to compile kernel code with call0 ABI even with
325c20e1117SMax Filippov	  toolchain that defaults to windowed ABI.
326c20e1117SMax Filippov	  When this option is not selected the default toolchain ABI will
327c20e1117SMax Filippov	  be used for the kernel code.
328c20e1117SMax Filippov
329c20e1117SMax Filippovendchoice
330c20e1117SMax Filippov
33109f8a6dbSMax Filippovconfig USER_ABI_CALL0
33209f8a6dbSMax Filippov	bool
33309f8a6dbSMax Filippov
33409f8a6dbSMax Filippovchoice
33509f8a6dbSMax Filippov	prompt "Userspace ABI"
33609f8a6dbSMax Filippov	default USER_ABI_DEFAULT
33709f8a6dbSMax Filippov	help
33809f8a6dbSMax Filippov	  Select supported userspace ABI.
33909f8a6dbSMax Filippov
34009f8a6dbSMax Filippov	  If unsure, choose the default ABI.
34109f8a6dbSMax Filippov
34209f8a6dbSMax Filippovconfig USER_ABI_DEFAULT
34309f8a6dbSMax Filippov	bool "Default ABI only"
34409f8a6dbSMax Filippov	help
34509f8a6dbSMax Filippov	  Assume default userspace ABI. For XEA2 cores it is windowed ABI.
34609f8a6dbSMax Filippov	  call0 ABI binaries may be run on such kernel, but signal delivery
34709f8a6dbSMax Filippov	  will not work correctly for them.
34809f8a6dbSMax Filippov
34909f8a6dbSMax Filippovconfig USER_ABI_CALL0_ONLY
35009f8a6dbSMax Filippov	bool "Call0 ABI only"
35109f8a6dbSMax Filippov	select USER_ABI_CALL0
35209f8a6dbSMax Filippov	help
35309f8a6dbSMax Filippov	  Select this option to support only call0 ABI in userspace.
35409f8a6dbSMax Filippov	  Windowed ABI binaries will crash with a segfault caused by
35509f8a6dbSMax Filippov	  an illegal instruction exception on the first 'entry' opcode.
35609f8a6dbSMax Filippov
35709f8a6dbSMax Filippov	  Choose this option if you're planning to run only user code
35809f8a6dbSMax Filippov	  built with call0 ABI.
35909f8a6dbSMax Filippov
36009f8a6dbSMax Filippovconfig USER_ABI_CALL0_PROBE
36109f8a6dbSMax Filippov	bool "Support both windowed and call0 ABI by probing"
36209f8a6dbSMax Filippov	select USER_ABI_CALL0
36309f8a6dbSMax Filippov	help
36409f8a6dbSMax Filippov	  Select this option to support both windowed and call0 userspace
36509f8a6dbSMax Filippov	  ABIs. When enabled all processes are started with PS.WOE disabled
36609f8a6dbSMax Filippov	  and a fast user exception handler for an illegal instruction is
36709f8a6dbSMax Filippov	  used to turn on PS.WOE bit on the first 'entry' opcode executed by
36809f8a6dbSMax Filippov	  the userspace.
36909f8a6dbSMax Filippov
37009f8a6dbSMax Filippov	  This option should be enabled for the kernel that must support
37109f8a6dbSMax Filippov	  both call0 and windowed ABIs in userspace at the same time.
37209f8a6dbSMax Filippov
37309f8a6dbSMax Filippov	  Note that Xtensa ISA does not guarantee that entry opcode will
37409f8a6dbSMax Filippov	  raise an illegal instruction exception on cores with XEA2 when
37509f8a6dbSMax Filippov	  PS.WOE is disabled, check whether the target core supports it.
37609f8a6dbSMax Filippov
37709f8a6dbSMax Filippovendchoice
37809f8a6dbSMax Filippov
3798e1a6dd2SChris Zankelendmenu
3808e1a6dd2SChris Zankel
38135f9cd08SJohannes Weinerconfig XTENSA_CALIBRATE_CCOUNT
38235f9cd08SJohannes Weiner	def_bool n
38335f9cd08SJohannes Weiner	help
38435f9cd08SJohannes Weiner	  On some platforms (XT2000, for example), the CPU clock rate can
38535f9cd08SJohannes Weiner	  vary.  The frequency can be determined, however, by measuring
38635f9cd08SJohannes Weiner	  against a well known, fixed frequency, such as an UART oscillator.
38735f9cd08SJohannes Weiner
38835f9cd08SJohannes Weinerconfig SERIAL_CONSOLE
38935f9cd08SJohannes Weiner	def_bool n
39035f9cd08SJohannes Weiner
3917af710d9SMax Filippovconfig PLATFORM_HAVE_XIP
3927af710d9SMax Filippov	def_bool n
3937af710d9SMax Filippov
3948e1a6dd2SChris Zankelmenu "Platform options"
3958e1a6dd2SChris Zankel
3968e1a6dd2SChris Zankelchoice
3978e1a6dd2SChris Zankel	prompt "Xtensa System Type"
3988e1a6dd2SChris Zankel	default XTENSA_PLATFORM_ISS
3998e1a6dd2SChris Zankel
4008e1a6dd2SChris Zankelconfig XTENSA_PLATFORM_ISS
4018e1a6dd2SChris Zankel	bool "ISS"
40235f9cd08SJohannes Weiner	select XTENSA_CALIBRATE_CCOUNT
40335f9cd08SJohannes Weiner	select SERIAL_CONSOLE
4048e1a6dd2SChris Zankel	help
4058e1a6dd2SChris Zankel	  ISS is an acronym for Tensilica's Instruction Set Simulator.
4068e1a6dd2SChris Zankel
4078e1a6dd2SChris Zankelconfig XTENSA_PLATFORM_XT2000
4088e1a6dd2SChris Zankel	bool "XT2000"
4098e1a6dd2SChris Zankel	help
4108e1a6dd2SChris Zankel	  XT2000 is the name of Tensilica's feature-rich emulation platform.
4118e1a6dd2SChris Zankel	  This hardware is capable of running a full Linux distribution.
4128e1a6dd2SChris Zankel
4130d456badSMax Filippovconfig XTENSA_PLATFORM_XTFPGA
4140d456badSMax Filippov	bool "XTFPGA"
41561e47e9bSMax Filippov	select ETHOC if ETHERNET
4163de00482SMax Filippov	select PLATFORM_WANT_DEFAULT_MEM if !MMU
4170d456badSMax Filippov	select SERIAL_CONSOLE
4180d456badSMax Filippov	select XTENSA_CALIBRATE_CCOUNT
4197af710d9SMax Filippov	select PLATFORM_HAVE_XIP
4200d456badSMax Filippov	help
4210d456badSMax Filippov	  XTFPGA is the name of Tensilica board family (LX60, LX110, LX200, ML605).
4220d456badSMax Filippov	  This hardware is capable of running a full Linux distribution.
4230d456badSMax Filippov
4248e1a6dd2SChris Zankelendchoice
4258e1a6dd2SChris Zankel
426994fa1c8SMax Filippovconfig PLATFORM_NR_IRQS
427994fa1c8SMax Filippov	int
428994fa1c8SMax Filippov	default 3 if XTENSA_PLATFORM_XT2000
429994fa1c8SMax Filippov	default 0
4308e1a6dd2SChris Zankel
4318e1a6dd2SChris Zankelconfig XTENSA_CPU_CLOCK
4328e1a6dd2SChris Zankel	int "CPU clock rate [MHz]"
4338e1a6dd2SChris Zankel	depends on !XTENSA_CALIBRATE_CCOUNT
43435f9cd08SJohannes Weiner	default 16
4358e1a6dd2SChris Zankel
4368e1a6dd2SChris Zankelconfig GENERIC_CALIBRATE_DELAY
4378e1a6dd2SChris Zankel	bool "Auto calibration of the BogoMIPS value"
43835f9cd08SJohannes Weiner	help
43982300bf4SChris Zankel	  The BogoMIPS value can easily be derived from the CPU frequency.
4408e1a6dd2SChris Zankel
4418e1a6dd2SChris Zankelconfig CMDLINE_BOOL
4428e1a6dd2SChris Zankel	bool "Default bootloader kernel arguments"
4438e1a6dd2SChris Zankel
4448e1a6dd2SChris Zankelconfig CMDLINE
4458e1a6dd2SChris Zankel	string "Initial kernel command string"
4468e1a6dd2SChris Zankel	depends on CMDLINE_BOOL
4478e1a6dd2SChris Zankel	default "console=ttyS0,38400 root=/dev/ram"
4488e1a6dd2SChris Zankel	help
4498e1a6dd2SChris Zankel	  On some architectures (EBSA110 and CATS), there is currently no way
4508e1a6dd2SChris Zankel	  for the boot loader to pass arguments to the kernel. For these
4518e1a6dd2SChris Zankel	  architectures, you should supply some command-line options at build
4528e1a6dd2SChris Zankel	  time by entering them here. As a minimum, you should specify the
4538e1a6dd2SChris Zankel	  memory size and the root device (e.g., mem=64M root=/dev/nfs).
4548e1a6dd2SChris Zankel
455da844a81SMax Filippovconfig USE_OF
456da844a81SMax Filippov	bool "Flattened Device Tree support"
457da844a81SMax Filippov	select OF
458da844a81SMax Filippov	select OF_EARLY_FLATTREE
459da844a81SMax Filippov	help
460da844a81SMax Filippov	  Include support for flattened device tree machine descriptions.
461da844a81SMax Filippov
462687cffd3SCorentin Labbeconfig BUILTIN_DTB_SOURCE
463da844a81SMax Filippov	string "DTB to build into the kernel image"
464da844a81SMax Filippov	depends on OF
465da844a81SMax Filippov
466baac1d36SMax Filippovconfig PARSE_BOOTPARAM
467baac1d36SMax Filippov	bool "Parse bootparam block"
468baac1d36SMax Filippov	default y
469baac1d36SMax Filippov	help
470baac1d36SMax Filippov	  Parse parameters passed to the kernel from the bootloader. It may
471baac1d36SMax Filippov	  be disabled if the kernel is known to run without the bootloader.
472baac1d36SMax Filippov
473baac1d36SMax Filippov	  If unsure, say Y.
474baac1d36SMax Filippov
4756a8eb99eSMax Filippovchoice
4766a8eb99eSMax Filippov	prompt "Semihosting interface"
4776a8eb99eSMax Filippov	default XTENSA_SIMCALL_ISS
4786a8eb99eSMax Filippov	depends on XTENSA_PLATFORM_ISS
4796a8eb99eSMax Filippov	help
4806a8eb99eSMax Filippov	  Choose semihosting interface that will be used for serial port,
4816a8eb99eSMax Filippov	  block device and networking.
4826a8eb99eSMax Filippov
4836a8eb99eSMax Filippovconfig XTENSA_SIMCALL_ISS
4846a8eb99eSMax Filippov	bool "simcall"
4856a8eb99eSMax Filippov	help
4866a8eb99eSMax Filippov	  Use simcall instruction. simcall is only available on simulators,
4876a8eb99eSMax Filippov	  it does nothing on hardware.
4886a8eb99eSMax Filippov
4896a8eb99eSMax Filippovconfig XTENSA_SIMCALL_GDBIO
4906a8eb99eSMax Filippov	bool "GDBIO"
4916a8eb99eSMax Filippov	help
4926a8eb99eSMax Filippov	  Use break instruction. It is available on real hardware when GDB
4936a8eb99eSMax Filippov	  is attached to it via JTAG.
4946a8eb99eSMax Filippov
4956a8eb99eSMax Filippovendchoice
4966a8eb99eSMax Filippov
497b6c7e873SVictor Prupisconfig BLK_DEV_SIMDISK
498b6c7e873SVictor Prupis	tristate "Host file-based simulated block device support"
499b6c7e873SVictor Prupis	default n
5007a0684cdSMax Filippov	depends on XTENSA_PLATFORM_ISS && BLOCK
501b6c7e873SVictor Prupis	help
502b6c7e873SVictor Prupis	  Create block devices that map to files in the host file system.
503b6c7e873SVictor Prupis	  Device binding to host file may be changed at runtime via proc
504b6c7e873SVictor Prupis	  interface provided the device is not in use.
505b6c7e873SVictor Prupis
506b6c7e873SVictor Prupisconfig BLK_DEV_SIMDISK_COUNT
507b6c7e873SVictor Prupis	int "Number of host file-based simulated block devices"
508b6c7e873SVictor Prupis	range 1 10
509b6c7e873SVictor Prupis	depends on BLK_DEV_SIMDISK
510b6c7e873SVictor Prupis	default 2
511b6c7e873SVictor Prupis	help
512b6c7e873SVictor Prupis	  This is the default minimal number of created block devices.
513b6c7e873SVictor Prupis	  Kernel/module parameter 'simdisk_count' may be used to change this
514b6c7e873SVictor Prupis	  value at runtime. More file names (but no more than 10) may be
515b6c7e873SVictor Prupis	  specified as parameters, simdisk_count grows accordingly.
516b6c7e873SVictor Prupis
517b6c7e873SVictor Prupisconfig SIMDISK0_FILENAME
518b6c7e873SVictor Prupis	string "Host filename for the first simulated device"
519b6c7e873SVictor Prupis	depends on BLK_DEV_SIMDISK = y
520b6c7e873SVictor Prupis	default ""
521b6c7e873SVictor Prupis	help
522b6c7e873SVictor Prupis	  Attach a first simdisk to a host file. Conventionally, this file
523b6c7e873SVictor Prupis	  contains a root file system.
524b6c7e873SVictor Prupis
525b6c7e873SVictor Prupisconfig SIMDISK1_FILENAME
526b6c7e873SVictor Prupis	string "Host filename for the second simulated device"
527b6c7e873SVictor Prupis	depends on BLK_DEV_SIMDISK = y && BLK_DEV_SIMDISK_COUNT != 1
528b6c7e873SVictor Prupis	default ""
529b6c7e873SVictor Prupis	help
530b6c7e873SVictor Prupis	  Another simulated disk in a host file for a buildroot-independent
531b6c7e873SVictor Prupis	  storage.
532b6c7e873SVictor Prupis
5334949009eSMax Filippovconfig XTFPGA_LCD
5344949009eSMax Filippov	bool "Enable XTFPGA LCD driver"
5354949009eSMax Filippov	depends on XTENSA_PLATFORM_XTFPGA
5364949009eSMax Filippov	default n
5374949009eSMax Filippov	help
5384949009eSMax Filippov	  There's a 2x16 LCD on most of XTFPGA boards, kernel may output
5394949009eSMax Filippov	  progress messages there during bootup/shutdown. It may be useful
5404949009eSMax Filippov	  during board bringup.
5414949009eSMax Filippov
5424949009eSMax Filippov	  If unsure, say N.
5434949009eSMax Filippov
5444949009eSMax Filippovconfig XTFPGA_LCD_BASE_ADDR
5454949009eSMax Filippov	hex "XTFPGA LCD base address"
5464949009eSMax Filippov	depends on XTFPGA_LCD
5474949009eSMax Filippov	default "0x0d0c0000"
5484949009eSMax Filippov	help
5494949009eSMax Filippov	  Base address of the LCD controller inside KIO region.
5504949009eSMax Filippov	  Different boards from XTFPGA family have LCD controller at different
5514949009eSMax Filippov	  addresses. Please consult prototyping user guide for your board for
5524949009eSMax Filippov	  the correct address. Wrong address here may lead to hardware lockup.
5534949009eSMax Filippov
5544949009eSMax Filippovconfig XTFPGA_LCD_8BIT_ACCESS
5554949009eSMax Filippov	bool "Use 8-bit access to XTFPGA LCD"
5564949009eSMax Filippov	depends on XTFPGA_LCD
5574949009eSMax Filippov	default n
5584949009eSMax Filippov	help
5594949009eSMax Filippov	  LCD may be connected with 4- or 8-bit interface, 8-bit access may
5604949009eSMax Filippov	  only be used with 8-bit interface. Please consult prototyping user
5614949009eSMax Filippov	  guide for your board for the correct interface width.
5624949009eSMax Filippov
56376743c0eSMax Filippovcomment "Kernel memory layout"
56476743c0eSMax Filippov
56576743c0eSMax Filippovconfig INITIALIZE_XTENSA_MMU_INSIDE_VMLINUX
56676743c0eSMax Filippov	bool "Initialize Xtensa MMU inside the Linux kernel code"
56776743c0eSMax Filippov	depends on !XTENSA_VARIANT_FSF && !XTENSA_VARIANT_DC232B
56876743c0eSMax Filippov	default y if XTENSA_VARIANT_DC233C || XTENSA_VARIANT_CUSTOM
56976743c0eSMax Filippov	help
57076743c0eSMax Filippov	  Earlier version initialized the MMU in the exception vector
57176743c0eSMax Filippov	  before jumping to _startup in head.S and had an advantage that
57276743c0eSMax Filippov	  it was possible to place a software breakpoint at 'reset' and
57376743c0eSMax Filippov	  then enter your normal kernel breakpoints once the MMU was mapped
57476743c0eSMax Filippov	  to the kernel mappings (0XC0000000).
57576743c0eSMax Filippov
5768a128bc3SColin Ian King	  This unfortunately won't work for U-Boot and likely also won't
57776743c0eSMax Filippov	  work for using KEXEC to have a hot kernel ready for doing a
57876743c0eSMax Filippov	  KDUMP.
57976743c0eSMax Filippov
58076743c0eSMax Filippov	  So now the MMU is initialized in head.S but it's necessary to
58176743c0eSMax Filippov	  use hardware breakpoints (gdb 'hbreak' cmd) to break at _startup.
58276743c0eSMax Filippov	  xt-gdb can't place a Software Breakpoint in the  0XD region prior
58376743c0eSMax Filippov	  to mapping the MMU and after mapping even if the area of low memory
58476743c0eSMax Filippov	  was mapped gdb wouldn't remove the breakpoint on hitting it as the
58576743c0eSMax Filippov	  PC wouldn't match. Since Hardware Breakpoints are recommended for
58676743c0eSMax Filippov	  Linux configurations it seems reasonable to just assume they exist
58776743c0eSMax Filippov	  and leave this older mechanism for unfortunate souls that choose
58876743c0eSMax Filippov	  not to follow Tensilica's recommendation.
58976743c0eSMax Filippov
59076743c0eSMax Filippov	  Selecting this will cause U-Boot to set the KERNEL Load and Entry
59176743c0eSMax Filippov	  address at 0x00003000 instead of the mapped std of 0xD0003000.
59276743c0eSMax Filippov
59376743c0eSMax Filippov	  If in doubt, say Y.
59476743c0eSMax Filippov
5957af710d9SMax Filippovconfig XIP_KERNEL
5967af710d9SMax Filippov	bool "Kernel Execute-In-Place from ROM"
5977af710d9SMax Filippov	depends on PLATFORM_HAVE_XIP
5987af710d9SMax Filippov	help
5997af710d9SMax Filippov	  Execute-In-Place allows the kernel to run from non-volatile storage
6007af710d9SMax Filippov	  directly addressable by the CPU, such as NOR flash. This saves RAM
6017af710d9SMax Filippov	  space since the text section of the kernel is not loaded from flash
6027af710d9SMax Filippov	  to RAM. Read-write sections, such as the data section and stack,
6037af710d9SMax Filippov	  are still copied to RAM. The XIP kernel is not compressed since
6047af710d9SMax Filippov	  it has to run directly from flash, so it will take more space to
6057af710d9SMax Filippov	  store it. The flash address used to link the kernel object files,
6067af710d9SMax Filippov	  and for storing it, is configuration dependent. Therefore, if you
6077af710d9SMax Filippov	  say Y here, you must know the proper physical address where to
6087af710d9SMax Filippov	  store the kernel image depending on your own flash memory usage.
6097af710d9SMax Filippov
6107af710d9SMax Filippov	  Also note that the make target becomes "make xipImage" rather than
6117af710d9SMax Filippov	  "make Image" or "make uImage". The final kernel binary to put in
6127af710d9SMax Filippov	  ROM memory will be arch/xtensa/boot/xipImage.
6137af710d9SMax Filippov
6147af710d9SMax Filippov	  If unsure, say N.
6157af710d9SMax Filippov
61676743c0eSMax Filippovconfig MEMMAP_CACHEATTR
61776743c0eSMax Filippov	hex "Cache attributes for the memory address space"
61876743c0eSMax Filippov	depends on !MMU
61976743c0eSMax Filippov	default 0x22222222
62076743c0eSMax Filippov	help
62176743c0eSMax Filippov	  These cache attributes are set up for noMMU systems. Each hex digit
62276743c0eSMax Filippov	  specifies cache attributes for the corresponding 512MB memory
62376743c0eSMax Filippov	  region: bits 0..3 -- for addresses 0x00000000..0x1fffffff,
62476743c0eSMax Filippov	  bits 4..7 -- for addresses 0x20000000..0x3fffffff, and so on.
62576743c0eSMax Filippov
62676743c0eSMax Filippov	  Cache attribute values are specific for the MMU type.
62776743c0eSMax Filippov	  For region protection MMUs:
62876743c0eSMax Filippov	    1: WT cached,
62976743c0eSMax Filippov	    2: cache bypass,
63076743c0eSMax Filippov	    4: WB cached,
63176743c0eSMax Filippov	    f: illegal.
6322a9b29b2SRandy Dunlap	  For full MMU:
63376743c0eSMax Filippov	    bit 0: executable,
63476743c0eSMax Filippov	    bit 1: writable,
63576743c0eSMax Filippov	    bits 2..3:
63676743c0eSMax Filippov	      0: cache bypass,
63776743c0eSMax Filippov	      1: WB cache,
63876743c0eSMax Filippov	      2: WT cache,
63976743c0eSMax Filippov	      3: special (c and e are illegal, f is reserved).
64076743c0eSMax Filippov	  For MPU:
64176743c0eSMax Filippov	    0: illegal,
64276743c0eSMax Filippov	    1: WB cache,
64376743c0eSMax Filippov	    2: WB, no-write-allocate cache,
64476743c0eSMax Filippov	    3: WT cache,
64576743c0eSMax Filippov	    4: cache bypass.
64676743c0eSMax Filippov
64776743c0eSMax Filippovconfig KSEG_PADDR
64876743c0eSMax Filippov	hex "Physical address of the KSEG mapping"
64976743c0eSMax Filippov	depends on INITIALIZE_XTENSA_MMU_INSIDE_VMLINUX && MMU
65076743c0eSMax Filippov	default 0x00000000
65176743c0eSMax Filippov	help
65276743c0eSMax Filippov	  This is the physical address where KSEG is mapped. Please refer to
65376743c0eSMax Filippov	  the chosen KSEG layout help for the required address alignment.
65476743c0eSMax Filippov	  Unpacked kernel image (including vectors) must be located completely
65576743c0eSMax Filippov	  within KSEG.
65676743c0eSMax Filippov	  Physical memory below this address is not available to linux.
65776743c0eSMax Filippov
65876743c0eSMax Filippov	  If unsure, leave the default value here.
65976743c0eSMax Filippov
6607af710d9SMax Filippovconfig KERNEL_VIRTUAL_ADDRESS
6617af710d9SMax Filippov	hex "Kernel virtual address"
6627af710d9SMax Filippov	depends on MMU && XIP_KERNEL
6637af710d9SMax Filippov	default 0xd0003000
6647af710d9SMax Filippov	help
6657af710d9SMax Filippov	  This is the virtual address where the XIP kernel is mapped.
6667af710d9SMax Filippov	  XIP kernel may be mapped into KSEG or KIO region, virtual address
6677af710d9SMax Filippov	  provided here must match kernel load address provided in
6687af710d9SMax Filippov	  KERNEL_LOAD_ADDRESS.
6697af710d9SMax Filippov
67076743c0eSMax Filippovconfig KERNEL_LOAD_ADDRESS
67176743c0eSMax Filippov	hex "Kernel load address"
67276743c0eSMax Filippov	default 0x60003000 if !MMU
67376743c0eSMax Filippov	default 0x00003000 if MMU && INITIALIZE_XTENSA_MMU_INSIDE_VMLINUX
67476743c0eSMax Filippov	default 0xd0003000 if MMU && !INITIALIZE_XTENSA_MMU_INSIDE_VMLINUX
67576743c0eSMax Filippov	help
67676743c0eSMax Filippov	  This is the address where the kernel is loaded.
67776743c0eSMax Filippov	  It is virtual address for MMUv2 configurations and physical address
67876743c0eSMax Filippov	  for all other configurations.
67976743c0eSMax Filippov
68076743c0eSMax Filippov	  If unsure, leave the default value here.
68176743c0eSMax Filippov
6825e4417f9SMax Filippovchoice
6835e4417f9SMax Filippov	prompt "Relocatable vectors location"
6845e4417f9SMax Filippov	default XTENSA_VECTORS_IN_TEXT
68576743c0eSMax Filippov	help
6865e4417f9SMax Filippov	  Choose whether relocatable vectors are merged into the kernel .text
6875e4417f9SMax Filippov	  or placed separately at runtime. This option does not affect
6885e4417f9SMax Filippov	  configurations without VECBASE register where vectors are always
6895e4417f9SMax Filippov	  placed at their hardware-defined locations.
69076743c0eSMax Filippov
6915e4417f9SMax Filippovconfig XTENSA_VECTORS_IN_TEXT
6925e4417f9SMax Filippov	bool "Merge relocatable vectors into kernel text"
6935e4417f9SMax Filippov	depends on !MTD_XIP
6945e4417f9SMax Filippov	help
6955e4417f9SMax Filippov	  This option puts relocatable vectors into the kernel .text section
6965e4417f9SMax Filippov	  with proper alignment.
6975e4417f9SMax Filippov	  This is a safe choice for most configurations.
6985e4417f9SMax Filippov
6995e4417f9SMax Filippovconfig XTENSA_VECTORS_SEPARATE
7005e4417f9SMax Filippov	bool "Put relocatable vectors at fixed address"
7015e4417f9SMax Filippov	help
7025e4417f9SMax Filippov	  This option puts relocatable vectors at specific virtual address.
7035e4417f9SMax Filippov	  Vectors are merged with the .init data in the kernel image and
7045e4417f9SMax Filippov	  are copied into their designated location during kernel startup.
7055e4417f9SMax Filippov	  Use it to put vectors into IRAM or out of FLASH on kernels with
7065e4417f9SMax Filippov	  XIP-aware MTD support.
7075e4417f9SMax Filippov
7085e4417f9SMax Filippovendchoice
7095e4417f9SMax Filippov
7105e4417f9SMax Filippovconfig VECTORS_ADDR
7115e4417f9SMax Filippov	hex "Kernel vectors virtual address"
7125e4417f9SMax Filippov	default 0x00000000
7135e4417f9SMax Filippov	depends on XTENSA_VECTORS_SEPARATE
7145e4417f9SMax Filippov	help
7155e4417f9SMax Filippov	  This is the virtual address of the (relocatable) vectors base.
7165e4417f9SMax Filippov	  It must be within KSEG if MMU is used.
71776743c0eSMax Filippov
7187af710d9SMax Filippovconfig XIP_DATA_ADDR
7197af710d9SMax Filippov	hex "XIP kernel data virtual address"
7207af710d9SMax Filippov	depends on XIP_KERNEL
7217af710d9SMax Filippov	default 0x00000000
7227af710d9SMax Filippov	help
7237af710d9SMax Filippov	  This is the virtual address where XIP kernel data is copied.
7247af710d9SMax Filippov	  It must be within KSEG if MMU is used.
7257af710d9SMax Filippov
72676743c0eSMax Filippovconfig PLATFORM_WANT_DEFAULT_MEM
72776743c0eSMax Filippov	def_bool n
72876743c0eSMax Filippov
72976743c0eSMax Filippovconfig DEFAULT_MEM_START
73076743c0eSMax Filippov	hex
73176743c0eSMax Filippov	prompt "PAGE_OFFSET/PHYS_OFFSET" if !MMU && PLATFORM_WANT_DEFAULT_MEM
73276743c0eSMax Filippov	default 0x60000000 if PLATFORM_WANT_DEFAULT_MEM
73376743c0eSMax Filippov	default 0x00000000
73476743c0eSMax Filippov	help
73576743c0eSMax Filippov	  This is the base address used for both PAGE_OFFSET and PHYS_OFFSET
73676743c0eSMax Filippov	  in noMMU configurations.
73776743c0eSMax Filippov
73876743c0eSMax Filippov	  If unsure, leave the default value here.
73976743c0eSMax Filippov
74076743c0eSMax Filippovchoice
74176743c0eSMax Filippov	prompt "KSEG layout"
74276743c0eSMax Filippov	depends on MMU
74376743c0eSMax Filippov	default XTENSA_KSEG_MMU_V2
74476743c0eSMax Filippov
74576743c0eSMax Filippovconfig XTENSA_KSEG_MMU_V2
74676743c0eSMax Filippov	bool "MMUv2: 128MB cached + 128MB uncached"
74776743c0eSMax Filippov	help
74876743c0eSMax Filippov	  MMUv2 compatible kernel memory map: TLB way 5 maps 128MB starting
74976743c0eSMax Filippov	  at KSEG_PADDR to 0xd0000000 with cache and to 0xd8000000
75076743c0eSMax Filippov	  without cache.
75176743c0eSMax Filippov	  KSEG_PADDR must be aligned to 128MB.
75276743c0eSMax Filippov
75376743c0eSMax Filippovconfig XTENSA_KSEG_256M
75476743c0eSMax Filippov	bool "256MB cached + 256MB uncached"
75576743c0eSMax Filippov	depends on INITIALIZE_XTENSA_MMU_INSIDE_VMLINUX
75676743c0eSMax Filippov	help
75776743c0eSMax Filippov	  TLB way 6 maps 256MB starting at KSEG_PADDR to 0xb0000000
75876743c0eSMax Filippov	  with cache and to 0xc0000000 without cache.
75976743c0eSMax Filippov	  KSEG_PADDR must be aligned to 256MB.
76076743c0eSMax Filippov
76176743c0eSMax Filippovconfig XTENSA_KSEG_512M
76276743c0eSMax Filippov	bool "512MB cached + 512MB uncached"
76376743c0eSMax Filippov	depends on INITIALIZE_XTENSA_MMU_INSIDE_VMLINUX
76476743c0eSMax Filippov	help
76576743c0eSMax Filippov	  TLB way 6 maps 512MB starting at KSEG_PADDR to 0xa0000000
76676743c0eSMax Filippov	  with cache and to 0xc0000000 without cache.
76776743c0eSMax Filippov	  KSEG_PADDR must be aligned to 256MB.
76876743c0eSMax Filippov
76976743c0eSMax Filippovendchoice
77076743c0eSMax Filippov
77176743c0eSMax Filippovconfig HIGHMEM
77276743c0eSMax Filippov	bool "High Memory Support"
77376743c0eSMax Filippov	depends on MMU
774629ed3f7SThomas Gleixner	select KMAP_LOCAL
77576743c0eSMax Filippov	help
77676743c0eSMax Filippov	  Linux can use the full amount of RAM in the system by
77776743c0eSMax Filippov	  default. However, the default MMUv2 setup only maps the
77876743c0eSMax Filippov	  lowermost 128 MB of memory linearly to the areas starting
77976743c0eSMax Filippov	  at 0xd0000000 (cached) and 0xd8000000 (uncached).
78076743c0eSMax Filippov	  When there are more than 128 MB memory in the system not
78176743c0eSMax Filippov	  all of it can be "permanently mapped" by the kernel.
78276743c0eSMax Filippov	  The physical memory that's not permanently mapped is called
78376743c0eSMax Filippov	  "high memory".
78476743c0eSMax Filippov
78576743c0eSMax Filippov	  If you are compiling a kernel which will never run on a
78676743c0eSMax Filippov	  machine with more than 128 MB total physical RAM, answer
78776743c0eSMax Filippov	  N here.
78876743c0eSMax Filippov
78976743c0eSMax Filippov	  If unsure, say Y.
79076743c0eSMax Filippov
7910192445cSZi Yanconfig ARCH_FORCE_MAX_ORDER
7924519a254SMike Rapoport (IBM)	int "Order of maximal physically contiguous allocations"
79323baf831SKirill A. Shutemov	default "10"
79476743c0eSMax Filippov	help
7954519a254SMike Rapoport (IBM)	  The kernel page allocator limits the size of maximal physically
7964519a254SMike Rapoport (IBM)	  contiguous allocations. The limit is called MAX_ORDER and it
7974519a254SMike Rapoport (IBM)	  defines the maximal power of two of number of pages that can be
7984519a254SMike Rapoport (IBM)	  allocated as a single contiguous block. This option allows
7994519a254SMike Rapoport (IBM)	  overriding the default setting when ability to allocate very
8004519a254SMike Rapoport (IBM)	  large blocks of physically contiguous memory is required.
8014519a254SMike Rapoport (IBM)
8024519a254SMike Rapoport (IBM)	  Don't change if unsure.
80376743c0eSMax Filippov
8048e1a6dd2SChris Zankelendmenu
8058e1a6dd2SChris Zankel
806e00d8b2fSMax Filippovmenu "Power management options"
807e00d8b2fSMax Filippov
808733f5c28SMax Filippovconfig ARCH_HIBERNATION_POSSIBLE
809733f5c28SMax Filippov	def_bool y
810733f5c28SMax Filippov
811e00d8b2fSMax Filippovsource "kernel/power/Kconfig"
812e00d8b2fSMax Filippov
813e00d8b2fSMax Filippovendmenu
814