18c2ecf20Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0
28c2ecf20Sopenharmony_ciconfig XTENSA
38c2ecf20Sopenharmony_ci	def_bool y
48c2ecf20Sopenharmony_ci	select ARCH_32BIT_OFF_T
58c2ecf20Sopenharmony_ci	select ARCH_HAS_BINFMT_FLAT if !MMU
68c2ecf20Sopenharmony_ci	select ARCH_HAS_DMA_PREP_COHERENT if MMU
78c2ecf20Sopenharmony_ci	select ARCH_HAS_SYNC_DMA_FOR_CPU if MMU
88c2ecf20Sopenharmony_ci	select ARCH_HAS_SYNC_DMA_FOR_DEVICE if MMU
98c2ecf20Sopenharmony_ci	select ARCH_HAS_DMA_SET_UNCACHED if MMU
108c2ecf20Sopenharmony_ci	select ARCH_USE_QUEUED_RWLOCKS
118c2ecf20Sopenharmony_ci	select ARCH_USE_QUEUED_SPINLOCKS
128c2ecf20Sopenharmony_ci	select ARCH_WANT_FRAME_POINTERS
138c2ecf20Sopenharmony_ci	select ARCH_WANT_IPC_PARSE_VERSION
148c2ecf20Sopenharmony_ci	select BUILDTIME_TABLE_SORT
158c2ecf20Sopenharmony_ci	select CLONE_BACKWARDS
168c2ecf20Sopenharmony_ci	select COMMON_CLK
178c2ecf20Sopenharmony_ci	select DMA_REMAP if MMU
188c2ecf20Sopenharmony_ci	select GENERIC_ATOMIC64
198c2ecf20Sopenharmony_ci	select GENERIC_CLOCKEVENTS
208c2ecf20Sopenharmony_ci	select GENERIC_IRQ_SHOW
218c2ecf20Sopenharmony_ci	select GENERIC_PCI_IOMAP
228c2ecf20Sopenharmony_ci	select GENERIC_SCHED_CLOCK
238c2ecf20Sopenharmony_ci	select GENERIC_STRNCPY_FROM_USER if KASAN
248c2ecf20Sopenharmony_ci	select HAVE_ARCH_AUDITSYSCALL
258c2ecf20Sopenharmony_ci	select HAVE_ARCH_JUMP_LABEL if !XIP_KERNEL
268c2ecf20Sopenharmony_ci	select HAVE_ARCH_KASAN if MMU && !XIP_KERNEL
278c2ecf20Sopenharmony_ci	select HAVE_ARCH_SECCOMP_FILTER
288c2ecf20Sopenharmony_ci	select HAVE_ARCH_TRACEHOOK
298c2ecf20Sopenharmony_ci	select HAVE_DEBUG_KMEMLEAK
308c2ecf20Sopenharmony_ci	select HAVE_DMA_CONTIGUOUS
318c2ecf20Sopenharmony_ci	select HAVE_EXIT_THREAD
328c2ecf20Sopenharmony_ci	select HAVE_FUNCTION_TRACER
338c2ecf20Sopenharmony_ci	select HAVE_FUTEX_CMPXCHG if !MMU && FUTEX
348c2ecf20Sopenharmony_ci	select HAVE_HW_BREAKPOINT if PERF_EVENTS
358c2ecf20Sopenharmony_ci	select HAVE_IRQ_TIME_ACCOUNTING
368c2ecf20Sopenharmony_ci	select HAVE_OPROFILE
378c2ecf20Sopenharmony_ci	select HAVE_PCI
388c2ecf20Sopenharmony_ci	select HAVE_PERF_EVENTS
398c2ecf20Sopenharmony_ci	select HAVE_STACKPROTECTOR
408c2ecf20Sopenharmony_ci	select HAVE_SYSCALL_TRACEPOINTS
418c2ecf20Sopenharmony_ci	select IRQ_DOMAIN
428c2ecf20Sopenharmony_ci	select MODULES_USE_ELF_RELA
438c2ecf20Sopenharmony_ci	select PERF_USE_VMALLOC
448c2ecf20Sopenharmony_ci	select SET_FS
458c2ecf20Sopenharmony_ci	select VIRT_TO_BUS
468c2ecf20Sopenharmony_ci	help
478c2ecf20Sopenharmony_ci	  Xtensa processors are 32-bit RISC machines designed by Tensilica
488c2ecf20Sopenharmony_ci	  primarily for embedded systems.  These processors are both
498c2ecf20Sopenharmony_ci	  configurable and extensible.  The Linux port to the Xtensa
508c2ecf20Sopenharmony_ci	  architecture supports all processor configurations and extensions,
518c2ecf20Sopenharmony_ci	  with reasonable minimum requirements.  The Xtensa Linux project has
528c2ecf20Sopenharmony_ci	  a home page at <http://www.linux-xtensa.org/>.
538c2ecf20Sopenharmony_ci
548c2ecf20Sopenharmony_ciconfig GENERIC_HWEIGHT
558c2ecf20Sopenharmony_ci	def_bool y
568c2ecf20Sopenharmony_ci
578c2ecf20Sopenharmony_ciconfig ARCH_HAS_ILOG2_U32
588c2ecf20Sopenharmony_ci	def_bool n
598c2ecf20Sopenharmony_ci
608c2ecf20Sopenharmony_ciconfig ARCH_HAS_ILOG2_U64
618c2ecf20Sopenharmony_ci	def_bool n
628c2ecf20Sopenharmony_ci
638c2ecf20Sopenharmony_ciconfig NO_IOPORT_MAP
648c2ecf20Sopenharmony_ci	def_bool n
658c2ecf20Sopenharmony_ci
668c2ecf20Sopenharmony_ciconfig HZ
678c2ecf20Sopenharmony_ci	int
688c2ecf20Sopenharmony_ci	default 100
698c2ecf20Sopenharmony_ci
708c2ecf20Sopenharmony_ciconfig LOCKDEP_SUPPORT
718c2ecf20Sopenharmony_ci	def_bool y
728c2ecf20Sopenharmony_ci
738c2ecf20Sopenharmony_ciconfig STACKTRACE_SUPPORT
748c2ecf20Sopenharmony_ci	def_bool y
758c2ecf20Sopenharmony_ci
768c2ecf20Sopenharmony_ciconfig TRACE_IRQFLAGS_SUPPORT
778c2ecf20Sopenharmony_ci	def_bool y
788c2ecf20Sopenharmony_ci
798c2ecf20Sopenharmony_ciconfig MMU
808c2ecf20Sopenharmony_ci	def_bool n
818c2ecf20Sopenharmony_ci
828c2ecf20Sopenharmony_ciconfig HAVE_XTENSA_GPIO32
838c2ecf20Sopenharmony_ci	def_bool n
848c2ecf20Sopenharmony_ci
858c2ecf20Sopenharmony_ciconfig KASAN_SHADOW_OFFSET
868c2ecf20Sopenharmony_ci	hex
878c2ecf20Sopenharmony_ci	default 0x6e400000
888c2ecf20Sopenharmony_ci
898c2ecf20Sopenharmony_cimenu "Processor type and features"
908c2ecf20Sopenharmony_ci
918c2ecf20Sopenharmony_cichoice
928c2ecf20Sopenharmony_ci	prompt "Xtensa Processor Configuration"
938c2ecf20Sopenharmony_ci	default XTENSA_VARIANT_FSF
948c2ecf20Sopenharmony_ci
958c2ecf20Sopenharmony_ciconfig XTENSA_VARIANT_FSF
968c2ecf20Sopenharmony_ci	bool "fsf - default (not generic) configuration"
978c2ecf20Sopenharmony_ci	select MMU
988c2ecf20Sopenharmony_ci
998c2ecf20Sopenharmony_ciconfig XTENSA_VARIANT_DC232B
1008c2ecf20Sopenharmony_ci	bool "dc232b - Diamond 232L Standard Core Rev.B (LE)"
1018c2ecf20Sopenharmony_ci	select MMU
1028c2ecf20Sopenharmony_ci	select HAVE_XTENSA_GPIO32
1038c2ecf20Sopenharmony_ci	help
1048c2ecf20Sopenharmony_ci	  This variant refers to Tensilica's Diamond 232L Standard core Rev.B (LE).
1058c2ecf20Sopenharmony_ci
1068c2ecf20Sopenharmony_ciconfig XTENSA_VARIANT_DC233C
1078c2ecf20Sopenharmony_ci	bool "dc233c - Diamond 233L Standard Core Rev.C (LE)"
1088c2ecf20Sopenharmony_ci	select MMU
1098c2ecf20Sopenharmony_ci	select HAVE_XTENSA_GPIO32
1108c2ecf20Sopenharmony_ci	help
1118c2ecf20Sopenharmony_ci	  This variant refers to Tensilica's Diamond 233L Standard core Rev.C (LE).
1128c2ecf20Sopenharmony_ci
1138c2ecf20Sopenharmony_ciconfig XTENSA_VARIANT_CUSTOM
1148c2ecf20Sopenharmony_ci	bool "Custom Xtensa processor configuration"
1158c2ecf20Sopenharmony_ci	select HAVE_XTENSA_GPIO32
1168c2ecf20Sopenharmony_ci	help
1178c2ecf20Sopenharmony_ci	  Select this variant to use a custom Xtensa processor configuration.
1188c2ecf20Sopenharmony_ci	  You will be prompted for a processor variant CORENAME.
1198c2ecf20Sopenharmony_ciendchoice
1208c2ecf20Sopenharmony_ci
1218c2ecf20Sopenharmony_ciconfig XTENSA_VARIANT_CUSTOM_NAME
1228c2ecf20Sopenharmony_ci	string "Xtensa Processor Custom Core Variant Name"
1238c2ecf20Sopenharmony_ci	depends on XTENSA_VARIANT_CUSTOM
1248c2ecf20Sopenharmony_ci	help
1258c2ecf20Sopenharmony_ci	  Provide the name of a custom Xtensa processor variant.
1268c2ecf20Sopenharmony_ci	  This CORENAME selects arch/xtensa/variant/CORENAME.
1278c2ecf20Sopenharmony_ci	  Don't forget you have to select MMU if you have one.
1288c2ecf20Sopenharmony_ci
1298c2ecf20Sopenharmony_ciconfig XTENSA_VARIANT_NAME
1308c2ecf20Sopenharmony_ci	string
1318c2ecf20Sopenharmony_ci	default "dc232b"			if XTENSA_VARIANT_DC232B
1328c2ecf20Sopenharmony_ci	default "dc233c"			if XTENSA_VARIANT_DC233C
1338c2ecf20Sopenharmony_ci	default "fsf"				if XTENSA_VARIANT_FSF
1348c2ecf20Sopenharmony_ci	default XTENSA_VARIANT_CUSTOM_NAME	if XTENSA_VARIANT_CUSTOM
1358c2ecf20Sopenharmony_ci
1368c2ecf20Sopenharmony_ciconfig XTENSA_VARIANT_MMU
1378c2ecf20Sopenharmony_ci	bool "Core variant has a Full MMU (TLB, Pages, Protection, etc)"
1388c2ecf20Sopenharmony_ci	depends on XTENSA_VARIANT_CUSTOM
1398c2ecf20Sopenharmony_ci	default y
1408c2ecf20Sopenharmony_ci	select MMU
1418c2ecf20Sopenharmony_ci	help
1428c2ecf20Sopenharmony_ci	  Build a Conventional Kernel with full MMU support,
1438c2ecf20Sopenharmony_ci	  ie: it supports a TLB with auto-loading, page protection.
1448c2ecf20Sopenharmony_ci
1458c2ecf20Sopenharmony_ciconfig XTENSA_VARIANT_HAVE_PERF_EVENTS
1468c2ecf20Sopenharmony_ci	bool "Core variant has Performance Monitor Module"
1478c2ecf20Sopenharmony_ci	depends on XTENSA_VARIANT_CUSTOM
1488c2ecf20Sopenharmony_ci	default n
1498c2ecf20Sopenharmony_ci	help
1508c2ecf20Sopenharmony_ci	  Enable if core variant has Performance Monitor Module with
1518c2ecf20Sopenharmony_ci	  External Registers Interface.
1528c2ecf20Sopenharmony_ci
1538c2ecf20Sopenharmony_ci	  If unsure, say N.
1548c2ecf20Sopenharmony_ci
1558c2ecf20Sopenharmony_ciconfig XTENSA_FAKE_NMI
1568c2ecf20Sopenharmony_ci	bool "Treat PMM IRQ as NMI"
1578c2ecf20Sopenharmony_ci	depends on XTENSA_VARIANT_HAVE_PERF_EVENTS
1588c2ecf20Sopenharmony_ci	default n
1598c2ecf20Sopenharmony_ci	help
1608c2ecf20Sopenharmony_ci	  If PMM IRQ is the only IRQ at EXCM level it is safe to
1618c2ecf20Sopenharmony_ci	  treat it as NMI, which improves accuracy of profiling.
1628c2ecf20Sopenharmony_ci
1638c2ecf20Sopenharmony_ci	  If there are other interrupts at or above PMM IRQ priority level
1648c2ecf20Sopenharmony_ci	  but not above the EXCM level, PMM IRQ still may be treated as NMI,
1658c2ecf20Sopenharmony_ci	  but only if these IRQs are not used. There will be a build warning
1668c2ecf20Sopenharmony_ci	  saying that this is not safe, and a bugcheck if one of these IRQs
1678c2ecf20Sopenharmony_ci	  actually fire.
1688c2ecf20Sopenharmony_ci
1698c2ecf20Sopenharmony_ci	  If unsure, say N.
1708c2ecf20Sopenharmony_ci
1718c2ecf20Sopenharmony_ciconfig XTENSA_UNALIGNED_USER
1728c2ecf20Sopenharmony_ci	bool "Unaligned memory access in user space"
1738c2ecf20Sopenharmony_ci	help
1748c2ecf20Sopenharmony_ci	  The Xtensa architecture currently does not handle unaligned
1758c2ecf20Sopenharmony_ci	  memory accesses in hardware but through an exception handler.
1768c2ecf20Sopenharmony_ci	  Per default, unaligned memory accesses are disabled in user space.
1778c2ecf20Sopenharmony_ci
1788c2ecf20Sopenharmony_ci	  Say Y here to enable unaligned memory access in user space.
1798c2ecf20Sopenharmony_ci
1808c2ecf20Sopenharmony_ciconfig HAVE_SMP
1818c2ecf20Sopenharmony_ci	bool "System Supports SMP (MX)"
1828c2ecf20Sopenharmony_ci	depends on XTENSA_VARIANT_CUSTOM
1838c2ecf20Sopenharmony_ci	select XTENSA_MX
1848c2ecf20Sopenharmony_ci	help
1858c2ecf20Sopenharmony_ci	  This option is used to indicate that the system-on-a-chip (SOC)
1868c2ecf20Sopenharmony_ci	  supports Multiprocessing. Multiprocessor support implemented above
1878c2ecf20Sopenharmony_ci	  the CPU core definition and currently needs to be selected manually.
1888c2ecf20Sopenharmony_ci
1898c2ecf20Sopenharmony_ci	  Multiprocessor support is implemented with external cache and
1908c2ecf20Sopenharmony_ci	  interrupt controllers.
1918c2ecf20Sopenharmony_ci
1928c2ecf20Sopenharmony_ci	  The MX interrupt distributer adds Interprocessor Interrupts
1938c2ecf20Sopenharmony_ci	  and causes the IRQ numbers to be increased by 4 for devices
1948c2ecf20Sopenharmony_ci	  like the open cores ethernet driver and the serial interface.
1958c2ecf20Sopenharmony_ci
1968c2ecf20Sopenharmony_ci	  You still have to select "Enable SMP" to enable SMP on this SOC.
1978c2ecf20Sopenharmony_ci
1988c2ecf20Sopenharmony_ciconfig SMP
1998c2ecf20Sopenharmony_ci	bool "Enable Symmetric multi-processing support"
2008c2ecf20Sopenharmony_ci	depends on HAVE_SMP
2018c2ecf20Sopenharmony_ci	select GENERIC_SMP_IDLE_THREAD
2028c2ecf20Sopenharmony_ci	help
2038c2ecf20Sopenharmony_ci	  Enabled SMP Software; allows more than one CPU/CORE
2048c2ecf20Sopenharmony_ci	  to be activated during startup.
2058c2ecf20Sopenharmony_ci
2068c2ecf20Sopenharmony_ciconfig NR_CPUS
2078c2ecf20Sopenharmony_ci	depends on SMP
2088c2ecf20Sopenharmony_ci	int "Maximum number of CPUs (2-32)"
2098c2ecf20Sopenharmony_ci	range 2 32
2108c2ecf20Sopenharmony_ci	default "4"
2118c2ecf20Sopenharmony_ci
2128c2ecf20Sopenharmony_ciconfig HOTPLUG_CPU
2138c2ecf20Sopenharmony_ci	bool "Enable CPU hotplug support"
2148c2ecf20Sopenharmony_ci	depends on SMP
2158c2ecf20Sopenharmony_ci	help
2168c2ecf20Sopenharmony_ci	  Say Y here to allow turning CPUs off and on. CPUs can be
2178c2ecf20Sopenharmony_ci	  controlled through /sys/devices/system/cpu.
2188c2ecf20Sopenharmony_ci
2198c2ecf20Sopenharmony_ci	  Say N if you want to disable CPU hotplug.
2208c2ecf20Sopenharmony_ci
2218c2ecf20Sopenharmony_ciconfig FAST_SYSCALL_XTENSA
2228c2ecf20Sopenharmony_ci	bool "Enable fast atomic syscalls"
2238c2ecf20Sopenharmony_ci	default n
2248c2ecf20Sopenharmony_ci	help
2258c2ecf20Sopenharmony_ci	  fast_syscall_xtensa is a syscall that can make atomic operations
2268c2ecf20Sopenharmony_ci	  on UP kernel when processor has no s32c1i support.
2278c2ecf20Sopenharmony_ci
2288c2ecf20Sopenharmony_ci	  This syscall is deprecated. It may have issues when called with
2298c2ecf20Sopenharmony_ci	  invalid arguments. It is provided only for backwards compatibility.
2308c2ecf20Sopenharmony_ci	  Only enable it if your userspace software requires it.
2318c2ecf20Sopenharmony_ci
2328c2ecf20Sopenharmony_ci	  If unsure, say N.
2338c2ecf20Sopenharmony_ci
2348c2ecf20Sopenharmony_ciconfig FAST_SYSCALL_SPILL_REGISTERS
2358c2ecf20Sopenharmony_ci	bool "Enable spill registers syscall"
2368c2ecf20Sopenharmony_ci	default n
2378c2ecf20Sopenharmony_ci	help
2388c2ecf20Sopenharmony_ci	  fast_syscall_spill_registers is a syscall that spills all active
2398c2ecf20Sopenharmony_ci	  register windows of a calling userspace task onto its stack.
2408c2ecf20Sopenharmony_ci
2418c2ecf20Sopenharmony_ci	  This syscall is deprecated. It may have issues when called with
2428c2ecf20Sopenharmony_ci	  invalid arguments. It is provided only for backwards compatibility.
2438c2ecf20Sopenharmony_ci	  Only enable it if your userspace software requires it.
2448c2ecf20Sopenharmony_ci
2458c2ecf20Sopenharmony_ci	  If unsure, say N.
2468c2ecf20Sopenharmony_ci
2478c2ecf20Sopenharmony_ciconfig USER_ABI_CALL0
2488c2ecf20Sopenharmony_ci	bool
2498c2ecf20Sopenharmony_ci
2508c2ecf20Sopenharmony_cichoice
2518c2ecf20Sopenharmony_ci	prompt "Userspace ABI"
2528c2ecf20Sopenharmony_ci	default USER_ABI_DEFAULT
2538c2ecf20Sopenharmony_ci	help
2548c2ecf20Sopenharmony_ci	  Select supported userspace ABI.
2558c2ecf20Sopenharmony_ci
2568c2ecf20Sopenharmony_ci	  If unsure, choose the default ABI.
2578c2ecf20Sopenharmony_ci
2588c2ecf20Sopenharmony_ciconfig USER_ABI_DEFAULT
2598c2ecf20Sopenharmony_ci	bool "Default ABI only"
2608c2ecf20Sopenharmony_ci	help
2618c2ecf20Sopenharmony_ci	  Assume default userspace ABI. For XEA2 cores it is windowed ABI.
2628c2ecf20Sopenharmony_ci	  call0 ABI binaries may be run on such kernel, but signal delivery
2638c2ecf20Sopenharmony_ci	  will not work correctly for them.
2648c2ecf20Sopenharmony_ci
2658c2ecf20Sopenharmony_ciconfig USER_ABI_CALL0_ONLY
2668c2ecf20Sopenharmony_ci	bool "Call0 ABI only"
2678c2ecf20Sopenharmony_ci	select USER_ABI_CALL0
2688c2ecf20Sopenharmony_ci	help
2698c2ecf20Sopenharmony_ci	  Select this option to support only call0 ABI in userspace.
2708c2ecf20Sopenharmony_ci	  Windowed ABI binaries will crash with a segfault caused by
2718c2ecf20Sopenharmony_ci	  an illegal instruction exception on the first 'entry' opcode.
2728c2ecf20Sopenharmony_ci
2738c2ecf20Sopenharmony_ci	  Choose this option if you're planning to run only user code
2748c2ecf20Sopenharmony_ci	  built with call0 ABI.
2758c2ecf20Sopenharmony_ci
2768c2ecf20Sopenharmony_ciconfig USER_ABI_CALL0_PROBE
2778c2ecf20Sopenharmony_ci	bool "Support both windowed and call0 ABI by probing"
2788c2ecf20Sopenharmony_ci	select USER_ABI_CALL0
2798c2ecf20Sopenharmony_ci	help
2808c2ecf20Sopenharmony_ci	  Select this option to support both windowed and call0 userspace
2818c2ecf20Sopenharmony_ci	  ABIs. When enabled all processes are started with PS.WOE disabled
2828c2ecf20Sopenharmony_ci	  and a fast user exception handler for an illegal instruction is
2838c2ecf20Sopenharmony_ci	  used to turn on PS.WOE bit on the first 'entry' opcode executed by
2848c2ecf20Sopenharmony_ci	  the userspace.
2858c2ecf20Sopenharmony_ci
2868c2ecf20Sopenharmony_ci	  This option should be enabled for the kernel that must support
2878c2ecf20Sopenharmony_ci	  both call0 and windowed ABIs in userspace at the same time.
2888c2ecf20Sopenharmony_ci
2898c2ecf20Sopenharmony_ci	  Note that Xtensa ISA does not guarantee that entry opcode will
2908c2ecf20Sopenharmony_ci	  raise an illegal instruction exception on cores with XEA2 when
2918c2ecf20Sopenharmony_ci	  PS.WOE is disabled, check whether the target core supports it.
2928c2ecf20Sopenharmony_ci
2938c2ecf20Sopenharmony_ciendchoice
2948c2ecf20Sopenharmony_ci
2958c2ecf20Sopenharmony_ciendmenu
2968c2ecf20Sopenharmony_ci
2978c2ecf20Sopenharmony_ciconfig XTENSA_CALIBRATE_CCOUNT
2988c2ecf20Sopenharmony_ci	def_bool n
2998c2ecf20Sopenharmony_ci	help
3008c2ecf20Sopenharmony_ci	  On some platforms (XT2000, for example), the CPU clock rate can
3018c2ecf20Sopenharmony_ci	  vary.  The frequency can be determined, however, by measuring
3028c2ecf20Sopenharmony_ci	  against a well known, fixed frequency, such as an UART oscillator.
3038c2ecf20Sopenharmony_ci
3048c2ecf20Sopenharmony_ciconfig SERIAL_CONSOLE
3058c2ecf20Sopenharmony_ci	def_bool n
3068c2ecf20Sopenharmony_ci
3078c2ecf20Sopenharmony_ciconfig PLATFORM_HAVE_XIP
3088c2ecf20Sopenharmony_ci	def_bool n
3098c2ecf20Sopenharmony_ci
3108c2ecf20Sopenharmony_cimenu "Platform options"
3118c2ecf20Sopenharmony_ci
3128c2ecf20Sopenharmony_cichoice
3138c2ecf20Sopenharmony_ci	prompt "Xtensa System Type"
3148c2ecf20Sopenharmony_ci	default XTENSA_PLATFORM_ISS
3158c2ecf20Sopenharmony_ci
3168c2ecf20Sopenharmony_ciconfig XTENSA_PLATFORM_ISS
3178c2ecf20Sopenharmony_ci	bool "ISS"
3188c2ecf20Sopenharmony_ci	select XTENSA_CALIBRATE_CCOUNT
3198c2ecf20Sopenharmony_ci	select SERIAL_CONSOLE
3208c2ecf20Sopenharmony_ci	help
3218c2ecf20Sopenharmony_ci	  ISS is an acronym for Tensilica's Instruction Set Simulator.
3228c2ecf20Sopenharmony_ci
3238c2ecf20Sopenharmony_ciconfig XTENSA_PLATFORM_XT2000
3248c2ecf20Sopenharmony_ci	bool "XT2000"
3258c2ecf20Sopenharmony_ci	select HAVE_IDE
3268c2ecf20Sopenharmony_ci	help
3278c2ecf20Sopenharmony_ci	  XT2000 is the name of Tensilica's feature-rich emulation platform.
3288c2ecf20Sopenharmony_ci	  This hardware is capable of running a full Linux distribution.
3298c2ecf20Sopenharmony_ci
3308c2ecf20Sopenharmony_ciconfig XTENSA_PLATFORM_XTFPGA
3318c2ecf20Sopenharmony_ci	bool "XTFPGA"
3328c2ecf20Sopenharmony_ci	select ETHOC if ETHERNET
3338c2ecf20Sopenharmony_ci	select PLATFORM_WANT_DEFAULT_MEM if !MMU
3348c2ecf20Sopenharmony_ci	select SERIAL_CONSOLE
3358c2ecf20Sopenharmony_ci	select XTENSA_CALIBRATE_CCOUNT
3368c2ecf20Sopenharmony_ci	select PLATFORM_HAVE_XIP
3378c2ecf20Sopenharmony_ci	help
3388c2ecf20Sopenharmony_ci	  XTFPGA is the name of Tensilica board family (LX60, LX110, LX200, ML605).
3398c2ecf20Sopenharmony_ci	  This hardware is capable of running a full Linux distribution.
3408c2ecf20Sopenharmony_ci
3418c2ecf20Sopenharmony_ciendchoice
3428c2ecf20Sopenharmony_ci
3438c2ecf20Sopenharmony_ciconfig PLATFORM_NR_IRQS
3448c2ecf20Sopenharmony_ci	int
3458c2ecf20Sopenharmony_ci	default 3 if XTENSA_PLATFORM_XT2000
3468c2ecf20Sopenharmony_ci	default 0
3478c2ecf20Sopenharmony_ci
3488c2ecf20Sopenharmony_ciconfig XTENSA_CPU_CLOCK
3498c2ecf20Sopenharmony_ci	int "CPU clock rate [MHz]"
3508c2ecf20Sopenharmony_ci	depends on !XTENSA_CALIBRATE_CCOUNT
3518c2ecf20Sopenharmony_ci	default 16
3528c2ecf20Sopenharmony_ci
3538c2ecf20Sopenharmony_ciconfig GENERIC_CALIBRATE_DELAY
3548c2ecf20Sopenharmony_ci	bool "Auto calibration of the BogoMIPS value"
3558c2ecf20Sopenharmony_ci	help
3568c2ecf20Sopenharmony_ci	  The BogoMIPS value can easily be derived from the CPU frequency.
3578c2ecf20Sopenharmony_ci
3588c2ecf20Sopenharmony_ciconfig CMDLINE_BOOL
3598c2ecf20Sopenharmony_ci	bool "Default bootloader kernel arguments"
3608c2ecf20Sopenharmony_ci
3618c2ecf20Sopenharmony_ciconfig CMDLINE
3628c2ecf20Sopenharmony_ci	string "Initial kernel command string"
3638c2ecf20Sopenharmony_ci	depends on CMDLINE_BOOL
3648c2ecf20Sopenharmony_ci	default "console=ttyS0,38400 root=/dev/ram"
3658c2ecf20Sopenharmony_ci	help
3668c2ecf20Sopenharmony_ci	  On some architectures (EBSA110 and CATS), there is currently no way
3678c2ecf20Sopenharmony_ci	  for the boot loader to pass arguments to the kernel. For these
3688c2ecf20Sopenharmony_ci	  architectures, you should supply some command-line options at build
3698c2ecf20Sopenharmony_ci	  time by entering them here. As a minimum, you should specify the
3708c2ecf20Sopenharmony_ci	  memory size and the root device (e.g., mem=64M root=/dev/nfs).
3718c2ecf20Sopenharmony_ci
3728c2ecf20Sopenharmony_ciconfig USE_OF
3738c2ecf20Sopenharmony_ci	bool "Flattened Device Tree support"
3748c2ecf20Sopenharmony_ci	select OF
3758c2ecf20Sopenharmony_ci	select OF_EARLY_FLATTREE
3768c2ecf20Sopenharmony_ci	help
3778c2ecf20Sopenharmony_ci	  Include support for flattened device tree machine descriptions.
3788c2ecf20Sopenharmony_ci
3798c2ecf20Sopenharmony_ciconfig BUILTIN_DTB_SOURCE
3808c2ecf20Sopenharmony_ci	string "DTB to build into the kernel image"
3818c2ecf20Sopenharmony_ci	depends on OF
3828c2ecf20Sopenharmony_ci
3838c2ecf20Sopenharmony_ciconfig PARSE_BOOTPARAM
3848c2ecf20Sopenharmony_ci	bool "Parse bootparam block"
3858c2ecf20Sopenharmony_ci	default y
3868c2ecf20Sopenharmony_ci	help
3878c2ecf20Sopenharmony_ci	  Parse parameters passed to the kernel from the bootloader. It may
3888c2ecf20Sopenharmony_ci	  be disabled if the kernel is known to run without the bootloader.
3898c2ecf20Sopenharmony_ci
3908c2ecf20Sopenharmony_ci	  If unsure, say Y.
3918c2ecf20Sopenharmony_ci
3928c2ecf20Sopenharmony_ciconfig BLK_DEV_SIMDISK
3938c2ecf20Sopenharmony_ci	tristate "Host file-based simulated block device support"
3948c2ecf20Sopenharmony_ci	default n
3958c2ecf20Sopenharmony_ci	depends on XTENSA_PLATFORM_ISS && BLOCK
3968c2ecf20Sopenharmony_ci	help
3978c2ecf20Sopenharmony_ci	  Create block devices that map to files in the host file system.
3988c2ecf20Sopenharmony_ci	  Device binding to host file may be changed at runtime via proc
3998c2ecf20Sopenharmony_ci	  interface provided the device is not in use.
4008c2ecf20Sopenharmony_ci
4018c2ecf20Sopenharmony_ciconfig BLK_DEV_SIMDISK_COUNT
4028c2ecf20Sopenharmony_ci	int "Number of host file-based simulated block devices"
4038c2ecf20Sopenharmony_ci	range 1 10
4048c2ecf20Sopenharmony_ci	depends on BLK_DEV_SIMDISK
4058c2ecf20Sopenharmony_ci	default 2
4068c2ecf20Sopenharmony_ci	help
4078c2ecf20Sopenharmony_ci	  This is the default minimal number of created block devices.
4088c2ecf20Sopenharmony_ci	  Kernel/module parameter 'simdisk_count' may be used to change this
4098c2ecf20Sopenharmony_ci	  value at runtime. More file names (but no more than 10) may be
4108c2ecf20Sopenharmony_ci	  specified as parameters, simdisk_count grows accordingly.
4118c2ecf20Sopenharmony_ci
4128c2ecf20Sopenharmony_ciconfig SIMDISK0_FILENAME
4138c2ecf20Sopenharmony_ci	string "Host filename for the first simulated device"
4148c2ecf20Sopenharmony_ci	depends on BLK_DEV_SIMDISK = y
4158c2ecf20Sopenharmony_ci	default ""
4168c2ecf20Sopenharmony_ci	help
4178c2ecf20Sopenharmony_ci	  Attach a first simdisk to a host file. Conventionally, this file
4188c2ecf20Sopenharmony_ci	  contains a root file system.
4198c2ecf20Sopenharmony_ci
4208c2ecf20Sopenharmony_ciconfig SIMDISK1_FILENAME
4218c2ecf20Sopenharmony_ci	string "Host filename for the second simulated device"
4228c2ecf20Sopenharmony_ci	depends on BLK_DEV_SIMDISK = y && BLK_DEV_SIMDISK_COUNT != 1
4238c2ecf20Sopenharmony_ci	default ""
4248c2ecf20Sopenharmony_ci	help
4258c2ecf20Sopenharmony_ci	  Another simulated disk in a host file for a buildroot-independent
4268c2ecf20Sopenharmony_ci	  storage.
4278c2ecf20Sopenharmony_ci
4288c2ecf20Sopenharmony_ciconfig XTFPGA_LCD
4298c2ecf20Sopenharmony_ci	bool "Enable XTFPGA LCD driver"
4308c2ecf20Sopenharmony_ci	depends on XTENSA_PLATFORM_XTFPGA
4318c2ecf20Sopenharmony_ci	default n
4328c2ecf20Sopenharmony_ci	help
4338c2ecf20Sopenharmony_ci	  There's a 2x16 LCD on most of XTFPGA boards, kernel may output
4348c2ecf20Sopenharmony_ci	  progress messages there during bootup/shutdown. It may be useful
4358c2ecf20Sopenharmony_ci	  during board bringup.
4368c2ecf20Sopenharmony_ci
4378c2ecf20Sopenharmony_ci	  If unsure, say N.
4388c2ecf20Sopenharmony_ci
4398c2ecf20Sopenharmony_ciconfig XTFPGA_LCD_BASE_ADDR
4408c2ecf20Sopenharmony_ci	hex "XTFPGA LCD base address"
4418c2ecf20Sopenharmony_ci	depends on XTFPGA_LCD
4428c2ecf20Sopenharmony_ci	default "0x0d0c0000"
4438c2ecf20Sopenharmony_ci	help
4448c2ecf20Sopenharmony_ci	  Base address of the LCD controller inside KIO region.
4458c2ecf20Sopenharmony_ci	  Different boards from XTFPGA family have LCD controller at different
4468c2ecf20Sopenharmony_ci	  addresses. Please consult prototyping user guide for your board for
4478c2ecf20Sopenharmony_ci	  the correct address. Wrong address here may lead to hardware lockup.
4488c2ecf20Sopenharmony_ci
4498c2ecf20Sopenharmony_ciconfig XTFPGA_LCD_8BIT_ACCESS
4508c2ecf20Sopenharmony_ci	bool "Use 8-bit access to XTFPGA LCD"
4518c2ecf20Sopenharmony_ci	depends on XTFPGA_LCD
4528c2ecf20Sopenharmony_ci	default n
4538c2ecf20Sopenharmony_ci	help
4548c2ecf20Sopenharmony_ci	  LCD may be connected with 4- or 8-bit interface, 8-bit access may
4558c2ecf20Sopenharmony_ci	  only be used with 8-bit interface. Please consult prototyping user
4568c2ecf20Sopenharmony_ci	  guide for your board for the correct interface width.
4578c2ecf20Sopenharmony_ci
4588c2ecf20Sopenharmony_cicomment "Kernel memory layout"
4598c2ecf20Sopenharmony_ci
4608c2ecf20Sopenharmony_ciconfig INITIALIZE_XTENSA_MMU_INSIDE_VMLINUX
4618c2ecf20Sopenharmony_ci	bool "Initialize Xtensa MMU inside the Linux kernel code"
4628c2ecf20Sopenharmony_ci	depends on !XTENSA_VARIANT_FSF && !XTENSA_VARIANT_DC232B
4638c2ecf20Sopenharmony_ci	default y if XTENSA_VARIANT_DC233C || XTENSA_VARIANT_CUSTOM
4648c2ecf20Sopenharmony_ci	help
4658c2ecf20Sopenharmony_ci	  Earlier version initialized the MMU in the exception vector
4668c2ecf20Sopenharmony_ci	  before jumping to _startup in head.S and had an advantage that
4678c2ecf20Sopenharmony_ci	  it was possible to place a software breakpoint at 'reset' and
4688c2ecf20Sopenharmony_ci	  then enter your normal kernel breakpoints once the MMU was mapped
4698c2ecf20Sopenharmony_ci	  to the kernel mappings (0XC0000000).
4708c2ecf20Sopenharmony_ci
4718c2ecf20Sopenharmony_ci	  This unfortunately won't work for U-Boot and likely also wont
4728c2ecf20Sopenharmony_ci	  work for using KEXEC to have a hot kernel ready for doing a
4738c2ecf20Sopenharmony_ci	  KDUMP.
4748c2ecf20Sopenharmony_ci
4758c2ecf20Sopenharmony_ci	  So now the MMU is initialized in head.S but it's necessary to
4768c2ecf20Sopenharmony_ci	  use hardware breakpoints (gdb 'hbreak' cmd) to break at _startup.
4778c2ecf20Sopenharmony_ci	  xt-gdb can't place a Software Breakpoint in the  0XD region prior
4788c2ecf20Sopenharmony_ci	  to mapping the MMU and after mapping even if the area of low memory
4798c2ecf20Sopenharmony_ci	  was mapped gdb wouldn't remove the breakpoint on hitting it as the
4808c2ecf20Sopenharmony_ci	  PC wouldn't match. Since Hardware Breakpoints are recommended for
4818c2ecf20Sopenharmony_ci	  Linux configurations it seems reasonable to just assume they exist
4828c2ecf20Sopenharmony_ci	  and leave this older mechanism for unfortunate souls that choose
4838c2ecf20Sopenharmony_ci	  not to follow Tensilica's recommendation.
4848c2ecf20Sopenharmony_ci
4858c2ecf20Sopenharmony_ci	  Selecting this will cause U-Boot to set the KERNEL Load and Entry
4868c2ecf20Sopenharmony_ci	  address at 0x00003000 instead of the mapped std of 0xD0003000.
4878c2ecf20Sopenharmony_ci
4888c2ecf20Sopenharmony_ci	  If in doubt, say Y.
4898c2ecf20Sopenharmony_ci
4908c2ecf20Sopenharmony_ciconfig XIP_KERNEL
4918c2ecf20Sopenharmony_ci	bool "Kernel Execute-In-Place from ROM"
4928c2ecf20Sopenharmony_ci	depends on PLATFORM_HAVE_XIP
4938c2ecf20Sopenharmony_ci	help
4948c2ecf20Sopenharmony_ci	  Execute-In-Place allows the kernel to run from non-volatile storage
4958c2ecf20Sopenharmony_ci	  directly addressable by the CPU, such as NOR flash. This saves RAM
4968c2ecf20Sopenharmony_ci	  space since the text section of the kernel is not loaded from flash
4978c2ecf20Sopenharmony_ci	  to RAM. Read-write sections, such as the data section and stack,
4988c2ecf20Sopenharmony_ci	  are still copied to RAM. The XIP kernel is not compressed since
4998c2ecf20Sopenharmony_ci	  it has to run directly from flash, so it will take more space to
5008c2ecf20Sopenharmony_ci	  store it. The flash address used to link the kernel object files,
5018c2ecf20Sopenharmony_ci	  and for storing it, is configuration dependent. Therefore, if you
5028c2ecf20Sopenharmony_ci	  say Y here, you must know the proper physical address where to
5038c2ecf20Sopenharmony_ci	  store the kernel image depending on your own flash memory usage.
5048c2ecf20Sopenharmony_ci
5058c2ecf20Sopenharmony_ci	  Also note that the make target becomes "make xipImage" rather than
5068c2ecf20Sopenharmony_ci	  "make Image" or "make uImage". The final kernel binary to put in
5078c2ecf20Sopenharmony_ci	  ROM memory will be arch/xtensa/boot/xipImage.
5088c2ecf20Sopenharmony_ci
5098c2ecf20Sopenharmony_ci	  If unsure, say N.
5108c2ecf20Sopenharmony_ci
5118c2ecf20Sopenharmony_ciconfig MEMMAP_CACHEATTR
5128c2ecf20Sopenharmony_ci	hex "Cache attributes for the memory address space"
5138c2ecf20Sopenharmony_ci	depends on !MMU
5148c2ecf20Sopenharmony_ci	default 0x22222222
5158c2ecf20Sopenharmony_ci	help
5168c2ecf20Sopenharmony_ci	  These cache attributes are set up for noMMU systems. Each hex digit
5178c2ecf20Sopenharmony_ci	  specifies cache attributes for the corresponding 512MB memory
5188c2ecf20Sopenharmony_ci	  region: bits 0..3 -- for addresses 0x00000000..0x1fffffff,
5198c2ecf20Sopenharmony_ci	  bits 4..7 -- for addresses 0x20000000..0x3fffffff, and so on.
5208c2ecf20Sopenharmony_ci
5218c2ecf20Sopenharmony_ci	  Cache attribute values are specific for the MMU type.
5228c2ecf20Sopenharmony_ci	  For region protection MMUs:
5238c2ecf20Sopenharmony_ci	    1: WT cached,
5248c2ecf20Sopenharmony_ci	    2: cache bypass,
5258c2ecf20Sopenharmony_ci	    4: WB cached,
5268c2ecf20Sopenharmony_ci	    f: illegal.
5278c2ecf20Sopenharmony_ci	  For full MMU:
5288c2ecf20Sopenharmony_ci	    bit 0: executable,
5298c2ecf20Sopenharmony_ci	    bit 1: writable,
5308c2ecf20Sopenharmony_ci	    bits 2..3:
5318c2ecf20Sopenharmony_ci	      0: cache bypass,
5328c2ecf20Sopenharmony_ci	      1: WB cache,
5338c2ecf20Sopenharmony_ci	      2: WT cache,
5348c2ecf20Sopenharmony_ci	      3: special (c and e are illegal, f is reserved).
5358c2ecf20Sopenharmony_ci	  For MPU:
5368c2ecf20Sopenharmony_ci	    0: illegal,
5378c2ecf20Sopenharmony_ci	    1: WB cache,
5388c2ecf20Sopenharmony_ci	    2: WB, no-write-allocate cache,
5398c2ecf20Sopenharmony_ci	    3: WT cache,
5408c2ecf20Sopenharmony_ci	    4: cache bypass.
5418c2ecf20Sopenharmony_ci
5428c2ecf20Sopenharmony_ciconfig KSEG_PADDR
5438c2ecf20Sopenharmony_ci	hex "Physical address of the KSEG mapping"
5448c2ecf20Sopenharmony_ci	depends on INITIALIZE_XTENSA_MMU_INSIDE_VMLINUX && MMU
5458c2ecf20Sopenharmony_ci	default 0x00000000
5468c2ecf20Sopenharmony_ci	help
5478c2ecf20Sopenharmony_ci	  This is the physical address where KSEG is mapped. Please refer to
5488c2ecf20Sopenharmony_ci	  the chosen KSEG layout help for the required address alignment.
5498c2ecf20Sopenharmony_ci	  Unpacked kernel image (including vectors) must be located completely
5508c2ecf20Sopenharmony_ci	  within KSEG.
5518c2ecf20Sopenharmony_ci	  Physical memory below this address is not available to linux.
5528c2ecf20Sopenharmony_ci
5538c2ecf20Sopenharmony_ci	  If unsure, leave the default value here.
5548c2ecf20Sopenharmony_ci
5558c2ecf20Sopenharmony_ciconfig KERNEL_VIRTUAL_ADDRESS
5568c2ecf20Sopenharmony_ci	hex "Kernel virtual address"
5578c2ecf20Sopenharmony_ci	depends on MMU && XIP_KERNEL
5588c2ecf20Sopenharmony_ci	default 0xd0003000
5598c2ecf20Sopenharmony_ci	help
5608c2ecf20Sopenharmony_ci	  This is the virtual address where the XIP kernel is mapped.
5618c2ecf20Sopenharmony_ci	  XIP kernel may be mapped into KSEG or KIO region, virtual address
5628c2ecf20Sopenharmony_ci	  provided here must match kernel load address provided in
5638c2ecf20Sopenharmony_ci	  KERNEL_LOAD_ADDRESS.
5648c2ecf20Sopenharmony_ci
5658c2ecf20Sopenharmony_ciconfig KERNEL_LOAD_ADDRESS
5668c2ecf20Sopenharmony_ci	hex "Kernel load address"
5678c2ecf20Sopenharmony_ci	default 0x60003000 if !MMU
5688c2ecf20Sopenharmony_ci	default 0x00003000 if MMU && INITIALIZE_XTENSA_MMU_INSIDE_VMLINUX
5698c2ecf20Sopenharmony_ci	default 0xd0003000 if MMU && !INITIALIZE_XTENSA_MMU_INSIDE_VMLINUX
5708c2ecf20Sopenharmony_ci	help
5718c2ecf20Sopenharmony_ci	  This is the address where the kernel is loaded.
5728c2ecf20Sopenharmony_ci	  It is virtual address for MMUv2 configurations and physical address
5738c2ecf20Sopenharmony_ci	  for all other configurations.
5748c2ecf20Sopenharmony_ci
5758c2ecf20Sopenharmony_ci	  If unsure, leave the default value here.
5768c2ecf20Sopenharmony_ci
5778c2ecf20Sopenharmony_cichoice
5788c2ecf20Sopenharmony_ci	prompt "Relocatable vectors location"
5798c2ecf20Sopenharmony_ci	default XTENSA_VECTORS_IN_TEXT
5808c2ecf20Sopenharmony_ci	help
5818c2ecf20Sopenharmony_ci	  Choose whether relocatable vectors are merged into the kernel .text
5828c2ecf20Sopenharmony_ci	  or placed separately at runtime. This option does not affect
5838c2ecf20Sopenharmony_ci	  configurations without VECBASE register where vectors are always
5848c2ecf20Sopenharmony_ci	  placed at their hardware-defined locations.
5858c2ecf20Sopenharmony_ci
5868c2ecf20Sopenharmony_ciconfig XTENSA_VECTORS_IN_TEXT
5878c2ecf20Sopenharmony_ci	bool "Merge relocatable vectors into kernel text"
5888c2ecf20Sopenharmony_ci	depends on !MTD_XIP
5898c2ecf20Sopenharmony_ci	help
5908c2ecf20Sopenharmony_ci	  This option puts relocatable vectors into the kernel .text section
5918c2ecf20Sopenharmony_ci	  with proper alignment.
5928c2ecf20Sopenharmony_ci	  This is a safe choice for most configurations.
5938c2ecf20Sopenharmony_ci
5948c2ecf20Sopenharmony_ciconfig XTENSA_VECTORS_SEPARATE
5958c2ecf20Sopenharmony_ci	bool "Put relocatable vectors at fixed address"
5968c2ecf20Sopenharmony_ci	help
5978c2ecf20Sopenharmony_ci	  This option puts relocatable vectors at specific virtual address.
5988c2ecf20Sopenharmony_ci	  Vectors are merged with the .init data in the kernel image and
5998c2ecf20Sopenharmony_ci	  are copied into their designated location during kernel startup.
6008c2ecf20Sopenharmony_ci	  Use it to put vectors into IRAM or out of FLASH on kernels with
6018c2ecf20Sopenharmony_ci	  XIP-aware MTD support.
6028c2ecf20Sopenharmony_ci
6038c2ecf20Sopenharmony_ciendchoice
6048c2ecf20Sopenharmony_ci
6058c2ecf20Sopenharmony_ciconfig VECTORS_ADDR
6068c2ecf20Sopenharmony_ci	hex "Kernel vectors virtual address"
6078c2ecf20Sopenharmony_ci	default 0x00000000
6088c2ecf20Sopenharmony_ci	depends on XTENSA_VECTORS_SEPARATE
6098c2ecf20Sopenharmony_ci	help
6108c2ecf20Sopenharmony_ci	  This is the virtual address of the (relocatable) vectors base.
6118c2ecf20Sopenharmony_ci	  It must be within KSEG if MMU is used.
6128c2ecf20Sopenharmony_ci
6138c2ecf20Sopenharmony_ciconfig XIP_DATA_ADDR
6148c2ecf20Sopenharmony_ci	hex "XIP kernel data virtual address"
6158c2ecf20Sopenharmony_ci	depends on XIP_KERNEL
6168c2ecf20Sopenharmony_ci	default 0x00000000
6178c2ecf20Sopenharmony_ci	help
6188c2ecf20Sopenharmony_ci	  This is the virtual address where XIP kernel data is copied.
6198c2ecf20Sopenharmony_ci	  It must be within KSEG if MMU is used.
6208c2ecf20Sopenharmony_ci
6218c2ecf20Sopenharmony_ciconfig PLATFORM_WANT_DEFAULT_MEM
6228c2ecf20Sopenharmony_ci	def_bool n
6238c2ecf20Sopenharmony_ci
6248c2ecf20Sopenharmony_ciconfig DEFAULT_MEM_START
6258c2ecf20Sopenharmony_ci	hex
6268c2ecf20Sopenharmony_ci	prompt "PAGE_OFFSET/PHYS_OFFSET" if !MMU && PLATFORM_WANT_DEFAULT_MEM
6278c2ecf20Sopenharmony_ci	default 0x60000000 if PLATFORM_WANT_DEFAULT_MEM
6288c2ecf20Sopenharmony_ci	default 0x00000000
6298c2ecf20Sopenharmony_ci	help
6308c2ecf20Sopenharmony_ci	  This is the base address used for both PAGE_OFFSET and PHYS_OFFSET
6318c2ecf20Sopenharmony_ci	  in noMMU configurations.
6328c2ecf20Sopenharmony_ci
6338c2ecf20Sopenharmony_ci	  If unsure, leave the default value here.
6348c2ecf20Sopenharmony_ci
6358c2ecf20Sopenharmony_cichoice
6368c2ecf20Sopenharmony_ci	prompt "KSEG layout"
6378c2ecf20Sopenharmony_ci	depends on MMU
6388c2ecf20Sopenharmony_ci	default XTENSA_KSEG_MMU_V2
6398c2ecf20Sopenharmony_ci
6408c2ecf20Sopenharmony_ciconfig XTENSA_KSEG_MMU_V2
6418c2ecf20Sopenharmony_ci	bool "MMUv2: 128MB cached + 128MB uncached"
6428c2ecf20Sopenharmony_ci	help
6438c2ecf20Sopenharmony_ci	  MMUv2 compatible kernel memory map: TLB way 5 maps 128MB starting
6448c2ecf20Sopenharmony_ci	  at KSEG_PADDR to 0xd0000000 with cache and to 0xd8000000
6458c2ecf20Sopenharmony_ci	  without cache.
6468c2ecf20Sopenharmony_ci	  KSEG_PADDR must be aligned to 128MB.
6478c2ecf20Sopenharmony_ci
6488c2ecf20Sopenharmony_ciconfig XTENSA_KSEG_256M
6498c2ecf20Sopenharmony_ci	bool "256MB cached + 256MB uncached"
6508c2ecf20Sopenharmony_ci	depends on INITIALIZE_XTENSA_MMU_INSIDE_VMLINUX
6518c2ecf20Sopenharmony_ci	help
6528c2ecf20Sopenharmony_ci	  TLB way 6 maps 256MB starting at KSEG_PADDR to 0xb0000000
6538c2ecf20Sopenharmony_ci	  with cache and to 0xc0000000 without cache.
6548c2ecf20Sopenharmony_ci	  KSEG_PADDR must be aligned to 256MB.
6558c2ecf20Sopenharmony_ci
6568c2ecf20Sopenharmony_ciconfig XTENSA_KSEG_512M
6578c2ecf20Sopenharmony_ci	bool "512MB cached + 512MB uncached"
6588c2ecf20Sopenharmony_ci	depends on INITIALIZE_XTENSA_MMU_INSIDE_VMLINUX
6598c2ecf20Sopenharmony_ci	help
6608c2ecf20Sopenharmony_ci	  TLB way 6 maps 512MB starting at KSEG_PADDR to 0xa0000000
6618c2ecf20Sopenharmony_ci	  with cache and to 0xc0000000 without cache.
6628c2ecf20Sopenharmony_ci	  KSEG_PADDR must be aligned to 256MB.
6638c2ecf20Sopenharmony_ci
6648c2ecf20Sopenharmony_ciendchoice
6658c2ecf20Sopenharmony_ci
6668c2ecf20Sopenharmony_ciconfig HIGHMEM
6678c2ecf20Sopenharmony_ci	bool "High Memory Support"
6688c2ecf20Sopenharmony_ci	depends on MMU
6698c2ecf20Sopenharmony_ci	help
6708c2ecf20Sopenharmony_ci	  Linux can use the full amount of RAM in the system by
6718c2ecf20Sopenharmony_ci	  default. However, the default MMUv2 setup only maps the
6728c2ecf20Sopenharmony_ci	  lowermost 128 MB of memory linearly to the areas starting
6738c2ecf20Sopenharmony_ci	  at 0xd0000000 (cached) and 0xd8000000 (uncached).
6748c2ecf20Sopenharmony_ci	  When there are more than 128 MB memory in the system not
6758c2ecf20Sopenharmony_ci	  all of it can be "permanently mapped" by the kernel.
6768c2ecf20Sopenharmony_ci	  The physical memory that's not permanently mapped is called
6778c2ecf20Sopenharmony_ci	  "high memory".
6788c2ecf20Sopenharmony_ci
6798c2ecf20Sopenharmony_ci	  If you are compiling a kernel which will never run on a
6808c2ecf20Sopenharmony_ci	  machine with more than 128 MB total physical RAM, answer
6818c2ecf20Sopenharmony_ci	  N here.
6828c2ecf20Sopenharmony_ci
6838c2ecf20Sopenharmony_ci	  If unsure, say Y.
6848c2ecf20Sopenharmony_ci
6858c2ecf20Sopenharmony_ciconfig FORCE_MAX_ZONEORDER
6868c2ecf20Sopenharmony_ci	int "Maximum zone order"
6878c2ecf20Sopenharmony_ci	default "11"
6888c2ecf20Sopenharmony_ci	help
6898c2ecf20Sopenharmony_ci	  The kernel memory allocator divides physically contiguous memory
6908c2ecf20Sopenharmony_ci	  blocks into "zones", where each zone is a power of two number of
6918c2ecf20Sopenharmony_ci	  pages.  This option selects the largest power of two that the kernel
6928c2ecf20Sopenharmony_ci	  keeps in the memory allocator.  If you need to allocate very large
6938c2ecf20Sopenharmony_ci	  blocks of physically contiguous memory, then you may need to
6948c2ecf20Sopenharmony_ci	  increase this value.
6958c2ecf20Sopenharmony_ci
6968c2ecf20Sopenharmony_ci	  This config option is actually maximum order plus one. For example,
6978c2ecf20Sopenharmony_ci	  a value of 11 means that the largest free memory block is 2^10 pages.
6988c2ecf20Sopenharmony_ci
6998c2ecf20Sopenharmony_ciendmenu
7008c2ecf20Sopenharmony_ci
7018c2ecf20Sopenharmony_cimenu "Power management options"
7028c2ecf20Sopenharmony_ci
7038c2ecf20Sopenharmony_cisource "kernel/power/Kconfig"
7048c2ecf20Sopenharmony_ci
7058c2ecf20Sopenharmony_ciendmenu
706