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:
committed by
Carles Cufi
parent
c860f205de
commit
d44ef90cf8
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
zephyr_library_sources(soc.c)
|
||||
zephyr_include_directories(.)
|
||||
|
||||
@@ -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
|
||||
@@ -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
|
||||
|
||||
@@ -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")
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -5,10 +5,6 @@
|
||||
|
||||
if SOC_NRF52833_QDAA
|
||||
|
||||
config SOC
|
||||
string
|
||||
default "nRF52833_QDAA"
|
||||
|
||||
config NUM_IRQS
|
||||
int
|
||||
default 48
|
||||
|
||||
@@ -5,9 +5,6 @@
|
||||
|
||||
if SOC_NRF52840_QFAA
|
||||
|
||||
config SOC
|
||||
default "nRF52840_QFAA"
|
||||
|
||||
config NUM_IRQS
|
||||
default 48
|
||||
|
||||
|
||||
@@ -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
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -5,9 +5,6 @@
|
||||
|
||||
if SOC_NRF54H20_ENGA_CPUAPP
|
||||
|
||||
config SOC
|
||||
default "nrf54h20_enga_cpuapp"
|
||||
|
||||
config NUM_IRQS
|
||||
default 471
|
||||
|
||||
@@ -3,9 +3,6 @@
|
||||
|
||||
if SOC_NRF54H20_ENGA_CPUPPR
|
||||
|
||||
config SOC
|
||||
default "nrf54h20_enga_cpuppr"
|
||||
|
||||
config NUM_IRQS
|
||||
default 496
|
||||
|
||||
@@ -5,9 +5,6 @@
|
||||
|
||||
if SOC_NRF54H20_ENGA_CPURAD
|
||||
|
||||
config SOC
|
||||
default "nrf54h20_enga_cpurad"
|
||||
|
||||
config NUM_IRQS
|
||||
default 471
|
||||
|
||||
31
soc/nordic_nrf/nrf54h/Kconfig.soc
Normal file
31
soc/nordic_nrf/nrf54h/Kconfig.soc
Normal 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
|
||||
4
soc/nordic_nrf/nrf54h/arm/CMakeLists.txt
Normal file
4
soc/nordic_nrf/nrf54h/arm/CMakeLists.txt
Normal file
@@ -0,0 +1,4 @@
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
zephyr_library_sources(soc.c)
|
||||
zephyr_include_directories(.)
|
||||
@@ -2,4 +2,4 @@
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
add_subdirectory(common)
|
||||
add_subdirectory(${SOC_SERIES})
|
||||
zephyr_include_directories(.)
|
||||
@@ -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"
|
||||
4
soc/nordic_nrf/nrf54h/riscv/Kconfig.defconfig
Normal file
4
soc/nordic_nrf/nrf54h/riscv/Kconfig.defconfig
Normal file
@@ -0,0 +1,4 @@
|
||||
# Copyright (c) 2024 Nordic Semiconductor ASA
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
rsource "common/Kconfig.defconfig"
|
||||
@@ -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"
|
||||
@@ -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
|
||||
@@ -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 "")
|
||||
@@ -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()
|
||||
@@ -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"
|
||||
@@ -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
|
||||
|
||||
@@ -5,10 +5,6 @@
|
||||
|
||||
if SOC_NRF54L15_ENGA_CPUAPP
|
||||
|
||||
config SOC
|
||||
string
|
||||
default "nrf54l15_cpuapp"
|
||||
|
||||
config NUM_IRQS
|
||||
default 271
|
||||
|
||||
25
soc/nordic_nrf/nrf54l/Kconfig.soc
Normal file
25
soc/nordic_nrf/nrf54l/Kconfig.soc
Normal 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
|
||||
@@ -1,3 +1,4 @@
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
zephyr_library_sources(soc.c)
|
||||
zephyr_include_directories(.)
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -5,9 +5,6 @@
|
||||
|
||||
if SOC_NRF9151_LACA
|
||||
|
||||
config SOC
|
||||
default "nRF9151_LACA"
|
||||
|
||||
config NUM_IRQS
|
||||
default 65
|
||||
|
||||
|
||||
@@ -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
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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)
|
||||
Reference in New Issue
Block a user