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