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 @@ |
|||||||
|
# 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 @@ |
|||||||
|
# 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 @@ |
|||||||
# Copyright 2023 NXP |
# Copyright 2023-2024 NXP |
||||||
# SPDX-License-Identifier: Apache-2.0 |
# 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 "") |
set(SOC_LINKER_SCRIPT ${ZEPHYR_BASE}/include/zephyr/arch/arm/cortex_m/scripts/linker.ld CACHE INTERNAL "") |
||||||
|
|
||||||
zephyr_sources(soc.c) |
zephyr_sources(soc.c) |
@ -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 @@ |
|||||||
# Copyright 2023 NXP |
# Copyright 2023-2024 NXP |
||||||
# SPDX-License-Identifier: Apache-2.0 |
# SPDX-License-Identifier: Apache-2.0 |
||||||
|
|
||||||
zephyr_library() |
zephyr_library() |
||||||
|
|
||||||
|
zephyr_include_directories(.) |
||||||
|
|
||||||
zephyr_library_sources(soc.c) |
zephyr_library_sources(soc.c) |
||||||
zephyr_library_sources_ifdef(CONFIG_CPU_HAS_CUSTOM_FIXED_SOC_MPU_REGIONS mpu_regions.c) |
zephyr_library_sources_ifdef(CONFIG_CPU_HAS_CUSTOM_FIXED_SOC_MPU_REGIONS mpu_regions.c) |
||||||
zephyr_linker_sources(SECTIONS sections.ld) |
zephyr_linker_sources(SECTIONS sections.ld) |
@ -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 @@ |
|||||||
# Copyright 2022 NXP |
# Copyright 2022,2024 NXP |
||||||
# SPDX-License-Identifier: Apache-2.0 |
# SPDX-License-Identifier: Apache-2.0 |
||||||
|
|
||||||
|
zephyr_include_directories(.) |
||||||
|
|
||||||
zephyr_library_sources( |
zephyr_library_sources( |
||||||
soc.c |
soc.c |
||||||
) |
) |
@ -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 @@ |
|||||||
|
# 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 @@ |
|||||||
|
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 @@ |
|||||||
# Copyright 2022 NXP |
|
||||||
# SPDX-License-Identifier: Apache-2.0 |
|
||||||
|
|
||||||
source "soc/soc_legacy/arm/nxp_s32/*/Kconfig.defconfig.series" |
|
@ -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 @@ |
|||||||
# 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 @@ |
|||||||
# 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 @@ |
|||||||
# 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 @@ |
|||||||
# 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 @@ |
|||||||
# 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 @@ |
|||||||
# 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 @@ |
|||||||
# 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