blob: f4384d154948b358e5e2b9e0316ab9e538621ca0 [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
LekKit94ff33a2024-09-22 13:11:02 +030024 bool "Support QEMU Virt & RVVM Boards"
Ɓ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"
Heinrich Schuchardt512d41c2024-08-11 11:51:09 +0200141 depends on SPL
Ben Dooks8a813c12023-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 Auerecc5d832018-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 Patel27881772018-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 Schuchardt20964b62023-09-23 01:35:26 +0200179 imply DEBUG_UART
Anup Patel27881772018-12-12 06:12:29 -0800180 help
181 Choose this option to build U-Boot for RISC-V S-Mode.
182
183endchoice
184
Lukas Auer61346592019-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 Auer002012f2018-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 Schuchardtc66c9502022-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 Lin60814cb2023-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 Auer002012f2018-11-22 11:26:14 +0100316config RISCV_ISA_A
Chia-Wei Wang6eda8742024-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 Auer002012f2018-11-22 11:26:14 +0100321
Padmarao Begaria235d432021-01-15 08:20:35 +0530322config DMA_ADDR_T_64BIT
323 bool
324 default y if 64BIT
325
Bin Mengb5f03722023-06-21 23:11:46 +0800326config RISCV_ACLINT
Bin Mengb6ee5e12018-12-12 06:12:30 -0800327 bool
Bin Meng614b1d82021-05-11 20:04:12 +0800328 depends on RISCV_MMODE
Bin Meng08b8d262023-06-21 23:11:45 +0800329 select REGMAP
330 select SYSCON
Bin Meng614b1d82021-05-11 20:04:12 +0800331 help
Bin Mengb5f03722023-06-21 23:11:46 +0800332 The RISC-V ACLINT block holds memory-mapped control and status registers
Bin Meng614b1d82021-05-11 20:04:12 +0800333 associated with software and timer interrupts.
334
Bin Mengb5f03722023-06-21 23:11:46 +0800335config SPL_RISCV_ACLINT
Bin Meng614b1d82021-05-11 20:04:12 +0800336 bool
337 depends on SPL_RISCV_MMODE
Bin Meng08b8d262023-06-21 23:11:45 +0800338 select SPL_REGMAP
339 select SPL_SYSCON
Bin Mengb6ee5e12018-12-12 06:12:30 -0800340 help
Bin Mengb5f03722023-06-21 23:11:46 +0800341 The RISC-V ACLINT block holds memory-mapped control and status registers
Bin Mengb6ee5e12018-12-12 06:12:30 -0800342 associated with software and timer interrupts.
343
Zong Lic39544c2021-09-01 15:01:41 +0800344config SIFIVE_CACHE
345 bool
346 help
347 This enables the operations to configure SiFive cache
348
Yu Chien Peter Lin739cd6f2022-10-25 23:03:50 +0800349config ANDES_PLICSW
Rick Chen6df4ed02019-04-02 15:56:39 +0800350 bool
Lukas Auer61346592019-08-21 21:14:43 +0200351 depends on RISCV_MMODE || SPL_RISCV_MMODE
Rick Chen6df4ed02019-04-02 15:56:39 +0800352 select REGMAP
353 select SYSCON
Lukas Auer61346592019-08-21 21:14:43 +0200354 select SPL_REGMAP if SPL
355 select SPL_SYSCON if SPL
Rick Chen6df4ed02019-04-02 15:56:39 +0800356 help
Yu Chien Peter Lin739cd6f2022-10-25 23:03:50 +0800357 The Andes PLICSW block holds memory-mapped claim and pending
358 registers associated with software interrupt.
Rick Chen6df4ed02019-04-02 15:56:39 +0800359
Lukas Auer83d573d2019-03-17 19:28:32 +0100360config SMP
361 bool "Symmetric Multi-Processing"
Bin Meng49975222020-04-16 08:09:31 -0700362 depends on SBI_V01 || !RISCV_SMODE
Lukas Auer83d573d2019-03-17 19:28:32 +0100363 help
364 This enables support for systems with more than one CPU. If
365 you say N here, U-Boot 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 will run on many, but not
368 all, single processor machines.
369
Bin Mengb161f902020-04-16 08:09:30 -0700370config SPL_SMP
371 bool "Symmetric Multi-Processing in SPL"
372 depends on SPL && SPL_RISCV_MMODE
373 default y
374 help
375 This enables support for systems with more than one CPU in SPL.
376 If you say N here, U-Boot SPL will run on single and multiprocessor
377 machines, but will use only one CPU of a multiprocessor
378 machine. If you say Y here, U-Boot SPL will run on many, but not
379 all, single processor machines.
380
Lukas Auer83d573d2019-03-17 19:28:32 +0100381config NR_CPUS
382 int "Maximum number of CPUs (2-32)"
383 range 2 32
Bin Mengb161f902020-04-16 08:09:30 -0700384 depends on SMP || SPL_SMP
Lukas Auer83d573d2019-03-17 19:28:32 +0100385 default 8
386 help
387 On multiprocessor machines, U-Boot sets up a stack for each CPU.
388 Stack memory is pre-allocated. U-Boot must therefore know the
389 maximum number of CPUs that may be present.
390
Bin Mengee3bcd02020-03-09 19:35:28 -0700391config SBI
392 bool
393 default y if RISCV_SMODE || SPL_RISCV_SMODE
394
Bin Menga75325e2020-04-16 08:09:32 -0700395choice
396 prompt "SBI support"
Bin Meng3aecc4b2020-04-16 08:09:33 -0700397 default SBI_V02
Bin Menga75325e2020-04-16 08:09:32 -0700398
Bin Meng887d8092020-03-09 19:35:30 -0700399config SBI_V01
400 bool "SBI v0.1 support"
Bin Meng887d8092020-03-09 19:35:30 -0700401 depends on SBI
402 help
403 This config allows kernel to use SBI v0.1 APIs. This will be
404 deprecated in future once legacy M-mode software are no longer in use.
405
Bin Menga75325e2020-04-16 08:09:32 -0700406config SBI_V02
Heinrich Schuchardt693baee2022-11-08 15:53:12 +0100407 bool "SBI v0.2 or later support"
Bin Menga75325e2020-04-16 08:09:32 -0700408 depends on SBI
409 help
Heinrich Schuchardt693baee2022-11-08 15:53:12 +0100410 The SBI specification introduced the concept of extensions in version
411 v0.2. With this configuration option U-Boot can detect and use SBI
412 extensions. With the HSM extension introduced in SBI 0.2, only a
413 single hart needs to boot and enter the operating system. The booting
414 hart can bring up secondary harts one by one afterwards.
Bin Menga75325e2020-04-16 08:09:32 -0700415
Heinrich Schuchardt693baee2022-11-08 15:53:12 +0100416 Choose this option if OpenSBI release v0.7 or above is used together
Bin Menga75325e2020-04-16 08:09:32 -0700417 with U-Boot.
418
419endchoice
420
Lukas Auere79178b2019-03-17 19:28:34 +0100421config SBI_IPI
422 bool
Bin Mengee3bcd02020-03-09 19:35:28 -0700423 depends on SBI
Lukas Auer61346592019-08-21 21:14:43 +0200424 default y if RISCV_SMODE || SPL_RISCV_SMODE
Lukas Auere79178b2019-03-17 19:28:34 +0100425 depends on SMP
426
Rick Chene5e6c362019-04-30 13:49:33 +0800427config XIP
428 bool "XIP mode"
429 help
430 XIP (eXecute In Place) is a method for executing code directly
431 from a NOR flash memory without copying the code to ram.
432 Say yes here if U-Boot boots from flash directly.
433
Nikita Shubin7e5e0292022-09-02 11:47:39 +0300434config SPL_XIP
435 bool "Enable XIP mode for SPL"
436 help
437 If SPL starts in read-only memory (XIP for example) then we shouldn't
438 rely on lock variables (for example hart_lottery and available_harts_lock),
439 this affects only SPL, other stages should proceed as non-XIP.
440
Rick Chen9c4d5c12022-09-21 14:34:54 +0800441config AVAILABLE_HARTS
442 bool "Send IPI by available harts"
443 default y
444 help
445 By default, IPI sending mechanism will depend on available_harts.
446 If disable this, it will send IPI by CPUs node numbers of device tree.
447
Sean Andersone8b46a12019-12-25 00:27:44 -0500448config SHOW_REGS
Heinrich Schuchardt943e6be2024-08-11 13:01:04 +0200449 default y
Sean Andersone8b46a12019-12-25 00:27:44 -0500450 bool "Show registers on unhandled exception"
Heinrich Schuchardt99e92102024-08-11 13:01:03 +0200451 help
452 By default only the program counter and the return address register
453 are shown in crash dumps. Enable this symbol to show all registers in
454 main U-Boot.
455
456config SPL_SHOW_REGS
457 bool "In SPL show registers on unhandled exception"
458 depends on SPL
459 help
460 By default only the program counter and the return address register
461 are shown in crash dumps. Enable this symbol to show all registers in
462 SPL.
Sean Andersone8b46a12019-12-25 00:27:44 -0500463
Sean Anderson7f4b6662020-06-24 06:41:19 -0400464config RISCV_PRIV_1_9
465 bool "Use version 1.9 of the RISC-V priviledged specification"
466 help
467 Older versions of the RISC-V priviledged specification had
468 separate counter enable CSRs for each privilege mode. Writing
469 to the unified mcounteren CSR on a processor implementing the
470 old specification will result in an illegal instruction
471 exception. In addition to counter CSR changes, the way virtual
472 memory is configured was also changed.
473
Lukas Auera3596652019-03-17 19:28:37 +0100474config STACK_SIZE_SHIFT
Chia-Wei Wang20144dc2024-09-10 17:39:14 +0800475 int "Stack size shift"
Lukas Auer03813702019-10-20 20:53:47 +0200476 default 14
Lukas Auera3596652019-03-17 19:28:37 +0100477
Bin Meng2bdcd052020-06-25 18:16:08 -0700478config OF_BOARD_FIXUP
Sean Anderson584a5ee2020-09-05 09:22:11 -0400479 default y if OF_SEPARATE && RISCV_SMODE
Bin Meng2bdcd052020-06-25 18:16:08 -0700480
Bin Mengce64bd32021-05-13 16:46:18 +0800481menu "Use assembly optimized implementation of memory routines"
482
Heinrich Schuchardt23caf662021-03-27 12:37:04 +0100483config USE_ARCH_MEMCPY
484 bool "Use an assembly optimized implementation of memcpy"
485 default y
486 help
487 Enable the generation of an optimized version of memcpy.
488 Such an implementation may be faster under some conditions
489 but may increase the binary size.
490
491config SPL_USE_ARCH_MEMCPY
492 bool "Use an assembly optimized implementation of memcpy for SPL"
493 default y if USE_ARCH_MEMCPY
494 depends on SPL
495 help
496 Enable the generation of an optimized version of memcpy.
497 Such an implementation may be faster under some conditions
498 but may increase the binary size.
499
500config TPL_USE_ARCH_MEMCPY
501 bool "Use an assembly optimized implementation of memcpy for TPL"
502 default y if USE_ARCH_MEMCPY
503 depends on TPL
504 help
505 Enable the generation of an optimized version of memcpy.
506 Such an implementation may be faster under some conditions
507 but may increase the binary size.
508
509config USE_ARCH_MEMMOVE
510 bool "Use an assembly optimized implementation of memmove"
511 default y
512 help
513 Enable the generation of an optimized version of memmove.
514 Such an implementation may be faster under some conditions
515 but may increase the binary size.
516
517config SPL_USE_ARCH_MEMMOVE
518 bool "Use an assembly optimized implementation of memmove for SPL"
519 default y if USE_ARCH_MEMCPY
520 depends on SPL
521 help
522 Enable the generation of an optimized version of memmove.
523 Such an implementation may be faster under some conditions
524 but may increase the binary size.
525
526config TPL_USE_ARCH_MEMMOVE
527 bool "Use an assembly optimized implementation of memmove for TPL"
528 default y if USE_ARCH_MEMCPY
529 depends on TPL
530 help
531 Enable the generation of an optimized version of memmove.
532 Such an implementation may be faster under some conditions
533 but may increase the binary size.
534
535config USE_ARCH_MEMSET
536 bool "Use an assembly optimized implementation of memset"
537 default y
538 help
539 Enable the generation of an optimized version of memset.
540 Such an implementation may be faster under some conditions
541 but may increase the binary size.
542
543config SPL_USE_ARCH_MEMSET
544 bool "Use an assembly optimized implementation of memset for SPL"
545 default y if USE_ARCH_MEMSET
546 depends on SPL
547 help
548 Enable the generation of an optimized version of memset.
549 Such an implementation may be faster under some conditions
550 but may increase the binary size.
551
552config TPL_USE_ARCH_MEMSET
553 bool "Use an assembly optimized implementation of memset for TPL"
554 default y if USE_ARCH_MEMSET
555 depends on TPL
556 help
557 Enable the generation of an optimized version of memset.
558 Such an implementation may be faster under some conditions
559 but may increase the binary size.
560
Rick Chen64d4ead2017-12-26 13:55:52 +0800561endmenu
Bin Mengce64bd32021-05-13 16:46:18 +0800562
Randolphb1bc7a72023-10-12 14:35:04 +0800563config SPL_LOAD_FIT_OPENSBI_OS_BOOT
564 bool "Enable SPL (OpenSBI OS boot mode) applying linux from FIT"
565 depends on SPL_LOAD_FIT
566 help
567 Use fw_dynamic from the FIT image, and u-boot SPL will invoke it directly.
568 This is a shortcut boot flow, from u-boot SPL -> OpenSBI -> u-boot proper
569 -> linux to u-boot SPL -> OpenSBI -> linux.
570
Bin Mengce64bd32021-05-13 16:46:18 +0800571endmenu