Browse Source
Convert NXP S32 family to hardware model v2. Signed-off-by: Manuel Argüelles <manuel.arguelles@nxp.com>pull/69687/head
52 changed files with 350 additions and 337 deletions
@ -0,0 +1,8 @@
@@ -0,0 +1,8 @@
|
||||
# Copyright 2022,2024 NXP |
||||
# SPDX-License-Identifier: Apache-2.0 |
||||
|
||||
if SOC_FAMILY_NXP_S32 |
||||
|
||||
rsource "*/Kconfig.defconfig" |
||||
|
||||
endif # SOC_FAMILY_NXP_S32 |
@ -0,0 +1,10 @@
@@ -0,0 +1,10 @@
|
||||
# Copyright 2022,2024 NXP |
||||
# SPDX-License-Identifier: Apache-2.0 |
||||
|
||||
config SOC_FAMILY_NXP_S32 |
||||
bool |
||||
|
||||
config SOC_FAMILY |
||||
default "nxp_s32" if SOC_FAMILY_NXP_S32 |
||||
|
||||
rsource "*/Kconfig.soc" |
@ -1,6 +1,8 @@
@@ -1,6 +1,8 @@
|
||||
# Copyright 2023 NXP |
||||
# Copyright 2023-2024 NXP |
||||
# SPDX-License-Identifier: Apache-2.0 |
||||
|
||||
zephyr_include_directories(.) |
||||
|
||||
set(SOC_LINKER_SCRIPT ${ZEPHYR_BASE}/include/zephyr/arch/arm/cortex_m/scripts/linker.ld CACHE INTERNAL "") |
||||
|
||||
zephyr_sources(soc.c) |
@ -0,0 +1,124 @@
@@ -0,0 +1,124 @@
|
||||
# NXP S32K1XX MCUs series |
||||
|
||||
# Copyright 2023-2024 NXP |
||||
# SPDX-License-Identifier: Apache-2.0 |
||||
|
||||
config SOC_SERIES_S32K1 |
||||
select ARM |
||||
select HAS_NXP_S32_HAL |
||||
select HAS_MCUX |
||||
select CPU_HAS_NXP_MPU |
||||
select CPU_HAS_CUSTOM_FIXED_SOC_MPU_REGIONS |
||||
select MPU_ALLOW_FLASH_WRITE if !XIP |
||||
select CLOCK_CONTROL |
||||
select HAS_MCUX_LPUART |
||||
select HAS_MCUX_LPI2C |
||||
select HAS_MCUX_LPSPI |
||||
select HAS_MCUX_FTM |
||||
select HAS_MCUX_FLEXCAN |
||||
select HAS_MCUX_WDOG32 |
||||
select HAS_MCUX_RTC |
||||
|
||||
config SOC_S32K116 |
||||
select CPU_CORTEX_M0PLUS |
||||
|
||||
config SOC_S32K118 |
||||
select CPU_CORTEX_M0PLUS |
||||
|
||||
config SOC_S32K142 |
||||
select CPU_CORTEX_M4 |
||||
select CPU_CORTEX_M_HAS_DWT |
||||
select CPU_HAS_FPU |
||||
select HAS_MCUX_CACHE |
||||
|
||||
config SOC_S32K142W |
||||
select CPU_CORTEX_M4 |
||||
select CPU_CORTEX_M_HAS_DWT |
||||
select CPU_HAS_FPU |
||||
select HAS_MCUX_CACHE |
||||
|
||||
config SOC_S32K144 |
||||
select CPU_CORTEX_M4 |
||||
select CPU_CORTEX_M_HAS_DWT |
||||
select CPU_HAS_FPU |
||||
select HAS_MCUX_CACHE |
||||
|
||||
config SOC_S32K144W |
||||
select CPU_CORTEX_M4 |
||||
select CPU_CORTEX_M_HAS_DWT |
||||
select CPU_HAS_FPU |
||||
select HAS_MCUX_CACHE |
||||
|
||||
config SOC_S32K146 |
||||
select CPU_CORTEX_M4 |
||||
select CPU_CORTEX_M_HAS_DWT |
||||
select CPU_HAS_FPU |
||||
select HAS_MCUX_CACHE |
||||
|
||||
config SOC_S32K148 |
||||
select CPU_CORTEX_M4 |
||||
select CPU_CORTEX_M_HAS_DWT |
||||
select CPU_HAS_FPU |
||||
select HAS_MCUX_CACHE |
||||
|
||||
if SOC_SERIES_S32K1 |
||||
|
||||
config WDOG_INIT |
||||
bool |
||||
default y |
||||
|
||||
config NXP_S32_FLASH_CONFIG |
||||
bool "NXP S32 flash configuration field" |
||||
default y if XIP && !BOOTLOADER_MCUBOOT |
||||
help |
||||
Include the 16-byte flash configuration field that stores default |
||||
protection settings (loaded on reset) and security information that |
||||
allows the MCU to restrict access to the FTFx module. |
||||
|
||||
if NXP_S32_FLASH_CONFIG |
||||
|
||||
config NXP_S32_FLASH_CONFIG_OFFSET |
||||
hex "NXP S32 flash configuration field offset" |
||||
default 0x400 |
||||
|
||||
config NXP_S32_FLASH_CONFIG_FSEC |
||||
hex "Flash security byte (FSEC)" |
||||
range 0 0xff |
||||
default 0xfe |
||||
help |
||||
Configures the reset value of the FSEC register, which includes |
||||
backdoor key access, mass erase, factory access, and flash security |
||||
options. |
||||
|
||||
config NXP_S32_FLASH_CONFIG_FOPT |
||||
hex "Flash nonvolatile option byte (FOPT)" |
||||
range 0 0xff |
||||
default 0xff |
||||
help |
||||
Configures the reset value of the FOPT register, which includes boot, |
||||
NMI, and EzPort options. |
||||
|
||||
config NXP_S32_FLASH_CONFIG_FEPROT |
||||
hex "EEPROM protection byte (FEPROT)" |
||||
range 0 0xff |
||||
default 0xff |
||||
help |
||||
Configures the reset value of the FEPROT register for FlexNVM |
||||
devices. For program flash only devices, this byte is reserved. |
||||
|
||||
config NXP_S32_FLASH_CONFIG_FDPROT |
||||
hex "Data flash protection byte (FDPROT)" |
||||
range 0 0xff |
||||
default 0xff |
||||
help |
||||
Configures the reset value of the FDPROT register for FlexNVM |
||||
devices. For program flash only devices, this byte is reserved. |
||||
|
||||
endif # NXP_S32_FLASH_CONFIG |
||||
|
||||
config NXP_S32_ENABLE_CODE_CACHE |
||||
bool "Code cache" |
||||
default y |
||||
depends on HAS_MCUX_CACHE |
||||
|
||||
endif # SOC_SERIES_S32K1 |
@ -1,8 +1,10 @@
@@ -1,8 +1,10 @@
|
||||
# Copyright 2023 NXP |
||||
# Copyright 2023-2024 NXP |
||||
# SPDX-License-Identifier: Apache-2.0 |
||||
|
||||
zephyr_library() |
||||
|
||||
zephyr_include_directories(.) |
||||
|
||||
zephyr_library_sources(soc.c) |
||||
zephyr_library_sources_ifdef(CONFIG_CPU_HAS_CUSTOM_FIXED_SOC_MPU_REGIONS mpu_regions.c) |
||||
zephyr_linker_sources(SECTIONS sections.ld) |
@ -0,0 +1,24 @@
@@ -0,0 +1,24 @@
|
||||
# NXP S32K3XX MCU series |
||||
|
||||
# Copyright 2023-2024 NXP |
||||
# SPDX-License-Identifier: Apache-2.0 |
||||
|
||||
config SOC_SERIES_S32K3 |
||||
bool |
||||
select SOC_FAMILY_NXP_S32 |
||||
|
||||
config SOC_SERIES |
||||
default "s32k3" if SOC_SERIES_S32K3 |
||||
|
||||
config SOC_S32K344 |
||||
bool |
||||
select SOC_SERIES_S32K3 |
||||
|
||||
config SOC |
||||
default "s32k344" if SOC_S32K344 |
||||
|
||||
config SOC_PART_NUMBER_PS32K344EHVPBS |
||||
bool |
||||
|
||||
config SOC_PART_NUMBER |
||||
default "PS32K344EHVPBS" if SOC_PART_NUMBER_PS32K344EHVPBS |
@ -1,6 +1,8 @@
@@ -1,6 +1,8 @@
|
||||
# Copyright 2022 NXP |
||||
# Copyright 2022,2024 NXP |
||||
# SPDX-License-Identifier: Apache-2.0 |
||||
|
||||
zephyr_include_directories(.) |
||||
|
||||
zephyr_library_sources( |
||||
soc.c |
||||
) |
@ -0,0 +1,30 @@
@@ -0,0 +1,30 @@
|
||||
# NXP S32ZE MCUs series |
||||
|
||||
# Copyright 2022-2024 NXP |
||||
# SPDX-License-Identifier: Apache-2.0 |
||||
|
||||
config SOC_SERIES_S32ZE |
||||
select ARM |
||||
select ARM_ARCH_TIMER if SYS_CLOCK_EXISTS |
||||
select CPU_CORTEX_R52 |
||||
select CPU_HAS_DCLS |
||||
select CPU_HAS_ARM_MPU |
||||
select GIC_SINGLE_SECURITY_STATE |
||||
select VFP_DP_D16 |
||||
select PLATFORM_SPECIFIC_INIT |
||||
select CLOCK_CONTROL |
||||
select HAS_NXP_S32_HAL |
||||
select HAS_MCUX |
||||
select HAS_MCUX_PIT |
||||
|
||||
if SOC_SERIES_S32ZE |
||||
|
||||
config NXP_S32_RTU_INDEX |
||||
int |
||||
range 0 1 |
||||
default 0 if SOC_S32Z270_RTU0 |
||||
default 1 if SOC_S32Z270_RTU1 |
||||
help |
||||
This option indicates the index of the target RTU (Real-Time Unit) subsystem. |
||||
|
||||
endif # SOC_SERIES_S32ZE |
@ -0,0 +1,32 @@
@@ -0,0 +1,32 @@
|
||||
# NXP S32ZE MCUs series |
||||
|
||||
# Copyright 2022-2024 NXP |
||||
# SPDX-License-Identifier: Apache-2.0 |
||||
|
||||
config SOC_SERIES_S32ZE |
||||
bool |
||||
select SOC_FAMILY_NXP_S32 |
||||
|
||||
config SOC_SERIES |
||||
default "s32ze" if SOC_SERIES_S32ZE |
||||
|
||||
config SOC_S32Z270 |
||||
bool |
||||
select SOC_SERIES_S32ZE |
||||
|
||||
config SOC_S32Z270_RTU0 |
||||
bool |
||||
select SOC_S32Z270 |
||||
|
||||
config SOC_S32Z270_RTU1 |
||||
bool |
||||
select SOC_S32Z270 |
||||
|
||||
config SOC |
||||
default "s32z270" if SOC_S32Z270 |
||||
|
||||
config SOC_PART_NUMBER_P32Z270ADCK0MJFT |
||||
bool |
||||
|
||||
config SOC_PART_NUMBER |
||||
default "P32Z270ADCK0MJFT" if SOC_PART_NUMBER_P32Z270ADCK0MJFT |
@ -0,0 +1,22 @@
@@ -0,0 +1,22 @@
|
||||
family: |
||||
- name: nxp_s32 |
||||
series: |
||||
- name: s32k1 |
||||
socs: |
||||
- name: s32k116 |
||||
- name: s32k118 |
||||
- name: s32k142 |
||||
- name: s32k142w |
||||
- name: s32k144 |
||||
- name: s32k144w |
||||
- name: s32k146 |
||||
- name: s32k148 |
||||
- name: s32k3 |
||||
socs: |
||||
- name: s32k344 |
||||
- name: s32ze |
||||
socs: |
||||
- name: s32z270 |
||||
cpuclusters: |
||||
- name: rtu0 |
||||
- name: rtu1 |
@ -1,4 +0,0 @@
@@ -1,4 +0,0 @@
|
||||
# Copyright 2022 NXP |
||||
# SPDX-License-Identifier: Apache-2.0 |
||||
|
||||
source "soc/soc_legacy/arm/nxp_s32/*/Kconfig.defconfig.series" |
@ -1,4 +0,0 @@
@@ -1,4 +0,0 @@
|
||||
# Copyright 2022 NXP |
||||
# SPDX-License-Identifier: Apache-2.0 |
||||
|
||||
source "soc/soc_legacy/arm/nxp_s32/*/Kconfig.series" |
@ -1,14 +0,0 @@
@@ -1,14 +0,0 @@
|
||||
# NXP S32K146 |
||||
|
||||
# Copyright 2023 NXP |
||||
# SPDX-License-Identifier: Apache-2.0 |
||||
|
||||
if SOC_S32K146 |
||||
|
||||
config SOC |
||||
default "s32k146" |
||||
|
||||
config FPU |
||||
default y |
||||
|
||||
endif # SOC_S32K146 |
@ -1,24 +0,0 @@
@@ -1,24 +0,0 @@
|
||||
# NXP S32K1XX MCU series |
||||
|
||||
# Copyright 2023-2024 NXP |
||||
# SPDX-License-Identifier: Apache-2.0 |
||||
|
||||
config SOC_SERIES_S32K1XX |
||||
bool "NXP S32K1XX MCU series" |
||||
select ARM |
||||
select SOC_FAMILY_NXP_S32 |
||||
select HAS_NXP_S32_HAL |
||||
select HAS_MCUX |
||||
select CPU_HAS_NXP_MPU |
||||
select CPU_HAS_CUSTOM_FIXED_SOC_MPU_REGIONS |
||||
select MPU_ALLOW_FLASH_WRITE if !XIP |
||||
select CLOCK_CONTROL |
||||
select HAS_MCUX_LPUART |
||||
select HAS_MCUX_LPI2C |
||||
select HAS_MCUX_LPSPI |
||||
select HAS_MCUX_FTM |
||||
select HAS_MCUX_FLEXCAN |
||||
select HAS_MCUX_WDOG32 |
||||
select HAS_MCUX_RTC |
||||
help |
||||
Enable support for NXP S32K1XX MCU series. |
@ -1,14 +0,0 @@
@@ -1,14 +0,0 @@
|
||||
# NXP S32K344 |
||||
|
||||
# Copyright 2023 NXP |
||||
# SPDX-License-Identifier: Apache-2.0 |
||||
|
||||
if SOC_S32K344 |
||||
|
||||
config SOC |
||||
default "s32k344" |
||||
|
||||
config FPU |
||||
default y |
||||
|
||||
endif # SOC_S32K344 |
@ -1,27 +0,0 @@
@@ -1,27 +0,0 @@
|
||||
# NXP S32K3XX MCU series |
||||
|
||||
# Copyright 2023 NXP |
||||
# SPDX-License-Identifier: Apache-2.0 |
||||
|
||||
config SOC_SERIES_S32K3XX |
||||
bool "NXP S32K3XX MCU series" |
||||
select ARM |
||||
select CPU_CORTEX_M7 |
||||
select SOC_FAMILY_NXP_S32 |
||||
select HAS_NXP_S32_HAL |
||||
select CPU_HAS_FPU |
||||
select CPU_HAS_ARM_MPU |
||||
select CPU_HAS_ICACHE |
||||
select CPU_HAS_DCACHE |
||||
select CPU_HAS_CUSTOM_FIXED_SOC_MPU_REGIONS |
||||
select PLATFORM_SPECIFIC_INIT if XIP |
||||
select USE_DT_CODE_PARTITION if XIP |
||||
select CLOCK_CONTROL |
||||
select HAS_MCUX |
||||
select HAS_MCUX_LPUART |
||||
select HAS_MCUX_FLEXCAN |
||||
select HAS_MCUX_LPI2C |
||||
select HAS_MCUX_LPSPI |
||||
select HAS_MCUX_CACHE |
||||
help |
||||
Enable support for NXP S32K3XX MCU series. |
@ -1,9 +0,0 @@
@@ -1,9 +0,0 @@
|
||||
# Copyright 2022 NXP |
||||
# SPDX-License-Identifier: Apache-2.0 |
||||
|
||||
if SOC_S32Z27_R52 |
||||
|
||||
config SOC |
||||
default "s32z27" |
||||
|
||||
endif # SOC_S32Z27_R52 |
@ -1,21 +0,0 @@
@@ -1,21 +0,0 @@
|
||||
# NXP S32Z/E MCUs family |
||||
|
||||
# Copyright 2022-2023 NXP |
||||
# SPDX-License-Identifier: Apache-2.0 |
||||
|
||||
config SOC_SERIES_S32ZE_R52 |
||||
bool "NXP S32Z/E series" |
||||
select ARM |
||||
select ARM_ARCH_TIMER if SYS_CLOCK_EXISTS |
||||
select CPU_CORTEX_R52 |
||||
select CPU_HAS_DCLS |
||||
select CPU_HAS_ARM_MPU |
||||
select GIC_SINGLE_SECURITY_STATE |
||||
select VFP_DP_D16 |
||||
select PLATFORM_SPECIFIC_INIT |
||||
select SOC_FAMILY_NXP_S32 |
||||
select CLOCK_CONTROL |
||||
select HAS_MCUX |
||||
select HAS_MCUX_PIT |
||||
help |
||||
Enable support for NXP S32Z/E MCUs family on Cortex-R52 cores. |
@ -1,35 +0,0 @@
@@ -1,35 +0,0 @@
|
||||
# NXP S32Z/E MCUs family |
||||
|
||||
# Copyright 2022-2023 NXP |
||||
# SPDX-License-Identifier: Apache-2.0 |
||||
|
||||
choice |
||||
prompt "NXP S32Z/E MCUs family SoC selection" |
||||
depends on SOC_SERIES_S32ZE_R52 |
||||
|
||||
config SOC_S32Z27_R52 |
||||
bool "SOC_S32Z27_R52" |
||||
select HAS_NXP_S32_HAL |
||||
|
||||
endchoice |
||||
|
||||
if SOC_SERIES_S32ZE_R52 |
||||
|
||||
config SOC_PART_NUMBER_S32Z27 |
||||
bool |
||||
|
||||
config SOC_PART_NUMBER |
||||
string |
||||
default "S32Z27" if SOC_PART_NUMBER_S32Z27 |
||||
help |
||||
This string holds the full part number of the SoC. It is a hidden option |
||||
that you should not set directly. The part number selection choice defines |
||||
the default value for this string. |
||||
|
||||
config NXP_S32_RTU_INDEX |
||||
int |
||||
range 0 1 |
||||
help |
||||
This option indicates the index of the target RTU (Real-Time Unit) subsystem. |
||||
|
||||
endif # SOC_SERIES_S32ZE_R52 |
Loading…
Reference in new issue