# RV32M1 SoC RISC-V core default configuration values # Copyright (c) 2018 Foundries.io Ltd # SPDX-License-Identifier: Apache-2.0 if SOC_OPENISA_RV32M1_RISCV32 config SOC default "openisa_rv32m1" # 32 from event unit + 32 * (1 + max enabled INTMUX channel) config NUM_IRQS default 288 if RV32M1_INTMUX_CHANNEL_7 default 256 if RV32M1_INTMUX_CHANNEL_6 default 224 if RV32M1_INTMUX_CHANNEL_5 default 192 if RV32M1_INTMUX_CHANNEL_4 default 160 if RV32M1_INTMUX_CHANNEL_3 default 128 if RV32M1_INTMUX_CHANNEL_2 default 96 if RV32M1_INTMUX_CHANNEL_1 default 64 if RV32M1_INTMUX_CHANNEL_0 default 32 config RISCV_GENERIC_TOOLCHAIN default y if "$(ZEPHYR_TOOLCHAIN_VARIANT)" = "zephyr" default n config RISCV_SOC_CONTEXT_SAVE default y if SOC_OPENISA_RV32M1_RI5CY config RISCV_SOC_OFFSETS default y config RISCV_SOC_INTERRUPT_INIT default y # We need to disable the watchdog out of reset, as it's enabled by # default. Use the WDOG_INIT hook for doing that. config WDOG_INIT def_bool y config SYS_CLOCK_HW_CYCLES_PER_SEC default 8000000 if MULTI_LEVEL_INTERRUPTS config MAX_IRQ_PER_AGGREGATOR default 32 config 2ND_LEVEL_INTERRUPTS default y config 2ND_LVL_ISR_TBL_OFFSET default 32 config NUM_2ND_LEVEL_AGGREGATORS default 8 if RV32M1_INTMUX_CHANNEL_7 default 7 if RV32M1_INTMUX_CHANNEL_6 default 6 if RV32M1_INTMUX_CHANNEL_5 default 5 if RV32M1_INTMUX_CHANNEL_4 default 4 if RV32M1_INTMUX_CHANNEL_3 default 3 if RV32M1_INTMUX_CHANNEL_2 default 2 if RV32M1_INTMUX_CHANNEL_1 default 1 # just channel 0 config 2ND_LVL_INTR_00_OFFSET default 24 config 2ND_LVL_INTR_01_OFFSET int default 25 config 2ND_LVL_INTR_02_OFFSET int default 26 config 2ND_LVL_INTR_03_OFFSET int default 27 config 2ND_LVL_INTR_04_OFFSET int default 28 config 2ND_LVL_INTR_05_OFFSET int default 29 config 2ND_LVL_INTR_06_OFFSET int default 30 config 2ND_LVL_INTR_07_OFFSET int default 31 config RV32M1_INTMUX default y config RV32M1_INTMUX_CHANNEL_0 default y config RV32M1_INTMUX_CHANNEL_1 default y config RV32M1_INTMUX_CHANNEL_2 default y config RV32M1_INTMUX_CHANNEL_3 default y config RV32M1_INTMUX_CHANNEL_4 default y config RV32M1_INTMUX_CHANNEL_5 default y config RV32M1_INTMUX_CHANNEL_6 default y config RV32M1_INTMUX_CHANNEL_7 default y endif # MULTI_LEVEL_INTERRUPTS config PINMUX_RV32M1 default y config GPIO_RV32M1 default y depends on GPIO config UART_RV32M1_LPUART default y depends on SERIAL config I2C_RV32M1_LPI2C default y depends on I2C config SPI_RV32M1_LPSPI default y depends on SPI config PWM_RV32M1_TPM default y depends on PWM if FLASH config SOC_FLASH_RV32M1 default y # Workaround for not being able to have commas in macro arguments DT_CHOSEN_Z_FLASH := zephyr,flash config FLASH_BASE_ADDRESS default $(dt_chosen_reg_addr_hex,$(DT_CHOSEN_Z_FLASH)) endif # FLASH config ENTROPY_RV32M1_TRNG default y depends on ENTROPY_GENERATOR endif # SOC_OPENISA_RV32M1_RISCV32