| # Copyright (c) 2021 Andes Technology Corporation |
| # SPDX-License-Identifier: Apache-2.0 |
| |
| config SOC_SERIES_ANDES_AE350 |
| select RISCV |
| select RISCV_PRIVILEGED |
| select RISCV_HAS_PLIC |
| |
| config SOC_ANDES_AE350 |
| select ATOMIC_OPERATIONS_BUILTIN |
| select INCLUDE_RESET_VECTOR |
| select RISCV_ISA_EXT_M |
| select RISCV_ISA_EXT_A |
| select RISCV_ISA_EXT_C |
| select CPU_HAS_DCACHE |
| select CPU_HAS_ICACHE |
| select RISCV_PMP |
| |
| if SOC_SERIES_ANDES_AE350 |
| |
| choice |
| prompt "Base CPU ISA options" |
| default RV32I_CPU |
| |
| config RV32I_CPU |
| bool "RISCV32 CPU ISA" |
| select RISCV_ISA_RV32I |
| select RISCV_ISA_EXT_ZICSR |
| select RISCV_ISA_EXT_ZIFENCEI |
| |
| config RV32E_CPU |
| bool "RISCV32E CPU ISA" |
| select RISCV_ISA_RV32E |
| select RISCV_ISA_EXT_ZICSR |
| select RISCV_ISA_EXT_ZIFENCEI |
| |
| config RV64I_CPU |
| bool "RISCV64 CPU ISA" |
| select RISCV_ISA_RV64I |
| select RISCV_ISA_EXT_ZICSR |
| select RISCV_ISA_EXT_ZIFENCEI |
| select 64BIT |
| |
| endchoice |
| |
| choice |
| prompt "FPU options" |
| default NO_FPU |
| |
| config NO_FPU |
| bool "No FPU" |
| |
| config SINGLE_PRECISION_FPU |
| bool "Single precision FPU" |
| select CPU_HAS_FPU |
| |
| config DOUBLE_PRECISION_FPU |
| bool "Double precision FPU" |
| select CPU_HAS_FPU_DOUBLE_PRECISION |
| |
| endchoice |
| |
| config SOC_ANDES_V5_HWDSP |
| bool "AndeStar V5 DSP ISA" |
| select RISCV_SOC_CONTEXT_SAVE |
| depends on !RISCV_GENERIC_TOOLCHAIN |
| help |
| This option enables the AndeStar v5 hardware DSP, in order to |
| support using the DSP instructions. |
| |
| config SOC_ANDES_V5_PFT |
| bool "Andes V5 PowerBrake extension" |
| default y |
| select RISCV_SOC_CONTEXT_SAVE |
| help |
| The PowerBrake extension throttles performance by reducing instruction |
| executing rate. |
| |
| config SOC_ANDES_V5_EXECIT |
| bool "Andes V5 EXEC.IT extension" |
| depends on RISCV_ISA_EXT_C |
| depends on !RISCV_GENERIC_TOOLCHAIN |
| depends on !LINKER_USE_NO_RELAX |
| help |
| The EXEC.IT extension (Execution on Instruction Table) generate |
| a look-up table and replaces suitable 32-bit instructions with |
| the 16-bit "exec.it <INDEX>". |
| |
| config SOC_ANDES_V5_PMA |
| bool "Andes V5 Physical Memory Attribute (PMA)" |
| select ARCH_HAS_NOCACHE_MEMORY_SUPPORT |
| help |
| This option enables the Andes V5 PMA, in order to support SW to |
| configure physical memory attribute by PMA CSRs. The address |
| matching of Andes V5 PMA is like RISC-V PMP NAPOT mode |
| (power-of-two alignment). |
| |
| config SOC_ANDES_V5_PMA_REGION_MIN_ALIGN_AND_SIZE |
| int |
| depends on SOC_ANDES_V5_PMA |
| default 4096 |
| help |
| Minimum size (and alignment) of an PMA region. Use this symbol |
| to guarantee minimum size and alignment of PMA regions. |
| |
| # Workaround for not being able to have commas in macro arguments |
| DT_ANDESTECH_L2C := andestech,l2c |
| |
| config SOC_ANDES_V5_L2C |
| bool |
| default $(dt_compat_enabled,$(DT_ANDESTECH_L2C)) |
| |
| config SOC_ANDES_V5_IOCP |
| bool "Andes V5 I/O Coherence Port (IOCP)" |
| depends on SOC_ANDES_V5_L2C |
| depends on DCACHE |
| help |
| Support Andes V5 I/O Coherence Port to handle cache coherency |
| between cache and external non-caching master, such as DMA |
| controller. |
| |
| endif # SOC_SERIES_ANDES_AE350 |