1# SPDX-License-Identifier: GPL-2.0
2# Hexagon configuration
3comment "Linux Kernel Configuration for Hexagon"
4
5config HEXAGON
6	def_bool y
7	select ARCH_NO_PREEMPT
8	select HAVE_OPROFILE
9	# Other pending projects/to-do items.
10	# select HAVE_REGS_AND_STACK_ACCESS_API
11	# select HAVE_HW_BREAKPOINT if PERF_EVENTS
12	# select ARCH_HAS_CPU_IDLE_WAIT
13	# select GPIOLIB
14	# select HAVE_CLK
15	# select GENERIC_PENDING_IRQ if SMP
16	select GENERIC_ATOMIC64
17	select HAVE_PERF_EVENTS
18	# GENERIC_ALLOCATOR is used by dma_alloc_coherent()
19	select GENERIC_ALLOCATOR
20	select GENERIC_IRQ_SHOW
21	select HAVE_ARCH_KGDB
22	select HAVE_ARCH_TRACEHOOK
23	select NEED_SG_DMA_LENGTH
24	select NO_IOPORT_MAP
25	select GENERIC_IOMAP
26	select GENERIC_SMP_IDLE_THREAD
27	select STACKTRACE_SUPPORT
28	select GENERIC_CLOCKEVENTS
29	select GENERIC_CLOCKEVENTS_BROADCAST
30	select MODULES_USE_ELF_RELA
31	select GENERIC_CPU_DEVICES
32	---help---
33	  Qualcomm Hexagon is a processor architecture designed for high
34	  performance and low power across a wide variety of applications.
35
36config HEXAGON_PHYS_OFFSET
37	def_bool y
38	---help---
39	  Platforms that don't load the kernel at zero set this.
40
41config FRAME_POINTER
42	def_bool y
43
44config LOCKDEP_SUPPORT
45	def_bool y
46
47config PCI
48	def_bool n
49
50config EARLY_PRINTK
51	def_bool y
52
53config MMU
54	def_bool y
55
56config TRACE_IRQFLAGS_SUPPORT
57	def_bool y
58
59config GENERIC_CSUM
60	def_bool y
61
62#
63# Use the generic interrupt handling code in kernel/irq/:
64#
65config GENERIC_IRQ_PROBE
66	def_bool y
67
68config RWSEM_GENERIC_SPINLOCK
69	def_bool n
70
71config RWSEM_XCHGADD_ALGORITHM
72	def_bool y
73
74config GENERIC_HWEIGHT
75	def_bool y
76
77config STACKTRACE_SUPPORT
78	def_bool y
79	select STACKTRACE
80
81config GENERIC_BUG
82	def_bool y
83	depends on BUG
84
85menu "Machine selection"
86
87choice
88	prompt "System type"
89	default HEXAGON_COMET
90
91config HEXAGON_COMET
92	bool "Comet Board"
93	---help---
94	  Support for the Comet platform.
95
96endchoice
97
98config HEXAGON_ARCH_VERSION
99	int "Architecture version"
100	default 2
101
102config CMDLINE
103	string "Default kernel command string"
104	default ""
105	help
106	  On some platforms, there is currently no way for the boot loader
107	  to pass arguments to the kernel. For these, you should supply some
108	  command-line options at build time by entering them here.  At a
109	  minimum, you should specify the memory size and the root device
110	  (e.g., mem=64M root=/dev/nfs).
111
112config SMP
113	bool "Multi-Processing support"
114	---help---
115	  Enables SMP support in the kernel.  If unsure, say "Y"
116
117config NR_CPUS
118	int "Maximum number of CPUs" if SMP
119	range 2 6 if SMP
120	default "1" if !SMP
121	default "6" if SMP
122	---help---
123	  This allows you to specify the maximum number of CPUs which this
124	  kernel will support.  The maximum supported value is 6 and the
125	  minimum value which makes sense is 2.
126
127	  This is purely to save memory - each supported CPU adds
128	  approximately eight kilobytes to the kernel image.
129
130choice
131	prompt "Kernel page size"
132	default PAGE_SIZE_4KB
133	---help---
134	  Changes the default page size; use with caution.
135
136config PAGE_SIZE_4KB
137	bool "4KB"
138
139config PAGE_SIZE_16KB
140	bool "16KB"
141
142config PAGE_SIZE_64KB
143	bool "64KB"
144
145config PAGE_SIZE_256KB
146	bool "256KB"
147
148endchoice
149
150source "kernel/Kconfig.hz"
151
152endmenu
153