blob: abb7a984c48966614456b8f8653b621f2cefe8b2 [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
Andrew Goodbody5b5322c2024-12-16 18:07:35 +0000123 select SPL_64BIT if SPL
Lukas Auer7ab1df02018-11-22 11:26:13 +0100124 select PHYS_64BIT
Rick Chen64d4ead2017-12-26 13:55:52 +0800125 help
Lukas Auer54ebfe72018-11-22 11:26:12 +0100126 Choose this option to target the RV64I base integer instruction set.
Rick Chen64d4ead2017-12-26 13:55:52 +0800127
128endchoice
129
Ben Dooks8a813c12023-09-05 13:12:53 +0100130config FRAMEPOINTER
131 bool "Build with frame pointer for stack unwinding"
132 help
133 Choose this option to use the frame pointer so the stack can be
134 unwound if needed. This is useful for tracing where faults came
135 from as the source may be several functions back
136
137 If you say Y here, then the code size will be increased due to
138 having to store the fp.
139
140config SPL_FRAMEPOINTER
141 bool "Build SPL with frame pointer for stack unwinding"
Heinrich Schuchardt512d41c2024-08-11 11:51:09 +0200142 depends on SPL
Ben Dooks8a813c12023-09-05 13:12:53 +0100143 help
144 Choose this option to use the frame pointer so the stack can be
145 unwound if needed. This is useful for tracing where faults came
146 from as the source may be several functions back
147
148 If you say Y here, then the code size will be increased due to
149 having to store the fp.
150
Lukas Auerecc5d832018-12-12 06:12:23 -0800151choice
152 prompt "Code Model"
153 default CMODEL_MEDLOW
154
155config CMODEL_MEDLOW
156 bool "medium low code model"
157 help
158 U-Boot and its statically defined symbols must lie within a single 2 GiB
159 address range and must lie between absolute addresses -2 GiB and +2 GiB.
160
161config CMODEL_MEDANY
162 bool "medium any code model"
163 help
164 U-Boot and its statically defined symbols must be within any single 2 GiB
165 address range.
166
167endchoice
168
Anup Patel27881772018-12-12 06:12:29 -0800169choice
170 prompt "Run Mode"
171 default RISCV_MMODE
172
173config RISCV_MMODE
174 bool "Machine"
175 help
176 Choose this option to build U-Boot for RISC-V M-Mode.
177
178config RISCV_SMODE
179 bool "Supervisor"
Heinrich Schuchardt20964b62023-09-23 01:35:26 +0200180 imply DEBUG_UART
Anup Patel27881772018-12-12 06:12:29 -0800181 help
182 Choose this option to build U-Boot for RISC-V S-Mode.
183
184endchoice
185
Lukas Auer61346592019-08-21 21:14:43 +0200186choice
187 prompt "SPL Run Mode"
188 default SPL_RISCV_MMODE
189 depends on SPL
190
191config SPL_RISCV_MMODE
192 bool "Machine"
193 help
194 Choose this option to build U-Boot SPL for RISC-V M-Mode.
195
196config SPL_RISCV_SMODE
197 bool "Supervisor"
198 help
199 Choose this option to build U-Boot SPL for RISC-V S-Mode.
200
201endchoice
202
Lukas Auer002012f2018-11-22 11:26:14 +0100203config RISCV_ISA_C
204 bool "Emit compressed instructions"
205 default y
206 help
207 Adds "C" to the ISA subsets that the toolchain is allowed to emit
208 when building U-Boot, which results in compressed instructions in the
209 U-Boot binary.
210
Heinrich Schuchardtc66c9502022-10-12 14:59:51 +0200211config RISCV_ISA_F
212 bool "Standard extension for Single-Precision Floating Point"
213 default y
214 help
215 Adds "F" to the ISA string passed to the compiler.
216
217config RISCV_ISA_D
218 bool "Standard extension for Double-Precision Floating Point"
219 depends on RISCV_ISA_F
220 default y
221 help
222 Adds "D" to the ISA string passed to the compiler and changes the
223 riscv32 ABI from ilp32 to ilp32d and the riscv64 ABI from lp64 to
224 lp64d.
225
Yu Chien Peter Lin60814cb2023-08-09 18:49:30 +0800226config RISCV_ISA_ZBB
227 bool "Zbb extension support for bit manipulation instructions"
228 help
229 Adds ZBB extension (basic bit manipulation) to the ISA subsets
230 that the toolchain is allowed to emit when building U-Boot.
231 The Zbb extension provides instructions to accelerate a number
232 of bit-specific operations (count bit population, sign extending,
233 bitrotation, etc) and enables optimized string routines.
234
235menu "Use assembly optimized implementation of string routines"
236
237config USE_ARCH_STRLEN
238 bool "Use an assembly optimized implementation of strlen"
239 default y
240 depends on RISCV_ISA_ZBB
241 help
242 Enable the generation of an optimized version of strlen using
243 Zbb extension.
244
245config SPL_USE_ARCH_STRLEN
246 bool "Use an assembly optimized implementation of strlen for SPL"
247 default y if USE_ARCH_STRLEN
248 depends on RISCV_ISA_ZBB
249 depends on SPL
250 help
251 Enable the generation of an optimized version of strlen using
252 Zbb extension.
253
254config TPL_USE_ARCH_STRLEN
255 bool "Use an assembly optimized implementation of strlen for TPL"
256 default y if USE_ARCH_STRLEN
257 depends on RISCV_ISA_ZBB
258 depends on TPL
259 help
260 Enable the generation of an optimized version of strlen using
261 Zbb extension.
262
263config USE_ARCH_STRCMP
264 bool "Use an assembly optimized implementation of strcmp"
265 default y
266 depends on RISCV_ISA_ZBB
267 help
268 Enable the generation of an optimized version of strcmp using
269 Zbb extension.
270
271config SPL_USE_ARCH_STRCMP
272 bool "Use an assembly optimized implementation of strcmp for SPL"
273 default y if USE_ARCH_STRCMP
274 depends on RISCV_ISA_ZBB
275 depends on SPL
276 help
277 Enable the generation of an optimized version of strcmp using
278 Zbb extension.
279
280config TPL_USE_ARCH_STRCMP
281 bool "Use an assembly optimized implementation of strcmp for TPL"
282 default y if USE_ARCH_STRCMP
283 depends on RISCV_ISA_ZBB
284 depends on TPL
285 help
286 Enable the generation of an optimized version of strcmp using
287 Zbb extension.
288
289config USE_ARCH_STRNCMP
290 bool "Use an assembly optimized implementation of strncmp"
291 default y
292 depends on RISCV_ISA_ZBB
293 help
294 Enable the generation of an optimized version of strncmp using
295 Zbb extension.
296
297config SPL_USE_ARCH_STRNCMP
298 bool "Use an assembly optimized implementation of strncmp for SPL"
299 default y if USE_ARCH_STRNCMP
300 depends on RISCV_ISA_ZBB
301 depends on SPL
302 help
303 Enable the generation of an optimized version of strncmp using
304 Zbb extension.
305
306config TPL_USE_ARCH_STRNCMP
307 bool "Use an assembly optimized implementation of strncmp for TPL"
308 default y if USE_ARCH_STRNCMP
309 depends on RISCV_ISA_ZBB
310 depends on TPL
311 help
312 Enable the generation of an optimized version of strncmp using
313 Zbb extension.
314
315endmenu
316
Lukas Auer002012f2018-11-22 11:26:14 +0100317config RISCV_ISA_A
Chia-Wei Wang6eda8742024-09-10 17:39:13 +0800318 bool "Standard extension for Atomic Instructions"
319 default y
320 help
321 Adds "A" to the ISA string passed to the compiler.
Lukas Auer002012f2018-11-22 11:26:14 +0100322
Mayuresh Chitalec3abcaa2024-08-23 09:41:26 +0000323config RISCV_ISA_ZICBOM
324 bool "Zicbom support"
325 depends on !SYS_DISABLE_DCACHE_OPS
326
Padmarao Begaria235d432021-01-15 08:20:35 +0530327config DMA_ADDR_T_64BIT
328 bool
329 default y if 64BIT
330
Bin Mengb5f03722023-06-21 23:11:46 +0800331config RISCV_ACLINT
Bin Mengb6ee5e12018-12-12 06:12:30 -0800332 bool
Bin Meng614b1d82021-05-11 20:04:12 +0800333 depends on RISCV_MMODE
Bin Meng08b8d262023-06-21 23:11:45 +0800334 select REGMAP
335 select SYSCON
Bin Meng614b1d82021-05-11 20:04:12 +0800336 help
Bin Mengb5f03722023-06-21 23:11:46 +0800337 The RISC-V ACLINT block holds memory-mapped control and status registers
Bin Meng614b1d82021-05-11 20:04:12 +0800338 associated with software and timer interrupts.
339
Bin Mengb5f03722023-06-21 23:11:46 +0800340config SPL_RISCV_ACLINT
Bin Meng614b1d82021-05-11 20:04:12 +0800341 bool
342 depends on SPL_RISCV_MMODE
Bin Meng08b8d262023-06-21 23:11:45 +0800343 select SPL_REGMAP
344 select SPL_SYSCON
Bin Mengb6ee5e12018-12-12 06:12:30 -0800345 help
Bin Mengb5f03722023-06-21 23:11:46 +0800346 The RISC-V ACLINT block holds memory-mapped control and status registers
Bin Mengb6ee5e12018-12-12 06:12:30 -0800347 associated with software and timer interrupts.
348
Zong Lic39544c2021-09-01 15:01:41 +0800349config SIFIVE_CACHE
350 bool
351 help
352 This enables the operations to configure SiFive cache
353
Yu Chien Peter Lin739cd6f2022-10-25 23:03:50 +0800354config ANDES_PLICSW
Rick Chen6df4ed02019-04-02 15:56:39 +0800355 bool
Lukas Auer61346592019-08-21 21:14:43 +0200356 depends on RISCV_MMODE || SPL_RISCV_MMODE
Rick Chen6df4ed02019-04-02 15:56:39 +0800357 select REGMAP
358 select SYSCON
Lukas Auer61346592019-08-21 21:14:43 +0200359 select SPL_REGMAP if SPL
360 select SPL_SYSCON if SPL
Rick Chen6df4ed02019-04-02 15:56:39 +0800361 help
Yu Chien Peter Lin739cd6f2022-10-25 23:03:50 +0800362 The Andes PLICSW block holds memory-mapped claim and pending
363 registers associated with software interrupt.
Rick Chen6df4ed02019-04-02 15:56:39 +0800364
Lukas Auer83d573d2019-03-17 19:28:32 +0100365config SMP
366 bool "Symmetric Multi-Processing"
Bin Meng49975222020-04-16 08:09:31 -0700367 depends on SBI_V01 || !RISCV_SMODE
Lukas Auer83d573d2019-03-17 19:28:32 +0100368 help
369 This enables support for systems with more than one CPU. If
370 you say N here, U-Boot will run on single and multiprocessor
371 machines, but will use only one CPU of a multiprocessor
372 machine. If you say Y here, U-Boot will run on many, but not
373 all, single processor machines.
374
Bin Mengb161f902020-04-16 08:09:30 -0700375config SPL_SMP
376 bool "Symmetric Multi-Processing in SPL"
377 depends on SPL && SPL_RISCV_MMODE
378 default y
379 help
380 This enables support for systems with more than one CPU in SPL.
381 If you say N here, U-Boot SPL will run on single and multiprocessor
382 machines, but will use only one CPU of a multiprocessor
383 machine. If you say Y here, U-Boot SPL will run on many, but not
384 all, single processor machines.
385
Lukas Auer83d573d2019-03-17 19:28:32 +0100386config NR_CPUS
387 int "Maximum number of CPUs (2-32)"
388 range 2 32
Bin Mengb161f902020-04-16 08:09:30 -0700389 depends on SMP || SPL_SMP
Lukas Auer83d573d2019-03-17 19:28:32 +0100390 default 8
391 help
392 On multiprocessor machines, U-Boot sets up a stack for each CPU.
393 Stack memory is pre-allocated. U-Boot must therefore know the
394 maximum number of CPUs that may be present.
395
Bin Mengee3bcd02020-03-09 19:35:28 -0700396config SBI
397 bool
398 default y if RISCV_SMODE || SPL_RISCV_SMODE
399
Bin Menga75325e2020-04-16 08:09:32 -0700400choice
401 prompt "SBI support"
Bin Meng3aecc4b2020-04-16 08:09:33 -0700402 default SBI_V02
Bin Menga75325e2020-04-16 08:09:32 -0700403
Bin Meng887d8092020-03-09 19:35:30 -0700404config SBI_V01
405 bool "SBI v0.1 support"
Bin Meng887d8092020-03-09 19:35:30 -0700406 depends on SBI
407 help
408 This config allows kernel to use SBI v0.1 APIs. This will be
409 deprecated in future once legacy M-mode software are no longer in use.
410
Bin Menga75325e2020-04-16 08:09:32 -0700411config SBI_V02
Heinrich Schuchardt693baee2022-11-08 15:53:12 +0100412 bool "SBI v0.2 or later support"
Bin Menga75325e2020-04-16 08:09:32 -0700413 depends on SBI
414 help
Heinrich Schuchardt693baee2022-11-08 15:53:12 +0100415 The SBI specification introduced the concept of extensions in version
416 v0.2. With this configuration option U-Boot can detect and use SBI
417 extensions. With the HSM extension introduced in SBI 0.2, only a
418 single hart needs to boot and enter the operating system. The booting
419 hart can bring up secondary harts one by one afterwards.
Bin Menga75325e2020-04-16 08:09:32 -0700420
Heinrich Schuchardt693baee2022-11-08 15:53:12 +0100421 Choose this option if OpenSBI release v0.7 or above is used together
Bin Menga75325e2020-04-16 08:09:32 -0700422 with U-Boot.
423
424endchoice
425
Lukas Auere79178b2019-03-17 19:28:34 +0100426config SBI_IPI
427 bool
Bin Mengee3bcd02020-03-09 19:35:28 -0700428 depends on SBI
Lukas Auer61346592019-08-21 21:14:43 +0200429 default y if RISCV_SMODE || SPL_RISCV_SMODE
Lukas Auere79178b2019-03-17 19:28:34 +0100430 depends on SMP
431
Rick Chene5e6c362019-04-30 13:49:33 +0800432config XIP
433 bool "XIP mode"
434 help
435 XIP (eXecute In Place) is a method for executing code directly
436 from a NOR flash memory without copying the code to ram.
437 Say yes here if U-Boot boots from flash directly.
438
Nikita Shubin7e5e0292022-09-02 11:47:39 +0300439config SPL_XIP
440 bool "Enable XIP mode for SPL"
441 help
442 If SPL starts in read-only memory (XIP for example) then we shouldn't
443 rely on lock variables (for example hart_lottery and available_harts_lock),
444 this affects only SPL, other stages should proceed as non-XIP.
445
Rick Chen9c4d5c12022-09-21 14:34:54 +0800446config AVAILABLE_HARTS
447 bool "Send IPI by available harts"
448 default y
449 help
450 By default, IPI sending mechanism will depend on available_harts.
451 If disable this, it will send IPI by CPUs node numbers of device tree.
452
Sean Andersone8b46a12019-12-25 00:27:44 -0500453config SHOW_REGS
Heinrich Schuchardt943e6be2024-08-11 13:01:04 +0200454 default y
Sean Andersone8b46a12019-12-25 00:27:44 -0500455 bool "Show registers on unhandled exception"
Heinrich Schuchardt99e92102024-08-11 13:01:03 +0200456 help
457 By default only the program counter and the return address register
458 are shown in crash dumps. Enable this symbol to show all registers in
459 main U-Boot.
460
461config SPL_SHOW_REGS
462 bool "In SPL show registers on unhandled exception"
463 depends on SPL
464 help
465 By default only the program counter and the return address register
466 are shown in crash dumps. Enable this symbol to show all registers in
467 SPL.
Sean Andersone8b46a12019-12-25 00:27:44 -0500468
Sean Anderson7f4b6662020-06-24 06:41:19 -0400469config RISCV_PRIV_1_9
470 bool "Use version 1.9 of the RISC-V priviledged specification"
471 help
472 Older versions of the RISC-V priviledged specification had
473 separate counter enable CSRs for each privilege mode. Writing
474 to the unified mcounteren CSR on a processor implementing the
475 old specification will result in an illegal instruction
476 exception. In addition to counter CSR changes, the way virtual
477 memory is configured was also changed.
478
Lukas Auera3596652019-03-17 19:28:37 +0100479config STACK_SIZE_SHIFT
Chia-Wei Wang20144dc2024-09-10 17:39:14 +0800480 int "Stack size shift"
Lukas Auer03813702019-10-20 20:53:47 +0200481 default 14
Lukas Auera3596652019-03-17 19:28:37 +0100482
Bin Meng2bdcd052020-06-25 18:16:08 -0700483config OF_BOARD_FIXUP
Sean Anderson584a5ee2020-09-05 09:22:11 -0400484 default y if OF_SEPARATE && RISCV_SMODE
Bin Meng2bdcd052020-06-25 18:16:08 -0700485
Bin Mengce64bd32021-05-13 16:46:18 +0800486menu "Use assembly optimized implementation of memory routines"
487
Heinrich Schuchardt23caf662021-03-27 12:37:04 +0100488config USE_ARCH_MEMCPY
489 bool "Use an assembly optimized implementation of memcpy"
490 default y
491 help
492 Enable the generation of an optimized version of memcpy.
493 Such an implementation may be faster under some conditions
494 but may increase the binary size.
495
496config SPL_USE_ARCH_MEMCPY
497 bool "Use an assembly optimized implementation of memcpy for SPL"
498 default y if USE_ARCH_MEMCPY
499 depends on SPL
500 help
501 Enable the generation of an optimized version of memcpy.
502 Such an implementation may be faster under some conditions
503 but may increase the binary size.
504
505config TPL_USE_ARCH_MEMCPY
506 bool "Use an assembly optimized implementation of memcpy for TPL"
507 default y if USE_ARCH_MEMCPY
508 depends on TPL
509 help
510 Enable the generation of an optimized version of memcpy.
511 Such an implementation may be faster under some conditions
512 but may increase the binary size.
513
514config USE_ARCH_MEMMOVE
515 bool "Use an assembly optimized implementation of memmove"
516 default y
517 help
518 Enable the generation of an optimized version of memmove.
519 Such an implementation may be faster under some conditions
520 but may increase the binary size.
521
522config SPL_USE_ARCH_MEMMOVE
523 bool "Use an assembly optimized implementation of memmove for SPL"
524 default y if USE_ARCH_MEMCPY
525 depends on SPL
526 help
527 Enable the generation of an optimized version of memmove.
528 Such an implementation may be faster under some conditions
529 but may increase the binary size.
530
531config TPL_USE_ARCH_MEMMOVE
532 bool "Use an assembly optimized implementation of memmove for TPL"
533 default y if USE_ARCH_MEMCPY
534 depends on TPL
535 help
536 Enable the generation of an optimized version of memmove.
537 Such an implementation may be faster under some conditions
538 but may increase the binary size.
539
540config USE_ARCH_MEMSET
541 bool "Use an assembly optimized implementation of memset"
542 default y
543 help
544 Enable the generation of an optimized version of memset.
545 Such an implementation may be faster under some conditions
546 but may increase the binary size.
547
548config SPL_USE_ARCH_MEMSET
549 bool "Use an assembly optimized implementation of memset for SPL"
550 default y if USE_ARCH_MEMSET
551 depends on SPL
552 help
553 Enable the generation of an optimized version of memset.
554 Such an implementation may be faster under some conditions
555 but may increase the binary size.
556
557config TPL_USE_ARCH_MEMSET
558 bool "Use an assembly optimized implementation of memset for TPL"
559 default y if USE_ARCH_MEMSET
560 depends on TPL
561 help
562 Enable the generation of an optimized version of memset.
563 Such an implementation may be faster under some conditions
564 but may increase the binary size.
565
Rick Chen64d4ead2017-12-26 13:55:52 +0800566endmenu
Bin Mengce64bd32021-05-13 16:46:18 +0800567
Randolphb1bc7a72023-10-12 14:35:04 +0800568config SPL_LOAD_FIT_OPENSBI_OS_BOOT
569 bool "Enable SPL (OpenSBI OS boot mode) applying linux from FIT"
570 depends on SPL_LOAD_FIT
571 help
572 Use fw_dynamic from the FIT image, and u-boot SPL will invoke it directly.
573 This is a shortcut boot flow, from u-boot SPL -> OpenSBI -> u-boot proper
574 -> linux to u-boot SPL -> OpenSBI -> linux.
575
Bin Mengce64bd32021-05-13 16:46:18 +0800576endmenu