blob: 876bec35bc19ebc4b90454f15678cc7fb33513d8 [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
24 bool "Support QEMU Virt Board"
Ɓ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
Rick Chenf94c44e2017-12-26 13:55:52 +080049endchoice
50
Trevor Woernera0aba8a2019-05-03 09:40:59 -040051config SYS_ICACHE_OFF
52 bool "Do not enable icache"
Trevor Woernera0aba8a2019-05-03 09:40:59 -040053 help
54 Do not enable instruction cache in U-Boot.
55
Trevor Woerner10015022019-05-03 09:41:00 -040056config SPL_SYS_ICACHE_OFF
57 bool "Do not enable icache in SPL"
58 depends on SPL
59 default SYS_ICACHE_OFF
60 help
61 Do not enable instruction cache in SPL.
62
Trevor Woernera0aba8a2019-05-03 09:40:59 -040063config SYS_DCACHE_OFF
64 bool "Do not enable dcache"
Trevor Woernera0aba8a2019-05-03 09:40:59 -040065 help
66 Do not enable data cache in U-Boot.
67
Trevor Woerner10015022019-05-03 09:41:00 -040068config SPL_SYS_DCACHE_OFF
69 bool "Do not enable dcache in SPL"
70 depends on SPL
71 default SYS_DCACHE_OFF
72 help
73 Do not enable data cache in SPL.
74
Shengyu Qud365f662023-08-09 21:11:31 +080075config SPL_ZERO_MEM_BEFORE_USE
76 bool "Zero memory before use"
77 depends on SPL
Shengyu Qud365f662023-08-09 21:11:31 +080078 help
79 Zero stack/GD/malloc area in SPL before using them, this is needed for
80 Sifive core devices that uses L2 cache to store SPL.
81
Rick Chen52923c62018-11-07 09:34:06 +080082# board-specific options below
Leo Yu-Chi Liang2b8dc362024-05-14 17:50:11 +080083source "board/andestech/ae350/Kconfig"
Bin Meng510e3792018-09-26 06:55:21 -070084source "board/emulation/qemu-riscv/Kconfig"
Padmarao Begari39494822019-05-28 15:47:51 +053085source "board/microchip/mpfs_icicle/Kconfig"
Samuel Hollanda6a77e42023-10-31 00:32:12 -050086source "board/openpiton/riscv64/Kconfig"
Bin Mengae2d9502021-03-17 11:10:58 +080087source "board/sifive/unleashed/Kconfig"
Green Wan70415e12021-05-27 06:52:13 -070088source "board/sifive/unmatched/Kconfig"
Sean Andersona7c81fc2020-06-24 06:41:25 -040089source "board/sipeed/maix/Kconfig"
Kongyang Liu0dc6ee62024-01-28 15:05:25 +080090source "board/sophgo/milkv_duo/Kconfig"
Yanhong Wang331ad932023-03-29 11:42:20 +080091source "board/starfive/visionfive2/Kconfig"
Samuel Hollanda6a77e42023-10-31 00:32:12 -050092source "board/thead/th1520_lpi4a/Kconfig"
Michal Simek7576ab22023-11-06 12:56:47 +010093source "board/xilinx/mbv/Kconfig"
Rick Chenf94c44e2017-12-26 13:55:52 +080094
Rick Chen52923c62018-11-07 09:34:06 +080095# platform-specific options below
Leo Yu-Chi Liang2b8dc362024-05-14 17:50:11 +080096source "arch/riscv/cpu/andes/Kconfig"
Kongyang Liuae800aa2024-03-10 00:54:56 +080097source "arch/riscv/cpu/cv1800b/Kconfig"
Pragnesh Patel7c45fc92020-05-29 11:33:34 +053098source "arch/riscv/cpu/fu540/Kconfig"
Green Wana74e9d82021-05-27 06:52:07 -070099source "arch/riscv/cpu/fu740/Kconfig"
Anup Patelfdff1f92019-02-25 08:14:10 +0000100source "arch/riscv/cpu/generic/Kconfig"
Yanhong Wang331ad932023-03-29 11:42:20 +0800101source "arch/riscv/cpu/jh7110/Kconfig"
Rick Chen52923c62018-11-07 09:34:06 +0800102
103# architecture-specific options below
104
Rick Chenf94c44e2017-12-26 13:55:52 +0800105choice
Lukas Auer862e2e72018-11-22 11:26:12 +0100106 prompt "Base ISA"
107 default ARCH_RV32I
Rick Chenf94c44e2017-12-26 13:55:52 +0800108
Lukas Auer862e2e72018-11-22 11:26:12 +0100109config ARCH_RV32I
110 bool "RV32I"
Rick Chenf94c44e2017-12-26 13:55:52 +0800111 select 32BIT
112 help
Lukas Auer862e2e72018-11-22 11:26:12 +0100113 Choose this option to target the RV32I base integer instruction set.
Rick Chenf94c44e2017-12-26 13:55:52 +0800114
Lukas Auer862e2e72018-11-22 11:26:12 +0100115config ARCH_RV64I
116 bool "RV64I"
Rick Chenf94c44e2017-12-26 13:55:52 +0800117 select 64BIT
Lukas Auer71158562018-11-22 11:26:13 +0100118 select PHYS_64BIT
Rick Chenf94c44e2017-12-26 13:55:52 +0800119 help
Lukas Auer862e2e72018-11-22 11:26:12 +0100120 Choose this option to target the RV64I base integer instruction set.
Rick Chenf94c44e2017-12-26 13:55:52 +0800121
122endchoice
123
Ben Dookse4f69492023-09-05 13:12:53 +0100124config FRAMEPOINTER
125 bool "Build with frame pointer for stack unwinding"
126 help
127 Choose this option to use the frame pointer so the stack can be
128 unwound if needed. This is useful for tracing where faults came
129 from as the source may be several functions back
130
131 If you say Y here, then the code size will be increased due to
132 having to store the fp.
133
134config SPL_FRAMEPOINTER
135 bool "Build SPL with frame pointer for stack unwinding"
Heinrich Schuchardtaeff27c2024-08-11 11:51:09 +0200136 depends on SPL
Ben Dookse4f69492023-09-05 13:12:53 +0100137 help
138 Choose this option to use the frame pointer so the stack can be
139 unwound if needed. This is useful for tracing where faults came
140 from as the source may be several functions back
141
142 If you say Y here, then the code size will be increased due to
143 having to store the fp.
144
Lukas Auer8176ea42018-12-12 06:12:23 -0800145choice
146 prompt "Code Model"
147 default CMODEL_MEDLOW
148
149config CMODEL_MEDLOW
150 bool "medium low code model"
151 help
152 U-Boot and its statically defined symbols must lie within a single 2 GiB
153 address range and must lie between absolute addresses -2 GiB and +2 GiB.
154
155config CMODEL_MEDANY
156 bool "medium any code model"
157 help
158 U-Boot and its statically defined symbols must be within any single 2 GiB
159 address range.
160
161endchoice
162
Anup Patel3cfc8252018-12-12 06:12:29 -0800163choice
164 prompt "Run Mode"
165 default RISCV_MMODE
166
167config RISCV_MMODE
168 bool "Machine"
169 help
170 Choose this option to build U-Boot for RISC-V M-Mode.
171
172config RISCV_SMODE
173 bool "Supervisor"
Heinrich Schuchardte637e452023-09-23 01:35:26 +0200174 imply DEBUG_UART
Anup Patel3cfc8252018-12-12 06:12:29 -0800175 help
176 Choose this option to build U-Boot for RISC-V S-Mode.
177
178endchoice
179
Lukas Auerfbfd92b2019-08-21 21:14:43 +0200180choice
181 prompt "SPL Run Mode"
182 default SPL_RISCV_MMODE
183 depends on SPL
184
185config SPL_RISCV_MMODE
186 bool "Machine"
187 help
188 Choose this option to build U-Boot SPL for RISC-V M-Mode.
189
190config SPL_RISCV_SMODE
191 bool "Supervisor"
192 help
193 Choose this option to build U-Boot SPL for RISC-V S-Mode.
194
195endchoice
196
Lukas Auerd57ffa62018-11-22 11:26:14 +0100197config RISCV_ISA_C
198 bool "Emit compressed instructions"
199 default y
200 help
201 Adds "C" to the ISA subsets that the toolchain is allowed to emit
202 when building U-Boot, which results in compressed instructions in the
203 U-Boot binary.
204
Heinrich Schuchardte67f34f2022-10-12 14:59:51 +0200205config RISCV_ISA_F
206 bool "Standard extension for Single-Precision Floating Point"
207 default y
208 help
209 Adds "F" to the ISA string passed to the compiler.
210
211config RISCV_ISA_D
212 bool "Standard extension for Double-Precision Floating Point"
213 depends on RISCV_ISA_F
214 default y
215 help
216 Adds "D" to the ISA string passed to the compiler and changes the
217 riscv32 ABI from ilp32 to ilp32d and the riscv64 ABI from lp64 to
218 lp64d.
219
Yu Chien Peter Linbc5a5042023-08-09 18:49:30 +0800220config RISCV_ISA_ZBB
221 bool "Zbb extension support for bit manipulation instructions"
222 help
223 Adds ZBB extension (basic bit manipulation) to the ISA subsets
224 that the toolchain is allowed to emit when building U-Boot.
225 The Zbb extension provides instructions to accelerate a number
226 of bit-specific operations (count bit population, sign extending,
227 bitrotation, etc) and enables optimized string routines.
228
229menu "Use assembly optimized implementation of string routines"
230
231config USE_ARCH_STRLEN
232 bool "Use an assembly optimized implementation of strlen"
233 default y
234 depends on RISCV_ISA_ZBB
235 help
236 Enable the generation of an optimized version of strlen using
237 Zbb extension.
238
239config SPL_USE_ARCH_STRLEN
240 bool "Use an assembly optimized implementation of strlen for SPL"
241 default y if USE_ARCH_STRLEN
242 depends on RISCV_ISA_ZBB
243 depends on SPL
244 help
245 Enable the generation of an optimized version of strlen using
246 Zbb extension.
247
248config TPL_USE_ARCH_STRLEN
249 bool "Use an assembly optimized implementation of strlen for TPL"
250 default y if USE_ARCH_STRLEN
251 depends on RISCV_ISA_ZBB
252 depends on TPL
253 help
254 Enable the generation of an optimized version of strlen using
255 Zbb extension.
256
257config USE_ARCH_STRCMP
258 bool "Use an assembly optimized implementation of strcmp"
259 default y
260 depends on RISCV_ISA_ZBB
261 help
262 Enable the generation of an optimized version of strcmp using
263 Zbb extension.
264
265config SPL_USE_ARCH_STRCMP
266 bool "Use an assembly optimized implementation of strcmp for SPL"
267 default y if USE_ARCH_STRCMP
268 depends on RISCV_ISA_ZBB
269 depends on SPL
270 help
271 Enable the generation of an optimized version of strcmp using
272 Zbb extension.
273
274config TPL_USE_ARCH_STRCMP
275 bool "Use an assembly optimized implementation of strcmp for TPL"
276 default y if USE_ARCH_STRCMP
277 depends on RISCV_ISA_ZBB
278 depends on TPL
279 help
280 Enable the generation of an optimized version of strcmp using
281 Zbb extension.
282
283config USE_ARCH_STRNCMP
284 bool "Use an assembly optimized implementation of strncmp"
285 default y
286 depends on RISCV_ISA_ZBB
287 help
288 Enable the generation of an optimized version of strncmp using
289 Zbb extension.
290
291config SPL_USE_ARCH_STRNCMP
292 bool "Use an assembly optimized implementation of strncmp for SPL"
293 default y if USE_ARCH_STRNCMP
294 depends on RISCV_ISA_ZBB
295 depends on SPL
296 help
297 Enable the generation of an optimized version of strncmp using
298 Zbb extension.
299
300config TPL_USE_ARCH_STRNCMP
301 bool "Use an assembly optimized implementation of strncmp for TPL"
302 default y if USE_ARCH_STRNCMP
303 depends on RISCV_ISA_ZBB
304 depends on TPL
305 help
306 Enable the generation of an optimized version of strncmp using
307 Zbb extension.
308
309endmenu
310
Lukas Auerd57ffa62018-11-22 11:26:14 +0100311config RISCV_ISA_A
312 def_bool y
313
Padmarao Begari5af35742021-01-15 08:20:35 +0530314config DMA_ADDR_T_64BIT
315 bool
316 default y if 64BIT
317
Bin Meng9675d922023-06-21 23:11:46 +0800318config RISCV_ACLINT
Bin Meng644a3cd2018-12-12 06:12:30 -0800319 bool
Bin Menga6d7e8c2021-05-11 20:04:12 +0800320 depends on RISCV_MMODE
Bin Meng7f1a30f2023-06-21 23:11:45 +0800321 select REGMAP
322 select SYSCON
Bin Menga6d7e8c2021-05-11 20:04:12 +0800323 help
Bin Meng9675d922023-06-21 23:11:46 +0800324 The RISC-V ACLINT block holds memory-mapped control and status registers
Bin Menga6d7e8c2021-05-11 20:04:12 +0800325 associated with software and timer interrupts.
326
Bin Meng9675d922023-06-21 23:11:46 +0800327config SPL_RISCV_ACLINT
Bin Menga6d7e8c2021-05-11 20:04:12 +0800328 bool
329 depends on SPL_RISCV_MMODE
Bin Meng7f1a30f2023-06-21 23:11:45 +0800330 select SPL_REGMAP
331 select SPL_SYSCON
Bin Meng644a3cd2018-12-12 06:12:30 -0800332 help
Bin Meng9675d922023-06-21 23:11:46 +0800333 The RISC-V ACLINT block holds memory-mapped control and status registers
Bin Meng644a3cd2018-12-12 06:12:30 -0800334 associated with software and timer interrupts.
335
Zong Li213ed172021-09-01 15:01:41 +0800336config SIFIVE_CACHE
337 bool
338 help
339 This enables the operations to configure SiFive cache
340
Yu Chien Peter Lina5dfa3b2022-10-25 23:03:50 +0800341config ANDES_PLICSW
Rick Chen0d389462019-04-02 15:56:39 +0800342 bool
Lukas Auerfbfd92b2019-08-21 21:14:43 +0200343 depends on RISCV_MMODE || SPL_RISCV_MMODE
Rick Chen0d389462019-04-02 15:56:39 +0800344 select REGMAP
345 select SYSCON
Lukas Auerfbfd92b2019-08-21 21:14:43 +0200346 select SPL_REGMAP if SPL
347 select SPL_SYSCON if SPL
Rick Chen0d389462019-04-02 15:56:39 +0800348 help
Yu Chien Peter Lina5dfa3b2022-10-25 23:03:50 +0800349 The Andes PLICSW block holds memory-mapped claim and pending
350 registers associated with software interrupt.
Rick Chen0d389462019-04-02 15:56:39 +0800351
Lukas Auerfa33f082019-03-17 19:28:32 +0100352config SMP
353 bool "Symmetric Multi-Processing"
Bin Meng6fa022e2020-04-16 08:09:31 -0700354 depends on SBI_V01 || !RISCV_SMODE
Lukas Auerfa33f082019-03-17 19:28:32 +0100355 help
356 This enables support for systems with more than one CPU. If
357 you say N here, U-Boot will run on single and multiprocessor
358 machines, but will use only one CPU of a multiprocessor
359 machine. If you say Y here, U-Boot will run on many, but not
360 all, single processor machines.
361
Bin Meng191636e2020-04-16 08:09:30 -0700362config SPL_SMP
363 bool "Symmetric Multi-Processing in SPL"
364 depends on SPL && SPL_RISCV_MMODE
365 default y
366 help
367 This enables support for systems with more than one CPU in SPL.
368 If you say N here, U-Boot SPL will run on single and multiprocessor
369 machines, but will use only one CPU of a multiprocessor
370 machine. If you say Y here, U-Boot SPL will run on many, but not
371 all, single processor machines.
372
Lukas Auerfa33f082019-03-17 19:28:32 +0100373config NR_CPUS
374 int "Maximum number of CPUs (2-32)"
375 range 2 32
Bin Meng191636e2020-04-16 08:09:30 -0700376 depends on SMP || SPL_SMP
Lukas Auerfa33f082019-03-17 19:28:32 +0100377 default 8
378 help
379 On multiprocessor machines, U-Boot sets up a stack for each CPU.
380 Stack memory is pre-allocated. U-Boot must therefore know the
381 maximum number of CPUs that may be present.
382
Bin Mengf58fc342020-03-09 19:35:28 -0700383config SBI
384 bool
385 default y if RISCV_SMODE || SPL_RISCV_SMODE
386
Bin Mengff0fa6c2020-04-16 08:09:32 -0700387choice
388 prompt "SBI support"
Bin Mengfa16ec22020-04-16 08:09:33 -0700389 default SBI_V02
Bin Mengff0fa6c2020-04-16 08:09:32 -0700390
Bin Meng1b3c8d62020-03-09 19:35:30 -0700391config SBI_V01
392 bool "SBI v0.1 support"
Bin Meng1b3c8d62020-03-09 19:35:30 -0700393 depends on SBI
394 help
395 This config allows kernel to use SBI v0.1 APIs. This will be
396 deprecated in future once legacy M-mode software are no longer in use.
397
Bin Mengff0fa6c2020-04-16 08:09:32 -0700398config SBI_V02
Heinrich Schuchardt5c894672022-11-08 15:53:12 +0100399 bool "SBI v0.2 or later support"
Bin Mengff0fa6c2020-04-16 08:09:32 -0700400 depends on SBI
401 help
Heinrich Schuchardt5c894672022-11-08 15:53:12 +0100402 The SBI specification introduced the concept of extensions in version
403 v0.2. With this configuration option U-Boot can detect and use SBI
404 extensions. With the HSM extension introduced in SBI 0.2, only a
405 single hart needs to boot and enter the operating system. The booting
406 hart can bring up secondary harts one by one afterwards.
Bin Mengff0fa6c2020-04-16 08:09:32 -0700407
Heinrich Schuchardt5c894672022-11-08 15:53:12 +0100408 Choose this option if OpenSBI release v0.7 or above is used together
Bin Mengff0fa6c2020-04-16 08:09:32 -0700409 with U-Boot.
410
411endchoice
412
Lukas Auerf152feb2019-03-17 19:28:34 +0100413config SBI_IPI
414 bool
Bin Mengf58fc342020-03-09 19:35:28 -0700415 depends on SBI
Lukas Auerfbfd92b2019-08-21 21:14:43 +0200416 default y if RISCV_SMODE || SPL_RISCV_SMODE
Lukas Auerf152feb2019-03-17 19:28:34 +0100417 depends on SMP
418
Rick Chenbdce3892019-04-30 13:49:33 +0800419config XIP
420 bool "XIP mode"
421 help
422 XIP (eXecute In Place) is a method for executing code directly
423 from a NOR flash memory without copying the code to ram.
424 Say yes here if U-Boot boots from flash directly.
425
Nikita Shubinc2bdf022022-09-02 11:47:39 +0300426config SPL_XIP
427 bool "Enable XIP mode for SPL"
428 help
429 If SPL starts in read-only memory (XIP for example) then we shouldn't
430 rely on lock variables (for example hart_lottery and available_harts_lock),
431 this affects only SPL, other stages should proceed as non-XIP.
432
Rick Chene0465f82022-09-21 14:34:54 +0800433config AVAILABLE_HARTS
434 bool "Send IPI by available harts"
435 default y
436 help
437 By default, IPI sending mechanism will depend on available_harts.
438 If disable this, it will send IPI by CPUs node numbers of device tree.
439
Sean Andersonfd1f6e92019-12-25 00:27:44 -0500440config SHOW_REGS
Heinrich Schuchardt4a36d212024-08-11 13:01:04 +0200441 default y
Sean Andersonfd1f6e92019-12-25 00:27:44 -0500442 bool "Show registers on unhandled exception"
Heinrich Schuchardt73e73f02024-08-11 13:01:03 +0200443 help
444 By default only the program counter and the return address register
445 are shown in crash dumps. Enable this symbol to show all registers in
446 main U-Boot.
447
448config SPL_SHOW_REGS
449 bool "In SPL show registers on unhandled exception"
450 depends on SPL
451 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 SPL.
Sean Andersonfd1f6e92019-12-25 00:27:44 -0500455
Sean Andersonb8bc1202020-06-24 06:41:19 -0400456config RISCV_PRIV_1_9
457 bool "Use version 1.9 of the RISC-V priviledged specification"
458 help
459 Older versions of the RISC-V priviledged specification had
460 separate counter enable CSRs for each privilege mode. Writing
461 to the unified mcounteren CSR on a processor implementing the
462 old specification will result in an illegal instruction
463 exception. In addition to counter CSR changes, the way virtual
464 memory is configured was also changed.
465
Lukas Auer3dea63c2019-03-17 19:28:37 +0100466config STACK_SIZE_SHIFT
467 int
Lukas Auer6b20dc12019-10-20 20:53:47 +0200468 default 14
Lukas Auer3dea63c2019-03-17 19:28:37 +0100469
Bin Meng1c17e552020-06-25 18:16:08 -0700470config OF_BOARD_FIXUP
Sean Anderson32cef692020-09-05 09:22:11 -0400471 default y if OF_SEPARATE && RISCV_SMODE
Bin Meng1c17e552020-06-25 18:16:08 -0700472
Bin Meng89419272021-05-13 16:46:18 +0800473menu "Use assembly optimized implementation of memory routines"
474
Heinrich Schuchardt8f0dc4c2021-03-27 12:37:04 +0100475config USE_ARCH_MEMCPY
476 bool "Use an assembly optimized implementation of memcpy"
477 default y
478 help
479 Enable the generation of an optimized version of memcpy.
480 Such an implementation may be faster under some conditions
481 but may increase the binary size.
482
483config SPL_USE_ARCH_MEMCPY
484 bool "Use an assembly optimized implementation of memcpy for SPL"
485 default y if USE_ARCH_MEMCPY
486 depends on SPL
487 help
488 Enable the generation of an optimized version of memcpy.
489 Such an implementation may be faster under some conditions
490 but may increase the binary size.
491
492config TPL_USE_ARCH_MEMCPY
493 bool "Use an assembly optimized implementation of memcpy for TPL"
494 default y if USE_ARCH_MEMCPY
495 depends on TPL
496 help
497 Enable the generation of an optimized version of memcpy.
498 Such an implementation may be faster under some conditions
499 but may increase the binary size.
500
501config USE_ARCH_MEMMOVE
502 bool "Use an assembly optimized implementation of memmove"
503 default y
504 help
505 Enable the generation of an optimized version of memmove.
506 Such an implementation may be faster under some conditions
507 but may increase the binary size.
508
509config SPL_USE_ARCH_MEMMOVE
510 bool "Use an assembly optimized implementation of memmove for SPL"
511 default y if USE_ARCH_MEMCPY
512 depends on SPL
513 help
514 Enable the generation of an optimized version of memmove.
515 Such an implementation may be faster under some conditions
516 but may increase the binary size.
517
518config TPL_USE_ARCH_MEMMOVE
519 bool "Use an assembly optimized implementation of memmove for TPL"
520 default y if USE_ARCH_MEMCPY
521 depends on TPL
522 help
523 Enable the generation of an optimized version of memmove.
524 Such an implementation may be faster under some conditions
525 but may increase the binary size.
526
527config USE_ARCH_MEMSET
528 bool "Use an assembly optimized implementation of memset"
529 default y
530 help
531 Enable the generation of an optimized version of memset.
532 Such an implementation may be faster under some conditions
533 but may increase the binary size.
534
535config SPL_USE_ARCH_MEMSET
536 bool "Use an assembly optimized implementation of memset for SPL"
537 default y if USE_ARCH_MEMSET
538 depends on SPL
539 help
540 Enable the generation of an optimized version of memset.
541 Such an implementation may be faster under some conditions
542 but may increase the binary size.
543
544config TPL_USE_ARCH_MEMSET
545 bool "Use an assembly optimized implementation of memset for TPL"
546 default y if USE_ARCH_MEMSET
547 depends on TPL
548 help
549 Enable the generation of an optimized version of memset.
550 Such an implementation may be faster under some conditions
551 but may increase the binary size.
552
Rick Chenf94c44e2017-12-26 13:55:52 +0800553endmenu
Bin Meng89419272021-05-13 16:46:18 +0800554
Randolphe09a2282023-10-12 14:35:04 +0800555config SPL_LOAD_FIT_OPENSBI_OS_BOOT
556 bool "Enable SPL (OpenSBI OS boot mode) applying linux from FIT"
557 depends on SPL_LOAD_FIT
558 help
559 Use fw_dynamic from the FIT image, and u-boot SPL will invoke it directly.
560 This is a shortcut boot flow, from u-boot SPL -> OpenSBI -> u-boot proper
561 -> linux to u-boot SPL -> OpenSBI -> linux.
562
Bin Meng89419272021-05-13 16:46:18 +0800563endmenu