Older parts do not have the menvcfg csr. Provide a Kconfig variable, default y, to enable it. Check the variable in the payload code, when coreboot SBI is used, and print out if it is enabled. The SiFive FU540 and FU740 do not support this register; set the variable to n for those parts. Add constants for this new CSR. Change-Id: I6ea302a5acd98f6941bf314da89dd003ab20b596 Signed-off-by: Ronald G Minnich <rminnich@gmail.com> Reviewed-on: https://review.coreboot.org/c/coreboot/+/81425 Reviewed-by: Nico Huber <nico.h@gmx.de> Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Martin L Roth <gaumless@gmail.com>
123 lines
2.4 KiB
Plaintext
123 lines
2.4 KiB
Plaintext
## SPDX-License-Identifier: GPL-2.0-only
|
|
|
|
config ARCH_RISCV_RV64
|
|
bool
|
|
select ARCH_RISCV
|
|
|
|
config ARCH_RISCV_RV32
|
|
bool
|
|
select ARCH_RISCV
|
|
|
|
config ARCH_RISCV
|
|
bool
|
|
select ARCH_SUPPORTS_CLANG
|
|
|
|
if ARCH_RISCV
|
|
|
|
config RISCV_ARCH
|
|
string
|
|
|
|
config RISCV_ABI
|
|
string
|
|
|
|
config RISCV_CODEMODEL
|
|
string
|
|
|
|
config ARCH_RISCV_M_DISABLED
|
|
bool
|
|
|
|
config ARCH_RISCV_M
|
|
# Whether a SOC implements M mode.
|
|
# M mode is the most privileged mode, it is
|
|
# the equivalent in some ways of x86 SMM mode
|
|
# save that in M mode it is impossible to turn
|
|
# on paging.
|
|
# While the spec requires it, there is at least
|
|
# one implementation that will not have it due
|
|
# to security concerns.
|
|
bool
|
|
default y if ARCH_RISCV && !ARCH_RISCV_M_DISABLED
|
|
default n
|
|
|
|
config ARCH_RISCV_S
|
|
# S (supervisor) mode is for kernels. It is optional.
|
|
bool
|
|
default n
|
|
|
|
config RISCV_HAS_OPENSBI
|
|
def_bool n
|
|
|
|
config RISCV_OPENSBI
|
|
bool "Use OpenSBI to hand over control to payload"
|
|
depends on ARCH_RISCV_M && ARCH_RISCV_S
|
|
depends on RISCV_HAS_OPENSBI
|
|
default n
|
|
help
|
|
Load OpenSBI after payload has been loaded and use it to
|
|
provide the SBI and to handover control to payload.
|
|
|
|
config OPENSBI_PLATFORM
|
|
string
|
|
depends on RISCV_HAS_OPENSBI
|
|
help
|
|
The OpenSBI platform to build for.
|
|
|
|
config OPENSBI_TEXT_START
|
|
hex
|
|
depends on RISCV_HAS_OPENSBI
|
|
help
|
|
The linking address used to build opensbi.
|
|
|
|
config OPENSBI_FW_DYNAMIC_BOOT_HART
|
|
int
|
|
default RISCV_WORKING_HARTID
|
|
help
|
|
This specifies the hart that OpenSBI will use to boot the payload. If set to
|
|
value -1, OpenSBI will use a 'lottery' scheme to figure it out itself.
|
|
This hart must be able to execute in the Supervisor priviledged mode, since
|
|
that is the mode usually used for the payload. If the hart does not support
|
|
Supervisor mode OpenSBI will again look for a hart that does support it.
|
|
|
|
config ARCH_RISCV_U
|
|
# U (user) mode is for programs.
|
|
bool
|
|
default n
|
|
|
|
config ARCH_RISCV_PMP
|
|
bool
|
|
default n
|
|
|
|
config ARCH_BOOTBLOCK_RISCV
|
|
bool
|
|
default n
|
|
|
|
config ARCH_VERSTAGE_RISCV
|
|
bool
|
|
default n
|
|
|
|
config ARCH_ROMSTAGE_RISCV
|
|
bool
|
|
default n
|
|
|
|
config ARCH_RAMSTAGE_RISCV
|
|
bool
|
|
default n
|
|
|
|
config RISCV_USE_ARCH_TIMER
|
|
bool
|
|
default n
|
|
|
|
config RISCV_WORKING_HARTID
|
|
int
|
|
|
|
# Newer SoC have the menvconfig register.
|
|
# Very few SOC do not have this.
|
|
# Older SoC, such as the SiFive FU[57]40, that
|
|
# do not have this register, should set this
|
|
# to n.
|
|
config RISCV_SOC_HAS_MENVCFG
|
|
bool
|
|
default y
|
|
|
|
endif # if ARCH_RISCV
|