config ARCH_RISCV_RV64
	bool
	select ARCH_RISCV

config ARCH_RISCV_RV32
	bool
	select ARCH_RISCV

config ARCH_RISCV
	bool

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 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

endif # if ARCH_RISCV
