soc: nordic_nrf: Migrate nRF54H/nRF54L to v2 and fix nrf

Moves this SoC over from v1 to v2 so it can be used in HWMv2, and
fix the SoC configuration for existing nordic_nrf devices which
was not ported properly

Signed-off-by: Jamie McCrae <jamie.mccrae@nordicsemi.no>
This commit is contained in:
Jamie McCrae
2024-02-12 16:01:37 +00:00
committed by Carles Cufi
parent c860f205de
commit d44ef90cf8
71 changed files with 307 additions and 371 deletions

View File

@@ -2,36 +2,37 @@
zephyr_library()
add_subdirectory(${SOC_SERIES})
add_subdirectory(common)
zephyr_include_directories(${SOC_SERIES})
if(CONFIG_ARM)
set(SOC_LINKER_SCRIPT ${ZEPHYR_BASE}/include/zephyr/arch/arm/cortex_m/scripts/linker.ld CACHE INTERNAL "SoC Linker script")
set(SOC_LINKER_SCRIPT ${ZEPHYR_BASE}/include/zephyr/arch/arm/cortex_m/scripts/linker.ld CACHE INTERNAL "SoC Linker script")
zephyr_library_sources(
validate_base_addresses.c
validate_enabled_instances.c
)
zephyr_library_sources(
validate_base_addresses.c
validate_enabled_instances.c
)
if(CONFIG_SOC_HAS_TIMING_FUNCTIONS AND NOT CONFIG_BOARD_HAS_TIMING_FUNCTIONS)
if(CONFIG_TIMING_FUNCTIONS)
# Use nRF-specific timing calculations only if DWT is not present
if(NOT CONFIG_CORTEX_M_DWT)
zephyr_library_sources(timing.c)
if(CONFIG_SOC_HAS_TIMING_FUNCTIONS AND NOT CONFIG_BOARD_HAS_TIMING_FUNCTIONS)
if(CONFIG_TIMING_FUNCTIONS)
# Use nRF-specific timing calculations only if DWT is not present
if(NOT CONFIG_CORTEX_M_DWT)
zephyr_library_sources(timing.c)
endif()
endif()
endif()
if(CONFIG_BUILD_WITH_TFM)
set_property(TARGET zephyr_property_target
APPEND PROPERTY TFM_CMAKE_OPTIONS -DHAL_NORDIC_PATH=${ZEPHYR_HAL_NORDIC_MODULE_DIR}
)
set_property(TARGET zephyr_property_target
APPEND PROPERTY TFM_CMAKE_OPTIONS -DZEPHYR_BASE=${ZEPHYR_BASE}
)
set_property(TARGET zephyr_property_target
APPEND PROPERTY TFM_CMAKE_OPTIONS -DNRF_NS_STORAGE=${CONFIG_TFM_NRF_NS_STORAGE}
)
endif()
endif()
if(CONFIG_BUILD_WITH_TFM)
set_property(TARGET zephyr_property_target
APPEND PROPERTY TFM_CMAKE_OPTIONS -DHAL_NORDIC_PATH=${ZEPHYR_HAL_NORDIC_MODULE_DIR}
)
set_property(TARGET zephyr_property_target
APPEND PROPERTY TFM_CMAKE_OPTIONS -DZEPHYR_BASE=${ZEPHYR_BASE}
)
set_property(TARGET zephyr_property_target
APPEND PROPERTY TFM_CMAKE_OPTIONS -DNRF_NS_STORAGE=${CONFIG_TFM_NRF_NS_STORAGE}
)
endif()
add_subdirectory(${SOC_SERIES})
add_subdirectory(common)

View File

@@ -8,17 +8,12 @@
config SOC_FAMILY_NRF
select SOC_COMPATIBLE_NRF
select PLATFORM_SPECIFIC_INIT
rsource "*/Kconfig.series"
select PLATFORM_SPECIFIC_INIT if ARM
if SOC_FAMILY_NRF
config SOC_FAMILY
string
default "nordic_nrf"
source "soc/common/nordic_nrf/Kconfig.peripherals"
rsource "*/Kconfig.soc"
rsource "*/Kconfig"
config NRF_SOC_SECURE_SUPPORTED
def_bool !TRUSTED_EXECUTION_NONSECURE || (BUILD_WITH_TFM && TFM_PARTITION_PLATFORM)

View File

@@ -5,7 +5,9 @@
if SOC_FAMILY_NRF
rsource "*/Kconfig.defconfig.series"
rsource "*/Kconfig.defconfig"
if ARM
# If the kernel has timer support, enable clock control
if SYS_CLOCK_EXISTS
@@ -42,4 +44,6 @@ config GPIO
config UART_USE_RUNTIME_CONFIGURE
default n
endif # ARM
endif # SOC_FAMILY_NRF

View File

@@ -2,7 +2,7 @@
# SPDX-License-Identifier: Apache-2.0
# This file contains Zephyr hw modul v2 Kconfig description for
# This file contains Zephyr hw module v2 Kconfig description for
# Nordic Semiconductor SoCs.
# The hw model v2 is generic and contains no Kconfig references outside its own
# tree structure and is therefore reusable in Kconfig trees outside a Zephyr build.
@@ -11,15 +11,15 @@ config SOC_SERIES
default "nrf51" if SOC_SERIES_NRF51X
default "nrf52" if SOC_SERIES_NRF52X
default "nrf53" if SOC_SERIES_NRF53X
default "nrf54h" if SOC_SERIES_NRF54HX
default "nrf54l" if SOC_SERIES_NRF54LX
default "nrf91" if SOC_SERIES_NRF91X
config SOC_FAMILY_NRF
bool
config SOC_FAMILY
string
default "nordic_nrf"
depends on SOC_FAMILY_NRF
default "nordic_nrf" if SOC_FAMILY_NRF
config SOC_SERIES_NRF51X
bool
@@ -38,6 +38,18 @@ config SOC_SERIES_NRF53X
help
Enable support for NRF53 MCU series
config SOC_SERIES_NRF54HX
bool
select SOC_FAMILY_NRF
help
Nordic Semiconductor nRF54H series MCU
config SOC_SERIES_NRF54LX
bool
select SOC_FAMILY_NRF
help
Nordic Semiconductor nRF54L series MCU
config SOC_SERIES_NRF91X
bool
select SOC_FAMILY_NRF

View File

@@ -1,16 +1,16 @@
# Copyright (c) 2021 Nordic Semiconductor ASA
# SPDX-License-Identifier: Apache-2.0
zephyr_library_sources_ifdef(CONFIG_SOC_FAMILY_NRF soc_nrf_common.S)
zephyr_library_sources_ifdef(CONFIG_POWEROFF poweroff.c)
if(CONFIG_ARM)
zephyr_library_sources_ifdef(CONFIG_SOC_FAMILY_NRF soc_nrf_common.S)
zephyr_library_sources_ifdef(CONFIG_POWEROFF poweroff.c)
zephyr_include_directories(.)
zephyr_include_directories(.)
set(SOC_LINKER_SCRIPT ${ZEPHYR_BASE}/include/zephyr/arch/arm/cortex_m/scripts/linker.ld CACHE INTERNAL "")
if (CONFIG_TFM_PARTITION_PLATFORM)
zephyr_library_sources(soc_secure.c)
zephyr_library_include_directories(
$<TARGET_PROPERTY:tfm,TFM_BINARY_DIR>/api_ns/interface/include
)
if(CONFIG_TFM_PARTITION_PLATFORM)
zephyr_library_sources(soc_secure.c)
zephyr_library_include_directories(
$<TARGET_PROPERTY:tfm,TFM_BINARY_DIR>/api_ns/interface/include
)
endif()
endif()

View File

@@ -1,3 +1,4 @@
# SPDX-License-Identifier: Apache-2.0
zephyr_library_sources(soc.c)
zephyr_include_directories(.)

View File

@@ -7,10 +7,7 @@
config SOC_SERIES_NRF51X
select ARM
select CPU_CORTEX_M0
select SOC_FAMILY_NRF
imply XIP
select HAS_NRFX
select HAS_SEGGER_RTT if ZEPHYR_SEGGER_MODULE
select HAS_POWEROFF
help
Enable support for NRF51 MCU series

View File

@@ -3,6 +3,11 @@
# Copyright (c) 2016 Linaro Limited
# SPDX-License-Identifier: Apache-2.0
config SOC_SERIES_NRF51X
select SOC_FAMILY_NRF
help
Enable support for NRF51 MCU series
config SOC_NRF51822_QFAA
bool
select SOC_SERIES_NRF51X
@@ -16,13 +21,6 @@ config SOC_NRF51822_QFAC
select SOC_SERIES_NRF51X
config SOC
default "nRF51822_QFAA"
depends on SOC_NRF51822_QFAA
config SOC
default "nRF51822_QFAB"
depends on SOC_NRF51822_QFAB
config SOC
default "nRF51822_QFAC"
depends on SOC_NRF51822_QFAC
default "nRF51822_QFAA" if SOC_NRF51822_QFAA
default "nRF51822_QFAB" if SOC_NRF51822_QFAB
default "nRF51822_QFAC" if SOC_NRF51822_QFAC

View File

@@ -1,6 +1,7 @@
# SPDX-License-Identifier: Apache-2.0
zephyr_library_sources(soc.c)
zephyr_include_directories(.)
if(CONFIG_SOC_NRF52832_ALLOW_SPIM_DESPITE_PAN_58 AND CONFIG_SPI_NRFX_SPIM)
message(WARNING "Both SOC_NRF52832_ALLOW_SPIM_DESPITE_PAN_58 and an NRF SPIM driver are enabled, therefore PAN 58 will apply if RXD.MAXCNT == 1 and TXD.MAXCNT <= 1")

View File

@@ -3,7 +3,17 @@
# Copyright (c) 2016-2023 Nordic Semiconductor ASA
# SPDX-License-Identifier: Apache-2.0
if SOC_SERIES_NRF52X
config SOC_SERIES_NRF52X
select ARM
select SOC_COMPATIBLE_NRF52X
select CPU_CORTEX_M4
select CPU_HAS_ARM_MPU
imply XIP
select HAS_NRFX
select HAS_NORDIC_DRIVERS
select HAS_SEGGER_RTT if ZEPHYR_SEGGER_MODULE
select HAS_SWO
select HAS_POWEROFF
config SOC_NRF52832
select CPU_CORTEX_M_HAS_DWT
@@ -18,6 +28,8 @@ config SOC_NRF52840
select CPU_CORTEX_M_HAS_DWT
select CPU_HAS_FPU
if SOC_SERIES_NRF52X
config SOC_DCDC_NRF52X
bool
help

View File

@@ -5,10 +5,6 @@
if SOC_NRF52833_QDAA
config SOC
string
default "nRF52833_QDAA"
config NUM_IRQS
int
default 48

View File

@@ -5,9 +5,6 @@
if SOC_NRF52840_QFAA
config SOC
default "nRF52840_QFAA"
config NUM_IRQS
default 48

View File

@@ -1,19 +0,0 @@
# Nordic Semiconductor nRF52 MCU line
# Copyright (c) 2016-2018 Nordic Semiconductor ASA
# SPDX-License-Identifier: Apache-2.0
config SOC_SERIES_NRF52X
select ARM
select SOC_COMPATIBLE_NRF52X
select CPU_CORTEX_M4
select CPU_HAS_ARM_MPU
select SOC_FAMILY_NRF
imply XIP
select HAS_NRFX
select HAS_NORDIC_DRIVERS
select HAS_SEGGER_RTT if ZEPHYR_SEGGER_MODULE
select HAS_SWO
select HAS_POWEROFF
help
Enable support for NRF52 MCU series

View File

@@ -3,6 +3,11 @@
# Copyright (c) 2022-2023 Nordic Semiconductor ASA
# SPDX-License-Identifier: Apache-2.0
config SOC_SERIES_NRF52X
select SOC_FAMILY_NRF
help
Enable support for NRF52 MCU series
config SOC_NRF52805
bool
select SOC_SERIES_NRF52X
@@ -59,47 +64,31 @@ config SOC_NRF52832_QFAB
bool
select SOC_NRF52832
config SOC_NRF52833_QDAA
bool
select SOC_NRF52833
config SOC_NRF52833_QIAA
bool
select SOC_NRF52833
config SOC_NRF52840_QFAA
bool
select SOC_NRF52840
config SOC_NRF52840_QIAA
bool
select SOC_NRF52840
config SOC
default "nRF52805_CAAA"
depends on SOC_NRF52805_CAAA
config SOC
default "nRF52840_QIAA"
depends on SOC_NRF52840_QIAA
config SOC
default "nRF52810_QFAA"
depends on SOC_NRF52810_QFAA
config SOC
default "nRF52811_QFAA"
depends on SOC_NRF52811_QFAA
config SOC
string
default "nRF52820_QDAA"
depends on SOC_NRF52820_QDAA
config SOC
default "nRF52832_CIAA"
depends on SOC_NRF52832_CIAA
config SOC
default "nRF52832_QFAA"
depends on SOC_NRF52832_QFAA
config SOC
default "nRF52832_QFAB"
depends on SOC_NRF52832_QFAB
config SOC
default "nRF52833_QIAA"
depends on SOC_NRF52833_QIAA
default "nRF52805_CAAA" if SOC_NRF52805_CAAA
default "nRF52810_QFAA" if SOC_NRF52810_QFAA
default "nRF52811_QFAA" if SOC_NRF52811_QFAA
default "nRF52820_QDAA" if SOC_NRF52820_QDAA
default "nRF52832_CIAA" if SOC_NRF52832_CIAA
default "nRF52832_QFAA" if SOC_NRF52832_QFAA
default "nRF52832_QFAB" if SOC_NRF52832_QFAB
default "nRF52833_QDAA" if SOC_NRF52833_QDAA
default "nRF52833_QIAA" if SOC_NRF52833_QIAA
default "nRF52840_QFAA" if SOC_NRF52840_QFAA
default "nRF52840_QIAA" if SOC_NRF52840_QIAA

View File

@@ -1,6 +1,7 @@
# SPDX-License-Identifier: Apache-2.0
zephyr_library_sources(soc.c)
zephyr_include_directories(.)
zephyr_library_sources_ifdef(CONFIG_NRF53_SYNC_RTC sync_rtc.c)

View File

@@ -3,7 +3,20 @@
# Copyright (c) 2019 Nordic Semiconductor ASA
# SPDX-License-Identifier: Apache-2.0
if SOC_SERIES_NRF53X
config SOC_SERIES_NRF53X
bool
select ARM
select SOC_COMPATIBLE_NRF53X
select CPU_CORTEX_M33
select CPU_CORTEX_M_HAS_DWT
select CPU_HAS_ARM_MPU
imply XIP
select HAS_NRFX
select HAS_NORDIC_DRIVERS
select HAS_SEGGER_RTT if ZEPHYR_SEGGER_MODULE
select HAS_SWO
help
Enable support for NRF53 MCU series
config SOC_NRF5340_CPUAPP
select CPU_HAS_NRF_IDAU
@@ -21,6 +34,8 @@ config SOC_NRF5340_CPUNET
imply SOC_NRF53_RTC_PRETICK if !WDT_NRFX
imply SOC_NRF53_ANOMALY_168_WORKAROUND
if SOC_SERIES_NRF53X
config SOC_NRF53_ANOMALY_160_WORKAROUND_NEEDED
bool "Workaround for nRF5340 anomaly 160"
imply SOC_NRF53_ANOMALY_160_WORKAROUND

View File

@@ -1,20 +0,0 @@
# Nordic Semiconductor nRF53 MCU line
# Copyright (c) 2019 Nordic Semiconductor ASA
# SPDX-License-Identifier: Apache-2.0
config SOC_SERIES_NRF53X
bool "Nordic Semiconductor nRF53 series MCU" if "$(SOC_SCHEME)" = "v1"
select ARM
select SOC_COMPATIBLE_NRF53X
select CPU_CORTEX_M33
select CPU_CORTEX_M_HAS_DWT
select CPU_HAS_ARM_MPU
select SOC_FAMILY_NRF
imply XIP
select HAS_NRFX
select HAS_NORDIC_DRIVERS
select HAS_SEGGER_RTT if ZEPHYR_SEGGER_MODULE
select HAS_SWO
help
Enable support for NRF53 MCU series

View File

@@ -3,6 +3,12 @@
# Copyright (c) 2023 Nordic Semiconductor ASA
# SPDX-License-Identifier: Apache-2.0
config SOC_SERIES_NRF53X
bool
select SOC_FAMILY_NRF
help
Enable support for NRF53 MCU series
config SOC_NRF5340_CPUAPP
bool
select SOC_SERIES_NRF53X
@@ -20,9 +26,5 @@ config SOC_NRF5340_CPUNET_QKAA
select SOC_NRF5340_CPUNET
config SOC
default "nRF5340_CPUAPP_QKAA"
depends on SOC_NRF5340_CPUAPP_QKAA
config SOC
default "nRF5340_CPUNET_QKAA"
depends on SOC_NRF5340_CPUNET_QKAA
default "nRF5340_CPUAPP_QKAA" if SOC_NRF5340_CPUAPP_QKAA
default "nRF5340_CPUNET_QKAA" if SOC_NRF5340_CPUNET_QKAA

View File

@@ -1,6 +1,12 @@
# Copyright (c) 2024 Nordic Semiconductor
# SPDX-License-Identifier: Apache-2.0
if(CONFIG_ARM)
add_subdirectory(arm)
elseif(CONFIG_RISCV)
add_subdirectory(riscv)
endif()
# Ensure that image size aligns with 16 bytes so that MRAMC finalizes all writes
# for the image correctly
zephyr_linker_sources(SECTIONS SORT_KEY zzz_place_align_at_end align.ld)

View File

@@ -3,35 +3,42 @@
# Copyright (c) 2024 Nordic Semiconductor ASA
# SPDX-License-Identifier: Apache-2.0
config SOC_NRF54H20
bool "nRF54H20"
depends on SOC_SERIES_NRF54HX
if SOC_NRF54H20
choice
prompt "nRF54H20 MCU Selection"
config SOC_SERIES_NRF54HX
select HAS_NRFX
select HAS_NORDIC_DRIVERS
config SOC_NRF54H20_ENGA_CPUAPP
bool "nRF54H20 ENGA CPUAPP"
select ARM
select ARMV8_M_DSP
select CPU_CORTEX_M33
select CPU_HAS_ARM_MPU
select CPU_HAS_ARM_SAU
select CPU_HAS_DCACHE
select CPU_HAS_ICACHE
select CPU_HAS_FPU
select HAS_SEGGER_RTT if ZEPHYR_SEGGER_MODULE
config SOC_NRF54H20_ENGA_CPURAD
bool "nRF54H20 ENGA CPURAD"
select ARM
select ARMV8_M_DSP
select CPU_CORTEX_M33
select CPU_HAS_ARM_MPU
select CPU_HAS_ARM_SAU
select CPU_HAS_DCACHE
select CPU_HAS_ICACHE
select CPU_HAS_FPU
select HAS_SEGGER_RTT if ZEPHYR_SEGGER_MODULE
endchoice
config SOC_NRF54H20_ENGA_CPUPPR
select RISCV
select RISCV_CORE_NORDIC_VPR
if SOC_NRF54H20
config NRF_ENABLE_ICACHE
bool "Instruction cache (I-Cache)"
default y
rsource "*/Kconfig"
endif # SOC_NRF54H20

View File

@@ -1,3 +1,5 @@
# Nordic Semiconductor nRF54H MCU line
# Copyright (c) 2024 Nordic Semiconductor ASA
# SPDX-License-Identifier: Apache-2.0
@@ -5,8 +7,14 @@ if SOC_SERIES_NRF54HX
rsource "Kconfig.defconfig.nrf54h*"
config SOC_SERIES
default "nrf54h"
if ARM
config CACHE_NRF_CACHE
default y if EXTERNAL_CACHE
endif # ARM
if RISCV
DT_CHOSEN_Z_SRAM = zephyr,sram
DT_CHOSEN_Z_CODE = zephyr,code-partition
@@ -16,4 +24,15 @@ config BUILD_OUTPUT_ADJUST_LMA
default "$(dt_chosen_partition_addr_hex,$(DT_CHOSEN_Z_CODE)) - \
$(dt_chosen_reg_addr_hex,$(DT_CHOSEN_Z_SRAM))"
config BUILD_OUTPUT_HEX
default y
config SYS_CLOCK_HW_CYCLES_PER_SEC
default 1000000 if NRF_GRTC_TIMER
default 32768 if NRF_RTC_TIMER
endif # RISCV
rsource "*/Kconfig.defconfig"
endif # SOC_SERIES_NRF54HX

View File

@@ -5,9 +5,6 @@
if SOC_NRF54H20_ENGA_CPUAPP
config SOC
default "nrf54h20_enga_cpuapp"
config NUM_IRQS
default 471

View File

@@ -3,9 +3,6 @@
if SOC_NRF54H20_ENGA_CPUPPR
config SOC
default "nrf54h20_enga_cpuppr"
config NUM_IRQS
default 496

View File

@@ -5,9 +5,6 @@
if SOC_NRF54H20_ENGA_CPURAD
config SOC
default "nrf54h20_enga_cpurad"
config NUM_IRQS
default 471

View File

@@ -0,0 +1,31 @@
# Nordic Semiconductor nRF54H MCU line
# Copyright (c) 2024 Nordic Semiconductor ASA
# SPDX-License-Identifier: Apache-2.0
config SOC_NRF54H20
bool
select SOC_SERIES_NRF54HX
help
nRF54H20
config SOC_NRF54H20_ENGA_CPUAPP
bool
select SOC_NRF54H20
help
nRF54H20 ENGA CPUAPP
config SOC_NRF54H20_ENGA_CPURAD
bool
select SOC_NRF54H20
help
nRF54H20 ENGA CPURAD
config SOC_NRF54H20_ENGA_CPUPPR
bool
select SOC_NRF54H20
help
nRF54H20 ENGA CPUPPR
config SOC
default "nrf54h20" if SOC_NRF54H20

View File

@@ -0,0 +1,4 @@
# SPDX-License-Identifier: Apache-2.0
zephyr_library_sources(soc.c)
zephyr_include_directories(.)

View File

@@ -2,4 +2,4 @@
# SPDX-License-Identifier: Apache-2.0
add_subdirectory(common)
add_subdirectory(${SOC_SERIES})
zephyr_include_directories(.)

View File

@@ -1,4 +1,4 @@
# Copyright (c) 2024 Nordic Semiconductor ASA
# SPDX-License-Identifier: Apache-2.0
source "soc/soc_legacy/riscv/nordic_nrf/*/Kconfig.series"
rsource "common/Kconfig"

View File

@@ -0,0 +1,4 @@
# Copyright (c) 2024 Nordic Semiconductor ASA
# SPDX-License-Identifier: Apache-2.0
rsource "common/Kconfig.defconfig"

View File

@@ -1,4 +1,4 @@
# Copyright (c) 2024 Nordic Semiconductor ASA
# SPDX-License-Identifier: Apache-2.0
source "soc/soc_legacy/riscv/nordic_nrf/common/vpr/Kconfig"
rsource "vpr/Kconfig"

View File

@@ -3,6 +3,6 @@
if RISCV_CORE_NORDIC_VPR
source "soc/soc_legacy/riscv/nordic_nrf/common/vpr/Kconfig.defconfig"
rsource "vpr/Kconfig.defconfig"
endif # RISCV_CORE_NORDIC_VPR

View File

@@ -3,7 +3,6 @@
zephyr_include_directories(.)
zephyr_library()
zephyr_library_sources(soc_irq.S soc_irq.c vector.S)
set(SOC_LINKER_SCRIPT ${ZEPHYR_BASE}/include/zephyr/arch/riscv/common/linker.ld CACHE INTERNAL "")

View File

@@ -3,8 +3,10 @@
zephyr_library_sources(
soc.c
../validate_rram_partitions.c)
../validate_rram_partitions.c
)
zephyr_include_directories(.)
if (CONFIG_ELV_GRTC_LFXO_ALLOWED)
if(CONFIG_ELV_GRTC_LFXO_ALLOWED)
message(WARNING "WARNING! ELV mode feature is EXPERIMENTAL and may brick your device!")
endif()

View File

@@ -3,17 +3,12 @@
# Copyright (c) 2024 Nordic Semiconductor ASA
# SPDX-License-Identifier: Apache-2.0
if SOC_SERIES_NRF54LX
config SOC_NRF54L15
bool "NRF54L15"
config SOC_NRF54L15_ENGA
bool "NRF54L15 ENGA"
select SOC_NRF54L15
config SOC_SERIES_NRF54LX
select HAS_NRFX
select HAS_NORDIC_DRIVERS
select HAS_SEGGER_RTT if ZEPHYR_SEGGER_MODULE
config SOC_NRF54L15_ENGA_CPUAPP
bool "NRF54L15 ENGA CPUAPP"
select ARM
select ARMV8_M_DSP
select CPU_CORTEX_M33
@@ -23,7 +18,8 @@ config SOC_NRF54L15_ENGA_CPUAPP
select CPU_HAS_FPU
select HAS_HW_NRF_RADIO_IEEE802154
select HAS_POWEROFF
select SOC_NRF54L15_ENGA
if SOC_SERIES_NRF54LX
config SOC_NRF54LX_SKIP_CLOCK_CONFIG
bool "Skip clock frequency configuration in system initialization"

View File

@@ -7,9 +7,6 @@ if SOC_SERIES_NRF54LX
rsource "Kconfig.defconfig.nrf54l*"
config SOC_SERIES
default "nrf54l"
config CORTEX_M_SYSTICK
default !NRF_GRTC_TIMER

View File

@@ -5,10 +5,6 @@
if SOC_NRF54L15_ENGA_CPUAPP
config SOC
string
default "nrf54l15_cpuapp"
config NUM_IRQS
default 271

View File

@@ -0,0 +1,25 @@
# Nordic Semiconductor nRF54L MCU line
# Copyright (c) 2024 Nordic Semiconductor ASA
# SPDX-License-Identifier: Apache-2.0
config SOC_NRF54L15
bool
select SOC_SERIES_NRF54LX
help
NRF54L15
config SOC_NRF54L15_ENGA
bool
select SOC_NRF54L15
help
NRF54L15 ENGA
config SOC_NRF54L15_ENGA_CPUAPP
bool
select SOC_NRF54L15_ENGA
help
NRF54L15 ENGA CPUAPP
config SOC
default "nrf54l15" if SOC_NRF54L15

View File

@@ -1,3 +1,4 @@
# SPDX-License-Identifier: Apache-2.0
zephyr_library_sources(soc.c)
zephyr_include_directories(.)

View File

@@ -3,8 +3,33 @@
# 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

View File

@@ -5,9 +5,6 @@
if SOC_NRF9151_LACA
config SOC
default "nRF9151_LACA"
config NUM_IRQS
default 65

View File

@@ -1,38 +0,0 @@
# 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
select SOC_FAMILY_NRF
imply XIP
select HAS_NRFX
select HAS_SEGGER_RTT if ZEPHYR_SEGGER_MODULE
select HAS_POWEROFF
help
Enable support for NRF91 MCU series
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

View File

@@ -3,10 +3,23 @@
# Copyright (c) 2018 Nordic Semiconductor ASA
# SPDX-License-Identifier: Apache-2.0
config SOC_SERIES_NRF91X
select SOC_FAMILY_NRF
help
Enable support for NRF91 MCU series
config SOC_NRF9120
bool
select SOC_SERIES_NRF91X
config SOC_NRF9131_LACA
bool
select SOC_NRF9120
config SOC_NRF9151_LACA
bool
select SOC_NRF9120
config SOC_NRF9160
bool
select SOC_SERIES_NRF91X
@@ -27,14 +40,6 @@ config SOC_NRF9161_LACA
bool
select SOC_NRF9120
config SOC_NRF9131_LACA
bool
select SOC_NRF9120
config SOC_NRF9151_LACA
bool
select SOC_NRF9120
config SOC
default "nRF9131_LACA" if SOC_NRF9131_LACA
default "nRF9151_LACA" if SOC_NRF9151_LACA

View File

@@ -20,6 +20,18 @@ family:
cpuclusters:
- name: cpuapp
- name: cpunet
- name: nrf54l
socs:
- name: nrf54l15
cpuclusters:
- name: cpuapp
- name: nrf54h
socs:
- name: nrf54h20
cpuclusters:
- name: cpuapp
- name: cpurad
- name: cpuppr
- name: nrf91
socs:
- name: nrf9131

View File

@@ -1,7 +0,0 @@
# SPDX-License-Identifier: Apache-2.0
zephyr_library_sources(soc.c)
# Ensure that image size aligns with 16 bytes so that MRAMC finalizes all writes
# for the image correctly
zephyr_linker_sources(SECTIONS SORT_KEY zzz_place_align_at_end align.ld)

View File

@@ -1,16 +0,0 @@
# Nordic Semiconductor nRF54H MCU line
# Copyright (c) 2024 Nordic Semiconductor ASA
# SPDX-License-Identifier: Apache-2.0
if SOC_SERIES_NRF54HX
rsource "Kconfig.defconfig.nrf54h*"
config SOC_SERIES
default "nrf54h"
config CACHE_NRF_CACHE
default y if EXTERNAL_CACHE
endif # SOC_SERIES_NRF54HX

View File

@@ -1,16 +0,0 @@
# Nordic Semiconductor nRF54H MCU line
# Copyright (c) 2024 Nordic Semiconductor ASA
# SPDX-License-Identifier: Apache-2.0
config SOC_SERIES_NRF54HX
bool "Nordic Semiconductor nRF54H series MCU"
select ARM
select ARMV8_M_DSP
select CPU_CORTEX_M33
select SOC_FAMILY_NRF
select HAS_NRFX
select HAS_NORDIC_DRIVERS
select HAS_SEGGER_RTT if ZEPHYR_SEGGER_MODULE
help
Enable support for nRF54H MCU series

View File

@@ -1,13 +0,0 @@
# Nordic Semiconductor nRF54L MCU line
# Copyright (c) 2024 Nordic Semiconductor ASA
# SPDX-License-Identifier: Apache-2.0
config SOC_SERIES_NRF54LX
bool "Nordic Semiconductor nRF54L series MCU"
select HAS_NRFX
select HAS_NORDIC_DRIVERS
select HAS_SEGGER_RTT if ZEPHYR_SEGGER_MODULE
select SOC_FAMILY_NRF
help
Enable support for nRF54L MCU series

View File

@@ -1,18 +0,0 @@
# Copyright (c) 2024 Nordic Semiconductor ASA
# SPDX-License-Identifier: Apache-2.0
config SOC_FAMILY_NRF
bool
if SOC_FAMILY_NRF
config SOC_FAMILY
string
default "nordic_nrf"
source "soc/soc_legacy/riscv/nordic_nrf/common/Kconfig"
source "soc/common/nordic_nrf/Kconfig.peripherals"
source "soc/soc_legacy/riscv/nordic_nrf/*/Kconfig.soc"
endif # SOC_FAMILY_NRF

View File

@@ -1,16 +0,0 @@
# Copyright (c) 2024 Nordic Semiconductor ASA
# SPDX-License-Identifier: Apache-2.0
if SOC_FAMILY_NRF
source "soc/soc_legacy/riscv/nordic_nrf/*/Kconfig.defconfig.series"
source "soc/soc_legacy/riscv/nordic_nrf/common/Kconfig.defconfig"
config BUILD_OUTPUT_HEX
default y
config SYS_CLOCK_HW_CYCLES_PER_SEC
default 1000000 if NRF_GRTC_TIMER
default 32768 if NRF_RTC_TIMER
endif # SOC_FAMILY_NRF

View File

@@ -1,10 +0,0 @@
# Copyright (c) 2024 Nordic Semiconductor ASA
# SPDX-License-Identifier: Apache-2.0
config SOC_SERIES_NRF54HX
bool "Nordic Semiconductor nRF54H series MCU"
select SOC_FAMILY_NRF
select HAS_NRFX
select HAS_NORDIC_DRIVERS
help
Enable support for nRF54H MCU series

View File

@@ -1,19 +0,0 @@
# Copyright (c) 2024 Nordic Semiconductor ASA
# SPDX-License-Identifier: Apache-2.0
config SOC_NRF54H20
bool "nRF54H20"
depends on SOC_SERIES_NRF54HX
if SOC_NRF54H20
choice
prompt "nRF54Hx MCU Selection"
config SOC_NRF54H20_ENGA_CPUPPR
bool "nRF54H20 ENGA CPUPPR"
depends on RISCV_CORE_NORDIC_VPR
endchoice
endif # SOC_NRF54H20

View File

@@ -1,10 +0,0 @@
/*
* Copyright (c) 2024 Nordic Semiconductor ASA.
* SPDX-License-Identifier: Apache-2.0
*/
SECTION_PROLOGUE(.align16,,)
{
. = (ALIGN(16) > 0 ? ALIGN(16) : 16) - 1;
BYTE(0);
} GROUP_LINK_IN(ROMABLE_REGION)