Skip to content

Commit 1b0e20c

Browse files
danieldegrassecarlescufi
authored andcommitted
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>
1 parent b92c645 commit 1b0e20c

File tree

3 files changed

+65
-44
lines changed

3 files changed

+65
-44
lines changed

mcux/CMakeLists.txt

Lines changed: 16 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -1,52 +1,26 @@
11
set(MCUX_SDK_PROJECT_NAME ${ZEPHYR_CURRENT_LIBRARY})
22
# Translate the SoC name and part number into the mcux device and cpu
33
# name respectively.
4+
# When this code completes, the following variables will be defined:
5+
# MCUX_DEVICE: SOC name, suffixed by core name when using a dual core part.
6+
# Example: MIMXRT595S_cm33, or LPC55S36
7+
# MCUX_CPU: "CPU"+ SOC part number, followed by core name when using a dual core part.
8+
# Example: CPU_MIMXRT595SFAWC_cm33, or CPU_LPC55S36JBD100
9+
# MCU_DEVICE_PATH: SOC name without core suffix. Must match the name of the
10+
# folder in MCUX HAL. IE MIMXRT595S, or LPC55S36
411

5-
# Get MCUX_DEVICE and MCUX_DEVICE_PATH from CONFIG_SOC
6-
# For example, if CONFIG_SOC=mimx8ml8_ca53, then MCUX_DEVICE=MIMX8ML8_ca53
7-
# and MCUX_DEVICE_PATH=MIMX8ML8
8-
string(FIND ${CONFIG_SOC} "_" pos)
9-
if(pos GREATER -1)
10-
string(REPLACE "_" ";" MCUX_DEVICE_TMP ${CONFIG_SOC})
11-
list(GET MCUX_DEVICE_TMP 0 MCUX_DEVICE_SOC)
12-
list(GET MCUX_DEVICE_TMP 1 MCUX_DEVICE_CORE)
13-
string(TOUPPER ${MCUX_DEVICE_SOC} MCUX_DEVICE_PATH)
14-
set(MCUX_DEVICE ${MCUX_DEVICE_PATH}_${MCUX_DEVICE_CORE})
12+
if(NOT HWMv2)
13+
# Include HWMv1 logic for MCUX variables
14+
include(${CMAKE_CURRENT_LIST_DIR}/hwmv1.cmake)
1515
else()
16-
string(TOUPPER ${CONFIG_SOC} MCUX_DEVICE)
1716
string(TOUPPER ${CONFIG_SOC} MCUX_DEVICE_PATH)
18-
endif()
19-
20-
if("${MCUX_DEVICE}" STREQUAL "LPC51U68")
21-
set(MCUX_CPU CPU_${CONFIG_SOC_PART_NUMBER})
22-
elseif("${MCUX_DEVICE}" STREQUAL "LPC54114")
23-
set(MCUX_CPU CPU_${CONFIG_SOC_PART_NUMBER}_cm4)
24-
elseif("${MCUX_DEVICE}" STREQUAL "LPC54114_m0")
25-
set(MCUX_CPU CPU_${CONFIG_SOC_PART_NUMBER}_cm0plus)
26-
elseif("${MCUX_DEVICE}" STREQUAL "LPC55S16")
27-
set(MCUX_CPU CPU_${CONFIG_SOC_PART_NUMBER})
28-
elseif("${MCUX_DEVICE}" STREQUAL "LPC55S28")
29-
set(MCUX_CPU CPU_${CONFIG_SOC_PART_NUMBER})
30-
elseif("${MCUX_DEVICE}" STREQUAL "LPC55S69_cpu0")
31-
set(MCUX_CPU CPU_${CONFIG_SOC_PART_NUMBER}_cm33_core0)
32-
elseif("${MCUX_DEVICE}" STREQUAL "LPC55S69_cpu1")
33-
set(MCUX_CPU CPU_${CONFIG_SOC_PART_NUMBER}_cm33_core1)
34-
elseif("${MCUX_DEVICE}" STREQUAL "MIMXRT1052")
35-
string(REGEX REPLACE "(.*)[AB]$" "CPU_\\1B" MCUX_CPU ${CONFIG_SOC_PART_NUMBER})
36-
elseif("${MCUX_DEVICE}" STREQUAL "MIMXRT595S_cm33")
37-
set(MCUX_CPU CPU_${CONFIG_SOC_PART_NUMBER}_cm33)
38-
elseif("${MCUX_DEVICE}" STREQUAL "MIMXRT685S_cm33")
39-
set(MCUX_CPU CPU_${CONFIG_SOC_PART_NUMBER}_cm33)
40-
elseif("${MCUX_DEVICE}" STREQUAL "MIMXRT1176_cm4")
41-
set(MCUX_CPU CPU_${CONFIG_SOC_PART_NUMBER}_cm4)
42-
elseif("${MCUX_DEVICE}" STREQUAL "MIMXRT1176_cm7")
43-
set(MCUX_CPU CPU_${CONFIG_SOC_PART_NUMBER}_cm7)
44-
elseif("${MCUX_DEVICE}" STREQUAL "MIMXRT1166_cm4")
45-
set(MCUX_CPU CPU_${CONFIG_SOC_PART_NUMBER}_cm4)
46-
elseif("${MCUX_DEVICE}" STREQUAL "MIMXRT1166_cm7")
47-
set(MCUX_CPU CPU_${CONFIG_SOC_PART_NUMBER}_cm7)
48-
else()
17+
string(TOUPPER ${CONFIG_SOC} MCUX_DEVICE)
4918
set(MCUX_CPU CPU_${CONFIG_SOC_PART_NUMBER})
19+
20+
if(DEFINED CONFIG_MCUX_CORE_SUFFIX)
21+
string(APPEND MCUX_DEVICE ${CONFIG_MCUX_CORE_SUFFIX})
22+
string(APPEND MCUX_CPU ${CONFIG_MCUX_CORE_SUFFIX})
23+
endif()
5024
endif()
5125

5226
zephyr_include_directories(mcux-sdk/devices/${MCUX_DEVICE_PATH})

mcux/hal_nxp.cmake

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@ include(driver_common)
9191

9292
#Include system_xxx file
9393
#This can be extended to other SoC series if needed
94-
if (DEFINED CONFIG_PLATFORM_SPECIFIC_INIT OR DEFINED CONFIG_SOC_SERIES_IMX_RT6XX
94+
if (DEFINED CONFIG_PLATFORM_SPECIFIC_INIT OR DEFINED CONIFG_SOC_SERIES_IMXRT6XX
9595
OR DEFINED CONFIG_SOC_SERIES_LPC55XXX)
9696
if (CONFIG_SOC_MIMXRT1166_CM4)
9797
include(device_system_MIMXRT1166_cm4)
@@ -249,7 +249,8 @@ if("${CONFIG_SOC_FAMILY}" STREQUAL "nxp_kinetis")
249249

250250
endif()
251251

252-
if("${CONFIG_SOC_FAMILY}" STREQUAL "nxp_lpc")
252+
# Temporary change to handle LPC SOC family name change between HWMv1 and HWMv2
253+
if(("${CONFIG_SOC_FAMILY}" STREQUAL "lpc") OR ("${CONFIG_SOC_FAMILY}" STREQUAL "nxp_lpc"))
253254

254255
if ((${MCUX_DEVICE} MATCHES "LPC8[0-9][0-9]") OR (${MCUX_DEVICE} MATCHES "LPC5(1|4)"))
255256
include_driver_ifdef(CONFIG_SOC_FLASH_MCUX iap driver_iap)

mcux/hwmv1.cmake

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
# Get MCUX_DEVICE and MCUX_DEVICE_PATH from CONFIG_SOC
2+
# For example, if CONFIG_SOC=mimx8ml8_ca53, then MCUX_DEVICE=MIMX8ML8_ca53
3+
# and MCUX_DEVICE_PATH=MIMX8ML8
4+
string(FIND ${CONFIG_SOC} "_" pos)
5+
if(pos GREATER -1)
6+
string(REPLACE "_" ";" MCUX_DEVICE_TMP ${CONFIG_SOC})
7+
list(GET MCUX_DEVICE_TMP 0 MCUX_DEVICE_SOC)
8+
list(GET MCUX_DEVICE_TMP 1 MCUX_DEVICE_CORE)
9+
string(TOUPPER ${MCUX_DEVICE_SOC} MCUX_DEVICE_PATH)
10+
set(MCUX_DEVICE ${MCUX_DEVICE_PATH}_${MCUX_DEVICE_CORE})
11+
else()
12+
string(TOUPPER ${CONFIG_SOC} MCUX_DEVICE)
13+
string(TOUPPER ${CONFIG_SOC} MCUX_DEVICE_PATH)
14+
endif()
15+
16+
if("${MCUX_DEVICE}" STREQUAL "LPC51U68")
17+
set(MCUX_CPU CPU_${CONFIG_SOC_PART_NUMBER})
18+
elseif("${MCUX_DEVICE}" STREQUAL "LPC54114")
19+
set(MCUX_CPU CPU_${CONFIG_SOC_PART_NUMBER}_cm4)
20+
elseif("${MCUX_DEVICE}" STREQUAL "LPC54114_m0")
21+
set(MCUX_CPU CPU_${CONFIG_SOC_PART_NUMBER}_cm0plus)
22+
elseif("${MCUX_DEVICE}" STREQUAL "LPC55S16")
23+
set(MCUX_CPU CPU_${CONFIG_SOC_PART_NUMBER})
24+
elseif("${MCUX_DEVICE}" STREQUAL "LPC55S28")
25+
set(MCUX_CPU CPU_${CONFIG_SOC_PART_NUMBER})
26+
elseif("${MCUX_DEVICE}" STREQUAL "LPC55S69_cpu0")
27+
set(MCUX_CPU CPU_${CONFIG_SOC_PART_NUMBER}_cm33_core0)
28+
elseif("${MCUX_DEVICE}" STREQUAL "LPC55S69_cpu1")
29+
set(MCUX_CPU CPU_${CONFIG_SOC_PART_NUMBER}_cm33_core1)
30+
elseif("${MCUX_DEVICE}" STREQUAL "MIMXRT1052")
31+
string(REGEX REPLACE "(.*)[AB]$" "CPU_\\1B" MCUX_CPU ${CONFIG_SOC_PART_NUMBER})
32+
elseif("${MCUX_DEVICE}" STREQUAL "MIMXRT595S_cm33")
33+
set(MCUX_CPU CPU_${CONFIG_SOC_PART_NUMBER}_cm33)
34+
elseif("${MCUX_DEVICE}" STREQUAL "MIMXRT685S_cm33")
35+
set(MCUX_CPU CPU_${CONFIG_SOC_PART_NUMBER}_cm33)
36+
elseif("${MCUX_DEVICE}" STREQUAL "MIMXRT1176_cm4")
37+
set(MCUX_CPU CPU_${CONFIG_SOC_PART_NUMBER}_cm4)
38+
elseif("${MCUX_DEVICE}" STREQUAL "MIMXRT1176_cm7")
39+
set(MCUX_CPU CPU_${CONFIG_SOC_PART_NUMBER}_cm7)
40+
elseif("${MCUX_DEVICE}" STREQUAL "MIMXRT1166_cm4")
41+
set(MCUX_CPU CPU_${CONFIG_SOC_PART_NUMBER}_cm4)
42+
elseif("${MCUX_DEVICE}" STREQUAL "MIMXRT1166_cm7")
43+
set(MCUX_CPU CPU_${CONFIG_SOC_PART_NUMBER}_cm7)
44+
else()
45+
set(MCUX_CPU CPU_${CONFIG_SOC_PART_NUMBER})
46+
endif()

0 commit comments

Comments
 (0)