# Nordic Semiconductor nRF91 MCU line

# Copyright (c) 2018 Nordic Semiconductor ASA
# SPDX-License-Identifier: Apache-2.0

config SOC_SERIES_NRF91X
	select ARM
	select CPU_CORTEX_M33
	select CPU_CORTEX_M_HAS_DWT
	select CPU_HAS_ARM_MPU
	select CPU_HAS_NRF_IDAU
	select CPU_HAS_FPU
	select ARMV8_M_DSP
	imply XIP
	select HAS_NRFX
	select HAS_SEGGER_RTT if ZEPHYR_SEGGER_MODULE
	select HAS_POWEROFF

if SOC_SERIES_NRF91X

config NRF_SPU_FLASH_REGION_SIZE
	hex
	default 0x8000
	help
	  FLASH region size for the NRF_SPU peripheral

config NRF_SPU_RAM_REGION_SIZE
	hex
	default 0x2000
	help
	  RAM region size for the NRF_SPU peripheral

config NRF_ENABLE_ICACHE
	bool "Instruction cache (I-Cache)"
	default y

endif # SOC_SERIES_NRF91X
