menu "RISC-V architecture" depends on RISCV config SYS_ARCH default "riscv" choice prompt "Target select" optional config TARGET_AX25_AE350 bool "Support ax25-ae350" config TARGET_MICROCHIP_ICICLE bool "Support Microchip PolarFire-SoC Icicle Board" config TARGET_QEMU_VIRT bool "Support QEMU Virt Board" config TARGET_SIFIVE_FU540 bool "Support SiFive FU540 Board" endchoice config SYS_ICACHE_OFF bool "Do not enable icache" default n help Do not enable instruction cache in U-Boot. config SPL_SYS_ICACHE_OFF bool "Do not enable icache in SPL" depends on SPL default SYS_ICACHE_OFF help Do not enable instruction cache in SPL. config SYS_DCACHE_OFF bool "Do not enable dcache" default n help Do not enable data cache in U-Boot. config SPL_SYS_DCACHE_OFF bool "Do not enable dcache in SPL" depends on SPL default SYS_DCACHE_OFF help Do not enable data cache in SPL. # board-specific options below source "board/AndesTech/ax25-ae350/Kconfig" source "board/emulation/qemu-riscv/Kconfig" source "board/microchip/mpfs_icicle/Kconfig" source "board/sifive/fu540/Kconfig" # platform-specific options below source "arch/riscv/cpu/ax25/Kconfig" source "arch/riscv/cpu/generic/Kconfig" # architecture-specific options below choice prompt "Base ISA" default ARCH_RV32I config ARCH_RV32I bool "RV32I" select 32BIT help Choose this option to target the RV32I base integer instruction set. config ARCH_RV64I bool "RV64I" select 64BIT select PHYS_64BIT help Choose this option to target the RV64I base integer instruction set. endchoice choice prompt "Code Model" default CMODEL_MEDLOW config CMODEL_MEDLOW bool "medium low code model" help U-Boot and its statically defined symbols must lie within a single 2 GiB address range and must lie between absolute addresses -2 GiB and +2 GiB. config CMODEL_MEDANY bool "medium any code model" help U-Boot and its statically defined symbols must be within any single 2 GiB address range. endchoice choice prompt "Run Mode" default RISCV_MMODE config RISCV_MMODE bool "Machine" help Choose this option to build U-Boot for RISC-V M-Mode. config RISCV_SMODE bool "Supervisor" help Choose this option to build U-Boot for RISC-V S-Mode. endchoice choice prompt "SPL Run Mode" default SPL_RISCV_MMODE depends on SPL config SPL_RISCV_MMODE bool "Machine" help Choose this option to build U-Boot SPL for RISC-V M-Mode. config SPL_RISCV_SMODE bool "Supervisor" help Choose this option to build U-Boot SPL for RISC-V S-Mode. endchoice config RISCV_ISA_C bool "Emit compressed instructions" default y help Adds "C" to the ISA subsets that the toolchain is allowed to emit when building U-Boot, which results in compressed instructions in the U-Boot binary. config RISCV_ISA_A def_bool y config 32BIT bool config 64BIT bool config SIFIVE_CLINT bool depends on RISCV_MMODE || SPL_RISCV_MMODE select REGMAP select SYSCON select SPL_REGMAP if SPL select SPL_SYSCON if SPL help The SiFive CLINT block holds memory-mapped control and status registers associated with software and timer interrupts. config ANDES_PLIC bool depends on RISCV_MMODE || SPL_RISCV_MMODE select REGMAP select SYSCON select SPL_REGMAP if SPL select SPL_SYSCON if SPL help The Andes PLIC block holds memory-mapped claim and pending registers associated with software interrupt. config ANDES_PLMT bool depends on RISCV_MMODE || SPL_RISCV_MMODE select REGMAP select SYSCON select SPL_REGMAP if SPL select SPL_SYSCON if SPL help The Andes PLMT block holds memory-mapped mtime register associated with timer tick. config RISCV_RDTIME bool default y if RISCV_SMODE || SPL_RISCV_SMODE help The provides the riscv_get_time() API that is implemented using the standard rdtime instruction. This is the case for S-mode U-Boot, and is useful for processors that support rdtime in M-mode too. config SYS_MALLOC_F_LEN default 0x1000 config SMP bool "Symmetric Multi-Processing" help This enables support for systems with more than one CPU. If you say N here, U-Boot will run on single and multiprocessor machines, but will use only one CPU of a multiprocessor machine. If you say Y here, U-Boot will run on many, but not all, single processor machines. config NR_CPUS int "Maximum number of CPUs (2-32)" range 2 32 depends on SMP default 8 help On multiprocessor machines, U-Boot sets up a stack for each CPU. Stack memory is pre-allocated. U-Boot must therefore know the maximum number of CPUs that may be present. config SBI_IPI bool default y if RISCV_SMODE || SPL_RISCV_SMODE depends on SMP config XIP bool "XIP mode" help XIP (eXecute In Place) is a method for executing code directly from a NOR flash memory without copying the code to ram. Say yes here if U-Boot boots from flash directly. config STACK_SIZE_SHIFT int default 13 config SPL_LDSCRIPT default "arch/riscv/cpu/u-boot-spl.lds" endmenu