blob: 043d963f63445feff528e0b33c2c360886ca408f [file] [log] [blame]
Bin Meng117a4332018-09-26 06:55:06 -07001menu "RISC-V architecture"
Rick Chenf94c44e2017-12-26 13:55:52 +08002 depends on RISCV
3
4config SYS_ARCH
5 default "riscv"
6
7choice
8 prompt "Target select"
9 optional
10
Randolphb68bf222023-09-25 17:24:51 +080011config TARGET_ANDES_AE350
12 bool "Support Andes ae350"
Rick Chenf94c44e2017-12-26 13:55:52 +080013
Padmarao Begari39494822019-05-28 15:47:51 +053014config TARGET_MICROCHIP_ICICLE
15 bool "Support Microchip PolarFire-SoC Icicle Board"
16
Kongyang Liu0dc6ee62024-01-28 15:05:25 +080017config TARGET_MILKV_DUO
18 bool "Support Milk-v Duo Board"
19
Samuel Hollanda6a77e42023-10-31 00:32:12 -050020config TARGET_OPENPITON_RISCV64
21 bool "Support RISC-V cores on OpenPiton SoC"
22
Bin Meng510e3792018-09-26 06:55:21 -070023config TARGET_QEMU_VIRT
LekKitf5c6ac82024-09-22 13:11:02 +030024 bool "Support QEMU Virt & RVVM Boards"
Ɓukasz Stelmachc532ddd2024-03-28 10:58:24 +010025 select BOARD_LATE_INIT
Bin Meng510e3792018-09-26 06:55:21 -070026
Bin Mengae2d9502021-03-17 11:10:58 +080027config TARGET_SIFIVE_UNLEASHED
28 bool "Support SiFive Unleashed Board"
Anup Patel3fda0262019-02-25 08:15:19 +000029
Green Wan70415e12021-05-27 06:52:13 -070030config TARGET_SIFIVE_UNMATCHED
31 bool "Support SiFive Unmatched Board"
Tom Riniab92b382021-08-26 11:47:59 -040032 select SYS_CACHE_SHIFT_6
Green Wan70415e12021-05-27 06:52:13 -070033
Samuel Hollanda6a77e42023-10-31 00:32:12 -050034config TARGET_SIPEED_MAIX
35 bool "Support Sipeed Maix Board"
36 select SYS_CACHE_SHIFT_6
37
Yanhong Wang331ad932023-03-29 11:42:20 +080038config TARGET_STARFIVE_VISIONFIVE2
39 bool "Support StarFive VisionFive2 Board"
Heinrich Schuchardt16dbe3d2023-09-07 13:21:28 +020040 select BOARD_LATE_INIT
Yanhong Wang331ad932023-03-29 11:42:20 +080041
Yixun Lan5f3a7fd2023-07-08 19:24:32 +080042config TARGET_TH1520_LPI4A
43 bool "Support Sipeed's TH1520 Lichee PI 4A Board"
44 select SYS_CACHE_SHIFT_6
45
Michal Simek7576ab22023-11-06 12:56:47 +010046config TARGET_XILINX_MBV
47 bool "Support AMD/Xilinx MicroBlaze V"
48
Chia-Wei Wang9efcb102024-09-10 17:39:16 +080049config TARGET_ASPEED_AST2700_IBEX
50 bool "Support Ibex RISC-V cores on Aspeed AST2700 SoC"
51
Rick Chenf94c44e2017-12-26 13:55:52 +080052endchoice
53
Trevor Woernera0aba8a2019-05-03 09:40:59 -040054config SYS_ICACHE_OFF
55 bool "Do not enable icache"
Trevor Woernera0aba8a2019-05-03 09:40:59 -040056 help
57 Do not enable instruction cache in U-Boot.
58
Trevor Woerner10015022019-05-03 09:41:00 -040059config SPL_SYS_ICACHE_OFF
60 bool "Do not enable icache in SPL"
61 depends on SPL
62 default SYS_ICACHE_OFF
63 help
64 Do not enable instruction cache in SPL.
65
Trevor Woernera0aba8a2019-05-03 09:40:59 -040066config SYS_DCACHE_OFF
67 bool "Do not enable dcache"
Trevor Woernera0aba8a2019-05-03 09:40:59 -040068 help
69 Do not enable data cache in U-Boot.
70
Trevor Woerner10015022019-05-03 09:41:00 -040071config SPL_SYS_DCACHE_OFF
72 bool "Do not enable dcache in SPL"
73 depends on SPL
74 default SYS_DCACHE_OFF
75 help
76 Do not enable data cache in SPL.
77
Shengyu Qud365f662023-08-09 21:11:31 +080078config SPL_ZERO_MEM_BEFORE_USE
79 bool "Zero memory before use"
80 depends on SPL
Shengyu Qud365f662023-08-09 21:11:31 +080081 help
82 Zero stack/GD/malloc area in SPL before using them, this is needed for
83 Sifive core devices that uses L2 cache to store SPL.
84
Rick Chen52923c62018-11-07 09:34:06 +080085# board-specific options below
Leo Yu-Chi Liang2b8dc362024-05-14 17:50:11 +080086source "board/andestech/ae350/Kconfig"
Chia-Wei Wang9efcb102024-09-10 17:39:16 +080087source "board/aspeed/ibex_ast2700/Kconfig"
Bin Meng510e3792018-09-26 06:55:21 -070088source "board/emulation/qemu-riscv/Kconfig"
Padmarao Begari39494822019-05-28 15:47:51 +053089source "board/microchip/mpfs_icicle/Kconfig"
Samuel Hollanda6a77e42023-10-31 00:32:12 -050090source "board/openpiton/riscv64/Kconfig"
Bin Mengae2d9502021-03-17 11:10:58 +080091source "board/sifive/unleashed/Kconfig"
Green Wan70415e12021-05-27 06:52:13 -070092source "board/sifive/unmatched/Kconfig"
Sean Andersona7c81fc2020-06-24 06:41:25 -040093source "board/sipeed/maix/Kconfig"
Kongyang Liu0dc6ee62024-01-28 15:05:25 +080094source "board/sophgo/milkv_duo/Kconfig"
Yanhong Wang331ad932023-03-29 11:42:20 +080095source "board/starfive/visionfive2/Kconfig"
Samuel Hollanda6a77e42023-10-31 00:32:12 -050096source "board/thead/th1520_lpi4a/Kconfig"
Michal Simek7576ab22023-11-06 12:56:47 +010097source "board/xilinx/mbv/Kconfig"
Rick Chenf94c44e2017-12-26 13:55:52 +080098
Rick Chen52923c62018-11-07 09:34:06 +080099# platform-specific options below
Leo Yu-Chi Liang2b8dc362024-05-14 17:50:11 +0800100source "arch/riscv/cpu/andes/Kconfig"
Kongyang Liuae800aa2024-03-10 00:54:56 +0800101source "arch/riscv/cpu/cv1800b/Kconfig"
Pragnesh Patel7c45fc92020-05-29 11:33:34 +0530102source "arch/riscv/cpu/fu540/Kconfig"
Green Wana74e9d82021-05-27 06:52:07 -0700103source "arch/riscv/cpu/fu740/Kconfig"
Chia-Wei Wang9efcb102024-09-10 17:39:16 +0800104source "arch/riscv/cpu/ast2700/Kconfig"
Anup Patelfdff1f92019-02-25 08:14:10 +0000105source "arch/riscv/cpu/generic/Kconfig"
Yanhong Wang331ad932023-03-29 11:42:20 +0800106source "arch/riscv/cpu/jh7110/Kconfig"
Rick Chen52923c62018-11-07 09:34:06 +0800107
108# architecture-specific options below
109
Rick Chenf94c44e2017-12-26 13:55:52 +0800110choice
Lukas Auer862e2e72018-11-22 11:26:12 +0100111 prompt "Base ISA"
112 default ARCH_RV32I
Rick Chenf94c44e2017-12-26 13:55:52 +0800113
Lukas Auer862e2e72018-11-22 11:26:12 +0100114config ARCH_RV32I
115 bool "RV32I"
Rick Chenf94c44e2017-12-26 13:55:52 +0800116 select 32BIT
117 help
Lukas Auer862e2e72018-11-22 11:26:12 +0100118 Choose this option to target the RV32I base integer instruction set.
Rick Chenf94c44e2017-12-26 13:55:52 +0800119
Lukas Auer862e2e72018-11-22 11:26:12 +0100120config ARCH_RV64I
121 bool "RV64I"
Rick Chenf94c44e2017-12-26 13:55:52 +0800122 select 64BIT
Lukas Auer71158562018-11-22 11:26:13 +0100123 select PHYS_64BIT
Rick Chenf94c44e2017-12-26 13:55:52 +0800124 help
Lukas Auer862e2e72018-11-22 11:26:12 +0100125 Choose this option to target the RV64I base integer instruction set.
Rick Chenf94c44e2017-12-26 13:55:52 +0800126
127endchoice
128
Ben Dookse4f69492023-09-05 13:12:53 +0100129config FRAMEPOINTER
130 bool "Build with frame pointer for stack unwinding"
131 help
132 Choose this option to use the frame pointer so the stack can be
133 unwound if needed. This is useful for tracing where faults came
134 from as the source may be several functions back
135
136 If you say Y here, then the code size will be increased due to
137 having to store the fp.
138
139config SPL_FRAMEPOINTER
140 bool "Build SPL with frame pointer for stack unwinding"
Heinrich Schuchardtaeff27c2024-08-11 11:51:09 +0200141 depends on SPL
Ben Dookse4f69492023-09-05 13:12:53 +0100142 help
143 Choose this option to use the frame pointer so the stack can be
144 unwound if needed. This is useful for tracing where faults came
145 from as the source may be several functions back
146
147 If you say Y here, then the code size will be increased due to
148 having to store the fp.
149
Lukas Auer8176ea42018-12-12 06:12:23 -0800150choice
151 prompt "Code Model"
152 default CMODEL_MEDLOW
153
154config CMODEL_MEDLOW
155 bool "medium low code model"
156 help
157 U-Boot and its statically defined symbols must lie within a single 2 GiB
158 address range and must lie between absolute addresses -2 GiB and +2 GiB.
159
160config CMODEL_MEDANY
161 bool "medium any code model"
162 help
163 U-Boot and its statically defined symbols must be within any single 2 GiB
164 address range.
165
166endchoice
167
Anup Patel3cfc8252018-12-12 06:12:29 -0800168choice
169 prompt "Run Mode"
170 default RISCV_MMODE
171
172config RISCV_MMODE
173 bool "Machine"
174 help
175 Choose this option to build U-Boot for RISC-V M-Mode.
176
177config RISCV_SMODE
178 bool "Supervisor"
Heinrich Schuchardte637e452023-09-23 01:35:26 +0200179 imply DEBUG_UART
Anup Patel3cfc8252018-12-12 06:12:29 -0800180 help
181 Choose this option to build U-Boot for RISC-V S-Mode.
182
183endchoice
184
Lukas Auerfbfd92b2019-08-21 21:14:43 +0200185choice
186 prompt "SPL Run Mode"
187 default SPL_RISCV_MMODE
188 depends on SPL
189
190config SPL_RISCV_MMODE
191 bool "Machine"
192 help
193 Choose this option to build U-Boot SPL for RISC-V M-Mode.
194
195config SPL_RISCV_SMODE
196 bool "Supervisor"
197 help
198 Choose this option to build U-Boot SPL for RISC-V S-Mode.
199
200endchoice
201
Lukas Auerd57ffa62018-11-22 11:26:14 +0100202config RISCV_ISA_C
203 bool "Emit compressed instructions"
204 default y
205 help
206 Adds "C" to the ISA subsets that the toolchain is allowed to emit
207 when building U-Boot, which results in compressed instructions in the
208 U-Boot binary.
209
Heinrich Schuchardte67f34f2022-10-12 14:59:51 +0200210config RISCV_ISA_F
211 bool "Standard extension for Single-Precision Floating Point"
212 default y
213 help
214 Adds "F" to the ISA string passed to the compiler.
215
216config RISCV_ISA_D
217 bool "Standard extension for Double-Precision Floating Point"
218 depends on RISCV_ISA_F
219 default y
220 help
221 Adds "D" to the ISA string passed to the compiler and changes the
222 riscv32 ABI from ilp32 to ilp32d and the riscv64 ABI from lp64 to
223 lp64d.
224
Yu Chien Peter Linbc5a5042023-08-09 18:49:30 +0800225config RISCV_ISA_ZBB
226 bool "Zbb extension support for bit manipulation instructions"
227 help
228 Adds ZBB extension (basic bit manipulation) to the ISA subsets
229 that the toolchain is allowed to emit when building U-Boot.
230 The Zbb extension provides instructions to accelerate a number
231 of bit-specific operations (count bit population, sign extending,
232 bitrotation, etc) and enables optimized string routines.
233
234menu "Use assembly optimized implementation of string routines"
235
236config USE_ARCH_STRLEN
237 bool "Use an assembly optimized implementation of strlen"
238 default y
239 depends on RISCV_ISA_ZBB
240 help
241 Enable the generation of an optimized version of strlen using
242 Zbb extension.
243
244config SPL_USE_ARCH_STRLEN
245 bool "Use an assembly optimized implementation of strlen for SPL"
246 default y if USE_ARCH_STRLEN
247 depends on RISCV_ISA_ZBB
248 depends on SPL
249 help
250 Enable the generation of an optimized version of strlen using
251 Zbb extension.
252
253config TPL_USE_ARCH_STRLEN
254 bool "Use an assembly optimized implementation of strlen for TPL"
255 default y if USE_ARCH_STRLEN
256 depends on RISCV_ISA_ZBB
257 depends on TPL
258 help
259 Enable the generation of an optimized version of strlen using
260 Zbb extension.
261
262config USE_ARCH_STRCMP
263 bool "Use an assembly optimized implementation of strcmp"
264 default y
265 depends on RISCV_ISA_ZBB
266 help
267 Enable the generation of an optimized version of strcmp using
268 Zbb extension.
269
270config SPL_USE_ARCH_STRCMP
271 bool "Use an assembly optimized implementation of strcmp for SPL"
272 default y if USE_ARCH_STRCMP
273 depends on RISCV_ISA_ZBB
274 depends on SPL
275 help
276 Enable the generation of an optimized version of strcmp using
277 Zbb extension.
278
279config TPL_USE_ARCH_STRCMP
280 bool "Use an assembly optimized implementation of strcmp for TPL"
281 default y if USE_ARCH_STRCMP
282 depends on RISCV_ISA_ZBB
283 depends on TPL
284 help
285 Enable the generation of an optimized version of strcmp using
286 Zbb extension.
287
288config USE_ARCH_STRNCMP
289 bool "Use an assembly optimized implementation of strncmp"
290 default y
291 depends on RISCV_ISA_ZBB
292 help
293 Enable the generation of an optimized version of strncmp using
294 Zbb extension.
295
296config SPL_USE_ARCH_STRNCMP
297 bool "Use an assembly optimized implementation of strncmp for SPL"
298 default y if USE_ARCH_STRNCMP
299 depends on RISCV_ISA_ZBB
300 depends on SPL
301 help
302 Enable the generation of an optimized version of strncmp using
303 Zbb extension.
304
305config TPL_USE_ARCH_STRNCMP
306 bool "Use an assembly optimized implementation of strncmp for TPL"
307 default y if USE_ARCH_STRNCMP
308 depends on RISCV_ISA_ZBB
309 depends on TPL
310 help
311 Enable the generation of an optimized version of strncmp using
312 Zbb extension.
313
314endmenu
315
Lukas Auerd57ffa62018-11-22 11:26:14 +0100316config RISCV_ISA_A
Chia-Wei Wang9c0ed722024-09-10 17:39:13 +0800317 bool "Standard extension for Atomic Instructions"
318 default y
319 help
320 Adds "A" to the ISA string passed to the compiler.
Lukas Auerd57ffa62018-11-22 11:26:14 +0100321
Mayuresh Chitale9e859842024-08-23 09:41:26 +0000322config RISCV_ISA_ZICBOM
323 bool "Zicbom support"
324 depends on !SYS_DISABLE_DCACHE_OPS
325
Padmarao Begari5af35742021-01-15 08:20:35 +0530326config DMA_ADDR_T_64BIT
327 bool
328 default y if 64BIT
329
Bin Meng9675d922023-06-21 23:11:46 +0800330config RISCV_ACLINT
Bin Meng644a3cd2018-12-12 06:12:30 -0800331 bool
Bin Menga6d7e8c2021-05-11 20:04:12 +0800332 depends on RISCV_MMODE
Bin Meng7f1a30f2023-06-21 23:11:45 +0800333 select REGMAP
334 select SYSCON
Bin Menga6d7e8c2021-05-11 20:04:12 +0800335 help
Bin Meng9675d922023-06-21 23:11:46 +0800336 The RISC-V ACLINT block holds memory-mapped control and status registers
Bin Menga6d7e8c2021-05-11 20:04:12 +0800337 associated with software and timer interrupts.
338
Bin Meng9675d922023-06-21 23:11:46 +0800339config SPL_RISCV_ACLINT
Bin Menga6d7e8c2021-05-11 20:04:12 +0800340 bool
341 depends on SPL_RISCV_MMODE
Bin Meng7f1a30f2023-06-21 23:11:45 +0800342 select SPL_REGMAP
343 select SPL_SYSCON
Bin Meng644a3cd2018-12-12 06:12:30 -0800344 help
Bin Meng9675d922023-06-21 23:11:46 +0800345 The RISC-V ACLINT block holds memory-mapped control and status registers
Bin Meng644a3cd2018-12-12 06:12:30 -0800346 associated with software and timer interrupts.
347
Zong Li213ed172021-09-01 15:01:41 +0800348config SIFIVE_CACHE
349 bool
350 help
351 This enables the operations to configure SiFive cache
352
Yu Chien Peter Lina5dfa3b2022-10-25 23:03:50 +0800353config ANDES_PLICSW
Rick Chen0d389462019-04-02 15:56:39 +0800354 bool
Lukas Auerfbfd92b2019-08-21 21:14:43 +0200355 depends on RISCV_MMODE || SPL_RISCV_MMODE
Rick Chen0d389462019-04-02 15:56:39 +0800356 select REGMAP
357 select SYSCON
Lukas Auerfbfd92b2019-08-21 21:14:43 +0200358 select SPL_REGMAP if SPL
359 select SPL_SYSCON if SPL
Rick Chen0d389462019-04-02 15:56:39 +0800360 help
Yu Chien Peter Lina5dfa3b2022-10-25 23:03:50 +0800361 The Andes PLICSW block holds memory-mapped claim and pending
362 registers associated with software interrupt.
Rick Chen0d389462019-04-02 15:56:39 +0800363
Lukas Auerfa33f082019-03-17 19:28:32 +0100364config SMP
365 bool "Symmetric Multi-Processing"
Bin Meng6fa022e2020-04-16 08:09:31 -0700366 depends on SBI_V01 || !RISCV_SMODE
Lukas Auerfa33f082019-03-17 19:28:32 +0100367 help
368 This enables support for systems with more than one CPU. If
369 you say N here, U-Boot will run on single and multiprocessor
370 machines, but will use only one CPU of a multiprocessor
371 machine. If you say Y here, U-Boot will run on many, but not
372 all, single processor machines.
373
Bin Meng191636e2020-04-16 08:09:30 -0700374config SPL_SMP
375 bool "Symmetric Multi-Processing in SPL"
376 depends on SPL && SPL_RISCV_MMODE
377 default y
378 help
379 This enables support for systems with more than one CPU in SPL.
380 If you say N here, U-Boot SPL will run on single and multiprocessor
381 machines, but will use only one CPU of a multiprocessor
382 machine. If you say Y here, U-Boot SPL will run on many, but not
383 all, single processor machines.
384
Lukas Auerfa33f082019-03-17 19:28:32 +0100385config NR_CPUS
386 int "Maximum number of CPUs (2-32)"
387 range 2 32
Bin Meng191636e2020-04-16 08:09:30 -0700388 depends on SMP || SPL_SMP
Lukas Auerfa33f082019-03-17 19:28:32 +0100389 default 8
390 help
391 On multiprocessor machines, U-Boot sets up a stack for each CPU.
392 Stack memory is pre-allocated. U-Boot must therefore know the
393 maximum number of CPUs that may be present.
394
Bin Mengf58fc342020-03-09 19:35:28 -0700395config SBI
396 bool
397 default y if RISCV_SMODE || SPL_RISCV_SMODE
398
Bin Mengff0fa6c2020-04-16 08:09:32 -0700399choice
400 prompt "SBI support"
Bin Mengfa16ec22020-04-16 08:09:33 -0700401 default SBI_V02
Bin Mengff0fa6c2020-04-16 08:09:32 -0700402
Bin Meng1b3c8d62020-03-09 19:35:30 -0700403config SBI_V01
404 bool "SBI v0.1 support"
Bin Meng1b3c8d62020-03-09 19:35:30 -0700405 depends on SBI
406 help
407 This config allows kernel to use SBI v0.1 APIs. This will be
408 deprecated in future once legacy M-mode software are no longer in use.
409
Bin Mengff0fa6c2020-04-16 08:09:32 -0700410config SBI_V02
Heinrich Schuchardt5c894672022-11-08 15:53:12 +0100411 bool "SBI v0.2 or later support"
Bin Mengff0fa6c2020-04-16 08:09:32 -0700412 depends on SBI
413 help
Heinrich Schuchardt5c894672022-11-08 15:53:12 +0100414 The SBI specification introduced the concept of extensions in version
415 v0.2. With this configuration option U-Boot can detect and use SBI
416 extensions. With the HSM extension introduced in SBI 0.2, only a
417 single hart needs to boot and enter the operating system. The booting
418 hart can bring up secondary harts one by one afterwards.
Bin Mengff0fa6c2020-04-16 08:09:32 -0700419
Heinrich Schuchardt5c894672022-11-08 15:53:12 +0100420 Choose this option if OpenSBI release v0.7 or above is used together
Bin Mengff0fa6c2020-04-16 08:09:32 -0700421 with U-Boot.
422
423endchoice
424
Lukas Auerf152feb2019-03-17 19:28:34 +0100425config SBI_IPI
426 bool
Bin Mengf58fc342020-03-09 19:35:28 -0700427 depends on SBI
Lukas Auerfbfd92b2019-08-21 21:14:43 +0200428 default y if RISCV_SMODE || SPL_RISCV_SMODE
Lukas Auerf152feb2019-03-17 19:28:34 +0100429 depends on SMP
430
Rick Chenbdce3892019-04-30 13:49:33 +0800431config XIP
432 bool "XIP mode"
433 help
434 XIP (eXecute In Place) is a method for executing code directly
435 from a NOR flash memory without copying the code to ram.
436 Say yes here if U-Boot boots from flash directly.
437
Nikita Shubinc2bdf022022-09-02 11:47:39 +0300438config SPL_XIP
439 bool "Enable XIP mode for SPL"
440 help
441 If SPL starts in read-only memory (XIP for example) then we shouldn't
442 rely on lock variables (for example hart_lottery and available_harts_lock),
443 this affects only SPL, other stages should proceed as non-XIP.
444
Rick Chene0465f82022-09-21 14:34:54 +0800445config AVAILABLE_HARTS
446 bool "Send IPI by available harts"
447 default y
448 help
449 By default, IPI sending mechanism will depend on available_harts.
450 If disable this, it will send IPI by CPUs node numbers of device tree.
451
Sean Andersonfd1f6e92019-12-25 00:27:44 -0500452config SHOW_REGS
Heinrich Schuchardt4a36d212024-08-11 13:01:04 +0200453 default y
Sean Andersonfd1f6e92019-12-25 00:27:44 -0500454 bool "Show registers on unhandled exception"
Heinrich Schuchardt73e73f02024-08-11 13:01:03 +0200455 help
456 By default only the program counter and the return address register
457 are shown in crash dumps. Enable this symbol to show all registers in
458 main U-Boot.
459
460config SPL_SHOW_REGS
461 bool "In SPL show registers on unhandled exception"
462 depends on SPL
463 help
464 By default only the program counter and the return address register
465 are shown in crash dumps. Enable this symbol to show all registers in
466 SPL.
Sean Andersonfd1f6e92019-12-25 00:27:44 -0500467
Sean Andersonb8bc1202020-06-24 06:41:19 -0400468config RISCV_PRIV_1_9
469 bool "Use version 1.9 of the RISC-V priviledged specification"
470 help
471 Older versions of the RISC-V priviledged specification had
472 separate counter enable CSRs for each privilege mode. Writing
473 to the unified mcounteren CSR on a processor implementing the
474 old specification will result in an illegal instruction
475 exception. In addition to counter CSR changes, the way virtual
476 memory is configured was also changed.
477
Lukas Auer3dea63c2019-03-17 19:28:37 +0100478config STACK_SIZE_SHIFT
Chia-Wei Wang248292f2024-09-10 17:39:14 +0800479 int "Stack size shift"
Lukas Auer6b20dc12019-10-20 20:53:47 +0200480 default 14
Lukas Auer3dea63c2019-03-17 19:28:37 +0100481
Bin Meng1c17e552020-06-25 18:16:08 -0700482config OF_BOARD_FIXUP
Sean Anderson32cef692020-09-05 09:22:11 -0400483 default y if OF_SEPARATE && RISCV_SMODE
Bin Meng1c17e552020-06-25 18:16:08 -0700484
Bin Meng89419272021-05-13 16:46:18 +0800485menu "Use assembly optimized implementation of memory routines"
486
Heinrich Schuchardt8f0dc4c2021-03-27 12:37:04 +0100487config USE_ARCH_MEMCPY
488 bool "Use an assembly optimized implementation of memcpy"
489 default y
490 help
491 Enable the generation of an optimized version of memcpy.
492 Such an implementation may be faster under some conditions
493 but may increase the binary size.
494
495config SPL_USE_ARCH_MEMCPY
496 bool "Use an assembly optimized implementation of memcpy for SPL"
497 default y if USE_ARCH_MEMCPY
498 depends on SPL
499 help
500 Enable the generation of an optimized version of memcpy.
501 Such an implementation may be faster under some conditions
502 but may increase the binary size.
503
504config TPL_USE_ARCH_MEMCPY
505 bool "Use an assembly optimized implementation of memcpy for TPL"
506 default y if USE_ARCH_MEMCPY
507 depends on TPL
508 help
509 Enable the generation of an optimized version of memcpy.
510 Such an implementation may be faster under some conditions
511 but may increase the binary size.
512
513config USE_ARCH_MEMMOVE
514 bool "Use an assembly optimized implementation of memmove"
515 default y
516 help
517 Enable the generation of an optimized version of memmove.
518 Such an implementation may be faster under some conditions
519 but may increase the binary size.
520
521config SPL_USE_ARCH_MEMMOVE
522 bool "Use an assembly optimized implementation of memmove for SPL"
523 default y if USE_ARCH_MEMCPY
524 depends on SPL
525 help
526 Enable the generation of an optimized version of memmove.
527 Such an implementation may be faster under some conditions
528 but may increase the binary size.
529
530config TPL_USE_ARCH_MEMMOVE
531 bool "Use an assembly optimized implementation of memmove for TPL"
532 default y if USE_ARCH_MEMCPY
533 depends on TPL
534 help
535 Enable the generation of an optimized version of memmove.
536 Such an implementation may be faster under some conditions
537 but may increase the binary size.
538
539config USE_ARCH_MEMSET
540 bool "Use an assembly optimized implementation of memset"
541 default y
542 help
543 Enable the generation of an optimized version of memset.
544 Such an implementation may be faster under some conditions
545 but may increase the binary size.
546
547config SPL_USE_ARCH_MEMSET
548 bool "Use an assembly optimized implementation of memset for SPL"
549 default y if USE_ARCH_MEMSET
550 depends on SPL
551 help
552 Enable the generation of an optimized version of memset.
553 Such an implementation may be faster under some conditions
554 but may increase the binary size.
555
556config TPL_USE_ARCH_MEMSET
557 bool "Use an assembly optimized implementation of memset for TPL"
558 default y if USE_ARCH_MEMSET
559 depends on TPL
560 help
561 Enable the generation of an optimized version of memset.
562 Such an implementation may be faster under some conditions
563 but may increase the binary size.
564
Rick Chenf94c44e2017-12-26 13:55:52 +0800565endmenu
Bin Meng89419272021-05-13 16:46:18 +0800566
Randolphe09a2282023-10-12 14:35:04 +0800567config SPL_LOAD_FIT_OPENSBI_OS_BOOT
568 bool "Enable SPL (OpenSBI OS boot mode) applying linux from FIT"
569 depends on SPL_LOAD_FIT
570 help
571 Use fw_dynamic from the FIT image, and u-boot SPL will invoke it directly.
572 This is a shortcut boot flow, from u-boot SPL -> OpenSBI -> u-boot proper
573 -> linux to u-boot SPL -> OpenSBI -> linux.
574
Bin Meng89419272021-05-13 16:46:18 +0800575endmenu