162306a36Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0
262306a36Sopenharmony_ci# Hexagon configuration
362306a36Sopenharmony_cicomment "Linux Kernel Configuration for Hexagon"
462306a36Sopenharmony_ci
562306a36Sopenharmony_ciconfig HEXAGON
662306a36Sopenharmony_ci	def_bool y
762306a36Sopenharmony_ci	select ARCH_32BIT_OFF_T
862306a36Sopenharmony_ci	select ARCH_HAS_SYNC_DMA_FOR_DEVICE
962306a36Sopenharmony_ci	select ARCH_NO_PREEMPT
1062306a36Sopenharmony_ci	select DMA_GLOBAL_POOL
1162306a36Sopenharmony_ci	# Other pending projects/to-do items.
1262306a36Sopenharmony_ci	# select HAVE_REGS_AND_STACK_ACCESS_API
1362306a36Sopenharmony_ci	# select HAVE_HW_BREAKPOINT if PERF_EVENTS
1462306a36Sopenharmony_ci	# select ARCH_HAS_CPU_IDLE_WAIT
1562306a36Sopenharmony_ci	# select GPIOLIB
1662306a36Sopenharmony_ci	# select HAVE_CLK
1762306a36Sopenharmony_ci	# select GENERIC_PENDING_IRQ if SMP
1862306a36Sopenharmony_ci	select GENERIC_ATOMIC64
1962306a36Sopenharmony_ci	select HAVE_PERF_EVENTS
2062306a36Sopenharmony_ci	# GENERIC_ALLOCATOR is used by dma_alloc_coherent()
2162306a36Sopenharmony_ci	select GENERIC_ALLOCATOR
2262306a36Sopenharmony_ci	select GENERIC_IRQ_SHOW
2362306a36Sopenharmony_ci	select HAVE_ARCH_KGDB
2462306a36Sopenharmony_ci	select HAVE_ARCH_TRACEHOOK
2562306a36Sopenharmony_ci	select NEED_SG_DMA_LENGTH
2662306a36Sopenharmony_ci	select NO_IOPORT_MAP
2762306a36Sopenharmony_ci	select GENERIC_IOMAP
2862306a36Sopenharmony_ci	select GENERIC_IOREMAP
2962306a36Sopenharmony_ci	select GENERIC_SMP_IDLE_THREAD
3062306a36Sopenharmony_ci	select STACKTRACE_SUPPORT
3162306a36Sopenharmony_ci	select GENERIC_CLOCKEVENTS_BROADCAST
3262306a36Sopenharmony_ci	select LOCK_MM_AND_FIND_VMA
3362306a36Sopenharmony_ci	select MODULES_USE_ELF_RELA
3462306a36Sopenharmony_ci	select GENERIC_CPU_DEVICES
3562306a36Sopenharmony_ci	select ARCH_WANT_LD_ORPHAN_WARN
3662306a36Sopenharmony_ci	select TRACE_IRQFLAGS_SUPPORT
3762306a36Sopenharmony_ci	help
3862306a36Sopenharmony_ci	  Qualcomm Hexagon is a processor architecture designed for high
3962306a36Sopenharmony_ci	  performance and low power across a wide variety of applications.
4062306a36Sopenharmony_ci
4162306a36Sopenharmony_ciconfig HEXAGON_PHYS_OFFSET
4262306a36Sopenharmony_ci	def_bool y
4362306a36Sopenharmony_ci	help
4462306a36Sopenharmony_ci	  Platforms that don't load the kernel at zero set this.
4562306a36Sopenharmony_ci
4662306a36Sopenharmony_ciconfig FRAME_POINTER
4762306a36Sopenharmony_ci	def_bool y
4862306a36Sopenharmony_ci
4962306a36Sopenharmony_ciconfig LOCKDEP_SUPPORT
5062306a36Sopenharmony_ci	def_bool y
5162306a36Sopenharmony_ci
5262306a36Sopenharmony_ciconfig EARLY_PRINTK
5362306a36Sopenharmony_ci	def_bool y
5462306a36Sopenharmony_ci
5562306a36Sopenharmony_ciconfig MMU
5662306a36Sopenharmony_ci	def_bool y
5762306a36Sopenharmony_ci
5862306a36Sopenharmony_ciconfig GENERIC_CSUM
5962306a36Sopenharmony_ci	def_bool y
6062306a36Sopenharmony_ci
6162306a36Sopenharmony_ci#
6262306a36Sopenharmony_ci# Use the generic interrupt handling code in kernel/irq/:
6362306a36Sopenharmony_ci#
6462306a36Sopenharmony_ciconfig GENERIC_IRQ_PROBE
6562306a36Sopenharmony_ci	def_bool y
6662306a36Sopenharmony_ci
6762306a36Sopenharmony_ciconfig GENERIC_HWEIGHT
6862306a36Sopenharmony_ci	def_bool y
6962306a36Sopenharmony_ci
7062306a36Sopenharmony_ciconfig STACKTRACE_SUPPORT
7162306a36Sopenharmony_ci	def_bool y
7262306a36Sopenharmony_ci	select STACKTRACE
7362306a36Sopenharmony_ci
7462306a36Sopenharmony_ciconfig GENERIC_BUG
7562306a36Sopenharmony_ci	def_bool y
7662306a36Sopenharmony_ci	depends on BUG
7762306a36Sopenharmony_ci
7862306a36Sopenharmony_cimenu "Machine selection"
7962306a36Sopenharmony_ci
8062306a36Sopenharmony_cichoice
8162306a36Sopenharmony_ci	prompt "System type"
8262306a36Sopenharmony_ci	default HEXAGON_COMET
8362306a36Sopenharmony_ci
8462306a36Sopenharmony_ciconfig HEXAGON_COMET
8562306a36Sopenharmony_ci	bool "Comet Board"
8662306a36Sopenharmony_ci	help
8762306a36Sopenharmony_ci	  Support for the Comet platform.
8862306a36Sopenharmony_ci
8962306a36Sopenharmony_ciendchoice
9062306a36Sopenharmony_ci
9162306a36Sopenharmony_ciconfig HEXAGON_ARCH_VERSION
9262306a36Sopenharmony_ci	int "Architecture version"
9362306a36Sopenharmony_ci	default 2
9462306a36Sopenharmony_ci
9562306a36Sopenharmony_ciconfig CMDLINE
9662306a36Sopenharmony_ci	string "Default kernel command string"
9762306a36Sopenharmony_ci	default ""
9862306a36Sopenharmony_ci	help
9962306a36Sopenharmony_ci	  On some platforms, there is currently no way for the boot loader
10062306a36Sopenharmony_ci	  to pass arguments to the kernel. For these, you should supply some
10162306a36Sopenharmony_ci	  command-line options at build time by entering them here.  At a
10262306a36Sopenharmony_ci	  minimum, you should specify the memory size and the root device
10362306a36Sopenharmony_ci	  (e.g., mem=64M root=/dev/nfs).
10462306a36Sopenharmony_ci
10562306a36Sopenharmony_ciconfig SMP
10662306a36Sopenharmony_ci	bool "Multi-Processing support"
10762306a36Sopenharmony_ci	help
10862306a36Sopenharmony_ci	  Enables SMP support in the kernel.  If unsure, say "Y"
10962306a36Sopenharmony_ci
11062306a36Sopenharmony_ciconfig NR_CPUS
11162306a36Sopenharmony_ci	int "Maximum number of CPUs" if SMP
11262306a36Sopenharmony_ci	range 2 6 if SMP
11362306a36Sopenharmony_ci	default "1" if !SMP
11462306a36Sopenharmony_ci	default "6" if SMP
11562306a36Sopenharmony_ci	help
11662306a36Sopenharmony_ci	  This allows you to specify the maximum number of CPUs which this
11762306a36Sopenharmony_ci	  kernel will support.  The maximum supported value is 6 and the
11862306a36Sopenharmony_ci	  minimum value which makes sense is 2.
11962306a36Sopenharmony_ci
12062306a36Sopenharmony_ci	  This is purely to save memory - each supported CPU adds
12162306a36Sopenharmony_ci	  approximately eight kilobytes to the kernel image.
12262306a36Sopenharmony_ci
12362306a36Sopenharmony_cichoice
12462306a36Sopenharmony_ci	prompt "Kernel page size"
12562306a36Sopenharmony_ci	default PAGE_SIZE_4KB
12662306a36Sopenharmony_ci	help
12762306a36Sopenharmony_ci	  Changes the default page size; use with caution.
12862306a36Sopenharmony_ci
12962306a36Sopenharmony_ciconfig PAGE_SIZE_4KB
13062306a36Sopenharmony_ci	bool "4KB"
13162306a36Sopenharmony_ci
13262306a36Sopenharmony_ciconfig PAGE_SIZE_16KB
13362306a36Sopenharmony_ci	bool "16KB"
13462306a36Sopenharmony_ci
13562306a36Sopenharmony_ciconfig PAGE_SIZE_64KB
13662306a36Sopenharmony_ci	bool "64KB"
13762306a36Sopenharmony_ci
13862306a36Sopenharmony_ciconfig PAGE_SIZE_256KB
13962306a36Sopenharmony_ci	bool "256KB"
14062306a36Sopenharmony_ci
14162306a36Sopenharmony_ciendchoice
14262306a36Sopenharmony_ci
14362306a36Sopenharmony_cisource "kernel/Kconfig.hz"
14462306a36Sopenharmony_ci
14562306a36Sopenharmony_ciendmenu
146