blob: 6b854cc0b65ceea8a7f125e6ba62a58738c65ca0 [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"
Ɓukasz Stelmach1b100e52024-03-28 10:58:24 +010025 select BOARD_LATE_INIT
Bin Meng8a8694d2018-09-26 06:55:21 -070026
Bin Menge9ead4a2021-03-17 11:10:58 +080027config TARGET_SIFIVE_UNLEASHED
28 bool "Support SiFive Unleashed Board"
Anup Patel7a167f22019-02-25 08:15:19 +000029
Green Wan2e5da522021-05-27 06:52:13 -070030config TARGET_SIFIVE_UNMATCHED
31 bool "Support SiFive Unmatched Board"
Tom Rini3ef67ae2021-08-26 11:47:59 -040032 select SYS_CACHE_SHIFT_6
Green Wan2e5da522021-05-27 06:52:13 -070033
Samuel Hollandbd6a54c2023-10-31 00:32:12 -050034config TARGET_SIPEED_MAIX
35 bool "Support Sipeed Maix Board"
36 select SYS_CACHE_SHIFT_6
37
Yanhong Wang38678792023-03-29 11:42:20 +080038config TARGET_STARFIVE_VISIONFIVE2
39 bool "Support StarFive VisionFive2 Board"
Heinrich Schuchardt03a885b2023-09-07 13:21:28 +020040 select BOARD_LATE_INIT
Yanhong Wang38678792023-03-29 11:42:20 +080041
Yixun Lan5dfa9012023-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 Simek962c10a2023-11-06 12:56:47 +010046config TARGET_XILINX_MBV
47 bool "Support AMD/Xilinx MicroBlaze V"
48
Chia-Wei Wang1c7ed532024-09-10 17:39:16 +080049config TARGET_ASPEED_AST2700_IBEX
50 bool "Support Ibex RISC-V cores on Aspeed AST2700 SoC"
51
Rick Chen64d4ead2017-12-26 13:55:52 +080052endchoice
53
Trevor Woernerba64b8b2019-05-03 09:40:59 -040054config SYS_ICACHE_OFF
55 bool "Do not enable icache"
Trevor Woernerba64b8b2019-05-03 09:40:59 -040056 help
57 Do not enable instruction cache in U-Boot.
58
Trevor Woerner43ec7e02019-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 Woernerba64b8b2019-05-03 09:40:59 -040066config SYS_DCACHE_OFF
67 bool "Do not enable dcache"
Trevor Woernerba64b8b2019-05-03 09:40:59 -040068 help
69 Do not enable data cache in U-Boot.
70
Trevor Woerner43ec7e02019-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 Qud1a32542023-08-09 21:11:31 +080078config SPL_ZERO_MEM_BEFORE_USE
79 bool "Zero memory before use"
80 depends on SPL
Shengyu Qud1a32542023-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 Chen842d5802018-11-07 09:34:06 +080085# board-specific options below
Leo Yu-Chi Liang5d0bbea2024-05-14 17:50:11 +080086source "board/andestech/ae350/Kconfig"
Chia-Wei Wang1c7ed532024-09-10 17:39:16 +080087source "board/aspeed/ibex_ast2700/Kconfig"
Bin Meng8a8694d2018-09-26 06:55:21 -070088source "board/emulation/qemu-riscv/Kconfig"
Padmarao Begari4216f342019-05-28 15:47:51 +053089source "board/microchip/mpfs_icicle/Kconfig"
Samuel Hollandbd6a54c2023-10-31 00:32:12 -050090source "board/openpiton/riscv64/Kconfig"
Bin Menge9ead4a2021-03-17 11:10:58 +080091source "board/sifive/unleashed/Kconfig"
Green Wan2e5da522021-05-27 06:52:13 -070092source "board/sifive/unmatched/Kconfig"
Sean Andersonedc32ab2020-06-24 06:41:25 -040093source "board/sipeed/maix/Kconfig"
Kongyang Liub64fc0e2024-01-28 15:05:25 +080094source "board/sophgo/milkv_duo/Kconfig"
Yanhong Wang38678792023-03-29 11:42:20 +080095source "board/starfive/visionfive2/Kconfig"
Samuel Hollandbd6a54c2023-10-31 00:32:12 -050096source "board/thead/th1520_lpi4a/Kconfig"
Michal Simek962c10a2023-11-06 12:56:47 +010097source "board/xilinx/mbv/Kconfig"
Rick Chen64d4ead2017-12-26 13:55:52 +080098
Rick Chen842d5802018-11-07 09:34:06 +080099# platform-specific options below
Leo Yu-Chi Liang5d0bbea2024-05-14 17:50:11 +0800100source "arch/riscv/cpu/andes/Kconfig"
Kongyang Liuf7526742024-03-10 00:54:56 +0800101source "arch/riscv/cpu/cv1800b/Kconfig"
Pragnesh Patel25269c02020-05-29 11:33:34 +0530102source "arch/riscv/cpu/fu540/Kconfig"
Green Wan7f337432021-05-27 06:52:07 -0700103source "arch/riscv/cpu/fu740/Kconfig"
Chia-Wei Wang1c7ed532024-09-10 17:39:16 +0800104source "arch/riscv/cpu/ast2700/Kconfig"
Anup Patel1240cd62019-02-25 08:14:10 +0000105source "arch/riscv/cpu/generic/Kconfig"
Yanhong Wang38678792023-03-29 11:42:20 +0800106source "arch/riscv/cpu/jh7110/Kconfig"
Rick Chen842d5802018-11-07 09:34:06 +0800107
108# architecture-specific options below
109
Rick Chen64d4ead2017-12-26 13:55:52 +0800110choice
Lukas Auer54ebfe72018-11-22 11:26:12 +0100111 prompt "Base ISA"
112 default ARCH_RV32I
Rick Chen64d4ead2017-12-26 13:55:52 +0800113
Lukas Auer54ebfe72018-11-22 11:26:12 +0100114config ARCH_RV32I
115 bool "RV32I"
Rick Chen64d4ead2017-12-26 13:55:52 +0800116 select 32BIT
117 help
Lukas Auer54ebfe72018-11-22 11:26:12 +0100118 Choose this option to target the RV32I base integer instruction set.
Rick Chen64d4ead2017-12-26 13:55:52 +0800119
Lukas Auer54ebfe72018-11-22 11:26:12 +0100120config ARCH_RV64I
121 bool "RV64I"
Rick Chen64d4ead2017-12-26 13:55:52 +0800122 select 64BIT
Lukas Auer7ab1df02018-11-22 11:26:13 +0100123 select PHYS_64BIT
Rick Chen64d4ead2017-12-26 13:55:52 +0800124 help
Lukas Auer54ebfe72018-11-22 11:26:12 +0100125 Choose this option to target the RV64I base integer instruction set.
Rick Chen64d4ead2017-12-26 13:55:52 +0800126
127endchoice
128
Ben Dooks8a813c12023-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"
141 help
142 Choose this option to use the frame pointer so the stack can be
143 unwound if needed. This is useful for tracing where faults came
144 from as the source may be several functions back
145
146 If you say Y here, then the code size will be increased due to
147 having to store the fp.
148
Lukas Auerecc5d832018-12-12 06:12:23 -0800149choice
150 prompt "Code Model"
151 default CMODEL_MEDLOW
152
153config CMODEL_MEDLOW
154 bool "medium low code model"
155 help
156 U-Boot and its statically defined symbols must lie within a single 2 GiB
157 address range and must lie between absolute addresses -2 GiB and +2 GiB.
158
159config CMODEL_MEDANY
160 bool "medium any code model"
161 help
162 U-Boot and its statically defined symbols must be within any single 2 GiB
163 address range.
164
165endchoice
166
Anup Patel27881772018-12-12 06:12:29 -0800167choice
168 prompt "Run Mode"
169 default RISCV_MMODE
170
171config RISCV_MMODE
172 bool "Machine"
173 help
174 Choose this option to build U-Boot for RISC-V M-Mode.
175
176config RISCV_SMODE
177 bool "Supervisor"
Heinrich Schuchardt20964b62023-09-23 01:35:26 +0200178 imply DEBUG_UART
Anup Patel27881772018-12-12 06:12:29 -0800179 help
180 Choose this option to build U-Boot for RISC-V S-Mode.
181
182endchoice
183
Lukas Auer61346592019-08-21 21:14:43 +0200184choice
185 prompt "SPL Run Mode"
186 default SPL_RISCV_MMODE
187 depends on SPL
188
189config SPL_RISCV_MMODE
190 bool "Machine"
191 help
192 Choose this option to build U-Boot SPL for RISC-V M-Mode.
193
194config SPL_RISCV_SMODE
195 bool "Supervisor"
196 help
197 Choose this option to build U-Boot SPL for RISC-V S-Mode.
198
199endchoice
200
Lukas Auer002012f2018-11-22 11:26:14 +0100201config RISCV_ISA_C
202 bool "Emit compressed instructions"
203 default y
204 help
205 Adds "C" to the ISA subsets that the toolchain is allowed to emit
206 when building U-Boot, which results in compressed instructions in the
207 U-Boot binary.
208
Heinrich Schuchardtc66c9502022-10-12 14:59:51 +0200209config RISCV_ISA_F
210 bool "Standard extension for Single-Precision Floating Point"
211 default y
212 help
213 Adds "F" to the ISA string passed to the compiler.
214
215config RISCV_ISA_D
216 bool "Standard extension for Double-Precision Floating Point"
217 depends on RISCV_ISA_F
218 default y
219 help
220 Adds "D" to the ISA string passed to the compiler and changes the
221 riscv32 ABI from ilp32 to ilp32d and the riscv64 ABI from lp64 to
222 lp64d.
223
Yu Chien Peter Lin60814cb2023-08-09 18:49:30 +0800224config RISCV_ISA_ZBB
225 bool "Zbb extension support for bit manipulation instructions"
226 help
227 Adds ZBB extension (basic bit manipulation) to the ISA subsets
228 that the toolchain is allowed to emit when building U-Boot.
229 The Zbb extension provides instructions to accelerate a number
230 of bit-specific operations (count bit population, sign extending,
231 bitrotation, etc) and enables optimized string routines.
232
233menu "Use assembly optimized implementation of string routines"
234
235config USE_ARCH_STRLEN
236 bool "Use an assembly optimized implementation of strlen"
237 default y
238 depends on RISCV_ISA_ZBB
239 help
240 Enable the generation of an optimized version of strlen using
241 Zbb extension.
242
243config SPL_USE_ARCH_STRLEN
244 bool "Use an assembly optimized implementation of strlen for SPL"
245 default y if USE_ARCH_STRLEN
246 depends on RISCV_ISA_ZBB
247 depends on SPL
248 help
249 Enable the generation of an optimized version of strlen using
250 Zbb extension.
251
252config TPL_USE_ARCH_STRLEN
253 bool "Use an assembly optimized implementation of strlen for TPL"
254 default y if USE_ARCH_STRLEN
255 depends on RISCV_ISA_ZBB
256 depends on TPL
257 help
258 Enable the generation of an optimized version of strlen using
259 Zbb extension.
260
261config USE_ARCH_STRCMP
262 bool "Use an assembly optimized implementation of strcmp"
263 default y
264 depends on RISCV_ISA_ZBB
265 help
266 Enable the generation of an optimized version of strcmp using
267 Zbb extension.
268
269config SPL_USE_ARCH_STRCMP
270 bool "Use an assembly optimized implementation of strcmp for SPL"
271 default y if USE_ARCH_STRCMP
272 depends on RISCV_ISA_ZBB
273 depends on SPL
274 help
275 Enable the generation of an optimized version of strcmp using
276 Zbb extension.
277
278config TPL_USE_ARCH_STRCMP
279 bool "Use an assembly optimized implementation of strcmp for TPL"
280 default y if USE_ARCH_STRCMP
281 depends on RISCV_ISA_ZBB
282 depends on TPL
283 help
284 Enable the generation of an optimized version of strcmp using
285 Zbb extension.
286
287config USE_ARCH_STRNCMP
288 bool "Use an assembly optimized implementation of strncmp"
289 default y
290 depends on RISCV_ISA_ZBB
291 help
292 Enable the generation of an optimized version of strncmp using
293 Zbb extension.
294
295config SPL_USE_ARCH_STRNCMP
296 bool "Use an assembly optimized implementation of strncmp for SPL"
297 default y if USE_ARCH_STRNCMP
298 depends on RISCV_ISA_ZBB
299 depends on SPL
300 help
301 Enable the generation of an optimized version of strncmp using
302 Zbb extension.
303
304config TPL_USE_ARCH_STRNCMP
305 bool "Use an assembly optimized implementation of strncmp for TPL"
306 default y if USE_ARCH_STRNCMP
307 depends on RISCV_ISA_ZBB
308 depends on TPL
309 help
310 Enable the generation of an optimized version of strncmp using
311 Zbb extension.
312
313endmenu
314
Lukas Auer002012f2018-11-22 11:26:14 +0100315config RISCV_ISA_A
Chia-Wei Wang6eda8742024-09-10 17:39:13 +0800316 bool "Standard extension for Atomic Instructions"
317 default y
318 help
319 Adds "A" to the ISA string passed to the compiler.
Lukas Auer002012f2018-11-22 11:26:14 +0100320
Padmarao Begaria235d432021-01-15 08:20:35 +0530321config DMA_ADDR_T_64BIT
322 bool
323 default y if 64BIT
324
Bin Mengb5f03722023-06-21 23:11:46 +0800325config RISCV_ACLINT
Bin Mengb6ee5e12018-12-12 06:12:30 -0800326 bool
Bin Meng614b1d82021-05-11 20:04:12 +0800327 depends on RISCV_MMODE
Bin Meng08b8d262023-06-21 23:11:45 +0800328 select REGMAP
329 select SYSCON
Bin Meng614b1d82021-05-11 20:04:12 +0800330 help
Bin Mengb5f03722023-06-21 23:11:46 +0800331 The RISC-V ACLINT block holds memory-mapped control and status registers
Bin Meng614b1d82021-05-11 20:04:12 +0800332 associated with software and timer interrupts.
333
Bin Mengb5f03722023-06-21 23:11:46 +0800334config SPL_RISCV_ACLINT
Bin Meng614b1d82021-05-11 20:04:12 +0800335 bool
336 depends on SPL_RISCV_MMODE
Bin Meng08b8d262023-06-21 23:11:45 +0800337 select SPL_REGMAP
338 select SPL_SYSCON
Bin Mengb6ee5e12018-12-12 06:12:30 -0800339 help
Bin Mengb5f03722023-06-21 23:11:46 +0800340 The RISC-V ACLINT block holds memory-mapped control and status registers
Bin Mengb6ee5e12018-12-12 06:12:30 -0800341 associated with software and timer interrupts.
342
Zong Lic39544c2021-09-01 15:01:41 +0800343config SIFIVE_CACHE
344 bool
345 help
346 This enables the operations to configure SiFive cache
347
Yu Chien Peter Lin739cd6f2022-10-25 23:03:50 +0800348config ANDES_PLICSW
Rick Chen6df4ed02019-04-02 15:56:39 +0800349 bool
Lukas Auer61346592019-08-21 21:14:43 +0200350 depends on RISCV_MMODE || SPL_RISCV_MMODE
Rick Chen6df4ed02019-04-02 15:56:39 +0800351 select REGMAP
352 select SYSCON
Lukas Auer61346592019-08-21 21:14:43 +0200353 select SPL_REGMAP if SPL
354 select SPL_SYSCON if SPL
Rick Chen6df4ed02019-04-02 15:56:39 +0800355 help
Yu Chien Peter Lin739cd6f2022-10-25 23:03:50 +0800356 The Andes PLICSW block holds memory-mapped claim and pending
357 registers associated with software interrupt.
Rick Chen6df4ed02019-04-02 15:56:39 +0800358
Lukas Auer83d573d2019-03-17 19:28:32 +0100359config SMP
360 bool "Symmetric Multi-Processing"
Bin Meng49975222020-04-16 08:09:31 -0700361 depends on SBI_V01 || !RISCV_SMODE
Lukas Auer83d573d2019-03-17 19:28:32 +0100362 help
363 This enables support for systems with more than one CPU. If
364 you say N here, U-Boot will run on single and multiprocessor
365 machines, but will use only one CPU of a multiprocessor
366 machine. If you say Y here, U-Boot will run on many, but not
367 all, single processor machines.
368
Bin Mengb161f902020-04-16 08:09:30 -0700369config SPL_SMP
370 bool "Symmetric Multi-Processing in SPL"
371 depends on SPL && SPL_RISCV_MMODE
372 default y
373 help
374 This enables support for systems with more than one CPU in SPL.
375 If you say N here, U-Boot SPL will run on single and multiprocessor
376 machines, but will use only one CPU of a multiprocessor
377 machine. If you say Y here, U-Boot SPL will run on many, but not
378 all, single processor machines.
379
Lukas Auer83d573d2019-03-17 19:28:32 +0100380config NR_CPUS
381 int "Maximum number of CPUs (2-32)"
382 range 2 32
Bin Mengb161f902020-04-16 08:09:30 -0700383 depends on SMP || SPL_SMP
Lukas Auer83d573d2019-03-17 19:28:32 +0100384 default 8
385 help
386 On multiprocessor machines, U-Boot sets up a stack for each CPU.
387 Stack memory is pre-allocated. U-Boot must therefore know the
388 maximum number of CPUs that may be present.
389
Bin Mengee3bcd02020-03-09 19:35:28 -0700390config SBI
391 bool
392 default y if RISCV_SMODE || SPL_RISCV_SMODE
393
Bin Menga75325e2020-04-16 08:09:32 -0700394choice
395 prompt "SBI support"
Bin Meng3aecc4b2020-04-16 08:09:33 -0700396 default SBI_V02
Bin Menga75325e2020-04-16 08:09:32 -0700397
Bin Meng887d8092020-03-09 19:35:30 -0700398config SBI_V01
399 bool "SBI v0.1 support"
Bin Meng887d8092020-03-09 19:35:30 -0700400 depends on SBI
401 help
402 This config allows kernel to use SBI v0.1 APIs. This will be
403 deprecated in future once legacy M-mode software are no longer in use.
404
Bin Menga75325e2020-04-16 08:09:32 -0700405config SBI_V02
Heinrich Schuchardt693baee2022-11-08 15:53:12 +0100406 bool "SBI v0.2 or later support"
Bin Menga75325e2020-04-16 08:09:32 -0700407 depends on SBI
408 help
Heinrich Schuchardt693baee2022-11-08 15:53:12 +0100409 The SBI specification introduced the concept of extensions in version
410 v0.2. With this configuration option U-Boot can detect and use SBI
411 extensions. With the HSM extension introduced in SBI 0.2, only a
412 single hart needs to boot and enter the operating system. The booting
413 hart can bring up secondary harts one by one afterwards.
Bin Menga75325e2020-04-16 08:09:32 -0700414
Heinrich Schuchardt693baee2022-11-08 15:53:12 +0100415 Choose this option if OpenSBI release v0.7 or above is used together
Bin Menga75325e2020-04-16 08:09:32 -0700416 with U-Boot.
417
418endchoice
419
Lukas Auere79178b2019-03-17 19:28:34 +0100420config SBI_IPI
421 bool
Bin Mengee3bcd02020-03-09 19:35:28 -0700422 depends on SBI
Lukas Auer61346592019-08-21 21:14:43 +0200423 default y if RISCV_SMODE || SPL_RISCV_SMODE
Lukas Auere79178b2019-03-17 19:28:34 +0100424 depends on SMP
425
Rick Chene5e6c362019-04-30 13:49:33 +0800426config XIP
427 bool "XIP mode"
428 help
429 XIP (eXecute In Place) is a method for executing code directly
430 from a NOR flash memory without copying the code to ram.
431 Say yes here if U-Boot boots from flash directly.
432
Nikita Shubin7e5e0292022-09-02 11:47:39 +0300433config SPL_XIP
434 bool "Enable XIP mode for SPL"
435 help
436 If SPL starts in read-only memory (XIP for example) then we shouldn't
437 rely on lock variables (for example hart_lottery and available_harts_lock),
438 this affects only SPL, other stages should proceed as non-XIP.
439
Rick Chen9c4d5c12022-09-21 14:34:54 +0800440config AVAILABLE_HARTS
441 bool "Send IPI by available harts"
442 default y
443 help
444 By default, IPI sending mechanism will depend on available_harts.
445 If disable this, it will send IPI by CPUs node numbers of device tree.
446
Sean Andersone8b46a12019-12-25 00:27:44 -0500447config SHOW_REGS
448 bool "Show registers on unhandled exception"
449
Sean Anderson7f4b6662020-06-24 06:41:19 -0400450config RISCV_PRIV_1_9
451 bool "Use version 1.9 of the RISC-V priviledged specification"
452 help
453 Older versions of the RISC-V priviledged specification had
454 separate counter enable CSRs for each privilege mode. Writing
455 to the unified mcounteren CSR on a processor implementing the
456 old specification will result in an illegal instruction
457 exception. In addition to counter CSR changes, the way virtual
458 memory is configured was also changed.
459
Lukas Auera3596652019-03-17 19:28:37 +0100460config STACK_SIZE_SHIFT
Chia-Wei Wang20144dc2024-09-10 17:39:14 +0800461 int "Stack size shift"
Lukas Auer03813702019-10-20 20:53:47 +0200462 default 14
Lukas Auera3596652019-03-17 19:28:37 +0100463
Bin Meng2bdcd052020-06-25 18:16:08 -0700464config OF_BOARD_FIXUP
Sean Anderson584a5ee2020-09-05 09:22:11 -0400465 default y if OF_SEPARATE && RISCV_SMODE
Bin Meng2bdcd052020-06-25 18:16:08 -0700466
Bin Mengce64bd32021-05-13 16:46:18 +0800467menu "Use assembly optimized implementation of memory routines"
468
Heinrich Schuchardt23caf662021-03-27 12:37:04 +0100469config USE_ARCH_MEMCPY
470 bool "Use an assembly optimized implementation of memcpy"
471 default y
472 help
473 Enable the generation of an optimized version of memcpy.
474 Such an implementation may be faster under some conditions
475 but may increase the binary size.
476
477config SPL_USE_ARCH_MEMCPY
478 bool "Use an assembly optimized implementation of memcpy for SPL"
479 default y if USE_ARCH_MEMCPY
480 depends on SPL
481 help
482 Enable the generation of an optimized version of memcpy.
483 Such an implementation may be faster under some conditions
484 but may increase the binary size.
485
486config TPL_USE_ARCH_MEMCPY
487 bool "Use an assembly optimized implementation of memcpy for TPL"
488 default y if USE_ARCH_MEMCPY
489 depends on TPL
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 USE_ARCH_MEMMOVE
496 bool "Use an assembly optimized implementation of memmove"
497 default y
498 help
499 Enable the generation of an optimized version of memmove.
500 Such an implementation may be faster under some conditions
501 but may increase the binary size.
502
503config SPL_USE_ARCH_MEMMOVE
504 bool "Use an assembly optimized implementation of memmove for SPL"
505 default y if USE_ARCH_MEMCPY
506 depends on SPL
507 help
508 Enable the generation of an optimized version of memmove.
509 Such an implementation may be faster under some conditions
510 but may increase the binary size.
511
512config TPL_USE_ARCH_MEMMOVE
513 bool "Use an assembly optimized implementation of memmove for TPL"
514 default y if USE_ARCH_MEMCPY
515 depends on TPL
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 USE_ARCH_MEMSET
522 bool "Use an assembly optimized implementation of memset"
523 default y
524 help
525 Enable the generation of an optimized version of memset.
526 Such an implementation may be faster under some conditions
527 but may increase the binary size.
528
529config SPL_USE_ARCH_MEMSET
530 bool "Use an assembly optimized implementation of memset for SPL"
531 default y if USE_ARCH_MEMSET
532 depends on SPL
533 help
534 Enable the generation of an optimized version of memset.
535 Such an implementation may be faster under some conditions
536 but may increase the binary size.
537
538config TPL_USE_ARCH_MEMSET
539 bool "Use an assembly optimized implementation of memset for TPL"
540 default y if USE_ARCH_MEMSET
541 depends on TPL
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
Rick Chen64d4ead2017-12-26 13:55:52 +0800547endmenu
Bin Mengce64bd32021-05-13 16:46:18 +0800548
Randolphb1bc7a72023-10-12 14:35:04 +0800549config SPL_LOAD_FIT_OPENSBI_OS_BOOT
550 bool "Enable SPL (OpenSBI OS boot mode) applying linux from FIT"
551 depends on SPL_LOAD_FIT
552 help
553 Use fw_dynamic from the FIT image, and u-boot SPL will invoke it directly.
554 This is a shortcut boot flow, from u-boot SPL -> OpenSBI -> u-boot proper
555 -> linux to u-boot SPL -> OpenSBI -> linux.
556
Bin Mengce64bd32021-05-13 16:46:18 +0800557endmenu