xref: /openbmc/linux/arch/hexagon/Kconfig (revision d731feea)
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 NEED_SG_DMA_LENGTH
26	select NO_IOPORT_MAP
27	select GENERIC_IOMAP
28	select GENERIC_SMP_IDLE_THREAD
29	select STACKTRACE_SUPPORT
30	select GENERIC_CLOCKEVENTS
31	select GENERIC_CLOCKEVENTS_BROADCAST
32	select MODULES_USE_ELF_RELA
33	select GENERIC_CPU_DEVICES
34	select SET_FS
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 GENERIC_HWEIGHT
69	def_bool y
70
71config STACKTRACE_SUPPORT
72	def_bool y
73	select STACKTRACE
74
75config GENERIC_BUG
76	def_bool y
77	depends on BUG
78
79menu "Machine selection"
80
81choice
82	prompt "System type"
83	default HEXAGON_COMET
84
85config HEXAGON_COMET
86	bool "Comet Board"
87	help
88	  Support for the Comet platform.
89
90endchoice
91
92config HEXAGON_ARCH_VERSION
93	int "Architecture version"
94	default 2
95
96config CMDLINE
97	string "Default kernel command string"
98	default ""
99	help
100	  On some platforms, there is currently no way for the boot loader
101	  to pass arguments to the kernel. For these, you should supply some
102	  command-line options at build time by entering them here.  At a
103	  minimum, you should specify the memory size and the root device
104	  (e.g., mem=64M root=/dev/nfs).
105
106config SMP
107	bool "Multi-Processing support"
108	help
109	  Enables SMP support in the kernel.  If unsure, say "Y"
110
111config NR_CPUS
112	int "Maximum number of CPUs" if SMP
113	range 2 6 if SMP
114	default "1" if !SMP
115	default "6" if SMP
116	help
117	  This allows you to specify the maximum number of CPUs which this
118	  kernel will support.  The maximum supported value is 6 and the
119	  minimum value which makes sense is 2.
120
121	  This is purely to save memory - each supported CPU adds
122	  approximately eight kilobytes to the kernel image.
123
124choice
125	prompt "Kernel page size"
126	default PAGE_SIZE_4KB
127	help
128	  Changes the default page size; use with caution.
129
130config PAGE_SIZE_4KB
131	bool "4KB"
132
133config PAGE_SIZE_16KB
134	bool "16KB"
135
136config PAGE_SIZE_64KB
137	bool "64KB"
138
139config PAGE_SIZE_256KB
140	bool "256KB"
141
142endchoice
143
144source "kernel/Kconfig.hz"
145
146endmenu
147