# Nordic Semiconductor nRF54H MCU line

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

config SOC_SERIES_NRF54HX
	select HAS_IRONSIDE_SE
	select HAS_NRFS
	select HAS_NRFX
	select HAS_NORDIC_DRIVERS
	select SOC_EARLY_INIT_HOOK if ARM
	select NRF_PLATFORM_HALTIUM
	select EXPERIMENTAL if MCUBOOT

config SOC_NRF54H20_CPUAPP_COMMON
	bool
	select ARM
	select ARMV8_M_DSP
	select CPU_CORTEX_M33
	select CPU_CORTEX_M_HAS_DWT
	select CPU_HAS_ARM_MPU
	select CPU_HAS_ARM_SAU
	select CPU_HAS_DCACHE
	select CPU_HAS_ICACHE
	select CPU_HAS_FPU
	select CPU_HAS_CUSTOM_FIXED_SOC_MPU_REGIONS
	select HAS_NORDIC_DMM
	select HAS_NORDIC_RAM_CTRL
	select HAS_SEGGER_RTT if ZEPHYR_SEGGER_MODULE
	select NRFS_HAS_AUDIOPLL_SERVICE
	select NRFS_HAS_CLOCK_SERVICE
	select NRFS_HAS_GDFS_SERVICE
	select NRFS_HAS_GDPWR_SERVICE
	select NRFS_HAS_MRAM_SERVICE
	select NRFS_HAS_SWEXT_SERVICE
	select NRFS_HAS_TEMP_SERVICE
	select NRFS_HAS_VBUS_DETECTOR_SERVICE
	select HAS_PM
	select HAS_PM_S2RAM_CUSTOM_MARKING
	select HAS_POWEROFF

config SOC_NRF54H20_CPUAPP
	select SOC_NRF54H20_CPUAPP_COMMON

config SOC_NRF54H20_CPURAD_COMMON
	bool
	select ARM
	select ARMV8_M_DSP
	select CPU_CORTEX_M33
	select CPU_CORTEX_M_HAS_DWT
	select CPU_HAS_ARM_MPU
	select CPU_HAS_ARM_SAU
	select CPU_HAS_DCACHE
	select CPU_HAS_ICACHE
	select CPU_HAS_FPU
	select CPU_HAS_CUSTOM_FIXED_SOC_MPU_REGIONS
	select HAS_SEGGER_RTT if ZEPHYR_SEGGER_MODULE
	select NRFS_HAS_AUDIOPLL_SERVICE
	select NRFS_HAS_CLOCK_SERVICE
	select NRFS_HAS_GDFS_SERVICE
	select NRFS_HAS_GDPWR_SERVICE
	select NRFS_HAS_MRAM_SERVICE
	select NRFS_HAS_SWEXT_SERVICE
	select NRFS_HAS_TEMP_SERVICE
	select NRFS_HAS_VBUS_DETECTOR_SERVICE
	select HAS_NORDIC_DMM
	select HAS_NORDIC_RAM_CTRL
	select HAS_PM
	select HAS_POWEROFF

config SOC_NRF54H20_CPURAD_ENABLE
	bool "Boot the nRF54H20 Radio core"
	default y if NRF_802154_SER_HOST || BT_HCI_HOST
	depends on SOC_NRF54H20_CPUAPP
	select IRONSIDE_SE_CALL
	select SOC_LATE_INIT_HOOK
	help
	  This will at application boot time enable clock to the
	  Radiocore, and also power will be requested to the Radiocore
	  subsystem. The Radiocore will then start executing instructions.

if SOC_NRF54H20_CPURAD_ENABLE

config SOC_NRF54H20_CPURAD_ENABLE_CHECK_VTOR
	bool "Check VTOR before booting Radio core"
	default y
	help
	  Verify that VTOR is not 0xFFFFFFFF before booting the Radiocore.

config SOC_NRF54H20_CPURAD_ENABLE_DEBUG_WAIT
	bool "Boot the Radio core in DEBUGWAIT mode"
	help
	  Halt the Radio core immediately after reset. This ensures that a
	  debugger can attach and take control from the very first
	  instruction.

endif # SOC_NRF54H20_CPURAD_ENABLE

config SOC_NRF54H20_CPURAD
	select SOC_NRF54H20_CPURAD_COMMON

config SOC_NRF54H20_CPUPPR
	select RISCV_CORE_NORDIC_VPR

config SOC_NRF54H20_CPUFLPR
	select RISCV_CORE_NORDIC_VPR

rsource "bicr/Kconfig"
