1set(MCUX_SDK_PROJECT_NAME ${ZEPHYR_CURRENT_LIBRARY}) 2# Translate the SoC name and part number into the mcux device and cpu 3# 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 11 12if(NOT HWMv2) 13 # Include HWMv1 logic for MCUX variables 14 include(${CMAKE_CURRENT_LIST_DIR}/hwmv1.cmake) 15else() 16 string(TOUPPER ${CONFIG_SOC} MCUX_DEVICE_PATH) 17 string(TOUPPER ${CONFIG_SOC} MCUX_DEVICE) 18 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() 24endif() 25 26zephyr_include_directories(mcux-sdk/devices/${MCUX_DEVICE_PATH}) 27zephyr_include_directories(mcux-sdk/devices/${MCUX_DEVICE_PATH}/drivers) 28 29#include device specific drivers 30if (${MCUX_DEVICE} MATCHES "MIMXRT1[0-9][0-9][0-9]") 31 zephyr_include_directories(mcux-sdk/devices/${MCUX_DEVICE_PATH}/xip) 32endif() 33 34#include CMSIS of mcux-sdk for Cortex-A 35if (CONFIG_CPU_CORTEX_A) 36 zephyr_include_directories(mcux-sdk/CMSIS/Core_AArch64/Include) 37endif() 38 39# The mcux uses the cpu name to expose SoC-specific features of a 40# given peripheral. For example, the UART peripheral may be 41# instantiated with/without a hardware FIFO, and the size of that FIFO 42# may be different for each instance in a given SoC. See 43# fsl_device_registers.h and ${MCUX_DEVICE}_features.h 44zephyr_compile_definitions(${MCUX_CPU}) 45 46# Build mcux device-specific objects. Although it is not normal 47# practice, drilling down like this avoids the need for repetitive 48# build scripts for every mcux device. 49zephyr_library_sources(mcux-sdk/devices/${MCUX_DEVICE_PATH}/drivers/fsl_clock.c) 50if (${MCUX_DEVICE} MATCHES "LPC|MIMXRT6|MIMXRT5|MIMXRT7|RW6|MCXN.4.") 51 # fsl_power.c contains ARM specific symbols, which shouldn't be included for Xtensa cores 52 if (NOT ${MCUX_DEVICE} MATCHES "_dsp|_hifi1|_hifi4") 53 zephyr_library_sources(mcux-sdk/devices/${MCUX_DEVICE_PATH}/drivers/fsl_power.c) 54 endif() 55 zephyr_library_sources(mcux-sdk/devices/${MCUX_DEVICE_PATH}/drivers/fsl_reset.c) 56 zephyr_library_sources_ifdef(CONFIG_HWINFO_RW61X mcux-sdk/devices/${MCUX_DEVICE}/drivers/fsl_ocotp.c) 57endif() 58 59# RT11xx SOC initialization file requires additional drivers, import them 60if (${MCUX_DEVICE} MATCHES "MIMXRT11") 61 zephyr_library_sources(mcux-sdk/devices/${MCUX_DEVICE_PATH}/drivers/fsl_romapi.c) 62 zephyr_library_sources(mcux-sdk/devices/${MCUX_DEVICE_PATH}/drivers/fsl_pmu.c) 63 zephyr_library_sources(mcux-sdk/devices/${MCUX_DEVICE_PATH}/drivers/fsl_dcdc.c) 64 zephyr_library_sources_ifdef(CONFIG_SOC_MIMXRT1189 mcux-sdk/devices/${MCUX_DEVICE_PATH}/drivers/fsl_ele_base_api.c) 65if (${MCUX_DEVICE} MATCHES "MIMXRT117|MIMXRT116") 66 zephyr_library_sources(mcux-sdk/devices/${MCUX_DEVICE_PATH}/drivers/fsl_anatop_ai.c) 67endif() 68endif() 69 70zephyr_library_sources_ifdef(CONFIG_HAS_MCUX_AUDIOMIX mcux-sdk/devices/${MCUX_DEVICE_PATH}/drivers/fsl_audiomix.c) 71 72add_subdirectory(components) 73 74add_subdirectory_ifdef( 75 CONFIG_IEEE802154_KW41Z 76 middleware/wireless/framework_5.3.3 77 ) 78 79add_subdirectory_ifdef( 80 CONFIG_WIFI_NXP 81 middleware/wifi_nxp 82 ) 83 84#Include Entry cmake component 85include(${CMAKE_CURRENT_LIST_DIR}/hal_nxp.cmake) 86enable_language(C ASM) 87 88zephyr_library_sources_ifdef(CONFIG_SOC_LPC54114_M4 mcux-sdk/devices/${MCUX_DEVICE_PATH}/gcc/startup_LPC54114_cm4.S) 89 90zephyr_linker_sources(RWDATA quick_access_data.ld) 91zephyr_linker_sources_ifdef(CONFIG_ARCH_HAS_RAMFUNC_SUPPORT 92 RAMFUNC_SECTION 93 quick_access_code.ld 94) 95zephyr_linker_sources_ifdef(CONFIG_NOCACHE_MEMORY 96 NOCACHE_SECTION 97 nocache.ld 98) 99zephyr_library_compile_definitions_ifdef(CONFIG_NOCACHE_MEMORY 100 __STARTUP_INITIALIZE_NONCACHEDATA 101) 102 103add_subdirectory(middleware) 104