xref: /linux/arch/csky/Kconfig (revision c32e64e852f3f5c0fd709f84bc94736840088375)
1*c32e64e8SGuo Renconfig CSKY
2*c32e64e8SGuo Ren	def_bool y
3*c32e64e8SGuo Ren	select ARCH_HAS_SYNC_DMA_FOR_CPU
4*c32e64e8SGuo Ren	select ARCH_HAS_SYNC_DMA_FOR_DEVICE
5*c32e64e8SGuo Ren	select ARCH_USE_BUILTIN_BSWAP
6*c32e64e8SGuo Ren	select ARCH_USE_QUEUED_RWLOCKS if NR_CPUS>2
7*c32e64e8SGuo Ren	select COMMON_CLK
8*c32e64e8SGuo Ren	select CLKSRC_MMIO
9*c32e64e8SGuo Ren	select CLKSRC_OF
10*c32e64e8SGuo Ren	select DMA_DIRECT_OPS
11*c32e64e8SGuo Ren	select DMA_NONCOHERENT_OPS
12*c32e64e8SGuo Ren	select IRQ_DOMAIN
13*c32e64e8SGuo Ren	select HANDLE_DOMAIN_IRQ
14*c32e64e8SGuo Ren	select DW_APB_TIMER_OF
15*c32e64e8SGuo Ren	select GENERIC_LIB_ASHLDI3
16*c32e64e8SGuo Ren	select GENERIC_LIB_ASHRDI3
17*c32e64e8SGuo Ren	select GENERIC_LIB_LSHRDI3
18*c32e64e8SGuo Ren	select GENERIC_LIB_MULDI3
19*c32e64e8SGuo Ren	select GENERIC_LIB_CMPDI2
20*c32e64e8SGuo Ren	select GENERIC_LIB_UCMPDI2
21*c32e64e8SGuo Ren	select GENERIC_ALLOCATOR
22*c32e64e8SGuo Ren	select GENERIC_ATOMIC64
23*c32e64e8SGuo Ren	select GENERIC_CLOCKEVENTS
24*c32e64e8SGuo Ren	select GENERIC_CPU_DEVICES
25*c32e64e8SGuo Ren	select GENERIC_IRQ_CHIP
26*c32e64e8SGuo Ren	select GENERIC_IRQ_PROBE
27*c32e64e8SGuo Ren	select GENERIC_IRQ_SHOW
28*c32e64e8SGuo Ren	select GENERIC_IRQ_MULTI_HANDLER
29*c32e64e8SGuo Ren	select GENERIC_SCHED_CLOCK
30*c32e64e8SGuo Ren	select GENERIC_SMP_IDLE_THREAD
31*c32e64e8SGuo Ren	select HAVE_ARCH_TRACEHOOK
32*c32e64e8SGuo Ren	select HAVE_GENERIC_DMA_COHERENT
33*c32e64e8SGuo Ren	select HAVE_KERNEL_GZIP
34*c32e64e8SGuo Ren	select HAVE_KERNEL_LZO
35*c32e64e8SGuo Ren	select HAVE_KERNEL_LZMA
36*c32e64e8SGuo Ren	select HAVE_C_RECORDMCOUNT
37*c32e64e8SGuo Ren	select HAVE_DMA_API_DEBUG
38*c32e64e8SGuo Ren	select HAVE_DMA_CONTIGUOUS
39*c32e64e8SGuo Ren	select HAVE_MEMBLOCK
40*c32e64e8SGuo Ren	select MAY_HAVE_SPARSE_IRQ
41*c32e64e8SGuo Ren	select MODULES_USE_ELF_RELA if MODULES
42*c32e64e8SGuo Ren	select NO_BOOTMEM
43*c32e64e8SGuo Ren	select OF
44*c32e64e8SGuo Ren	select OF_EARLY_FLATTREE
45*c32e64e8SGuo Ren	select OF_RESERVED_MEM
46*c32e64e8SGuo Ren	select PERF_USE_VMALLOC
47*c32e64e8SGuo Ren	select RTC_LIB
48*c32e64e8SGuo Ren	select TIMER_OF
49*c32e64e8SGuo Ren	select USB_ARCH_HAS_EHCI
50*c32e64e8SGuo Ren	select USB_ARCH_HAS_OHCI
51*c32e64e8SGuo Ren
52*c32e64e8SGuo Renconfig CPU_HAS_CACHEV2
53*c32e64e8SGuo Ren	bool
54*c32e64e8SGuo Ren
55*c32e64e8SGuo Renconfig CPU_HAS_FPUV2
56*c32e64e8SGuo Ren	bool
57*c32e64e8SGuo Ren
58*c32e64e8SGuo Renconfig CPU_HAS_HILO
59*c32e64e8SGuo Ren	bool
60*c32e64e8SGuo Ren
61*c32e64e8SGuo Renconfig CPU_HAS_TLBI
62*c32e64e8SGuo Ren	bool
63*c32e64e8SGuo Ren
64*c32e64e8SGuo Renconfig CPU_HAS_LDSTEX
65*c32e64e8SGuo Ren	bool
66*c32e64e8SGuo Ren	help
67*c32e64e8SGuo Ren	  For SMP, CPU needs "ldex&stex" instrcutions to atomic operations.
68*c32e64e8SGuo Ren
69*c32e64e8SGuo Renconfig CPU_NEED_TLBSYNC
70*c32e64e8SGuo Ren	bool
71*c32e64e8SGuo Ren
72*c32e64e8SGuo Renconfig CPU_NEED_SOFTALIGN
73*c32e64e8SGuo Ren	bool
74*c32e64e8SGuo Ren
75*c32e64e8SGuo Renconfig CPU_NO_USER_BKPT
76*c32e64e8SGuo Ren	bool
77*c32e64e8SGuo Ren	help
78*c32e64e8SGuo Ren	  For abiv2 we couldn't use "trap 1" as user space bkpt in gdbserver, because
79*c32e64e8SGuo Ren	  abiv2 is 16/32bit instruction set and "trap 1" is 32bit.
80*c32e64e8SGuo Ren	  So we need a 16bit instruction as user space bkpt, and it will cause an illegal
81*c32e64e8SGuo Ren	  instruction exception.
82*c32e64e8SGuo Ren	  In kernel we parse the *regs->pc to determine whether to send SIGTRAP or not.
83*c32e64e8SGuo Ren
84*c32e64e8SGuo Renconfig GENERIC_CALIBRATE_DELAY
85*c32e64e8SGuo Ren	def_bool y
86*c32e64e8SGuo Ren
87*c32e64e8SGuo Renconfig GENERIC_CSUM
88*c32e64e8SGuo Ren	def_bool y
89*c32e64e8SGuo Ren
90*c32e64e8SGuo Renconfig GENERIC_HWEIGHT
91*c32e64e8SGuo Ren	def_bool y
92*c32e64e8SGuo Ren
93*c32e64e8SGuo Renconfig MMU
94*c32e64e8SGuo Ren	def_bool y
95*c32e64e8SGuo Ren
96*c32e64e8SGuo Renconfig RWSEM_GENERIC_SPINLOCK
97*c32e64e8SGuo Ren	def_bool y
98*c32e64e8SGuo Ren
99*c32e64e8SGuo Renconfig TIME_LOW_RES
100*c32e64e8SGuo Ren	def_bool y
101*c32e64e8SGuo Ren
102*c32e64e8SGuo Renconfig TRACE_IRQFLAGS_SUPPORT
103*c32e64e8SGuo Ren	def_bool y
104*c32e64e8SGuo Ren
105*c32e64e8SGuo Renconfig CPU_TLB_SIZE
106*c32e64e8SGuo Ren	int
107*c32e64e8SGuo Ren	default "128"	if (CPU_CK610 || CPU_CK807 || CPU_CK810)
108*c32e64e8SGuo Ren	default "1024"	if (CPU_CK860)
109*c32e64e8SGuo Ren
110*c32e64e8SGuo Renconfig CPU_ASID_BITS
111*c32e64e8SGuo Ren	int
112*c32e64e8SGuo Ren	default "8"	if (CPU_CK610 || CPU_CK807 || CPU_CK810)
113*c32e64e8SGuo Ren	default "12"	if (CPU_CK860)
114*c32e64e8SGuo Ren
115*c32e64e8SGuo Renconfig L1_CACHE_SHIFT
116*c32e64e8SGuo Ren	int
117*c32e64e8SGuo Ren	default "4"	if (CPU_CK610)
118*c32e64e8SGuo Ren	default "5"	if (CPU_CK807 || CPU_CK810)
119*c32e64e8SGuo Ren	default "6"	if (CPU_CK860)
120*c32e64e8SGuo Ren
121*c32e64e8SGuo Renmenu "Processor type and features"
122*c32e64e8SGuo Ren
123*c32e64e8SGuo Renchoice
124*c32e64e8SGuo Ren	prompt "CPU MODEL"
125*c32e64e8SGuo Ren	default CPU_CK807
126*c32e64e8SGuo Ren
127*c32e64e8SGuo Renconfig CPU_CK610
128*c32e64e8SGuo Ren	bool "CSKY CPU ck610"
129*c32e64e8SGuo Ren	select CPU_NEED_TLBSYNC
130*c32e64e8SGuo Ren	select CPU_NEED_SOFTALIGN
131*c32e64e8SGuo Ren	select CPU_NO_USER_BKPT
132*c32e64e8SGuo Ren
133*c32e64e8SGuo Renconfig CPU_CK810
134*c32e64e8SGuo Ren	bool "CSKY CPU ck810"
135*c32e64e8SGuo Ren	select CPU_HAS_HILO
136*c32e64e8SGuo Ren	select CPU_NEED_TLBSYNC
137*c32e64e8SGuo Ren
138*c32e64e8SGuo Renconfig CPU_CK807
139*c32e64e8SGuo Ren	bool "CSKY CPU ck807"
140*c32e64e8SGuo Ren	select CPU_HAS_HILO
141*c32e64e8SGuo Ren
142*c32e64e8SGuo Renconfig CPU_CK860
143*c32e64e8SGuo Ren	bool "CSKY CPU ck860"
144*c32e64e8SGuo Ren	select CPU_HAS_TLBI
145*c32e64e8SGuo Ren	select CPU_HAS_CACHEV2
146*c32e64e8SGuo Ren	select CPU_HAS_LDSTEX
147*c32e64e8SGuo Ren	select CPU_HAS_FPUV2
148*c32e64e8SGuo Renendchoice
149*c32e64e8SGuo Ren
150*c32e64e8SGuo Renchoice
151*c32e64e8SGuo Ren	prompt "Power Manager Instruction (wait/doze/stop)"
152*c32e64e8SGuo Ren	default CPU_PM_NONE
153*c32e64e8SGuo Ren
154*c32e64e8SGuo Renconfig CPU_PM_NONE
155*c32e64e8SGuo Ren	bool "None"
156*c32e64e8SGuo Ren
157*c32e64e8SGuo Renconfig CPU_PM_WAIT
158*c32e64e8SGuo Ren	bool "wait"
159*c32e64e8SGuo Ren
160*c32e64e8SGuo Renconfig CPU_PM_DOZE
161*c32e64e8SGuo Ren	bool "doze"
162*c32e64e8SGuo Ren
163*c32e64e8SGuo Renconfig CPU_PM_STOP
164*c32e64e8SGuo Ren	bool "stop"
165*c32e64e8SGuo Renendchoice
166*c32e64e8SGuo Ren
167*c32e64e8SGuo Renconfig CPU_HAS_VDSP
168*c32e64e8SGuo Ren	bool "CPU has VDSP coprocessor"
169*c32e64e8SGuo Ren	depends on CPU_HAS_FPU && CPU_HAS_FPUV2
170*c32e64e8SGuo Ren
171*c32e64e8SGuo Renconfig CPU_HAS_FPU
172*c32e64e8SGuo Ren	bool "CPU has FPU coprocessor"
173*c32e64e8SGuo Ren	depends on CPU_CK807 || CPU_CK810 || CPU_CK860
174*c32e64e8SGuo Ren
175*c32e64e8SGuo Renconfig CPU_HAS_TEE
176*c32e64e8SGuo Ren	bool "CPU has Trusted Execution Environment"
177*c32e64e8SGuo Ren	depends on CPU_CK810
178*c32e64e8SGuo Ren
179*c32e64e8SGuo Renconfig SMP
180*c32e64e8SGuo Ren	bool "Symmetric Multi-Processing (SMP) support for C-SKY"
181*c32e64e8SGuo Ren	depends on CPU_CK860
182*c32e64e8SGuo Ren	default n
183*c32e64e8SGuo Ren
184*c32e64e8SGuo Renconfig NR_CPUS
185*c32e64e8SGuo Ren	int "Maximum number of CPUs (2-32)"
186*c32e64e8SGuo Ren	range 2 32
187*c32e64e8SGuo Ren	depends on SMP
188*c32e64e8SGuo Ren	default "2"
189*c32e64e8SGuo Ren
190*c32e64e8SGuo Renconfig HIGHMEM
191*c32e64e8SGuo Ren	bool "High Memory Support"
192*c32e64e8SGuo Ren	depends on !CPU_CK610
193*c32e64e8SGuo Ren	default y
194*c32e64e8SGuo Ren
195*c32e64e8SGuo Renconfig FORCE_MAX_ZONEORDER
196*c32e64e8SGuo Ren	int "Maximum zone order"
197*c32e64e8SGuo Ren	default "11"
198*c32e64e8SGuo Ren
199*c32e64e8SGuo Renconfig RAM_BASE
200*c32e64e8SGuo Ren	hex "DRAM start addr (the same with memory-section in dts)"
201*c32e64e8SGuo Ren	default 0x0
202*c32e64e8SGuo Ren
203*c32e64e8SGuo Renendmenu
204*c32e64e8SGuo Ren
205*c32e64e8SGuo Rensource "kernel/Kconfig.hz"
206