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_FU540
21 bool "Support SiFive FU540 Board"
23 config TARGET_SIPEED_MAIX
24 bool "Support Sipeed Maix Board"
29 bool "Do not enable icache"
32 Do not enable instruction cache in U-Boot.
34 config SPL_SYS_ICACHE_OFF
35 bool "Do not enable icache in SPL"
37 default SYS_ICACHE_OFF
39 Do not enable instruction cache in SPL.
42 bool "Do not enable dcache"
45 Do not enable data cache in U-Boot.
47 config SPL_SYS_DCACHE_OFF
48 bool "Do not enable dcache in SPL"
50 default SYS_DCACHE_OFF
52 Do not enable data cache in SPL.
54 # board-specific options below
55 source "board/AndesTech/ax25-ae350/Kconfig"
56 source "board/emulation/qemu-riscv/Kconfig"
57 source "board/microchip/mpfs_icicle/Kconfig"
58 source "board/sifive/fu540/Kconfig"
59 source "board/sipeed/maix/Kconfig"
61 # platform-specific options below
62 source "arch/riscv/cpu/ax25/Kconfig"
63 source "arch/riscv/cpu/fu540/Kconfig"
64 source "arch/riscv/cpu/generic/Kconfig"
66 # architecture-specific options below
76 Choose this option to target the RV32I base integer instruction set.
83 Choose this option to target the RV64I base integer instruction set.
92 bool "medium low code model"
94 U-Boot and its statically defined symbols must lie within a single 2 GiB
95 address range and must lie between absolute addresses -2 GiB and +2 GiB.
98 bool "medium any code model"
100 U-Boot and its statically defined symbols must be within any single 2 GiB
112 Choose this option to build U-Boot for RISC-V M-Mode.
117 Choose this option to build U-Boot for RISC-V S-Mode.
122 prompt "SPL Run Mode"
123 default SPL_RISCV_MMODE
126 config SPL_RISCV_MMODE
129 Choose this option to build U-Boot SPL for RISC-V M-Mode.
131 config SPL_RISCV_SMODE
134 Choose this option to build U-Boot SPL for RISC-V S-Mode.
139 bool "Emit compressed instructions"
142 Adds "C" to the ISA subsets that the toolchain is allowed to emit
143 when building U-Boot, which results in compressed instructions in the
157 depends on RISCV_MMODE || SPL_RISCV_MMODE
160 select SPL_REGMAP if SPL
161 select SPL_SYSCON if SPL
163 The SiFive CLINT block holds memory-mapped control and status registers
164 associated with software and timer interrupts.
168 depends on RISCV_MMODE || SPL_RISCV_MMODE
171 select SPL_REGMAP if SPL
172 select SPL_SYSCON if SPL
174 The Andes PLIC block holds memory-mapped claim and pending registers
175 associated with software interrupt.
179 depends on RISCV_MMODE || SPL_RISCV_MMODE
182 select SPL_REGMAP if SPL
183 select SPL_SYSCON if SPL
185 The Andes PLMT block holds memory-mapped mtime register
186 associated with timer tick.
190 default y if RISCV_SMODE || SPL_RISCV_SMODE
192 The provides the riscv_get_time() API that is implemented using the
193 standard rdtime instruction. This is the case for S-mode U-Boot, and
194 is useful for processors that support rdtime in M-mode too.
196 config SYS_MALLOC_F_LEN
200 bool "Symmetric Multi-Processing"
201 depends on SBI_V01 || !RISCV_SMODE
203 This enables support for systems with more than one CPU. If
204 you say N here, U-Boot will run on single and multiprocessor
205 machines, but will use only one CPU of a multiprocessor
206 machine. If you say Y here, U-Boot will run on many, but not
207 all, single processor machines.
210 bool "Symmetric Multi-Processing in SPL"
211 depends on SPL && SPL_RISCV_MMODE
214 This enables support for systems with more than one CPU in SPL.
215 If you say N here, U-Boot SPL will run on single and multiprocessor
216 machines, but will use only one CPU of a multiprocessor
217 machine. If you say Y here, U-Boot SPL will run on many, but not
218 all, single processor machines.
221 int "Maximum number of CPUs (2-32)"
223 depends on SMP || SPL_SMP
226 On multiprocessor machines, U-Boot sets up a stack for each CPU.
227 Stack memory is pre-allocated. U-Boot must therefore know the
228 maximum number of CPUs that may be present.
232 default y if RISCV_SMODE || SPL_RISCV_SMODE
239 bool "SBI v0.1 support"
242 This config allows kernel to use SBI v0.1 APIs. This will be
243 deprecated in future once legacy M-mode software are no longer in use.
246 bool "SBI v0.2 support"
249 This config allows kernel to use SBI v0.2 APIs. SBI v0.2 is more
250 scalable and extendable to handle future needs for RISC-V supervisor
251 interfaces. For example, with SBI v0.2 HSM extension, only a single
252 hart need to boot and enter operating system. The booting hart can
253 bring up secondary harts one by one afterwards.
255 Choose this option if OpenSBI v0.7 or above release is used together
263 default y if RISCV_SMODE || SPL_RISCV_SMODE
269 XIP (eXecute In Place) is a method for executing code directly
270 from a NOR flash memory without copying the code to ram.
271 Say yes here if U-Boot boots from flash directly.
274 bool "Show registers on unhandled exception"
276 config RISCV_PRIV_1_9
277 bool "Use version 1.9 of the RISC-V priviledged specification"
279 Older versions of the RISC-V priviledged specification had
280 separate counter enable CSRs for each privilege mode. Writing
281 to the unified mcounteren CSR on a processor implementing the
282 old specification will result in an illegal instruction
283 exception. In addition to counter CSR changes, the way virtual
284 memory is configured was also changed.
286 config STACK_SIZE_SHIFT
290 config OF_BOARD_FIXUP
291 default y if OF_SEPARATE