]> Git Repo - J-u-boot.git/blob - arch/riscv/Kconfig
riscv: t-head: licheepi4a: initial support added
[J-u-boot.git] / arch / riscv / Kconfig
1 menu "RISC-V architecture"
2         depends on RISCV
3
4 config SYS_ARCH
5         default "riscv"
6
7 choice
8         prompt "Target select"
9         optional
10
11 config TARGET_AE350
12         bool "Support ae350"
13
14 config TARGET_MICROCHIP_ICICLE
15         bool "Support Microchip PolarFire-SoC Icicle Board"
16
17 config TARGET_QEMU_VIRT
18         bool "Support QEMU Virt Board"
19
20 config TARGET_SIFIVE_UNLEASHED
21         bool "Support SiFive Unleashed Board"
22
23 config TARGET_SIFIVE_UNMATCHED
24         bool "Support SiFive Unmatched Board"
25         select SYS_CACHE_SHIFT_6
26
27 config TARGET_STARFIVE_VISIONFIVE2
28         bool "Support StarFive VisionFive2 Board"
29
30 config TARGET_TH1520_LPI4A
31         bool "Support Sipeed's TH1520 Lichee PI 4A Board"
32         select SYS_CACHE_SHIFT_6
33
34 config TARGET_SIPEED_MAIX
35         bool "Support Sipeed Maix Board"
36         select SYS_CACHE_SHIFT_6
37
38 config TARGET_OPENPITON_RISCV64
39         bool "Support RISC-V cores on OpenPiton SoC"
40
41 endchoice
42
43 config SYS_ICACHE_OFF
44         bool "Do not enable icache"
45         help
46           Do not enable instruction cache in U-Boot.
47
48 config SPL_SYS_ICACHE_OFF
49         bool "Do not enable icache in SPL"
50         depends on SPL
51         default SYS_ICACHE_OFF
52         help
53           Do not enable instruction cache in SPL.
54
55 config SYS_DCACHE_OFF
56         bool "Do not enable dcache"
57         help
58           Do not enable data cache in U-Boot.
59
60 config SPL_SYS_DCACHE_OFF
61         bool "Do not enable dcache in SPL"
62         depends on SPL
63         default SYS_DCACHE_OFF
64         help
65           Do not enable data cache in SPL.
66
67 # board-specific options below
68 source "board/AndesTech/ae350/Kconfig"
69 source "board/emulation/qemu-riscv/Kconfig"
70 source "board/microchip/mpfs_icicle/Kconfig"
71 source "board/sifive/unleashed/Kconfig"
72 source "board/sifive/unmatched/Kconfig"
73 source "board/thead/th1520_lpi4a/Kconfig"
74 source "board/openpiton/riscv64/Kconfig"
75 source "board/sipeed/maix/Kconfig"
76 source "board/starfive/visionfive2/Kconfig"
77
78 # platform-specific options below
79 source "arch/riscv/cpu/andesv5/Kconfig"
80 source "arch/riscv/cpu/fu540/Kconfig"
81 source "arch/riscv/cpu/fu740/Kconfig"
82 source "arch/riscv/cpu/generic/Kconfig"
83 source "arch/riscv/cpu/jh7110/Kconfig"
84
85 # architecture-specific options below
86
87 choice
88         prompt "Base ISA"
89         default ARCH_RV32I
90
91 config ARCH_RV32I
92         bool "RV32I"
93         select 32BIT
94         help
95           Choose this option to target the RV32I base integer instruction set.
96
97 config ARCH_RV64I
98         bool "RV64I"
99         select 64BIT
100         select PHYS_64BIT
101         help
102           Choose this option to target the RV64I base integer instruction set.
103
104 endchoice
105
106 choice
107         prompt "Code Model"
108         default CMODEL_MEDLOW
109
110 config CMODEL_MEDLOW
111         bool "medium low code model"
112         help
113           U-Boot and its statically defined symbols must lie within a single 2 GiB
114           address range and must lie between absolute addresses -2 GiB and +2 GiB.
115
116 config CMODEL_MEDANY
117         bool "medium any code model"
118         help
119           U-Boot and its statically defined symbols must be within any single 2 GiB
120           address range.
121
122 endchoice
123
124 choice
125         prompt "Run Mode"
126         default RISCV_MMODE
127
128 config RISCV_MMODE
129         bool "Machine"
130         help
131           Choose this option to build U-Boot for RISC-V M-Mode.
132
133 config RISCV_SMODE
134         bool "Supervisor"
135         help
136           Choose this option to build U-Boot for RISC-V S-Mode.
137
138 endchoice
139
140 choice
141         prompt "SPL Run Mode"
142         default SPL_RISCV_MMODE
143         depends on SPL
144
145 config SPL_RISCV_MMODE
146         bool "Machine"
147         help
148           Choose this option to build U-Boot SPL for RISC-V M-Mode.
149
150 config SPL_RISCV_SMODE
151         bool "Supervisor"
152         help
153           Choose this option to build U-Boot SPL for RISC-V S-Mode.
154
155 endchoice
156
157 config RISCV_ISA_C
158         bool "Emit compressed instructions"
159         default y
160         help
161           Adds "C" to the ISA subsets that the toolchain is allowed to emit
162           when building U-Boot, which results in compressed instructions in the
163           U-Boot binary.
164
165 config RISCV_ISA_F
166         bool "Standard extension for Single-Precision Floating Point"
167         default y
168         help
169           Adds "F" to the ISA string passed to the compiler.
170
171 config RISCV_ISA_D
172         bool "Standard extension for Double-Precision Floating Point"
173         depends on RISCV_ISA_F
174         default y
175         help
176           Adds "D" to the ISA string passed to the compiler and changes the
177           riscv32 ABI from ilp32 to ilp32d and the riscv64 ABI from lp64 to
178           lp64d.
179
180 config RISCV_ISA_A
181         def_bool y
182
183 config 32BIT
184         bool
185
186 config 64BIT
187         bool
188
189 config DMA_ADDR_T_64BIT
190         bool
191         default y if 64BIT
192
193 config RISCV_ACLINT
194         bool
195         depends on RISCV_MMODE
196         select REGMAP
197         select SYSCON
198         help
199           The RISC-V ACLINT block holds memory-mapped control and status registers
200           associated with software and timer interrupts.
201
202 config SPL_RISCV_ACLINT
203         bool
204         depends on SPL_RISCV_MMODE
205         select SPL_REGMAP
206         select SPL_SYSCON
207         help
208           The RISC-V ACLINT block holds memory-mapped control and status registers
209           associated with software and timer interrupts.
210
211 config SIFIVE_CACHE
212         bool
213         help
214           This enables the operations to configure SiFive cache
215
216 config ANDES_PLICSW
217         bool
218         depends on RISCV_MMODE || SPL_RISCV_MMODE
219         select REGMAP
220         select SYSCON
221         select SPL_REGMAP if SPL
222         select SPL_SYSCON if SPL
223         help
224           The Andes PLICSW block holds memory-mapped claim and pending
225           registers associated with software interrupt.
226
227 config SMP
228         bool "Symmetric Multi-Processing"
229         depends on SBI_V01 || !RISCV_SMODE
230         help
231           This enables support for systems with more than one CPU. If
232           you say N here, U-Boot will run on single and multiprocessor
233           machines, but will use only one CPU of a multiprocessor
234           machine. If you say Y here, U-Boot will run on many, but not
235           all, single processor machines.
236
237 config SPL_SMP
238         bool "Symmetric Multi-Processing in SPL"
239         depends on SPL && SPL_RISCV_MMODE
240         default y
241         help
242           This enables support for systems with more than one CPU in SPL.
243           If you say N here, U-Boot SPL will run on single and multiprocessor
244           machines, but will use only one CPU of a multiprocessor
245           machine. If you say Y here, U-Boot SPL will run on many, but not
246           all, single processor machines.
247
248 config NR_CPUS
249         int "Maximum number of CPUs (2-32)"
250         range 2 32
251         depends on SMP || SPL_SMP
252         default 8
253         help
254           On multiprocessor machines, U-Boot sets up a stack for each CPU.
255           Stack memory is pre-allocated. U-Boot must therefore know the
256           maximum number of CPUs that may be present.
257
258 config SBI
259         bool
260         default y if RISCV_SMODE || SPL_RISCV_SMODE
261
262 choice
263         prompt "SBI support"
264         default SBI_V02
265
266 config SBI_V01
267         bool "SBI v0.1 support"
268         depends on SBI
269         help
270           This config allows kernel to use SBI v0.1 APIs. This will be
271           deprecated in future once legacy M-mode software are no longer in use.
272
273 config SBI_V02
274         bool "SBI v0.2 or later support"
275         depends on SBI
276         help
277           The SBI specification introduced the concept of extensions in version
278           v0.2. With this configuration option U-Boot can detect and use SBI
279           extensions. With the HSM extension introduced in SBI 0.2, only a
280           single hart needs to boot and enter the operating system. The booting
281           hart can bring up secondary harts one by one afterwards.
282
283           Choose this option if OpenSBI release v0.7 or above is used together
284           with U-Boot.
285
286 endchoice
287
288 config SBI_IPI
289         bool
290         depends on SBI
291         default y if RISCV_SMODE || SPL_RISCV_SMODE
292         depends on SMP
293
294 config XIP
295         bool "XIP mode"
296         help
297           XIP (eXecute In Place) is a method for executing code directly
298           from a NOR flash memory without copying the code to ram.
299           Say yes here if U-Boot boots from flash directly.
300
301 config SPL_XIP
302         bool "Enable XIP mode for SPL"
303         help
304           If SPL starts in read-only memory (XIP for example) then we shouldn't
305           rely on lock variables (for example hart_lottery and available_harts_lock),
306           this affects only SPL, other stages should proceed as non-XIP.
307
308 config AVAILABLE_HARTS
309         bool "Send IPI by available harts"
310         default y
311         help
312           By default, IPI sending mechanism will depend on available_harts.
313           If disable this, it will send IPI by CPUs node numbers of device tree.
314
315 config SHOW_REGS
316         bool "Show registers on unhandled exception"
317
318 config RISCV_PRIV_1_9
319         bool "Use version 1.9 of the RISC-V priviledged specification"
320         help
321           Older versions of the RISC-V priviledged specification had
322           separate counter enable CSRs for each privilege mode. Writing
323           to the unified mcounteren CSR on a processor implementing the
324           old specification will result in an illegal instruction
325           exception. In addition to counter CSR changes, the way virtual
326           memory is configured was also changed.
327
328 config STACK_SIZE_SHIFT
329         int
330         default 14
331
332 config OF_BOARD_FIXUP
333         default y if OF_SEPARATE && RISCV_SMODE
334
335 menu "Use assembly optimized implementation of memory routines"
336
337 config USE_ARCH_MEMCPY
338         bool "Use an assembly optimized implementation of memcpy"
339         default y
340         help
341           Enable the generation of an optimized version of memcpy.
342           Such an implementation may be faster under some conditions
343           but may increase the binary size.
344
345 config SPL_USE_ARCH_MEMCPY
346         bool "Use an assembly optimized implementation of memcpy for SPL"
347         default y if USE_ARCH_MEMCPY
348         depends on SPL
349         help
350           Enable the generation of an optimized version of memcpy.
351           Such an implementation may be faster under some conditions
352           but may increase the binary size.
353
354 config TPL_USE_ARCH_MEMCPY
355         bool "Use an assembly optimized implementation of memcpy for TPL"
356         default y if USE_ARCH_MEMCPY
357         depends on TPL
358         help
359           Enable the generation of an optimized version of memcpy.
360           Such an implementation may be faster under some conditions
361           but may increase the binary size.
362
363 config USE_ARCH_MEMMOVE
364         bool "Use an assembly optimized implementation of memmove"
365         default y
366         help
367           Enable the generation of an optimized version of memmove.
368           Such an implementation may be faster under some conditions
369           but may increase the binary size.
370
371 config SPL_USE_ARCH_MEMMOVE
372         bool "Use an assembly optimized implementation of memmove for SPL"
373         default y if USE_ARCH_MEMCPY
374         depends on SPL
375         help
376           Enable the generation of an optimized version of memmove.
377           Such an implementation may be faster under some conditions
378           but may increase the binary size.
379
380 config TPL_USE_ARCH_MEMMOVE
381         bool "Use an assembly optimized implementation of memmove for TPL"
382         default y if USE_ARCH_MEMCPY
383         depends on TPL
384         help
385           Enable the generation of an optimized version of memmove.
386           Such an implementation may be faster under some conditions
387           but may increase the binary size.
388
389 config USE_ARCH_MEMSET
390         bool "Use an assembly optimized implementation of memset"
391         default y
392         help
393           Enable the generation of an optimized version of memset.
394           Such an implementation may be faster under some conditions
395           but may increase the binary size.
396
397 config SPL_USE_ARCH_MEMSET
398         bool "Use an assembly optimized implementation of memset for SPL"
399         default y if USE_ARCH_MEMSET
400         depends on SPL
401         help
402           Enable the generation of an optimized version of memset.
403           Such an implementation may be faster under some conditions
404           but may increase the binary size.
405
406 config TPL_USE_ARCH_MEMSET
407         bool "Use an assembly optimized implementation of memset for TPL"
408         default y if USE_ARCH_MEMSET
409         depends on TPL
410         help
411           Enable the generation of an optimized version of memset.
412           Such an implementation may be faster under some conditions
413           but may increase the binary size.
414
415 endmenu
416
417 endmenu
This page took 0.04841 seconds and 4 git commands to generate.