mcux: CMakeLists: update MCUX SOC variable logic for HWMv2

Update MCUX SOC variable name logic to use CONFIG_SOC to determine
the MCUX_DEVICE name, and append the core ID based on
CONFIG_MCUX_CORE_SUFFIX value

Signed-off-by: Daniel DeGrasse <daniel.degrasse@nxp.com>
This commit is contained in:
Daniel DeGrasse 2024-02-21 18:10:37 -06:00 committed by Carles Cufí
parent b92c645c94
commit 1b0e20c44f
3 changed files with 65 additions and 44 deletions

View File

@ -1,52 +1,26 @@
set(MCUX_SDK_PROJECT_NAME ${ZEPHYR_CURRENT_LIBRARY})
# Translate the SoC name and part number into the mcux device and cpu
# name respectively.
# When this code completes, the following variables will be defined:
# MCUX_DEVICE: SOC name, suffixed by core name when using a dual core part.
# Example: MIMXRT595S_cm33, or LPC55S36
# MCUX_CPU: "CPU"+ SOC part number, followed by core name when using a dual core part.
# Example: CPU_MIMXRT595SFAWC_cm33, or CPU_LPC55S36JBD100
# MCU_DEVICE_PATH: SOC name without core suffix. Must match the name of the
# folder in MCUX HAL. IE MIMXRT595S, or LPC55S36
# Get MCUX_DEVICE and MCUX_DEVICE_PATH from CONFIG_SOC
# For example, if CONFIG_SOC=mimx8ml8_ca53, then MCUX_DEVICE=MIMX8ML8_ca53
# and MCUX_DEVICE_PATH=MIMX8ML8
string(FIND ${CONFIG_SOC} "_" pos)
if(pos GREATER -1)
string(REPLACE "_" ";" MCUX_DEVICE_TMP ${CONFIG_SOC})
list(GET MCUX_DEVICE_TMP 0 MCUX_DEVICE_SOC)
list(GET MCUX_DEVICE_TMP 1 MCUX_DEVICE_CORE)
string(TOUPPER ${MCUX_DEVICE_SOC} MCUX_DEVICE_PATH)
set(MCUX_DEVICE ${MCUX_DEVICE_PATH}_${MCUX_DEVICE_CORE})
if(NOT HWMv2)
# Include HWMv1 logic for MCUX variables
include(${CMAKE_CURRENT_LIST_DIR}/hwmv1.cmake)
else()
string(TOUPPER ${CONFIG_SOC} MCUX_DEVICE)
string(TOUPPER ${CONFIG_SOC} MCUX_DEVICE_PATH)
endif()
string(TOUPPER ${CONFIG_SOC} MCUX_DEVICE)
set(MCUX_CPU CPU_${CONFIG_SOC_PART_NUMBER})
if("${MCUX_DEVICE}" STREQUAL "LPC51U68")
set(MCUX_CPU CPU_${CONFIG_SOC_PART_NUMBER})
elseif("${MCUX_DEVICE}" STREQUAL "LPC54114")
set(MCUX_CPU CPU_${CONFIG_SOC_PART_NUMBER}_cm4)
elseif("${MCUX_DEVICE}" STREQUAL "LPC54114_m0")
set(MCUX_CPU CPU_${CONFIG_SOC_PART_NUMBER}_cm0plus)
elseif("${MCUX_DEVICE}" STREQUAL "LPC55S16")
set(MCUX_CPU CPU_${CONFIG_SOC_PART_NUMBER})
elseif("${MCUX_DEVICE}" STREQUAL "LPC55S28")
set(MCUX_CPU CPU_${CONFIG_SOC_PART_NUMBER})
elseif("${MCUX_DEVICE}" STREQUAL "LPC55S69_cpu0")
set(MCUX_CPU CPU_${CONFIG_SOC_PART_NUMBER}_cm33_core0)
elseif("${MCUX_DEVICE}" STREQUAL "LPC55S69_cpu1")
set(MCUX_CPU CPU_${CONFIG_SOC_PART_NUMBER}_cm33_core1)
elseif("${MCUX_DEVICE}" STREQUAL "MIMXRT1052")
string(REGEX REPLACE "(.*)[AB]$" "CPU_\\1B" MCUX_CPU ${CONFIG_SOC_PART_NUMBER})
elseif("${MCUX_DEVICE}" STREQUAL "MIMXRT595S_cm33")
set(MCUX_CPU CPU_${CONFIG_SOC_PART_NUMBER}_cm33)
elseif("${MCUX_DEVICE}" STREQUAL "MIMXRT685S_cm33")
set(MCUX_CPU CPU_${CONFIG_SOC_PART_NUMBER}_cm33)
elseif("${MCUX_DEVICE}" STREQUAL "MIMXRT1176_cm4")
set(MCUX_CPU CPU_${CONFIG_SOC_PART_NUMBER}_cm4)
elseif("${MCUX_DEVICE}" STREQUAL "MIMXRT1176_cm7")
set(MCUX_CPU CPU_${CONFIG_SOC_PART_NUMBER}_cm7)
elseif("${MCUX_DEVICE}" STREQUAL "MIMXRT1166_cm4")
set(MCUX_CPU CPU_${CONFIG_SOC_PART_NUMBER}_cm4)
elseif("${MCUX_DEVICE}" STREQUAL "MIMXRT1166_cm7")
set(MCUX_CPU CPU_${CONFIG_SOC_PART_NUMBER}_cm7)
else()
set(MCUX_CPU CPU_${CONFIG_SOC_PART_NUMBER})
if(DEFINED CONFIG_MCUX_CORE_SUFFIX)
string(APPEND MCUX_DEVICE ${CONFIG_MCUX_CORE_SUFFIX})
string(APPEND MCUX_CPU ${CONFIG_MCUX_CORE_SUFFIX})
endif()
endif()
zephyr_include_directories(mcux-sdk/devices/${MCUX_DEVICE_PATH})

View File

@ -91,7 +91,7 @@ include(driver_common)
#Include system_xxx file
#This can be extended to other SoC series if needed
if (DEFINED CONFIG_PLATFORM_SPECIFIC_INIT OR DEFINED CONFIG_SOC_SERIES_IMX_RT6XX
if (DEFINED CONFIG_PLATFORM_SPECIFIC_INIT OR DEFINED CONIFG_SOC_SERIES_IMXRT6XX
OR DEFINED CONFIG_SOC_SERIES_LPC55XXX)
if (CONFIG_SOC_MIMXRT1166_CM4)
include(device_system_MIMXRT1166_cm4)
@ -249,7 +249,8 @@ if("${CONFIG_SOC_FAMILY}" STREQUAL "nxp_kinetis")
endif()
if("${CONFIG_SOC_FAMILY}" STREQUAL "nxp_lpc")
# Temporary change to handle LPC SOC family name change between HWMv1 and HWMv2
if(("${CONFIG_SOC_FAMILY}" STREQUAL "lpc") OR ("${CONFIG_SOC_FAMILY}" STREQUAL "nxp_lpc"))
if ((${MCUX_DEVICE} MATCHES "LPC8[0-9][0-9]") OR (${MCUX_DEVICE} MATCHES "LPC5(1|4)"))
include_driver_ifdef(CONFIG_SOC_FLASH_MCUX iap driver_iap)

46
mcux/hwmv1.cmake Normal file
View File

@ -0,0 +1,46 @@
# Get MCUX_DEVICE and MCUX_DEVICE_PATH from CONFIG_SOC
# For example, if CONFIG_SOC=mimx8ml8_ca53, then MCUX_DEVICE=MIMX8ML8_ca53
# and MCUX_DEVICE_PATH=MIMX8ML8
string(FIND ${CONFIG_SOC} "_" pos)
if(pos GREATER -1)
string(REPLACE "_" ";" MCUX_DEVICE_TMP ${CONFIG_SOC})
list(GET MCUX_DEVICE_TMP 0 MCUX_DEVICE_SOC)
list(GET MCUX_DEVICE_TMP 1 MCUX_DEVICE_CORE)
string(TOUPPER ${MCUX_DEVICE_SOC} MCUX_DEVICE_PATH)
set(MCUX_DEVICE ${MCUX_DEVICE_PATH}_${MCUX_DEVICE_CORE})
else()
string(TOUPPER ${CONFIG_SOC} MCUX_DEVICE)
string(TOUPPER ${CONFIG_SOC} MCUX_DEVICE_PATH)
endif()
if("${MCUX_DEVICE}" STREQUAL "LPC51U68")
set(MCUX_CPU CPU_${CONFIG_SOC_PART_NUMBER})
elseif("${MCUX_DEVICE}" STREQUAL "LPC54114")
set(MCUX_CPU CPU_${CONFIG_SOC_PART_NUMBER}_cm4)
elseif("${MCUX_DEVICE}" STREQUAL "LPC54114_m0")
set(MCUX_CPU CPU_${CONFIG_SOC_PART_NUMBER}_cm0plus)
elseif("${MCUX_DEVICE}" STREQUAL "LPC55S16")
set(MCUX_CPU CPU_${CONFIG_SOC_PART_NUMBER})
elseif("${MCUX_DEVICE}" STREQUAL "LPC55S28")
set(MCUX_CPU CPU_${CONFIG_SOC_PART_NUMBER})
elseif("${MCUX_DEVICE}" STREQUAL "LPC55S69_cpu0")
set(MCUX_CPU CPU_${CONFIG_SOC_PART_NUMBER}_cm33_core0)
elseif("${MCUX_DEVICE}" STREQUAL "LPC55S69_cpu1")
set(MCUX_CPU CPU_${CONFIG_SOC_PART_NUMBER}_cm33_core1)
elseif("${MCUX_DEVICE}" STREQUAL "MIMXRT1052")
string(REGEX REPLACE "(.*)[AB]$" "CPU_\\1B" MCUX_CPU ${CONFIG_SOC_PART_NUMBER})
elseif("${MCUX_DEVICE}" STREQUAL "MIMXRT595S_cm33")
set(MCUX_CPU CPU_${CONFIG_SOC_PART_NUMBER}_cm33)
elseif("${MCUX_DEVICE}" STREQUAL "MIMXRT685S_cm33")
set(MCUX_CPU CPU_${CONFIG_SOC_PART_NUMBER}_cm33)
elseif("${MCUX_DEVICE}" STREQUAL "MIMXRT1176_cm4")
set(MCUX_CPU CPU_${CONFIG_SOC_PART_NUMBER}_cm4)
elseif("${MCUX_DEVICE}" STREQUAL "MIMXRT1176_cm7")
set(MCUX_CPU CPU_${CONFIG_SOC_PART_NUMBER}_cm7)
elseif("${MCUX_DEVICE}" STREQUAL "MIMXRT1166_cm4")
set(MCUX_CPU CPU_${CONFIG_SOC_PART_NUMBER}_cm4)
elseif("${MCUX_DEVICE}" STREQUAL "MIMXRT1166_cm7")
set(MCUX_CPU CPU_${CONFIG_SOC_PART_NUMBER}_cm7)
else()
set(MCUX_CPU CPU_${CONFIG_SOC_PART_NUMBER})
endif()