blob: a73fe510f73dc48625690550b3b0d497166cf789 [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
Thomas Bonnefillefcef2ad2024-11-12 15:57:38 +010014config TARGET_LICHEERV_NANO
15 bool "Support LicheeRV Nano Board"
16
Padmarao Begari4216f342019-05-28 15:47:51 +053017config TARGET_MICROCHIP_ICICLE
18 bool "Support Microchip PolarFire-SoC Icicle Board"
19
Kongyang Liub64fc0e2024-01-28 15:05:25 +080020config TARGET_MILKV_DUO
21 bool "Support Milk-v Duo Board"
22
Samuel Hollandbd6a54c2023-10-31 00:32:12 -050023config TARGET_OPENPITON_RISCV64
24 bool "Support RISC-V cores on OpenPiton SoC"
25
Bin Meng8a8694d2018-09-26 06:55:21 -070026config TARGET_QEMU_VIRT
LekKit94ff33a2024-09-22 13:11:02 +030027 bool "Support QEMU Virt & RVVM Boards"
Ɓukasz Stelmach1b100e52024-03-28 10:58:24 +010028 select BOARD_LATE_INIT
Bin Meng8a8694d2018-09-26 06:55:21 -070029
Bin Menge9ead4a2021-03-17 11:10:58 +080030config TARGET_SIFIVE_UNLEASHED
31 bool "Support SiFive Unleashed Board"
Anup Patel7a167f22019-02-25 08:15:19 +000032
Green Wan2e5da522021-05-27 06:52:13 -070033config TARGET_SIFIVE_UNMATCHED
34 bool "Support SiFive Unmatched Board"
Tom Rini3ef67ae2021-08-26 11:47:59 -040035 select SYS_CACHE_SHIFT_6
Green Wan2e5da522021-05-27 06:52:13 -070036
Samuel Hollandbd6a54c2023-10-31 00:32:12 -050037config TARGET_SIPEED_MAIX
38 bool "Support Sipeed Maix Board"
39 select SYS_CACHE_SHIFT_6
40
Yanhong Wang38678792023-03-29 11:42:20 +080041config TARGET_STARFIVE_VISIONFIVE2
42 bool "Support StarFive VisionFive2 Board"
Heinrich Schuchardt03a885b2023-09-07 13:21:28 +020043 select BOARD_LATE_INIT
Yanhong Wang38678792023-03-29 11:42:20 +080044
Yixun Lan5dfa9012023-07-08 19:24:32 +080045config TARGET_TH1520_LPI4A
46 bool "Support Sipeed's TH1520 Lichee PI 4A Board"
47 select SYS_CACHE_SHIFT_6
48
Michal Simek962c10a2023-11-06 12:56:47 +010049config TARGET_XILINX_MBV
50 bool "Support AMD/Xilinx MicroBlaze V"
51
Chia-Wei Wang1c7ed532024-09-10 17:39:16 +080052config TARGET_ASPEED_AST2700_IBEX
53 bool "Support Ibex RISC-V cores on Aspeed AST2700 SoC"
54
Rick Chen64d4ead2017-12-26 13:55:52 +080055endchoice
56
Trevor Woernerba64b8b2019-05-03 09:40:59 -040057config SYS_ICACHE_OFF
58 bool "Do not enable icache"
Trevor Woernerba64b8b2019-05-03 09:40:59 -040059 help
60 Do not enable instruction cache in U-Boot.
61
Trevor Woerner43ec7e02019-05-03 09:41:00 -040062config SPL_SYS_ICACHE_OFF
63 bool "Do not enable icache in SPL"
64 depends on SPL
65 default SYS_ICACHE_OFF
66 help
67 Do not enable instruction cache in SPL.
68
Trevor Woernerba64b8b2019-05-03 09:40:59 -040069config SYS_DCACHE_OFF
70 bool "Do not enable dcache"
Trevor Woernerba64b8b2019-05-03 09:40:59 -040071 help
72 Do not enable data cache in U-Boot.
73
Trevor Woerner43ec7e02019-05-03 09:41:00 -040074config SPL_SYS_DCACHE_OFF
75 bool "Do not enable dcache in SPL"
76 depends on SPL
77 default SYS_DCACHE_OFF
78 help
79 Do not enable data cache in SPL.
80
Shengyu Qud1a32542023-08-09 21:11:31 +080081config SPL_ZERO_MEM_BEFORE_USE
82 bool "Zero memory before use"
83 depends on SPL
Shengyu Qud1a32542023-08-09 21:11:31 +080084 help
85 Zero stack/GD/malloc area in SPL before using them, this is needed for
86 Sifive core devices that uses L2 cache to store SPL.
87
Rick Chen842d5802018-11-07 09:34:06 +080088# board-specific options below
Leo Yu-Chi Liang5d0bbea2024-05-14 17:50:11 +080089source "board/andestech/ae350/Kconfig"
Chia-Wei Wang1c7ed532024-09-10 17:39:16 +080090source "board/aspeed/ibex_ast2700/Kconfig"
Bin Meng8a8694d2018-09-26 06:55:21 -070091source "board/emulation/qemu-riscv/Kconfig"
Padmarao Begari4216f342019-05-28 15:47:51 +053092source "board/microchip/mpfs_icicle/Kconfig"
Samuel Hollandbd6a54c2023-10-31 00:32:12 -050093source "board/openpiton/riscv64/Kconfig"
Bin Menge9ead4a2021-03-17 11:10:58 +080094source "board/sifive/unleashed/Kconfig"
Green Wan2e5da522021-05-27 06:52:13 -070095source "board/sifive/unmatched/Kconfig"
Sean Andersonedc32ab2020-06-24 06:41:25 -040096source "board/sipeed/maix/Kconfig"
Kongyang Liub64fc0e2024-01-28 15:05:25 +080097source "board/sophgo/milkv_duo/Kconfig"
Thomas Bonnefillefcef2ad2024-11-12 15:57:38 +010098source "board/sophgo/licheerv_nano/Kconfig"
Yanhong Wang38678792023-03-29 11:42:20 +080099source "board/starfive/visionfive2/Kconfig"
Samuel Hollandbd6a54c2023-10-31 00:32:12 -0500100source "board/thead/th1520_lpi4a/Kconfig"
Michal Simek962c10a2023-11-06 12:56:47 +0100101source "board/xilinx/mbv/Kconfig"
Rick Chen64d4ead2017-12-26 13:55:52 +0800102
Rick Chen842d5802018-11-07 09:34:06 +0800103# platform-specific options below
Leo Yu-Chi Liang5d0bbea2024-05-14 17:50:11 +0800104source "arch/riscv/cpu/andes/Kconfig"
Kongyang Liuf7526742024-03-10 00:54:56 +0800105source "arch/riscv/cpu/cv1800b/Kconfig"
Pragnesh Patel25269c02020-05-29 11:33:34 +0530106source "arch/riscv/cpu/fu540/Kconfig"
Green Wan7f337432021-05-27 06:52:07 -0700107source "arch/riscv/cpu/fu740/Kconfig"
Chia-Wei Wang1c7ed532024-09-10 17:39:16 +0800108source "arch/riscv/cpu/ast2700/Kconfig"
Anup Patel1240cd62019-02-25 08:14:10 +0000109source "arch/riscv/cpu/generic/Kconfig"
Yanhong Wang38678792023-03-29 11:42:20 +0800110source "arch/riscv/cpu/jh7110/Kconfig"
Rick Chen842d5802018-11-07 09:34:06 +0800111
112# architecture-specific options below
113
Rick Chen64d4ead2017-12-26 13:55:52 +0800114choice
Lukas Auer54ebfe72018-11-22 11:26:12 +0100115 prompt "Base ISA"
116 default ARCH_RV32I
Rick Chen64d4ead2017-12-26 13:55:52 +0800117
Lukas Auer54ebfe72018-11-22 11:26:12 +0100118config ARCH_RV32I
119 bool "RV32I"
Rick Chen64d4ead2017-12-26 13:55:52 +0800120 select 32BIT
121 help
Lukas Auer54ebfe72018-11-22 11:26:12 +0100122 Choose this option to target the RV32I base integer instruction set.
Rick Chen64d4ead2017-12-26 13:55:52 +0800123
Lukas Auer54ebfe72018-11-22 11:26:12 +0100124config ARCH_RV64I
125 bool "RV64I"
Rick Chen64d4ead2017-12-26 13:55:52 +0800126 select 64BIT
Lukas Auer7ab1df02018-11-22 11:26:13 +0100127 select PHYS_64BIT
Rick Chen64d4ead2017-12-26 13:55:52 +0800128 help
Lukas Auer54ebfe72018-11-22 11:26:12 +0100129 Choose this option to target the RV64I base integer instruction set.
Rick Chen64d4ead2017-12-26 13:55:52 +0800130
131endchoice
132
Ben Dooks8a813c12023-09-05 13:12:53 +0100133config FRAMEPOINTER
134 bool "Build with frame pointer for stack unwinding"
135 help
136 Choose this option to use the frame pointer so the stack can be
137 unwound if needed. This is useful for tracing where faults came
138 from as the source may be several functions back
139
140 If you say Y here, then the code size will be increased due to
141 having to store the fp.
142
143config SPL_FRAMEPOINTER
144 bool "Build SPL with frame pointer for stack unwinding"
Heinrich Schuchardt512d41c2024-08-11 11:51:09 +0200145 depends on SPL
Ben Dooks8a813c12023-09-05 13:12:53 +0100146 help
147 Choose this option to use the frame pointer so the stack can be
148 unwound if needed. This is useful for tracing where faults came
149 from as the source may be several functions back
150
151 If you say Y here, then the code size will be increased due to
152 having to store the fp.
153
Lukas Auerecc5d832018-12-12 06:12:23 -0800154choice
155 prompt "Code Model"
156 default CMODEL_MEDLOW
157
158config CMODEL_MEDLOW
159 bool "medium low code model"
160 help
161 U-Boot and its statically defined symbols must lie within a single 2 GiB
162 address range and must lie between absolute addresses -2 GiB and +2 GiB.
163
164config CMODEL_MEDANY
165 bool "medium any code model"
166 help
167 U-Boot and its statically defined symbols must be within any single 2 GiB
168 address range.
169
170endchoice
171
Anup Patel27881772018-12-12 06:12:29 -0800172choice
173 prompt "Run Mode"
174 default RISCV_MMODE
175
176config RISCV_MMODE
177 bool "Machine"
178 help
179 Choose this option to build U-Boot for RISC-V M-Mode.
180
181config RISCV_SMODE
182 bool "Supervisor"
Heinrich Schuchardt20964b62023-09-23 01:35:26 +0200183 imply DEBUG_UART
Anup Patel27881772018-12-12 06:12:29 -0800184 help
185 Choose this option to build U-Boot for RISC-V S-Mode.
186
187endchoice
188
Lukas Auer61346592019-08-21 21:14:43 +0200189choice
190 prompt "SPL Run Mode"
191 default SPL_RISCV_MMODE
192 depends on SPL
193
194config SPL_RISCV_MMODE
195 bool "Machine"
196 help
197 Choose this option to build U-Boot SPL for RISC-V M-Mode.
198
199config SPL_RISCV_SMODE
200 bool "Supervisor"
201 help
202 Choose this option to build U-Boot SPL for RISC-V S-Mode.
203
204endchoice
205
Lukas Auer002012f2018-11-22 11:26:14 +0100206config RISCV_ISA_C
207 bool "Emit compressed instructions"
208 default y
209 help
210 Adds "C" to the ISA subsets that the toolchain is allowed to emit
211 when building U-Boot, which results in compressed instructions in the
212 U-Boot binary.
213
Heinrich Schuchardtc66c9502022-10-12 14:59:51 +0200214config RISCV_ISA_F
215 bool "Standard extension for Single-Precision Floating Point"
216 default y
217 help
218 Adds "F" to the ISA string passed to the compiler.
219
220config RISCV_ISA_D
221 bool "Standard extension for Double-Precision Floating Point"
222 depends on RISCV_ISA_F
223 default y
224 help
225 Adds "D" to the ISA string passed to the compiler and changes the
226 riscv32 ABI from ilp32 to ilp32d and the riscv64 ABI from lp64 to
227 lp64d.
228
Yu Chien Peter Lin60814cb2023-08-09 18:49:30 +0800229config RISCV_ISA_ZBB
230 bool "Zbb extension support for bit manipulation instructions"
231 help
232 Adds ZBB extension (basic bit manipulation) to the ISA subsets
233 that the toolchain is allowed to emit when building U-Boot.
234 The Zbb extension provides instructions to accelerate a number
235 of bit-specific operations (count bit population, sign extending,
236 bitrotation, etc) and enables optimized string routines.
237
238menu "Use assembly optimized implementation of string routines"
239
240config USE_ARCH_STRLEN
241 bool "Use an assembly optimized implementation of strlen"
242 default y
243 depends on RISCV_ISA_ZBB
244 help
245 Enable the generation of an optimized version of strlen using
246 Zbb extension.
247
248config SPL_USE_ARCH_STRLEN
249 bool "Use an assembly optimized implementation of strlen for SPL"
250 default y if USE_ARCH_STRLEN
251 depends on RISCV_ISA_ZBB
252 depends on SPL
253 help
254 Enable the generation of an optimized version of strlen using
255 Zbb extension.
256
257config TPL_USE_ARCH_STRLEN
258 bool "Use an assembly optimized implementation of strlen for TPL"
259 default y if USE_ARCH_STRLEN
260 depends on RISCV_ISA_ZBB
261 depends on TPL
262 help
263 Enable the generation of an optimized version of strlen using
264 Zbb extension.
265
266config USE_ARCH_STRCMP
267 bool "Use an assembly optimized implementation of strcmp"
268 default y
269 depends on RISCV_ISA_ZBB
270 help
271 Enable the generation of an optimized version of strcmp using
272 Zbb extension.
273
274config SPL_USE_ARCH_STRCMP
275 bool "Use an assembly optimized implementation of strcmp for SPL"
276 default y if USE_ARCH_STRCMP
277 depends on RISCV_ISA_ZBB
278 depends on SPL
279 help
280 Enable the generation of an optimized version of strcmp using
281 Zbb extension.
282
283config TPL_USE_ARCH_STRCMP
284 bool "Use an assembly optimized implementation of strcmp for TPL"
285 default y if USE_ARCH_STRCMP
286 depends on RISCV_ISA_ZBB
287 depends on TPL
288 help
289 Enable the generation of an optimized version of strcmp using
290 Zbb extension.
291
292config USE_ARCH_STRNCMP
293 bool "Use an assembly optimized implementation of strncmp"
294 default y
295 depends on RISCV_ISA_ZBB
296 help
297 Enable the generation of an optimized version of strncmp using
298 Zbb extension.
299
300config SPL_USE_ARCH_STRNCMP
301 bool "Use an assembly optimized implementation of strncmp for SPL"
302 default y if USE_ARCH_STRNCMP
303 depends on RISCV_ISA_ZBB
304 depends on SPL
305 help
306 Enable the generation of an optimized version of strncmp using
307 Zbb extension.
308
309config TPL_USE_ARCH_STRNCMP
310 bool "Use an assembly optimized implementation of strncmp for TPL"
311 default y if USE_ARCH_STRNCMP
312 depends on RISCV_ISA_ZBB
313 depends on TPL
314 help
315 Enable the generation of an optimized version of strncmp using
316 Zbb extension.
317
318endmenu
319
Lukas Auer002012f2018-11-22 11:26:14 +0100320config RISCV_ISA_A
Chia-Wei Wang6eda8742024-09-10 17:39:13 +0800321 bool "Standard extension for Atomic Instructions"
322 default y
323 help
324 Adds "A" to the ISA string passed to the compiler.
Lukas Auer002012f2018-11-22 11:26:14 +0100325
Mayuresh Chitalec3abcaa2024-08-23 09:41:26 +0000326config RISCV_ISA_ZICBOM
327 bool "Zicbom support"
328 depends on !SYS_DISABLE_DCACHE_OPS
329
Padmarao Begaria235d432021-01-15 08:20:35 +0530330config DMA_ADDR_T_64BIT
331 bool
332 default y if 64BIT
333
Bin Mengb5f03722023-06-21 23:11:46 +0800334config RISCV_ACLINT
Bin Mengb6ee5e12018-12-12 06:12:30 -0800335 bool
Bin Meng614b1d82021-05-11 20:04:12 +0800336 depends on RISCV_MMODE
Bin Meng08b8d262023-06-21 23:11:45 +0800337 select REGMAP
338 select SYSCON
Bin Meng614b1d82021-05-11 20:04:12 +0800339 help
Bin Mengb5f03722023-06-21 23:11:46 +0800340 The RISC-V ACLINT block holds memory-mapped control and status registers
Bin Meng614b1d82021-05-11 20:04:12 +0800341 associated with software and timer interrupts.
342
Bin Mengb5f03722023-06-21 23:11:46 +0800343config SPL_RISCV_ACLINT
Bin Meng614b1d82021-05-11 20:04:12 +0800344 bool
345 depends on SPL_RISCV_MMODE
Bin Meng08b8d262023-06-21 23:11:45 +0800346 select SPL_REGMAP
347 select SPL_SYSCON
Bin Mengb6ee5e12018-12-12 06:12:30 -0800348 help
Bin Mengb5f03722023-06-21 23:11:46 +0800349 The RISC-V ACLINT block holds memory-mapped control and status registers
Bin Mengb6ee5e12018-12-12 06:12:30 -0800350 associated with software and timer interrupts.
351
Zong Lic39544c2021-09-01 15:01:41 +0800352config SIFIVE_CACHE
353 bool
354 help
355 This enables the operations to configure SiFive cache
356
Yu Chien Peter Lin739cd6f2022-10-25 23:03:50 +0800357config ANDES_PLICSW
Rick Chen6df4ed02019-04-02 15:56:39 +0800358 bool
Lukas Auer61346592019-08-21 21:14:43 +0200359 depends on RISCV_MMODE || SPL_RISCV_MMODE
Rick Chen6df4ed02019-04-02 15:56:39 +0800360 select REGMAP
361 select SYSCON
Lukas Auer61346592019-08-21 21:14:43 +0200362 select SPL_REGMAP if SPL
363 select SPL_SYSCON if SPL
Rick Chen6df4ed02019-04-02 15:56:39 +0800364 help
Yu Chien Peter Lin739cd6f2022-10-25 23:03:50 +0800365 The Andes PLICSW block holds memory-mapped claim and pending
366 registers associated with software interrupt.
Rick Chen6df4ed02019-04-02 15:56:39 +0800367
Lukas Auer83d573d2019-03-17 19:28:32 +0100368config SMP
369 bool "Symmetric Multi-Processing"
Bin Meng49975222020-04-16 08:09:31 -0700370 depends on SBI_V01 || !RISCV_SMODE
Lukas Auer83d573d2019-03-17 19:28:32 +0100371 help
372 This enables support for systems with more than one CPU. If
373 you say N here, U-Boot will run on single and multiprocessor
374 machines, but will use only one CPU of a multiprocessor
375 machine. If you say Y here, U-Boot will run on many, but not
376 all, single processor machines.
377
Bin Mengb161f902020-04-16 08:09:30 -0700378config SPL_SMP
379 bool "Symmetric Multi-Processing in SPL"
380 depends on SPL && SPL_RISCV_MMODE
381 default y
382 help
383 This enables support for systems with more than one CPU in SPL.
384 If you say N here, U-Boot SPL will run on single and multiprocessor
385 machines, but will use only one CPU of a multiprocessor
386 machine. If you say Y here, U-Boot SPL will run on many, but not
387 all, single processor machines.
388
Lukas Auer83d573d2019-03-17 19:28:32 +0100389config NR_CPUS
390 int "Maximum number of CPUs (2-32)"
391 range 2 32
Bin Mengb161f902020-04-16 08:09:30 -0700392 depends on SMP || SPL_SMP
Lukas Auer83d573d2019-03-17 19:28:32 +0100393 default 8
394 help
395 On multiprocessor machines, U-Boot sets up a stack for each CPU.
396 Stack memory is pre-allocated. U-Boot must therefore know the
397 maximum number of CPUs that may be present.
398
Bin Mengee3bcd02020-03-09 19:35:28 -0700399config SBI
400 bool
401 default y if RISCV_SMODE || SPL_RISCV_SMODE
402
Bin Menga75325e2020-04-16 08:09:32 -0700403choice
404 prompt "SBI support"
Bin Meng3aecc4b2020-04-16 08:09:33 -0700405 default SBI_V02
Bin Menga75325e2020-04-16 08:09:32 -0700406
Bin Meng887d8092020-03-09 19:35:30 -0700407config SBI_V01
408 bool "SBI v0.1 support"
Bin Meng887d8092020-03-09 19:35:30 -0700409 depends on SBI
410 help
411 This config allows kernel to use SBI v0.1 APIs. This will be
412 deprecated in future once legacy M-mode software are no longer in use.
413
Bin Menga75325e2020-04-16 08:09:32 -0700414config SBI_V02
Heinrich Schuchardt693baee2022-11-08 15:53:12 +0100415 bool "SBI v0.2 or later support"
Bin Menga75325e2020-04-16 08:09:32 -0700416 depends on SBI
417 help
Heinrich Schuchardt693baee2022-11-08 15:53:12 +0100418 The SBI specification introduced the concept of extensions in version
419 v0.2. With this configuration option U-Boot can detect and use SBI
420 extensions. With the HSM extension introduced in SBI 0.2, only a
421 single hart needs to boot and enter the operating system. The booting
422 hart can bring up secondary harts one by one afterwards.
Bin Menga75325e2020-04-16 08:09:32 -0700423
Heinrich Schuchardt693baee2022-11-08 15:53:12 +0100424 Choose this option if OpenSBI release v0.7 or above is used together
Bin Menga75325e2020-04-16 08:09:32 -0700425 with U-Boot.
426
427endchoice
428
Lukas Auere79178b2019-03-17 19:28:34 +0100429config SBI_IPI
430 bool
Bin Mengee3bcd02020-03-09 19:35:28 -0700431 depends on SBI
Lukas Auer61346592019-08-21 21:14:43 +0200432 default y if RISCV_SMODE || SPL_RISCV_SMODE
Lukas Auere79178b2019-03-17 19:28:34 +0100433 depends on SMP
434
Rick Chene5e6c362019-04-30 13:49:33 +0800435config XIP
436 bool "XIP mode"
437 help
438 XIP (eXecute In Place) is a method for executing code directly
439 from a NOR flash memory without copying the code to ram.
440 Say yes here if U-Boot boots from flash directly.
441
Nikita Shubin7e5e0292022-09-02 11:47:39 +0300442config SPL_XIP
443 bool "Enable XIP mode for SPL"
444 help
445 If SPL starts in read-only memory (XIP for example) then we shouldn't
446 rely on lock variables (for example hart_lottery and available_harts_lock),
447 this affects only SPL, other stages should proceed as non-XIP.
448
Rick Chen9c4d5c12022-09-21 14:34:54 +0800449config AVAILABLE_HARTS
450 bool "Send IPI by available harts"
451 default y
452 help
453 By default, IPI sending mechanism will depend on available_harts.
454 If disable this, it will send IPI by CPUs node numbers of device tree.
455
Sean Andersone8b46a12019-12-25 00:27:44 -0500456config SHOW_REGS
Heinrich Schuchardt943e6be2024-08-11 13:01:04 +0200457 default y
Sean Andersone8b46a12019-12-25 00:27:44 -0500458 bool "Show registers on unhandled exception"
Heinrich Schuchardt99e92102024-08-11 13:01:03 +0200459 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 main U-Boot.
463
464config SPL_SHOW_REGS
465 bool "In SPL show registers on unhandled exception"
466 depends on SPL
467 help
468 By default only the program counter and the return address register
469 are shown in crash dumps. Enable this symbol to show all registers in
470 SPL.
Sean Andersone8b46a12019-12-25 00:27:44 -0500471
Sean Anderson7f4b6662020-06-24 06:41:19 -0400472config RISCV_PRIV_1_9
473 bool "Use version 1.9 of the RISC-V priviledged specification"
474 help
475 Older versions of the RISC-V priviledged specification had
476 separate counter enable CSRs for each privilege mode. Writing
477 to the unified mcounteren CSR on a processor implementing the
478 old specification will result in an illegal instruction
479 exception. In addition to counter CSR changes, the way virtual
480 memory is configured was also changed.
481
Lukas Auera3596652019-03-17 19:28:37 +0100482config STACK_SIZE_SHIFT
Chia-Wei Wang20144dc2024-09-10 17:39:14 +0800483 int "Stack size shift"
Lukas Auer03813702019-10-20 20:53:47 +0200484 default 14
Lukas Auera3596652019-03-17 19:28:37 +0100485
Bin Meng2bdcd052020-06-25 18:16:08 -0700486config OF_BOARD_FIXUP
Sean Anderson584a5ee2020-09-05 09:22:11 -0400487 default y if OF_SEPARATE && RISCV_SMODE
Bin Meng2bdcd052020-06-25 18:16:08 -0700488
Bin Mengce64bd32021-05-13 16:46:18 +0800489menu "Use assembly optimized implementation of memory routines"
490
Heinrich Schuchardt23caf662021-03-27 12:37:04 +0100491config USE_ARCH_MEMCPY
492 bool "Use an assembly optimized implementation of memcpy"
493 default y
494 help
495 Enable the generation of an optimized version of memcpy.
496 Such an implementation may be faster under some conditions
497 but may increase the binary size.
498
499config SPL_USE_ARCH_MEMCPY
500 bool "Use an assembly optimized implementation of memcpy for SPL"
501 default y if USE_ARCH_MEMCPY
502 depends on SPL
503 help
504 Enable the generation of an optimized version of memcpy.
505 Such an implementation may be faster under some conditions
506 but may increase the binary size.
507
508config TPL_USE_ARCH_MEMCPY
509 bool "Use an assembly optimized implementation of memcpy for TPL"
510 default y if USE_ARCH_MEMCPY
511 depends on TPL
512 help
513 Enable the generation of an optimized version of memcpy.
514 Such an implementation may be faster under some conditions
515 but may increase the binary size.
516
517config USE_ARCH_MEMMOVE
518 bool "Use an assembly optimized implementation of memmove"
519 default y
520 help
521 Enable the generation of an optimized version of memmove.
522 Such an implementation may be faster under some conditions
523 but may increase the binary size.
524
525config SPL_USE_ARCH_MEMMOVE
526 bool "Use an assembly optimized implementation of memmove for SPL"
527 default y if USE_ARCH_MEMCPY
528 depends on SPL
529 help
530 Enable the generation of an optimized version of memmove.
531 Such an implementation may be faster under some conditions
532 but may increase the binary size.
533
534config TPL_USE_ARCH_MEMMOVE
535 bool "Use an assembly optimized implementation of memmove for TPL"
536 default y if USE_ARCH_MEMCPY
537 depends on TPL
538 help
539 Enable the generation of an optimized version of memmove.
540 Such an implementation may be faster under some conditions
541 but may increase the binary size.
542
543config USE_ARCH_MEMSET
544 bool "Use an assembly optimized implementation of memset"
545 default y
546 help
547 Enable the generation of an optimized version of memset.
548 Such an implementation may be faster under some conditions
549 but may increase the binary size.
550
551config SPL_USE_ARCH_MEMSET
552 bool "Use an assembly optimized implementation of memset for SPL"
553 default y if USE_ARCH_MEMSET
554 depends on SPL
555 help
556 Enable the generation of an optimized version of memset.
557 Such an implementation may be faster under some conditions
558 but may increase the binary size.
559
560config TPL_USE_ARCH_MEMSET
561 bool "Use an assembly optimized implementation of memset for TPL"
562 default y if USE_ARCH_MEMSET
563 depends on TPL
564 help
565 Enable the generation of an optimized version of memset.
566 Such an implementation may be faster under some conditions
567 but may increase the binary size.
568
Rick Chen64d4ead2017-12-26 13:55:52 +0800569endmenu
Bin Mengce64bd32021-05-13 16:46:18 +0800570
Randolphb1bc7a72023-10-12 14:35:04 +0800571config SPL_LOAD_FIT_OPENSBI_OS_BOOT
572 bool "Enable SPL (OpenSBI OS boot mode) applying linux from FIT"
573 depends on SPL_LOAD_FIT
574 help
575 Use fw_dynamic from the FIT image, and u-boot SPL will invoke it directly.
576 This is a shortcut boot flow, from u-boot SPL -> OpenSBI -> u-boot proper
577 -> linux to u-boot SPL -> OpenSBI -> linux.
578
Bin Mengce64bd32021-05-13 16:46:18 +0800579endmenu