2018-09-26 13:55:06 +00:00
|
|
|
menu "RISC-V architecture"
|
2017-12-26 05:55:52 +00:00
|
|
|
depends on RISCV
|
|
|
|
|
|
|
|
config SYS_ARCH
|
|
|
|
default "riscv"
|
|
|
|
|
|
|
|
choice
|
|
|
|
prompt "Target select"
|
|
|
|
optional
|
|
|
|
|
2023-09-25 09:24:51 +00:00
|
|
|
config TARGET_ANDES_AE350
|
|
|
|
bool "Support Andes ae350"
|
2017-12-26 05:55:52 +00:00
|
|
|
|
2019-05-28 10:17:51 +00:00
|
|
|
config TARGET_MICROCHIP_ICICLE
|
|
|
|
bool "Support Microchip PolarFire-SoC Icicle Board"
|
|
|
|
|
2018-09-26 13:55:21 +00:00
|
|
|
config TARGET_QEMU_VIRT
|
|
|
|
bool "Support QEMU Virt Board"
|
|
|
|
|
2021-03-17 03:10:58 +00:00
|
|
|
config TARGET_SIFIVE_UNLEASHED
|
|
|
|
bool "Support SiFive Unleashed Board"
|
2019-02-25 08:15:19 +00:00
|
|
|
|
2021-05-27 13:52:13 +00:00
|
|
|
config TARGET_SIFIVE_UNMATCHED
|
|
|
|
bool "Support SiFive Unmatched Board"
|
2021-08-26 15:47:59 +00:00
|
|
|
select SYS_CACHE_SHIFT_6
|
2021-05-27 13:52:13 +00:00
|
|
|
|
2023-03-29 03:42:20 +00:00
|
|
|
config TARGET_STARFIVE_VISIONFIVE2
|
|
|
|
bool "Support StarFive VisionFive2 Board"
|
2023-09-07 11:21:28 +00:00
|
|
|
select BOARD_LATE_INIT
|
2023-03-29 03:42:20 +00:00
|
|
|
|
2023-07-08 11:24:32 +00:00
|
|
|
config TARGET_TH1520_LPI4A
|
|
|
|
bool "Support Sipeed's TH1520 Lichee PI 4A Board"
|
|
|
|
select SYS_CACHE_SHIFT_6
|
|
|
|
|
riscv: Add Sipeed Maix support
The Sipeed Maix series is a collection of boards built around the RISC-V
Kendryte K210 processor. This processor contains several peripherals to
accelerate neural network processing and other "ai" tasks. This includes a
"KPU" neural network processor, an audio processor supporting beamforming
reception, and a digital video port supporting capture and output at VGA
resolution. Other peripherals include 8M of sram (accessible with and
without caching); remappable pins, including 40 GPIOs; AES, FFT, and SHA256
accelerators; a DMA controller; and I2C, I2S, and SPI controllers. Maix
peripherals vary, but include spi flash; on-board usb-serial bridges; ports
for cameras, displays, and sd cards; and ESP32 chips. Currently, only the
Sipeed Maix Bit V2.0 (bitm) is supported, but the boards are fairly
similar.
Documentation for Maix boards is located at
<http://dl.sipeed.com/MAIX/HDK/>. Documentation for the Kendryte K210 is
located at <https://kendryte.com/downloads/>. However, hardware details are
rather lacking, so most technical reference has been taken from the
standalone sdk located at
<https://github.com/kendryte/kendryte-standalone-sdk>.
Signed-off-by: Sean Anderson <seanga2@gmail.com>
2020-06-24 10:41:25 +00:00
|
|
|
config TARGET_SIPEED_MAIX
|
|
|
|
bool "Support Sipeed Maix Board"
|
2021-08-26 15:47:59 +00:00
|
|
|
select SYS_CACHE_SHIFT_6
|
riscv: Add Sipeed Maix support
The Sipeed Maix series is a collection of boards built around the RISC-V
Kendryte K210 processor. This processor contains several peripherals to
accelerate neural network processing and other "ai" tasks. This includes a
"KPU" neural network processor, an audio processor supporting beamforming
reception, and a digital video port supporting capture and output at VGA
resolution. Other peripherals include 8M of sram (accessible with and
without caching); remappable pins, including 40 GPIOs; AES, FFT, and SHA256
accelerators; a DMA controller; and I2C, I2S, and SPI controllers. Maix
peripherals vary, but include spi flash; on-board usb-serial bridges; ports
for cameras, displays, and sd cards; and ESP32 chips. Currently, only the
Sipeed Maix Bit V2.0 (bitm) is supported, but the boards are fairly
similar.
Documentation for Maix boards is located at
<http://dl.sipeed.com/MAIX/HDK/>. Documentation for the Kendryte K210 is
located at <https://kendryte.com/downloads/>. However, hardware details are
rather lacking, so most technical reference has been taken from the
standalone sdk located at
<https://github.com/kendryte/kendryte-standalone-sdk>.
Signed-off-by: Sean Anderson <seanga2@gmail.com>
2020-06-24 10:41:25 +00:00
|
|
|
|
2021-07-01 04:54:19 +00:00
|
|
|
config TARGET_OPENPITON_RISCV64
|
|
|
|
bool "Support RISC-V cores on OpenPiton SoC"
|
|
|
|
|
2017-12-26 05:55:52 +00:00
|
|
|
endchoice
|
|
|
|
|
2019-05-03 13:40:59 +00:00
|
|
|
config SYS_ICACHE_OFF
|
|
|
|
bool "Do not enable icache"
|
|
|
|
help
|
|
|
|
Do not enable instruction cache in U-Boot.
|
|
|
|
|
2019-05-03 13:41:00 +00:00
|
|
|
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.
|
|
|
|
|
2019-05-03 13:40:59 +00:00
|
|
|
config SYS_DCACHE_OFF
|
|
|
|
bool "Do not enable dcache"
|
|
|
|
help
|
|
|
|
Do not enable data cache in U-Boot.
|
|
|
|
|
2019-05-03 13:41:00 +00:00
|
|
|
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.
|
|
|
|
|
2023-08-09 13:11:31 +00:00
|
|
|
config SPL_ZERO_MEM_BEFORE_USE
|
|
|
|
bool "Zero memory before use"
|
|
|
|
depends on SPL
|
|
|
|
default n
|
|
|
|
help
|
|
|
|
Zero stack/GD/malloc area in SPL before using them, this is needed for
|
|
|
|
Sifive core devices that uses L2 cache to store SPL.
|
|
|
|
|
2018-11-07 01:34:06 +00:00
|
|
|
# board-specific options below
|
2023-02-14 12:42:49 +00:00
|
|
|
source "board/AndesTech/ae350/Kconfig"
|
2018-09-26 13:55:21 +00:00
|
|
|
source "board/emulation/qemu-riscv/Kconfig"
|
2019-05-28 10:17:51 +00:00
|
|
|
source "board/microchip/mpfs_icicle/Kconfig"
|
2021-03-17 03:10:58 +00:00
|
|
|
source "board/sifive/unleashed/Kconfig"
|
2021-05-27 13:52:13 +00:00
|
|
|
source "board/sifive/unmatched/Kconfig"
|
2023-07-08 11:24:32 +00:00
|
|
|
source "board/thead/th1520_lpi4a/Kconfig"
|
2021-07-01 04:54:19 +00:00
|
|
|
source "board/openpiton/riscv64/Kconfig"
|
riscv: Add Sipeed Maix support
The Sipeed Maix series is a collection of boards built around the RISC-V
Kendryte K210 processor. This processor contains several peripherals to
accelerate neural network processing and other "ai" tasks. This includes a
"KPU" neural network processor, an audio processor supporting beamforming
reception, and a digital video port supporting capture and output at VGA
resolution. Other peripherals include 8M of sram (accessible with and
without caching); remappable pins, including 40 GPIOs; AES, FFT, and SHA256
accelerators; a DMA controller; and I2C, I2S, and SPI controllers. Maix
peripherals vary, but include spi flash; on-board usb-serial bridges; ports
for cameras, displays, and sd cards; and ESP32 chips. Currently, only the
Sipeed Maix Bit V2.0 (bitm) is supported, but the boards are fairly
similar.
Documentation for Maix boards is located at
<http://dl.sipeed.com/MAIX/HDK/>. Documentation for the Kendryte K210 is
located at <https://kendryte.com/downloads/>. However, hardware details are
rather lacking, so most technical reference has been taken from the
standalone sdk located at
<https://github.com/kendryte/kendryte-standalone-sdk>.
Signed-off-by: Sean Anderson <seanga2@gmail.com>
2020-06-24 10:41:25 +00:00
|
|
|
source "board/sipeed/maix/Kconfig"
|
2023-03-29 03:42:20 +00:00
|
|
|
source "board/starfive/visionfive2/Kconfig"
|
2017-12-26 05:55:52 +00:00
|
|
|
|
2018-11-07 01:34:06 +00:00
|
|
|
# platform-specific options below
|
2023-02-14 12:42:49 +00:00
|
|
|
source "arch/riscv/cpu/andesv5/Kconfig"
|
2020-05-29 06:03:34 +00:00
|
|
|
source "arch/riscv/cpu/fu540/Kconfig"
|
2021-05-27 13:52:07 +00:00
|
|
|
source "arch/riscv/cpu/fu740/Kconfig"
|
2019-02-25 08:14:10 +00:00
|
|
|
source "arch/riscv/cpu/generic/Kconfig"
|
2023-03-29 03:42:20 +00:00
|
|
|
source "arch/riscv/cpu/jh7110/Kconfig"
|
2018-11-07 01:34:06 +00:00
|
|
|
|
|
|
|
# architecture-specific options below
|
|
|
|
|
2017-12-26 05:55:52 +00:00
|
|
|
choice
|
2018-11-22 10:26:12 +00:00
|
|
|
prompt "Base ISA"
|
|
|
|
default ARCH_RV32I
|
2017-12-26 05:55:52 +00:00
|
|
|
|
2018-11-22 10:26:12 +00:00
|
|
|
config ARCH_RV32I
|
|
|
|
bool "RV32I"
|
2017-12-26 05:55:52 +00:00
|
|
|
select 32BIT
|
|
|
|
help
|
2018-11-22 10:26:12 +00:00
|
|
|
Choose this option to target the RV32I base integer instruction set.
|
2017-12-26 05:55:52 +00:00
|
|
|
|
2018-11-22 10:26:12 +00:00
|
|
|
config ARCH_RV64I
|
|
|
|
bool "RV64I"
|
2017-12-26 05:55:52 +00:00
|
|
|
select 64BIT
|
2018-11-22 10:26:13 +00:00
|
|
|
select PHYS_64BIT
|
2017-12-26 05:55:52 +00:00
|
|
|
help
|
2018-11-22 10:26:12 +00:00
|
|
|
Choose this option to target the RV64I base integer instruction set.
|
2017-12-26 05:55:52 +00:00
|
|
|
|
|
|
|
endchoice
|
|
|
|
|
2018-12-12 14:12:23 +00:00
|
|
|
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
|
|
|
|
|
2018-12-12 14:12:29 +00:00
|
|
|
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"
|
2023-09-22 23:35:26 +00:00
|
|
|
imply DEBUG_UART
|
2018-12-12 14:12:29 +00:00
|
|
|
help
|
|
|
|
Choose this option to build U-Boot for RISC-V S-Mode.
|
|
|
|
|
|
|
|
endchoice
|
|
|
|
|
2019-08-21 19:14:43 +00:00
|
|
|
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
|
|
|
|
|
2018-11-22 10:26:14 +00:00
|
|
|
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.
|
|
|
|
|
2022-10-12 12:59:51 +00:00
|
|
|
config RISCV_ISA_F
|
|
|
|
bool "Standard extension for Single-Precision Floating Point"
|
|
|
|
default y
|
|
|
|
help
|
|
|
|
Adds "F" to the ISA string passed to the compiler.
|
|
|
|
|
|
|
|
config RISCV_ISA_D
|
|
|
|
bool "Standard extension for Double-Precision Floating Point"
|
|
|
|
depends on RISCV_ISA_F
|
|
|
|
default y
|
|
|
|
help
|
|
|
|
Adds "D" to the ISA string passed to the compiler and changes the
|
|
|
|
riscv32 ABI from ilp32 to ilp32d and the riscv64 ABI from lp64 to
|
|
|
|
lp64d.
|
|
|
|
|
2023-08-09 10:49:30 +00:00
|
|
|
config RISCV_ISA_ZBB
|
|
|
|
bool "Zbb extension support for bit manipulation instructions"
|
|
|
|
help
|
|
|
|
Adds ZBB extension (basic bit manipulation) to the ISA subsets
|
|
|
|
that the toolchain is allowed to emit when building U-Boot.
|
|
|
|
The Zbb extension provides instructions to accelerate a number
|
|
|
|
of bit-specific operations (count bit population, sign extending,
|
|
|
|
bitrotation, etc) and enables optimized string routines.
|
|
|
|
|
|
|
|
menu "Use assembly optimized implementation of string routines"
|
|
|
|
|
|
|
|
config USE_ARCH_STRLEN
|
|
|
|
bool "Use an assembly optimized implementation of strlen"
|
|
|
|
default y
|
|
|
|
depends on RISCV_ISA_ZBB
|
|
|
|
help
|
|
|
|
Enable the generation of an optimized version of strlen using
|
|
|
|
Zbb extension.
|
|
|
|
|
|
|
|
config SPL_USE_ARCH_STRLEN
|
|
|
|
bool "Use an assembly optimized implementation of strlen for SPL"
|
|
|
|
default y if USE_ARCH_STRLEN
|
|
|
|
depends on RISCV_ISA_ZBB
|
|
|
|
depends on SPL
|
|
|
|
help
|
|
|
|
Enable the generation of an optimized version of strlen using
|
|
|
|
Zbb extension.
|
|
|
|
|
|
|
|
config TPL_USE_ARCH_STRLEN
|
|
|
|
bool "Use an assembly optimized implementation of strlen for TPL"
|
|
|
|
default y if USE_ARCH_STRLEN
|
|
|
|
depends on RISCV_ISA_ZBB
|
|
|
|
depends on TPL
|
|
|
|
help
|
|
|
|
Enable the generation of an optimized version of strlen using
|
|
|
|
Zbb extension.
|
|
|
|
|
|
|
|
config USE_ARCH_STRCMP
|
|
|
|
bool "Use an assembly optimized implementation of strcmp"
|
|
|
|
default y
|
|
|
|
depends on RISCV_ISA_ZBB
|
|
|
|
help
|
|
|
|
Enable the generation of an optimized version of strcmp using
|
|
|
|
Zbb extension.
|
|
|
|
|
|
|
|
config SPL_USE_ARCH_STRCMP
|
|
|
|
bool "Use an assembly optimized implementation of strcmp for SPL"
|
|
|
|
default y if USE_ARCH_STRCMP
|
|
|
|
depends on RISCV_ISA_ZBB
|
|
|
|
depends on SPL
|
|
|
|
help
|
|
|
|
Enable the generation of an optimized version of strcmp using
|
|
|
|
Zbb extension.
|
|
|
|
|
|
|
|
config TPL_USE_ARCH_STRCMP
|
|
|
|
bool "Use an assembly optimized implementation of strcmp for TPL"
|
|
|
|
default y if USE_ARCH_STRCMP
|
|
|
|
depends on RISCV_ISA_ZBB
|
|
|
|
depends on TPL
|
|
|
|
help
|
|
|
|
Enable the generation of an optimized version of strcmp using
|
|
|
|
Zbb extension.
|
|
|
|
|
|
|
|
config USE_ARCH_STRNCMP
|
|
|
|
bool "Use an assembly optimized implementation of strncmp"
|
|
|
|
default y
|
|
|
|
depends on RISCV_ISA_ZBB
|
|
|
|
help
|
|
|
|
Enable the generation of an optimized version of strncmp using
|
|
|
|
Zbb extension.
|
|
|
|
|
|
|
|
config SPL_USE_ARCH_STRNCMP
|
|
|
|
bool "Use an assembly optimized implementation of strncmp for SPL"
|
|
|
|
default y if USE_ARCH_STRNCMP
|
|
|
|
depends on RISCV_ISA_ZBB
|
|
|
|
depends on SPL
|
|
|
|
help
|
|
|
|
Enable the generation of an optimized version of strncmp using
|
|
|
|
Zbb extension.
|
|
|
|
|
|
|
|
config TPL_USE_ARCH_STRNCMP
|
|
|
|
bool "Use an assembly optimized implementation of strncmp for TPL"
|
|
|
|
default y if USE_ARCH_STRNCMP
|
|
|
|
depends on RISCV_ISA_ZBB
|
|
|
|
depends on TPL
|
|
|
|
help
|
|
|
|
Enable the generation of an optimized version of strncmp using
|
|
|
|
Zbb extension.
|
|
|
|
|
|
|
|
endmenu
|
|
|
|
|
2018-11-22 10:26:14 +00:00
|
|
|
config RISCV_ISA_A
|
|
|
|
def_bool y
|
|
|
|
|
2017-12-26 05:55:52 +00:00
|
|
|
config 32BIT
|
|
|
|
bool
|
|
|
|
|
|
|
|
config 64BIT
|
|
|
|
bool
|
|
|
|
|
2021-01-15 02:50:35 +00:00
|
|
|
config DMA_ADDR_T_64BIT
|
|
|
|
bool
|
|
|
|
default y if 64BIT
|
|
|
|
|
2023-06-21 15:11:46 +00:00
|
|
|
config RISCV_ACLINT
|
2018-12-12 14:12:30 +00:00
|
|
|
bool
|
2021-05-11 12:04:12 +00:00
|
|
|
depends on RISCV_MMODE
|
2023-06-21 15:11:45 +00:00
|
|
|
select REGMAP
|
|
|
|
select SYSCON
|
2021-05-11 12:04:12 +00:00
|
|
|
help
|
2023-06-21 15:11:46 +00:00
|
|
|
The RISC-V ACLINT block holds memory-mapped control and status registers
|
2021-05-11 12:04:12 +00:00
|
|
|
associated with software and timer interrupts.
|
|
|
|
|
2023-06-21 15:11:46 +00:00
|
|
|
config SPL_RISCV_ACLINT
|
2021-05-11 12:04:12 +00:00
|
|
|
bool
|
|
|
|
depends on SPL_RISCV_MMODE
|
2023-06-21 15:11:45 +00:00
|
|
|
select SPL_REGMAP
|
|
|
|
select SPL_SYSCON
|
2018-12-12 14:12:30 +00:00
|
|
|
help
|
2023-06-21 15:11:46 +00:00
|
|
|
The RISC-V ACLINT block holds memory-mapped control and status registers
|
2018-12-12 14:12:30 +00:00
|
|
|
associated with software and timer interrupts.
|
|
|
|
|
2021-09-01 07:01:41 +00:00
|
|
|
config SIFIVE_CACHE
|
|
|
|
bool
|
|
|
|
help
|
|
|
|
This enables the operations to configure SiFive cache
|
|
|
|
|
2022-10-25 15:03:50 +00:00
|
|
|
config ANDES_PLICSW
|
2019-04-02 07:56:39 +00:00
|
|
|
bool
|
2019-08-21 19:14:43 +00:00
|
|
|
depends on RISCV_MMODE || SPL_RISCV_MMODE
|
2019-04-02 07:56:39 +00:00
|
|
|
select REGMAP
|
|
|
|
select SYSCON
|
2019-08-21 19:14:43 +00:00
|
|
|
select SPL_REGMAP if SPL
|
|
|
|
select SPL_SYSCON if SPL
|
2019-04-02 07:56:39 +00:00
|
|
|
help
|
2022-10-25 15:03:50 +00:00
|
|
|
The Andes PLICSW block holds memory-mapped claim and pending
|
|
|
|
registers associated with software interrupt.
|
2019-04-02 07:56:39 +00:00
|
|
|
|
2019-03-17 18:28:32 +00:00
|
|
|
config SMP
|
|
|
|
bool "Symmetric Multi-Processing"
|
2020-04-16 15:09:31 +00:00
|
|
|
depends on SBI_V01 || !RISCV_SMODE
|
2019-03-17 18:28:32 +00:00
|
|
|
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.
|
|
|
|
|
2020-04-16 15:09:30 +00:00
|
|
|
config SPL_SMP
|
|
|
|
bool "Symmetric Multi-Processing in SPL"
|
|
|
|
depends on SPL && SPL_RISCV_MMODE
|
|
|
|
default y
|
|
|
|
help
|
|
|
|
This enables support for systems with more than one CPU in SPL.
|
|
|
|
If you say N here, U-Boot SPL will run on single and multiprocessor
|
|
|
|
machines, but will use only one CPU of a multiprocessor
|
|
|
|
machine. If you say Y here, U-Boot SPL will run on many, but not
|
|
|
|
all, single processor machines.
|
|
|
|
|
2019-03-17 18:28:32 +00:00
|
|
|
config NR_CPUS
|
|
|
|
int "Maximum number of CPUs (2-32)"
|
|
|
|
range 2 32
|
2020-04-16 15:09:30 +00:00
|
|
|
depends on SMP || SPL_SMP
|
2019-03-17 18:28:32 +00:00
|
|
|
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.
|
|
|
|
|
2020-03-10 02:35:28 +00:00
|
|
|
config SBI
|
|
|
|
bool
|
|
|
|
default y if RISCV_SMODE || SPL_RISCV_SMODE
|
|
|
|
|
2020-04-16 15:09:32 +00:00
|
|
|
choice
|
|
|
|
prompt "SBI support"
|
2020-04-16 15:09:33 +00:00
|
|
|
default SBI_V02
|
2020-04-16 15:09:32 +00:00
|
|
|
|
2020-03-10 02:35:30 +00:00
|
|
|
config SBI_V01
|
|
|
|
bool "SBI v0.1 support"
|
|
|
|
depends on SBI
|
|
|
|
help
|
|
|
|
This config allows kernel to use SBI v0.1 APIs. This will be
|
|
|
|
deprecated in future once legacy M-mode software are no longer in use.
|
|
|
|
|
2020-04-16 15:09:32 +00:00
|
|
|
config SBI_V02
|
2022-11-08 14:53:12 +00:00
|
|
|
bool "SBI v0.2 or later support"
|
2020-04-16 15:09:32 +00:00
|
|
|
depends on SBI
|
|
|
|
help
|
2022-11-08 14:53:12 +00:00
|
|
|
The SBI specification introduced the concept of extensions in version
|
|
|
|
v0.2. With this configuration option U-Boot can detect and use SBI
|
|
|
|
extensions. With the HSM extension introduced in SBI 0.2, only a
|
|
|
|
single hart needs to boot and enter the operating system. The booting
|
|
|
|
hart can bring up secondary harts one by one afterwards.
|
2020-04-16 15:09:32 +00:00
|
|
|
|
2022-11-08 14:53:12 +00:00
|
|
|
Choose this option if OpenSBI release v0.7 or above is used together
|
2020-04-16 15:09:32 +00:00
|
|
|
with U-Boot.
|
|
|
|
|
|
|
|
endchoice
|
|
|
|
|
2019-03-17 18:28:34 +00:00
|
|
|
config SBI_IPI
|
|
|
|
bool
|
2020-03-10 02:35:28 +00:00
|
|
|
depends on SBI
|
2019-08-21 19:14:43 +00:00
|
|
|
default y if RISCV_SMODE || SPL_RISCV_SMODE
|
2019-03-17 18:28:34 +00:00
|
|
|
depends on SMP
|
|
|
|
|
2019-04-30 05:49:33 +00:00
|
|
|
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.
|
|
|
|
|
2022-09-02 08:47:39 +00:00
|
|
|
config SPL_XIP
|
|
|
|
bool "Enable XIP mode for SPL"
|
|
|
|
help
|
|
|
|
If SPL starts in read-only memory (XIP for example) then we shouldn't
|
|
|
|
rely on lock variables (for example hart_lottery and available_harts_lock),
|
|
|
|
this affects only SPL, other stages should proceed as non-XIP.
|
|
|
|
|
2022-09-21 06:34:54 +00:00
|
|
|
config AVAILABLE_HARTS
|
|
|
|
bool "Send IPI by available harts"
|
|
|
|
default y
|
|
|
|
help
|
|
|
|
By default, IPI sending mechanism will depend on available_harts.
|
|
|
|
If disable this, it will send IPI by CPUs node numbers of device tree.
|
|
|
|
|
2019-12-25 05:27:44 +00:00
|
|
|
config SHOW_REGS
|
|
|
|
bool "Show registers on unhandled exception"
|
|
|
|
|
2020-06-24 10:41:19 +00:00
|
|
|
config RISCV_PRIV_1_9
|
|
|
|
bool "Use version 1.9 of the RISC-V priviledged specification"
|
|
|
|
help
|
|
|
|
Older versions of the RISC-V priviledged specification had
|
|
|
|
separate counter enable CSRs for each privilege mode. Writing
|
|
|
|
to the unified mcounteren CSR on a processor implementing the
|
|
|
|
old specification will result in an illegal instruction
|
|
|
|
exception. In addition to counter CSR changes, the way virtual
|
|
|
|
memory is configured was also changed.
|
|
|
|
|
2019-03-17 18:28:37 +00:00
|
|
|
config STACK_SIZE_SHIFT
|
|
|
|
int
|
2019-10-20 18:53:47 +00:00
|
|
|
default 14
|
2019-03-17 18:28:37 +00:00
|
|
|
|
2020-06-26 01:16:08 +00:00
|
|
|
config OF_BOARD_FIXUP
|
2020-09-05 13:22:11 +00:00
|
|
|
default y if OF_SEPARATE && RISCV_SMODE
|
2020-06-26 01:16:08 +00:00
|
|
|
|
2021-05-13 08:46:18 +00:00
|
|
|
menu "Use assembly optimized implementation of memory routines"
|
|
|
|
|
2021-03-27 11:37:04 +00:00
|
|
|
config USE_ARCH_MEMCPY
|
|
|
|
bool "Use an assembly optimized implementation of memcpy"
|
|
|
|
default y
|
|
|
|
help
|
|
|
|
Enable the generation of an optimized version of memcpy.
|
|
|
|
Such an implementation may be faster under some conditions
|
|
|
|
but may increase the binary size.
|
|
|
|
|
|
|
|
config SPL_USE_ARCH_MEMCPY
|
|
|
|
bool "Use an assembly optimized implementation of memcpy for SPL"
|
|
|
|
default y if USE_ARCH_MEMCPY
|
|
|
|
depends on SPL
|
|
|
|
help
|
|
|
|
Enable the generation of an optimized version of memcpy.
|
|
|
|
Such an implementation may be faster under some conditions
|
|
|
|
but may increase the binary size.
|
|
|
|
|
|
|
|
config TPL_USE_ARCH_MEMCPY
|
|
|
|
bool "Use an assembly optimized implementation of memcpy for TPL"
|
|
|
|
default y if USE_ARCH_MEMCPY
|
|
|
|
depends on TPL
|
|
|
|
help
|
|
|
|
Enable the generation of an optimized version of memcpy.
|
|
|
|
Such an implementation may be faster under some conditions
|
|
|
|
but may increase the binary size.
|
|
|
|
|
|
|
|
config USE_ARCH_MEMMOVE
|
|
|
|
bool "Use an assembly optimized implementation of memmove"
|
|
|
|
default y
|
|
|
|
help
|
|
|
|
Enable the generation of an optimized version of memmove.
|
|
|
|
Such an implementation may be faster under some conditions
|
|
|
|
but may increase the binary size.
|
|
|
|
|
|
|
|
config SPL_USE_ARCH_MEMMOVE
|
|
|
|
bool "Use an assembly optimized implementation of memmove for SPL"
|
|
|
|
default y if USE_ARCH_MEMCPY
|
|
|
|
depends on SPL
|
|
|
|
help
|
|
|
|
Enable the generation of an optimized version of memmove.
|
|
|
|
Such an implementation may be faster under some conditions
|
|
|
|
but may increase the binary size.
|
|
|
|
|
|
|
|
config TPL_USE_ARCH_MEMMOVE
|
|
|
|
bool "Use an assembly optimized implementation of memmove for TPL"
|
|
|
|
default y if USE_ARCH_MEMCPY
|
|
|
|
depends on TPL
|
|
|
|
help
|
|
|
|
Enable the generation of an optimized version of memmove.
|
|
|
|
Such an implementation may be faster under some conditions
|
|
|
|
but may increase the binary size.
|
|
|
|
|
|
|
|
config USE_ARCH_MEMSET
|
|
|
|
bool "Use an assembly optimized implementation of memset"
|
|
|
|
default y
|
|
|
|
help
|
|
|
|
Enable the generation of an optimized version of memset.
|
|
|
|
Such an implementation may be faster under some conditions
|
|
|
|
but may increase the binary size.
|
|
|
|
|
|
|
|
config SPL_USE_ARCH_MEMSET
|
|
|
|
bool "Use an assembly optimized implementation of memset for SPL"
|
|
|
|
default y if USE_ARCH_MEMSET
|
|
|
|
depends on SPL
|
|
|
|
help
|
|
|
|
Enable the generation of an optimized version of memset.
|
|
|
|
Such an implementation may be faster under some conditions
|
|
|
|
but may increase the binary size.
|
|
|
|
|
|
|
|
config TPL_USE_ARCH_MEMSET
|
|
|
|
bool "Use an assembly optimized implementation of memset for TPL"
|
|
|
|
default y if USE_ARCH_MEMSET
|
|
|
|
depends on TPL
|
|
|
|
help
|
|
|
|
Enable the generation of an optimized version of memset.
|
|
|
|
Such an implementation may be faster under some conditions
|
|
|
|
but may increase the binary size.
|
|
|
|
|
2017-12-26 05:55:52 +00:00
|
|
|
endmenu
|
2021-05-13 08:46:18 +00:00
|
|
|
|
2023-10-12 06:35:04 +00:00
|
|
|
config SPL_LOAD_FIT_OPENSBI_OS_BOOT
|
|
|
|
bool "Enable SPL (OpenSBI OS boot mode) applying linux from FIT"
|
|
|
|
depends on SPL_LOAD_FIT
|
|
|
|
help
|
|
|
|
Use fw_dynamic from the FIT image, and u-boot SPL will invoke it directly.
|
|
|
|
This is a shortcut boot flow, from u-boot SPL -> OpenSBI -> u-boot proper
|
|
|
|
-> linux to u-boot SPL -> OpenSBI -> linux.
|
|
|
|
|
2021-05-13 08:46:18 +00:00
|
|
|
endmenu
|