blob: 2f7aa0db9b934758f864641924e1738426ae27d7 [file] [log] [blame]
# 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_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
if FLASH
# 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
endif # SOC_OPENISA_RV32M1_RISCV32