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