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