xref: /openbmc/linux/arch/hexagon/Kconfig (revision 023e4163)
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_32BIT_OFF_T
8	select ARCH_HAS_SYNC_DMA_FOR_DEVICE
9	select ARCH_NO_PREEMPT
10	select HAVE_OPROFILE
11	# Other pending projects/to-do items.
12	# select HAVE_REGS_AND_STACK_ACCESS_API
13	# select HAVE_HW_BREAKPOINT if PERF_EVENTS
14	# select ARCH_HAS_CPU_IDLE_WAIT
15	# select GPIOLIB
16	# select HAVE_CLK
17	# select GENERIC_PENDING_IRQ if SMP
18	select GENERIC_ATOMIC64
19	select HAVE_PERF_EVENTS
20	# GENERIC_ALLOCATOR is used by dma_alloc_coherent()
21	select GENERIC_ALLOCATOR
22	select GENERIC_IRQ_SHOW
23	select HAVE_ARCH_KGDB
24	select HAVE_ARCH_TRACEHOOK
25	select ARCH_DISCARD_MEMBLOCK
26	select NEED_SG_DMA_LENGTH
27	select NO_IOPORT_MAP
28	select GENERIC_IOMAP
29	select GENERIC_SMP_IDLE_THREAD
30	select STACKTRACE_SUPPORT
31	select GENERIC_CLOCKEVENTS
32	select GENERIC_CLOCKEVENTS_BROADCAST
33	select MODULES_USE_ELF_RELA
34	select GENERIC_CPU_DEVICES
35	---help---
36	  Qualcomm Hexagon is a processor architecture designed for high
37	  performance and low power across a wide variety of applications.
38
39config HEXAGON_PHYS_OFFSET
40	def_bool y
41	---help---
42	  Platforms that don't load the kernel at zero set this.
43
44config FRAME_POINTER
45	def_bool y
46
47config LOCKDEP_SUPPORT
48	def_bool y
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