1 menu "RISC-V architecture"
11 config TARGET_AX25_AE350
12 bool "Support ax25-ae350"
14 config TARGET_MICROCHIP_ICICLE
15 bool "Support Microchip PolarFire-SoC Icicle Board"
17 config TARGET_QEMU_VIRT
18 bool "Support QEMU Virt Board"
20 config TARGET_SIFIVE_UNLEASHED
21 bool "Support SiFive Unleashed Board"
23 config TARGET_SIFIVE_UNMATCHED
24 bool "Support SiFive Unmatched Board"
25 select SYS_CACHE_SHIFT_6
27 config TARGET_SIPEED_MAIX
28 bool "Support Sipeed Maix Board"
29 select SYS_CACHE_SHIFT_6
31 config TARGET_OPENPITON_RISCV64
32 bool "Support RISC-V cores on OpenPiton SoC"
37 bool "Do not enable icache"
39 Do not enable instruction cache in U-Boot.
41 config SPL_SYS_ICACHE_OFF
42 bool "Do not enable icache in SPL"
44 default SYS_ICACHE_OFF
46 Do not enable instruction cache in SPL.
49 bool "Do not enable dcache"
51 Do not enable data cache in U-Boot.
53 config SPL_SYS_DCACHE_OFF
54 bool "Do not enable dcache in SPL"
56 default SYS_DCACHE_OFF
58 Do not enable data cache in SPL.
60 # board-specific options below
61 source "board/AndesTech/ax25-ae350/Kconfig"
62 source "board/emulation/qemu-riscv/Kconfig"
63 source "board/microchip/mpfs_icicle/Kconfig"
64 source "board/sifive/unleashed/Kconfig"
65 source "board/sifive/unmatched/Kconfig"
66 source "board/openpiton/riscv64/Kconfig"
67 source "board/sipeed/maix/Kconfig"
69 # platform-specific options below
70 source "arch/riscv/cpu/ax25/Kconfig"
71 source "arch/riscv/cpu/fu540/Kconfig"
72 source "arch/riscv/cpu/fu740/Kconfig"
73 source "arch/riscv/cpu/generic/Kconfig"
75 # architecture-specific options below
85 Choose this option to target the RV32I base integer instruction set.
92 Choose this option to target the RV64I base integer instruction set.
101 bool "medium low code model"
103 U-Boot and its statically defined symbols must lie within a single 2 GiB
104 address range and must lie between absolute addresses -2 GiB and +2 GiB.
107 bool "medium any code model"
109 U-Boot and its statically defined symbols must be within any single 2 GiB
121 Choose this option to build U-Boot for RISC-V M-Mode.
126 Choose this option to build U-Boot for RISC-V S-Mode.
131 prompt "SPL Run Mode"
132 default SPL_RISCV_MMODE
135 config SPL_RISCV_MMODE
138 Choose this option to build U-Boot SPL for RISC-V M-Mode.
140 config SPL_RISCV_SMODE
143 Choose this option to build U-Boot SPL for RISC-V S-Mode.
148 bool "Emit compressed instructions"
151 Adds "C" to the ISA subsets that the toolchain is allowed to emit
152 when building U-Boot, which results in compressed instructions in the
164 config DMA_ADDR_T_64BIT
170 depends on RISCV_MMODE
172 The SiFive CLINT block holds memory-mapped control and status registers
173 associated with software and timer interrupts.
175 config SPL_SIFIVE_CLINT
177 depends on SPL_RISCV_MMODE
179 The SiFive CLINT block holds memory-mapped control and status registers
180 associated with software and timer interrupts.
185 This enables the operations to configure SiFive cache
189 depends on RISCV_MMODE || SPL_RISCV_MMODE
192 select SPL_REGMAP if SPL
193 select SPL_SYSCON if SPL
195 The Andes PLIC block holds memory-mapped claim and pending registers
196 associated with software interrupt.
198 config SYS_MALLOC_F_LEN
202 bool "Symmetric Multi-Processing"
203 depends on SBI_V01 || !RISCV_SMODE
205 This enables support for systems with more than one CPU. If
206 you say N here, U-Boot will run on single and multiprocessor
207 machines, but will use only one CPU of a multiprocessor
208 machine. If you say Y here, U-Boot will run on many, but not
209 all, single processor machines.
212 bool "Symmetric Multi-Processing in SPL"
213 depends on SPL && SPL_RISCV_MMODE
216 This enables support for systems with more than one CPU in SPL.
217 If you say N here, U-Boot SPL will run on single and multiprocessor
218 machines, but will use only one CPU of a multiprocessor
219 machine. If you say Y here, U-Boot SPL will run on many, but not
220 all, single processor machines.
223 int "Maximum number of CPUs (2-32)"
225 depends on SMP || SPL_SMP
228 On multiprocessor machines, U-Boot sets up a stack for each CPU.
229 Stack memory is pre-allocated. U-Boot must therefore know the
230 maximum number of CPUs that may be present.
234 default y if RISCV_SMODE || SPL_RISCV_SMODE
241 bool "SBI v0.1 support"
244 This config allows kernel to use SBI v0.1 APIs. This will be
245 deprecated in future once legacy M-mode software are no longer in use.
248 bool "SBI v0.2 support"
251 This config allows kernel to use SBI v0.2 APIs. SBI v0.2 is more
252 scalable and extendable to handle future needs for RISC-V supervisor
253 interfaces. For example, with SBI v0.2 HSM extension, only a single
254 hart need to boot and enter operating system. The booting hart can
255 bring up secondary harts one by one afterwards.
257 Choose this option if OpenSBI v0.7 or above release is used together
265 default y if RISCV_SMODE || SPL_RISCV_SMODE
271 XIP (eXecute In Place) is a method for executing code directly
272 from a NOR flash memory without copying the code to ram.
273 Say yes here if U-Boot boots from flash directly.
276 bool "Show registers on unhandled exception"
278 config RISCV_PRIV_1_9
279 bool "Use version 1.9 of the RISC-V priviledged specification"
281 Older versions of the RISC-V priviledged specification had
282 separate counter enable CSRs for each privilege mode. Writing
283 to the unified mcounteren CSR on a processor implementing the
284 old specification will result in an illegal instruction
285 exception. In addition to counter CSR changes, the way virtual
286 memory is configured was also changed.
288 config STACK_SIZE_SHIFT
292 config OF_BOARD_FIXUP
293 default y if OF_SEPARATE && RISCV_SMODE
295 menu "Use assembly optimized implementation of memory routines"
297 config USE_ARCH_MEMCPY
298 bool "Use an assembly optimized implementation of memcpy"
301 Enable the generation of an optimized version of memcpy.
302 Such an implementation may be faster under some conditions
303 but may increase the binary size.
305 config SPL_USE_ARCH_MEMCPY
306 bool "Use an assembly optimized implementation of memcpy for SPL"
307 default y if USE_ARCH_MEMCPY
310 Enable the generation of an optimized version of memcpy.
311 Such an implementation may be faster under some conditions
312 but may increase the binary size.
314 config TPL_USE_ARCH_MEMCPY
315 bool "Use an assembly optimized implementation of memcpy for TPL"
316 default y if USE_ARCH_MEMCPY
319 Enable the generation of an optimized version of memcpy.
320 Such an implementation may be faster under some conditions
321 but may increase the binary size.
323 config USE_ARCH_MEMMOVE
324 bool "Use an assembly optimized implementation of memmove"
327 Enable the generation of an optimized version of memmove.
328 Such an implementation may be faster under some conditions
329 but may increase the binary size.
331 config SPL_USE_ARCH_MEMMOVE
332 bool "Use an assembly optimized implementation of memmove for SPL"
333 default y if USE_ARCH_MEMCPY
336 Enable the generation of an optimized version of memmove.
337 Such an implementation may be faster under some conditions
338 but may increase the binary size.
340 config TPL_USE_ARCH_MEMMOVE
341 bool "Use an assembly optimized implementation of memmove for TPL"
342 default y if USE_ARCH_MEMCPY
345 Enable the generation of an optimized version of memmove.
346 Such an implementation may be faster under some conditions
347 but may increase the binary size.
349 config USE_ARCH_MEMSET
350 bool "Use an assembly optimized implementation of memset"
353 Enable the generation of an optimized version of memset.
354 Such an implementation may be faster under some conditions
355 but may increase the binary size.
357 config SPL_USE_ARCH_MEMSET
358 bool "Use an assembly optimized implementation of memset for SPL"
359 default y if USE_ARCH_MEMSET
362 Enable the generation of an optimized version of memset.
363 Such an implementation may be faster under some conditions
364 but may increase the binary size.
366 config TPL_USE_ARCH_MEMSET
367 bool "Use an assembly optimized implementation of memset for TPL"
368 default y if USE_ARCH_MEMSET
371 Enable the generation of an optimized version of memset.
372 Such an implementation may be faster under some conditions
373 but may increase the binary size.