1# Copyright (c) 2021,2025 Henrik Brix Andersen <henrik@brixandersen.dk>
2# SPDX-License-Identifier: Apache-2.0
3
4config SOC_NEORV32
5	select RISCV
6	select RISCV_PRIVILEGED
7	select RISCV_SOC_HAS_GP_RELATIVE_ADDRESSING
8	select RISCV_ISA_EXT_ZICSR
9	select RISCV_ISA_EXT_ZIFENCEI
10	imply XIP
11
12if SOC_NEORV32
13
14config SOC_NEORV32_VERSION
15	hex
16	default 0x01110200
17	help
18	  The targeted NEORV32 version as BCD-coded number. The format is
19	  identical to that of the NEORV32 Machine implementation ID (mimpid)
20	  register.
21
22config SOC_NEORV32_READ_FREQUENCY_AT_RUNTIME
23	bool "Read the NEORV32 clock frequency at runtime"
24	default y
25	depends on !$(dt_node_has_prop,/cpus/cpu@0,clock-frequency)
26	depends on SYS_CLOCK_EXISTS
27	select SOC_EARLY_INIT_HOOK
28	select TIMER_READS_ITS_FREQUENCY_AT_RUNTIME
29	help
30	  If enabled, the NEORV32 clock frequency will be read from SYSINFO during boot. This
31	  results in small overhead, which can be avoided by setting the clock-frequency property of
32	  the cpu@0 devicetree node if the frequency is known at build-time.
33
34endif # SOC_NEORV32
35