blob: 1819db1e256e3aef08fa81b82d636e21edd31068 [file] [log] [blame]
Bin Meng6b697752018-09-26 06:55:06 -07001menu "RISC-V architecture"
Rick Chen64d4ead2017-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
Randolph6c9c5ba2023-09-25 17:24:51 +080011config TARGET_ANDES_AE350
12 bool "Support Andes ae350"
Rick Chen64d4ead2017-12-26 13:55:52 +080013
Padmarao Begari4216f342019-05-28 15:47:51 +053014config TARGET_MICROCHIP_ICICLE
15 bool "Support Microchip PolarFire-SoC Icicle Board"
16
Kongyang Liub64fc0e2024-01-28 15:05:25 +080017config TARGET_MILKV_DUO
18 bool "Support Milk-v Duo Board"
19
Samuel Hollandbd6a54c2023-10-31 00:32:12 -050020config TARGET_OPENPITON_RISCV64
21 bool "Support RISC-V cores on OpenPiton SoC"
22
Bin Meng8a8694d2018-09-26 06:55:21 -070023config TARGET_QEMU_VIRT
24 bool "Support QEMU Virt Board"
25
Bin Menge9ead4a2021-03-17 11:10:58 +080026config TARGET_SIFIVE_UNLEASHED
27 bool "Support SiFive Unleashed Board"
Anup Patel7a167f22019-02-25 08:15:19 +000028
Green Wan2e5da522021-05-27 06:52:13 -070029config TARGET_SIFIVE_UNMATCHED
30 bool "Support SiFive Unmatched Board"
Tom Rini3ef67ae2021-08-26 11:47:59 -040031 select SYS_CACHE_SHIFT_6
Green Wan2e5da522021-05-27 06:52:13 -070032
Samuel Hollandbd6a54c2023-10-31 00:32:12 -050033config TARGET_SIPEED_MAIX
34 bool "Support Sipeed Maix Board"
35 select SYS_CACHE_SHIFT_6
36
Yanhong Wang38678792023-03-29 11:42:20 +080037config TARGET_STARFIVE_VISIONFIVE2
38 bool "Support StarFive VisionFive2 Board"
Heinrich Schuchardt03a885b2023-09-07 13:21:28 +020039 select BOARD_LATE_INIT
Yanhong Wang38678792023-03-29 11:42:20 +080040
Yixun Lan5dfa9012023-07-08 19:24:32 +080041config TARGET_TH1520_LPI4A
42 bool "Support Sipeed's TH1520 Lichee PI 4A Board"
43 select SYS_CACHE_SHIFT_6
44
Michal Simek962c10a2023-11-06 12:56:47 +010045config TARGET_XILINX_MBV
46 bool "Support AMD/Xilinx MicroBlaze V"
47
Rick Chen64d4ead2017-12-26 13:55:52 +080048endchoice
49
Trevor Woernerba64b8b2019-05-03 09:40:59 -040050config SYS_ICACHE_OFF
51 bool "Do not enable icache"
Trevor Woernerba64b8b2019-05-03 09:40:59 -040052 help
53 Do not enable instruction cache in U-Boot.
54
Trevor Woerner43ec7e02019-05-03 09:41:00 -040055config SPL_SYS_ICACHE_OFF
56 bool "Do not enable icache in SPL"
57 depends on SPL
58 default SYS_ICACHE_OFF
59 help
60 Do not enable instruction cache in SPL.
61
Trevor Woernerba64b8b2019-05-03 09:40:59 -040062config SYS_DCACHE_OFF
63 bool "Do not enable dcache"
Trevor Woernerba64b8b2019-05-03 09:40:59 -040064 help
65 Do not enable data cache in U-Boot.
66
Trevor Woerner43ec7e02019-05-03 09:41:00 -040067config SPL_SYS_DCACHE_OFF
68 bool "Do not enable dcache in SPL"
69 depends on SPL
70 default SYS_DCACHE_OFF
71 help
72 Do not enable data cache in SPL.
73
Shengyu Qud1a32542023-08-09 21:11:31 +080074config SPL_ZERO_MEM_BEFORE_USE
75 bool "Zero memory before use"
76 depends on SPL
Shengyu Qud1a32542023-08-09 21:11:31 +080077 help
78 Zero stack/GD/malloc area in SPL before using them, this is needed for
79 Sifive core devices that uses L2 cache to store SPL.
80
Rick Chen842d5802018-11-07 09:34:06 +080081# board-specific options below
Leo Yu-Chi Liang249ce732023-02-14 20:42:49 +080082source "board/AndesTech/ae350/Kconfig"
Bin Meng8a8694d2018-09-26 06:55:21 -070083source "board/emulation/qemu-riscv/Kconfig"
Padmarao Begari4216f342019-05-28 15:47:51 +053084source "board/microchip/mpfs_icicle/Kconfig"
Samuel Hollandbd6a54c2023-10-31 00:32:12 -050085source "board/openpiton/riscv64/Kconfig"
Bin Menge9ead4a2021-03-17 11:10:58 +080086source "board/sifive/unleashed/Kconfig"
Green Wan2e5da522021-05-27 06:52:13 -070087source "board/sifive/unmatched/Kconfig"
Sean Andersonedc32ab2020-06-24 06:41:25 -040088source "board/sipeed/maix/Kconfig"
Kongyang Liub64fc0e2024-01-28 15:05:25 +080089source "board/sophgo/milkv_duo/Kconfig"
Yanhong Wang38678792023-03-29 11:42:20 +080090source "board/starfive/visionfive2/Kconfig"
Samuel Hollandbd6a54c2023-10-31 00:32:12 -050091source "board/thead/th1520_lpi4a/Kconfig"
Michal Simek962c10a2023-11-06 12:56:47 +010092source "board/xilinx/mbv/Kconfig"
Rick Chen64d4ead2017-12-26 13:55:52 +080093
Rick Chen842d5802018-11-07 09:34:06 +080094# platform-specific options below
Leo Yu-Chi Liang249ce732023-02-14 20:42:49 +080095source "arch/riscv/cpu/andesv5/Kconfig"
Pragnesh Patel25269c02020-05-29 11:33:34 +053096source "arch/riscv/cpu/fu540/Kconfig"
Green Wan7f337432021-05-27 06:52:07 -070097source "arch/riscv/cpu/fu740/Kconfig"
Anup Patel1240cd62019-02-25 08:14:10 +000098source "arch/riscv/cpu/generic/Kconfig"
Yanhong Wang38678792023-03-29 11:42:20 +080099source "arch/riscv/cpu/jh7110/Kconfig"
Rick Chen842d5802018-11-07 09:34:06 +0800100
101# architecture-specific options below
102
Rick Chen64d4ead2017-12-26 13:55:52 +0800103choice
Lukas Auer54ebfe72018-11-22 11:26:12 +0100104 prompt "Base ISA"
105 default ARCH_RV32I
Rick Chen64d4ead2017-12-26 13:55:52 +0800106
Lukas Auer54ebfe72018-11-22 11:26:12 +0100107config ARCH_RV32I
108 bool "RV32I"
Rick Chen64d4ead2017-12-26 13:55:52 +0800109 select 32BIT
110 help
Lukas Auer54ebfe72018-11-22 11:26:12 +0100111 Choose this option to target the RV32I base integer instruction set.
Rick Chen64d4ead2017-12-26 13:55:52 +0800112
Lukas Auer54ebfe72018-11-22 11:26:12 +0100113config ARCH_RV64I
114 bool "RV64I"
Rick Chen64d4ead2017-12-26 13:55:52 +0800115 select 64BIT
Lukas Auer7ab1df02018-11-22 11:26:13 +0100116 select PHYS_64BIT
Rick Chen64d4ead2017-12-26 13:55:52 +0800117 help
Lukas Auer54ebfe72018-11-22 11:26:12 +0100118 Choose this option to target the RV64I base integer instruction set.
Rick Chen64d4ead2017-12-26 13:55:52 +0800119
120endchoice
121
Ben Dooks8a813c12023-09-05 13:12:53 +0100122config FRAMEPOINTER
123 bool "Build with frame pointer for stack unwinding"
124 help
125 Choose this option to use the frame pointer so the stack can be
126 unwound if needed. This is useful for tracing where faults came
127 from as the source may be several functions back
128
129 If you say Y here, then the code size will be increased due to
130 having to store the fp.
131
132config SPL_FRAMEPOINTER
133 bool "Build SPL with frame pointer for stack unwinding"
134 help
135 Choose this option to use the frame pointer so the stack can be
136 unwound if needed. This is useful for tracing where faults came
137 from as the source may be several functions back
138
139 If you say Y here, then the code size will be increased due to
140 having to store the fp.
141
Lukas Auerecc5d832018-12-12 06:12:23 -0800142choice
143 prompt "Code Model"
144 default CMODEL_MEDLOW
145
146config CMODEL_MEDLOW
147 bool "medium low code model"
148 help
149 U-Boot and its statically defined symbols must lie within a single 2 GiB
150 address range and must lie between absolute addresses -2 GiB and +2 GiB.
151
152config CMODEL_MEDANY
153 bool "medium any code model"
154 help
155 U-Boot and its statically defined symbols must be within any single 2 GiB
156 address range.
157
158endchoice
159
Anup Patel27881772018-12-12 06:12:29 -0800160choice
161 prompt "Run Mode"
162 default RISCV_MMODE
163
164config RISCV_MMODE
165 bool "Machine"
166 help
167 Choose this option to build U-Boot for RISC-V M-Mode.
168
169config RISCV_SMODE
170 bool "Supervisor"
Heinrich Schuchardt20964b62023-09-23 01:35:26 +0200171 imply DEBUG_UART
Anup Patel27881772018-12-12 06:12:29 -0800172 help
173 Choose this option to build U-Boot for RISC-V S-Mode.
174
175endchoice
176
Lukas Auer61346592019-08-21 21:14:43 +0200177choice
178 prompt "SPL Run Mode"
179 default SPL_RISCV_MMODE
180 depends on SPL
181
182config SPL_RISCV_MMODE
183 bool "Machine"
184 help
185 Choose this option to build U-Boot SPL for RISC-V M-Mode.
186
187config SPL_RISCV_SMODE
188 bool "Supervisor"
189 help
190 Choose this option to build U-Boot SPL for RISC-V S-Mode.
191
192endchoice
193
Lukas Auer002012f2018-11-22 11:26:14 +0100194config RISCV_ISA_C
195 bool "Emit compressed instructions"
196 default y
197 help
198 Adds "C" to the ISA subsets that the toolchain is allowed to emit
199 when building U-Boot, which results in compressed instructions in the
200 U-Boot binary.
201
Heinrich Schuchardtc66c9502022-10-12 14:59:51 +0200202config RISCV_ISA_F
203 bool "Standard extension for Single-Precision Floating Point"
204 default y
205 help
206 Adds "F" to the ISA string passed to the compiler.
207
208config RISCV_ISA_D
209 bool "Standard extension for Double-Precision Floating Point"
210 depends on RISCV_ISA_F
211 default y
212 help
213 Adds "D" to the ISA string passed to the compiler and changes the
214 riscv32 ABI from ilp32 to ilp32d and the riscv64 ABI from lp64 to
215 lp64d.
216
Yu Chien Peter Lin60814cb2023-08-09 18:49:30 +0800217config RISCV_ISA_ZBB
218 bool "Zbb extension support for bit manipulation instructions"
219 help
220 Adds ZBB extension (basic bit manipulation) to the ISA subsets
221 that the toolchain is allowed to emit when building U-Boot.
222 The Zbb extension provides instructions to accelerate a number
223 of bit-specific operations (count bit population, sign extending,
224 bitrotation, etc) and enables optimized string routines.
225
226menu "Use assembly optimized implementation of string routines"
227
228config USE_ARCH_STRLEN
229 bool "Use an assembly optimized implementation of strlen"
230 default y
231 depends on RISCV_ISA_ZBB
232 help
233 Enable the generation of an optimized version of strlen using
234 Zbb extension.
235
236config SPL_USE_ARCH_STRLEN
237 bool "Use an assembly optimized implementation of strlen for SPL"
238 default y if USE_ARCH_STRLEN
239 depends on RISCV_ISA_ZBB
240 depends on SPL
241 help
242 Enable the generation of an optimized version of strlen using
243 Zbb extension.
244
245config TPL_USE_ARCH_STRLEN
246 bool "Use an assembly optimized implementation of strlen for TPL"
247 default y if USE_ARCH_STRLEN
248 depends on RISCV_ISA_ZBB
249 depends on TPL
250 help
251 Enable the generation of an optimized version of strlen using
252 Zbb extension.
253
254config USE_ARCH_STRCMP
255 bool "Use an assembly optimized implementation of strcmp"
256 default y
257 depends on RISCV_ISA_ZBB
258 help
259 Enable the generation of an optimized version of strcmp using
260 Zbb extension.
261
262config SPL_USE_ARCH_STRCMP
263 bool "Use an assembly optimized implementation of strcmp for SPL"
264 default y if USE_ARCH_STRCMP
265 depends on RISCV_ISA_ZBB
266 depends on SPL
267 help
268 Enable the generation of an optimized version of strcmp using
269 Zbb extension.
270
271config TPL_USE_ARCH_STRCMP
272 bool "Use an assembly optimized implementation of strcmp for TPL"
273 default y if USE_ARCH_STRCMP
274 depends on RISCV_ISA_ZBB
275 depends on TPL
276 help
277 Enable the generation of an optimized version of strcmp using
278 Zbb extension.
279
280config USE_ARCH_STRNCMP
281 bool "Use an assembly optimized implementation of strncmp"
282 default y
283 depends on RISCV_ISA_ZBB
284 help
285 Enable the generation of an optimized version of strncmp using
286 Zbb extension.
287
288config SPL_USE_ARCH_STRNCMP
289 bool "Use an assembly optimized implementation of strncmp for SPL"
290 default y if USE_ARCH_STRNCMP
291 depends on RISCV_ISA_ZBB
292 depends on SPL
293 help
294 Enable the generation of an optimized version of strncmp using
295 Zbb extension.
296
297config TPL_USE_ARCH_STRNCMP
298 bool "Use an assembly optimized implementation of strncmp for TPL"
299 default y if USE_ARCH_STRNCMP
300 depends on RISCV_ISA_ZBB
301 depends on TPL
302 help
303 Enable the generation of an optimized version of strncmp using
304 Zbb extension.
305
306endmenu
307
Lukas Auer002012f2018-11-22 11:26:14 +0100308config RISCV_ISA_A
309 def_bool y
310
Padmarao Begaria235d432021-01-15 08:20:35 +0530311config DMA_ADDR_T_64BIT
312 bool
313 default y if 64BIT
314
Bin Mengb5f03722023-06-21 23:11:46 +0800315config RISCV_ACLINT
Bin Mengb6ee5e12018-12-12 06:12:30 -0800316 bool
Bin Meng614b1d82021-05-11 20:04:12 +0800317 depends on RISCV_MMODE
Bin Meng08b8d262023-06-21 23:11:45 +0800318 select REGMAP
319 select SYSCON
Bin Meng614b1d82021-05-11 20:04:12 +0800320 help
Bin Mengb5f03722023-06-21 23:11:46 +0800321 The RISC-V ACLINT block holds memory-mapped control and status registers
Bin Meng614b1d82021-05-11 20:04:12 +0800322 associated with software and timer interrupts.
323
Bin Mengb5f03722023-06-21 23:11:46 +0800324config SPL_RISCV_ACLINT
Bin Meng614b1d82021-05-11 20:04:12 +0800325 bool
326 depends on SPL_RISCV_MMODE
Bin Meng08b8d262023-06-21 23:11:45 +0800327 select SPL_REGMAP
328 select SPL_SYSCON
Bin Mengb6ee5e12018-12-12 06:12:30 -0800329 help
Bin Mengb5f03722023-06-21 23:11:46 +0800330 The RISC-V ACLINT block holds memory-mapped control and status registers
Bin Mengb6ee5e12018-12-12 06:12:30 -0800331 associated with software and timer interrupts.
332
Zong Lic39544c2021-09-01 15:01:41 +0800333config SIFIVE_CACHE
334 bool
335 help
336 This enables the operations to configure SiFive cache
337
Yu Chien Peter Lin739cd6f2022-10-25 23:03:50 +0800338config ANDES_PLICSW
Rick Chen6df4ed02019-04-02 15:56:39 +0800339 bool
Lukas Auer61346592019-08-21 21:14:43 +0200340 depends on RISCV_MMODE || SPL_RISCV_MMODE
Rick Chen6df4ed02019-04-02 15:56:39 +0800341 select REGMAP
342 select SYSCON
Lukas Auer61346592019-08-21 21:14:43 +0200343 select SPL_REGMAP if SPL
344 select SPL_SYSCON if SPL
Rick Chen6df4ed02019-04-02 15:56:39 +0800345 help
Yu Chien Peter Lin739cd6f2022-10-25 23:03:50 +0800346 The Andes PLICSW block holds memory-mapped claim and pending
347 registers associated with software interrupt.
Rick Chen6df4ed02019-04-02 15:56:39 +0800348
Lukas Auer83d573d2019-03-17 19:28:32 +0100349config SMP
350 bool "Symmetric Multi-Processing"
Bin Meng49975222020-04-16 08:09:31 -0700351 depends on SBI_V01 || !RISCV_SMODE
Lukas Auer83d573d2019-03-17 19:28:32 +0100352 help
353 This enables support for systems with more than one CPU. If
354 you say N here, U-Boot will run on single and multiprocessor
355 machines, but will use only one CPU of a multiprocessor
356 machine. If you say Y here, U-Boot will run on many, but not
357 all, single processor machines.
358
Bin Mengb161f902020-04-16 08:09:30 -0700359config SPL_SMP
360 bool "Symmetric Multi-Processing in SPL"
361 depends on SPL && SPL_RISCV_MMODE
362 default y
363 help
364 This enables support for systems with more than one CPU in SPL.
365 If you say N here, U-Boot SPL will run on single and multiprocessor
366 machines, but will use only one CPU of a multiprocessor
367 machine. If you say Y here, U-Boot SPL will run on many, but not
368 all, single processor machines.
369
Lukas Auer83d573d2019-03-17 19:28:32 +0100370config NR_CPUS
371 int "Maximum number of CPUs (2-32)"
372 range 2 32
Bin Mengb161f902020-04-16 08:09:30 -0700373 depends on SMP || SPL_SMP
Lukas Auer83d573d2019-03-17 19:28:32 +0100374 default 8
375 help
376 On multiprocessor machines, U-Boot sets up a stack for each CPU.
377 Stack memory is pre-allocated. U-Boot must therefore know the
378 maximum number of CPUs that may be present.
379
Bin Mengee3bcd02020-03-09 19:35:28 -0700380config SBI
381 bool
382 default y if RISCV_SMODE || SPL_RISCV_SMODE
383
Bin Menga75325e2020-04-16 08:09:32 -0700384choice
385 prompt "SBI support"
Bin Meng3aecc4b2020-04-16 08:09:33 -0700386 default SBI_V02
Bin Menga75325e2020-04-16 08:09:32 -0700387
Bin Meng887d8092020-03-09 19:35:30 -0700388config SBI_V01
389 bool "SBI v0.1 support"
Bin Meng887d8092020-03-09 19:35:30 -0700390 depends on SBI
391 help
392 This config allows kernel to use SBI v0.1 APIs. This will be
393 deprecated in future once legacy M-mode software are no longer in use.
394
Bin Menga75325e2020-04-16 08:09:32 -0700395config SBI_V02
Heinrich Schuchardt693baee2022-11-08 15:53:12 +0100396 bool "SBI v0.2 or later support"
Bin Menga75325e2020-04-16 08:09:32 -0700397 depends on SBI
398 help
Heinrich Schuchardt693baee2022-11-08 15:53:12 +0100399 The SBI specification introduced the concept of extensions in version
400 v0.2. With this configuration option U-Boot can detect and use SBI
401 extensions. With the HSM extension introduced in SBI 0.2, only a
402 single hart needs to boot and enter the operating system. The booting
403 hart can bring up secondary harts one by one afterwards.
Bin Menga75325e2020-04-16 08:09:32 -0700404
Heinrich Schuchardt693baee2022-11-08 15:53:12 +0100405 Choose this option if OpenSBI release v0.7 or above is used together
Bin Menga75325e2020-04-16 08:09:32 -0700406 with U-Boot.
407
408endchoice
409
Lukas Auere79178b2019-03-17 19:28:34 +0100410config SBI_IPI
411 bool
Bin Mengee3bcd02020-03-09 19:35:28 -0700412 depends on SBI
Lukas Auer61346592019-08-21 21:14:43 +0200413 default y if RISCV_SMODE || SPL_RISCV_SMODE
Lukas Auere79178b2019-03-17 19:28:34 +0100414 depends on SMP
415
Rick Chene5e6c362019-04-30 13:49:33 +0800416config XIP
417 bool "XIP mode"
418 help
419 XIP (eXecute In Place) is a method for executing code directly
420 from a NOR flash memory without copying the code to ram.
421 Say yes here if U-Boot boots from flash directly.
422
Nikita Shubin7e5e0292022-09-02 11:47:39 +0300423config SPL_XIP
424 bool "Enable XIP mode for SPL"
425 help
426 If SPL starts in read-only memory (XIP for example) then we shouldn't
427 rely on lock variables (for example hart_lottery and available_harts_lock),
428 this affects only SPL, other stages should proceed as non-XIP.
429
Rick Chen9c4d5c12022-09-21 14:34:54 +0800430config AVAILABLE_HARTS
431 bool "Send IPI by available harts"
432 default y
433 help
434 By default, IPI sending mechanism will depend on available_harts.
435 If disable this, it will send IPI by CPUs node numbers of device tree.
436
Sean Andersone8b46a12019-12-25 00:27:44 -0500437config SHOW_REGS
438 bool "Show registers on unhandled exception"
439
Sean Anderson7f4b6662020-06-24 06:41:19 -0400440config RISCV_PRIV_1_9
441 bool "Use version 1.9 of the RISC-V priviledged specification"
442 help
443 Older versions of the RISC-V priviledged specification had
444 separate counter enable CSRs for each privilege mode. Writing
445 to the unified mcounteren CSR on a processor implementing the
446 old specification will result in an illegal instruction
447 exception. In addition to counter CSR changes, the way virtual
448 memory is configured was also changed.
449
Lukas Auera3596652019-03-17 19:28:37 +0100450config STACK_SIZE_SHIFT
451 int
Lukas Auer03813702019-10-20 20:53:47 +0200452 default 14
Lukas Auera3596652019-03-17 19:28:37 +0100453
Bin Meng2bdcd052020-06-25 18:16:08 -0700454config OF_BOARD_FIXUP
Sean Anderson584a5ee2020-09-05 09:22:11 -0400455 default y if OF_SEPARATE && RISCV_SMODE
Bin Meng2bdcd052020-06-25 18:16:08 -0700456
Bin Mengce64bd32021-05-13 16:46:18 +0800457menu "Use assembly optimized implementation of memory routines"
458
Heinrich Schuchardt23caf662021-03-27 12:37:04 +0100459config USE_ARCH_MEMCPY
460 bool "Use an assembly optimized implementation of memcpy"
461 default y
462 help
463 Enable the generation of an optimized version of memcpy.
464 Such an implementation may be faster under some conditions
465 but may increase the binary size.
466
467config SPL_USE_ARCH_MEMCPY
468 bool "Use an assembly optimized implementation of memcpy for SPL"
469 default y if USE_ARCH_MEMCPY
470 depends on SPL
471 help
472 Enable the generation of an optimized version of memcpy.
473 Such an implementation may be faster under some conditions
474 but may increase the binary size.
475
476config TPL_USE_ARCH_MEMCPY
477 bool "Use an assembly optimized implementation of memcpy for TPL"
478 default y if USE_ARCH_MEMCPY
479 depends on TPL
480 help
481 Enable the generation of an optimized version of memcpy.
482 Such an implementation may be faster under some conditions
483 but may increase the binary size.
484
485config USE_ARCH_MEMMOVE
486 bool "Use an assembly optimized implementation of memmove"
487 default y
488 help
489 Enable the generation of an optimized version of memmove.
490 Such an implementation may be faster under some conditions
491 but may increase the binary size.
492
493config SPL_USE_ARCH_MEMMOVE
494 bool "Use an assembly optimized implementation of memmove for SPL"
495 default y if USE_ARCH_MEMCPY
496 depends on SPL
497 help
498 Enable the generation of an optimized version of memmove.
499 Such an implementation may be faster under some conditions
500 but may increase the binary size.
501
502config TPL_USE_ARCH_MEMMOVE
503 bool "Use an assembly optimized implementation of memmove for TPL"
504 default y if USE_ARCH_MEMCPY
505 depends on TPL
506 help
507 Enable the generation of an optimized version of memmove.
508 Such an implementation may be faster under some conditions
509 but may increase the binary size.
510
511config USE_ARCH_MEMSET
512 bool "Use an assembly optimized implementation of memset"
513 default y
514 help
515 Enable the generation of an optimized version of memset.
516 Such an implementation may be faster under some conditions
517 but may increase the binary size.
518
519config SPL_USE_ARCH_MEMSET
520 bool "Use an assembly optimized implementation of memset for SPL"
521 default y if USE_ARCH_MEMSET
522 depends on SPL
523 help
524 Enable the generation of an optimized version of memset.
525 Such an implementation may be faster under some conditions
526 but may increase the binary size.
527
528config TPL_USE_ARCH_MEMSET
529 bool "Use an assembly optimized implementation of memset for TPL"
530 default y if USE_ARCH_MEMSET
531 depends on TPL
532 help
533 Enable the generation of an optimized version of memset.
534 Such an implementation may be faster under some conditions
535 but may increase the binary size.
536
Rick Chen64d4ead2017-12-26 13:55:52 +0800537endmenu
Bin Mengce64bd32021-05-13 16:46:18 +0800538
Randolphb1bc7a72023-10-12 14:35:04 +0800539config SPL_LOAD_FIT_OPENSBI_OS_BOOT
540 bool "Enable SPL (OpenSBI OS boot mode) applying linux from FIT"
541 depends on SPL_LOAD_FIT
542 help
543 Use fw_dynamic from the FIT image, and u-boot SPL will invoke it directly.
544 This is a shortcut boot flow, from u-boot SPL -> OpenSBI -> u-boot proper
545 -> linux to u-boot SPL -> OpenSBI -> linux.
546
Bin Mengce64bd32021-05-13 16:46:18 +0800547endmenu