| # Copyright (c) 2020 Project CHIP Authors |
| # Copyright 2023 NXP |
| # |
| # Licensed under the Apache License, Version 2.0 (the "License"); |
| # you may not use this file except in compliance with the License. |
| # You may obtain a copy of the License at |
| # |
| # http://www.apache.org/licenses/LICENSE-2.0 |
| # |
| # Unless required by applicable law or agreed to in writing, software |
| # distributed under the License is distributed on an "AS IS" BASIS, |
| # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| # See the License for the specific language governing permissions and |
| # limitations under the License. |
| import("//build_overrides/chip.gni") |
| import("//build_overrides/openthread.gni") |
| |
| import("${chip_root}/src/platform/device.gni") # declares chip_enable_wifi |
| import("${chip_root}/src/platform/nxp/${nxp_platform}/args.gni") # declares all |
| # rt local |
| # args |
| import("${nxp_sdk_build_root}/nxp_sdk.gni") # declares some sdk args such as |
| # chip_with_ot_cli |
| |
| declare_args() { |
| # Location of the rt SDK. |
| rt_sdk_root = "${chip_root}/third_party/nxp/rt_sdk/repo/sdk-2.15" |
| |
| # Enables Matter over Ethernet support |
| chip_enable_ethernet = false |
| |
| # transceiver lists |
| iw416_transceiver = false |
| k32w0_transceiver = false |
| k32w0_transceiver_bin_path = rebase_path( |
| "${chip_root}/third_party/openthread/ot-nxp/build_k32w061/ot_rcp_ble_hci_bb_single_uart_fc/bin/ot-rcp-ble-hci-bb-k32w061.elf.bin.h") |
| w8801_transceiver = false |
| iwx12_transceiver = false |
| |
| # Enables hci and spinel communication on single UART |
| # Could be used only if k32w0_transceiver is enabled |
| hci_spinel_single_uart = false |
| |
| # Enables spinel communication over spi |
| # Could be used only if iwx12_transceiver is enabled |
| spinel_over_spi = false |
| |
| # Allows to enable OTW logs to see |
| # firmware download logs for K32W0 transceiver |
| otw_logs_enabled = false |
| |
| # Defines the RT NVM component supported |
| rt_nvm_component = "littlefs" |
| |
| # KeyStorage enable only for RW61x |
| #if(nxp_platform == "rt/rw61x"){ |
| #rt_nvm_component = "key_storage" |
| #} |
| |
| # Enable wifi PTA support |
| wifi_enable_pta = false |
| |
| # RT platform name |
| rt_platform = "" |
| |
| # Support or not assert component from the SDK |
| sdk_fsl_assert_support = true |
| |
| # Defines the name of the nxp SDK target instance |
| nxp_sdk_target = "" |
| |
| # Defines the name of the nxp SDK driver target instance |
| nxp_sdk_driver_target = "" |
| |
| # Enables Watchdog support |
| use_watchdog = 0 |
| |
| # SDK 2.15 support |
| is_sdk_2_15 = false |
| |
| # Describe the transceiver detail flags |
| nxp_transceiver_interface_detail = "WIFI_IW612_BOARD_MURATA_2EL_USD" |
| } |
| |
| declare_args() { |
| rt_core_sdk_root = "${rt_sdk_root}/core" |
| } |
| |
| if (is_sdk_package || is_sdk_internal) { |
| rt_core_sdk_root = getenv("NXP_SDK_ROOT") |
| rt_sdk_root = getenv("NXP_SDK_ROOT") |
| } |
| |
| if (!defined(rt_fwk_platform)) { |
| rt_fwk_platform = rt_platform |
| } |
| |
| assert(rt_sdk_root != "", "rt_sdk_root must be specified") |
| |
| # Assuming 2.15 SDK support for RT1170 |
| if (rt_platform == "rt1060" || rt_platform == "rt1170") { |
| is_sdk_2_15 = true |
| } |
| |
| if (rt_platform == "rt1060") { |
| nxp_transceiver_interface_detail = "WIFI_IW612_BOARD_MURATA_2EL_M2" |
| } |
| |
| if (iwx12_transceiver && chip_enable_openthread) { |
| spinel_over_spi = true |
| } |
| |
| rt_sdk_freertos_kernel = "${rt_sdk_root}/rtos/freertos/freertos-kernel" |
| |
| template("rt_transceiver") { |
| config("${target_name}_config") { |
| include_dirs = [] |
| _transceiver_include_dirs = [] |
| |
| if (defined(invoker.include_dirs)) { |
| include_dirs += invoker.include_dirs |
| } |
| |
| if (iw416_transceiver || w8801_transceiver || iwx12_transceiver) { |
| _transceiver_include_dirs += [ |
| # Transceiver files |
| "${rt_sdk_root}/middleware/wifi_nxp/wifidriver", |
| "${rt_sdk_root}/middleware/wifi_nxp/wifidriver/incl", |
| "${rt_sdk_root}/middleware/sdmmc/common", |
| "${rt_sdk_root}/middleware/sdmmc/sdio", |
| "${rt_sdk_root}/middleware/sdmmc/host/usdhc", |
| "${rt_sdk_root}/middleware/sdmmc/osa", |
| "${rt_sdk_root}/middleware/wifi_nxp/incl/wifidriver", |
| "${rt_sdk_root}/middleware/wifi_nxp/incl", |
| "${rt_sdk_root}/middleware/wifi_nxp/incl/wlcmgr", |
| "${rt_sdk_root}/middleware/wifi_nxp/incl/port/os", |
| "${rt_sdk_root}/middleware/wifi_nxp/wifidriver", |
| "${rt_sdk_root}/middleware/wifi_nxp/wifidriver/incl", |
| "${rt_sdk_root}/middleware/wifi_nxp/fwdnld_intf_abs", |
| "${rt_sdk_root}/middleware/wifi_nxp/sdio_nxp_abs/incl", |
| "${rt_sdk_root}/middleware/wifi_nxp/firmware_dnld", |
| ] |
| if (is_sdk_2_15) { |
| _transceiver_include_dirs += [ |
| "${rt_sdk_root}/middleware/wifi_nxp/wifi_bt_firmware/nw61x", |
| "${rt_sdk_root}/middleware/wifi_nxp/fwdnld_intf_abs", |
| "${rt_sdk_root}/middleware/wifi_nxp/sdio_nxp_abs/incl", |
| "${rt_sdk_root}/middleware/wifi_nxp/firmware_dnld", |
| ] |
| } else { |
| _transceiver_include_dirs += |
| [ "${rt_sdk_root}/middleware/wifi_nxp/wifi_bt_firmware" ] |
| } |
| } |
| |
| libs = [] |
| |
| if (defined(invoker.defines)) { |
| defines += invoker.defines |
| } |
| |
| cflags = [] |
| |
| if (defined(invoker.cflags)) { |
| cflags += invoker.cflags |
| } |
| |
| # Now add our "system-header" include dirs |
| foreach(include_dir, _transceiver_include_dirs) { |
| cflags += [ "-isystem" + rebase_path(include_dir, root_build_dir) ] |
| } |
| } |
| |
| source_set(target_name) { |
| forward_variables_from(invoker, "*") |
| |
| if (!defined(sources)) { |
| sources = [] |
| } |
| |
| if (iw416_transceiver || w8801_transceiver || iwx12_transceiver) { |
| sources += [ |
| # Transceiver files |
| "${rt_sdk_root}/middleware/sdmmc/common/fsl_sdmmc_common.c", |
| "${rt_sdk_root}/middleware/sdmmc/host/usdhc/non_blocking/fsl_sdmmc_host.c", |
| "${rt_sdk_root}/middleware/sdmmc/osa/fsl_sdmmc_osa.c", |
| "${rt_sdk_root}/middleware/sdmmc/sdio/fsl_sdio.c", |
| "${rt_sdk_root}/middleware/wifi_nxp/wifidriver/sdio.c", |
| ] |
| if (is_sdk_2_15) { |
| sources += [ |
| "${rt_sdk_root}/middleware/wifi_nxp/firmware_dnld/firmware_dnld.c", |
| "${rt_sdk_root}/middleware/wifi_nxp/fwdnld_intf_abs/fwdnld_intf_abs.c", |
| "${rt_sdk_root}/middleware/wifi_nxp/sdio_nxp_abs/fwdnld_sdio.c", |
| "${rt_sdk_root}/middleware/wifi_nxp/sdio_nxp_abs/mlan_sdio.c", |
| ] |
| } else { |
| sources += [ |
| "${rt_sdk_root}/middleware/wifi_nxp/wifidriver/firmware_dnld.c", |
| "${rt_sdk_root}/middleware/wifi_nxp/wifidriver/mlan_sdio.c", |
| ] |
| } |
| } |
| |
| if (!defined(public_configs)) { |
| public_configs = [] |
| } |
| |
| public_configs += [ ":${target_name}_config" ] |
| } |
| } |
| |
| template("rt_wifi") { |
| config("${target_name}_config") { |
| include_dirs = [] |
| |
| if (defined(invoker.include_dirs)) { |
| include_dirs += invoker.include_dirs |
| } |
| |
| _wifi_include_dirs = [ |
| # Wi-Fi |
| "${rt_sdk_root}/middleware/wifi_nxp/incl/port/lwip", |
| "${rt_sdk_root}/middleware/wifi_nxp/port/lwip", |
| "${rt_sdk_root}/middleware/wifi_nxp/incl", |
| "${rt_sdk_root}/middleware/wifi_nxp/incl/port/os", |
| "${rt_sdk_root}/middleware/wifi_nxp/incl/wifidriver", |
| "${rt_sdk_root}/middleware/wifi_nxp/incl/wlcmgr", |
| "${rt_sdk_root}/middleware/wifi_nxp/wifi_bt_firmware", |
| "${rt_sdk_root}/middleware/wifi_nxp/wifidriver", |
| "${rt_sdk_root}/middleware/wifi_nxp/wifidriver/incl", |
| ] |
| |
| libs = [] |
| |
| if (defined(invoker.defines)) { |
| defines += invoker.defines |
| } else { |
| defines = [] |
| } |
| |
| defines += [ |
| "CHIP_DEVICE_CONFIG_ENABLE_WPA", |
| "CONFIG_IPV6=1", # missing in wifi_config.h |
| ] |
| |
| if (wifi_enable_pta) { |
| defines += [ "WIFI_PTA_ENABLED=1" ] |
| } |
| |
| cflags = [] |
| |
| if (defined(invoker.cflags)) { |
| cflags += invoker.cflags |
| } |
| |
| # Now add our "system-header" include dirs |
| foreach(include_dir, _wifi_include_dirs) { |
| cflags += [ "-isystem" + rebase_path(include_dir, root_build_dir) ] |
| } |
| } |
| |
| source_set(target_name) { |
| forward_variables_from(invoker, "*") |
| |
| if (!defined(sources)) { |
| sources = [] |
| } |
| |
| sources += [ |
| # Wi-Fi |
| "${rt_sdk_root}/middleware/wifi_nxp/cli/cli_utils.c", |
| "${rt_sdk_root}/middleware/wifi_nxp/dhcpd/dhcp-server-main.c", |
| "${rt_sdk_root}/middleware/wifi_nxp/dhcpd/dhcp-server.c", |
| "${rt_sdk_root}/middleware/wifi_nxp/dhcpd/dns-server.c", |
| "${rt_sdk_root}/middleware/wifi_nxp/port/os/os.c", |
| "${rt_sdk_root}/middleware/wifi_nxp/wifidriver/mlan_11ac.c", |
| "${rt_sdk_root}/middleware/wifi_nxp/wifidriver/mlan_11d.c", |
| "${rt_sdk_root}/middleware/wifi_nxp/wifidriver/mlan_11h.c", |
| "${rt_sdk_root}/middleware/wifi_nxp/wifidriver/mlan_11n.c", |
| "${rt_sdk_root}/middleware/wifi_nxp/wifidriver/mlan_11n_aggr.c", |
| "${rt_sdk_root}/middleware/wifi_nxp/wifidriver/mlan_11n_rxreorder.c", |
| "${rt_sdk_root}/middleware/wifi_nxp/wifidriver/mlan_api.c", |
| "${rt_sdk_root}/middleware/wifi_nxp/wifidriver/mlan_cfp.c", |
| "${rt_sdk_root}/middleware/wifi_nxp/wifidriver/mlan_cmdevt.c", |
| "${rt_sdk_root}/middleware/wifi_nxp/wifidriver/mlan_glue.c", |
| "${rt_sdk_root}/middleware/wifi_nxp/wifidriver/mlan_init.c", |
| "${rt_sdk_root}/middleware/wifi_nxp/wifidriver/mlan_join.c", |
| "${rt_sdk_root}/middleware/wifi_nxp/wifidriver/mlan_misc.c", |
| "${rt_sdk_root}/middleware/wifi_nxp/wifidriver/mlan_scan.c", |
| "${rt_sdk_root}/middleware/wifi_nxp/wifidriver/mlan_shim.c", |
| "${rt_sdk_root}/middleware/wifi_nxp/wifidriver/mlan_sta_cmd.c", |
| "${rt_sdk_root}/middleware/wifi_nxp/wifidriver/mlan_sta_cmdresp.c", |
| "${rt_sdk_root}/middleware/wifi_nxp/wifidriver/mlan_sta_event.c", |
| "${rt_sdk_root}/middleware/wifi_nxp/wifidriver/mlan_sta_ioctl.c", |
| "${rt_sdk_root}/middleware/wifi_nxp/wifidriver/mlan_sta_rx.c", |
| "${rt_sdk_root}/middleware/wifi_nxp/wifidriver/mlan_txrx.c", |
| "${rt_sdk_root}/middleware/wifi_nxp/wifidriver/mlan_uap_cmdevent.c", |
| "${rt_sdk_root}/middleware/wifi_nxp/wifidriver/mlan_uap_ioctl.c", |
| "${rt_sdk_root}/middleware/wifi_nxp/wifidriver/mlan_wmm.c", |
| "${rt_sdk_root}/middleware/wifi_nxp/wifidriver/wifi-debug.c", |
| "${rt_sdk_root}/middleware/wifi_nxp/wifidriver/wifi-mem.c", |
| "${rt_sdk_root}/middleware/wifi_nxp/wifidriver/wifi-uap.c", |
| "${rt_sdk_root}/middleware/wifi_nxp/wifidriver/wifi.c", |
| "${rt_sdk_root}/middleware/wifi_nxp/wifidriver/wifi_pwrmgr.c", |
| "${rt_sdk_root}/middleware/wifi_nxp/wlcmgr/wlan.c", |
| "${rt_sdk_root}/middleware/wifi_nxp/wlcmgr/wlan_txpwrlimit_cfg.c", |
| ] |
| |
| if (!defined(public_configs)) { |
| public_configs = [] |
| } |
| |
| public_configs += [ ":${target_name}_config" ] |
| } |
| } |
| |
| template("rt_sdk") { |
| sdk_target_name = target_name |
| |
| config("${sdk_target_name}_config") { |
| include_dirs = [] |
| |
| if (defined(invoker.include_dirs)) { |
| include_dirs += invoker.include_dirs |
| } |
| |
| # We want to treat SDK headers as system headers, so that warnings in those |
| # headers are not fatal. Therefore don't add them directly to include_dirs; |
| # we will add them to cflags below instead. |
| _sdk_include_dirs = [ |
| #freertos includes |
| "${rt_sdk_freertos_kernel}/include", |
| |
| #CMSIS includes |
| "${rt_core_sdk_root}/CMSIS/Core/Include", |
| |
| #SDK components |
| "${rt_core_sdk_root}/components/uart", |
| "${rt_core_sdk_root}/components/spi", |
| "${rt_core_sdk_root}/components/serial_manager", |
| "${rt_core_sdk_root}/components/lists", |
| "${rt_core_sdk_root}/components/osa", |
| "${rt_core_sdk_root}/components/common_task", |
| "${rt_core_sdk_root}/components/log", |
| "${rt_core_sdk_root}/components/timer_manager", |
| "${rt_core_sdk_root}/components/timer", |
| "${rt_core_sdk_root}/components/internal_flash", |
| "${rt_core_sdk_root}/components/button", |
| "${rt_core_sdk_root}/components/gpio", |
| "${rt_core_sdk_root}/components/phy/device/phyksz8081", |
| "${rt_core_sdk_root}/components/phy", |
| "${rt_core_sdk_root}/components/wifi_bt_module/AzureWave/tx_pwr_limits", |
| "${rt_core_sdk_root}/components/wifi_bt_module/Murata/tx_pwr_limits", |
| "${rt_core_sdk_root}/components/wifi_bt_module/template", |
| "${rt_core_sdk_root}/components/wifi_bt_module/incl", |
| "${rt_core_sdk_root}/components/messaging", |
| "${rt_core_sdk_root}/components/mem_manager", |
| "${rt_core_sdk_root}/components/flash/mflash", |
| "${rt_core_sdk_root}/components/time_stamp", |
| |
| #Framework files |
| "${rt_sdk_root}/middleware/wireless/framework/FunctionLib", |
| "${rt_sdk_root}/middleware/wireless/framework/Common", |
| "${rt_sdk_root}/middleware/wireless/framework/platform/${rt_fwk_platform}", |
| "${rt_sdk_root}/middleware/wireless/framework/platform/include", |
| "${rt_sdk_root}/middleware/wireless/framework/FileSystem", |
| "${rt_sdk_root}/middleware/wireless/framework/FileCache", |
| "${rt_sdk_root}/middleware/wireless/framework/FSAbstraction", |
| "${rt_sdk_root}/middleware/wireless/framework/KeyStorage", |
| |
| #"${rt_sdk_root}/middleware/wireless/framework/DBG", |
| |
| #littlefs |
| "${rt_sdk_root}/middleware/littlefs", |
| ] |
| |
| #OtaSupport |
| if (chip_enable_ota_requestor) { |
| _sdk_include_dirs += [ |
| "${rt_sdk_root}/middleware/wireless/framework/OtaSupport/Interface", |
| "${rt_sdk_root}/middleware/wireless/framework/OtaSupport/Source", |
| ] |
| } |
| |
| if (rt_nvm_component == "nvm_fwk") { |
| _sdk_include_dirs += |
| [ "${rt_sdk_root}/middleware/wireless/framework/NVM/Interface" ] |
| } |
| |
| libs = [] |
| |
| defines = [ |
| "__STARTUP_CLEAR_BSS", |
| "__STARTUP_INITIALIZE_NONCACHEDATA", |
| "__STARTUP_INITIALIZE_RAMFUNCTION", |
| |
| #"SERIAL_MANAGER_NON_BLOCKING_MODE=1", |
| "SERIAL_MANAGER_TASK_HANDLE_RX_AVAILABLE_NOTIFY=1", |
| "SERIAL_MANAGER_RING_BUFFER_FLOWCONTROL=1", |
| "SDK_OS_FREE_RTOS", |
| |
| #Enable the OSA startup task |
| "OSA_USED", |
| "FSL_OSA_TASK_ENABLE", |
| |
| #Startup task stack size todo :to remove |
| "gMainThreadStackSize_c=4096", |
| "XIP_EXTERNAL_FLASH=1", |
| "XIP_BOOT_HEADER_ENABLE=1", |
| "FSL_SDK_ENABLE_DRIVER_CACHE_CONTROL=1", |
| "SDK_COMPONENT_INTEGRATION=1", |
| "FSL_DRIVER_TRANSFER_DOUBLE_WEAK_IRQ=0", |
| |
| # Serial Manager already in Non blocking state by default |
| # but can be changed with other compile switch (DEBUG_CONSOLE_TRANSFER_NON_BLOCKING), |
| # so better to explicitly set to 1 here except when DEBUG_CONSOLE_TRANSFER_NON_BLOCKING is set |
| # "SERIAL_MANAGER_NON_BLOCKING_MODE=1", |
| # For Debug Console, This flag is not use for Debug Console Light |
| "DEBUG_CONSOLE_TRANSFER_NON_BLOCKING", |
| "HAL_UART_ADAPTER_FIFO=1", |
| "SDK_DEBUGCONSOLE_UART=1", |
| "SERIAL_PORT_TYPE_UART=1", |
| "CONFIG_ARM=1", |
| "SERIAL_MANAGER_TASK_STACK_SIZE=4048", |
| |
| #LWIP common options |
| "USE_RTOS=1", |
| "BUTTON_SHORT_PRESS_THRESHOLD=500", |
| "BUTTON_LONG_PRESS_THRESHOLD=2000", |
| |
| #Multithread tests |
| "PRINTF_ADVANCED_ENABLE=1", |
| ] |
| |
| if (use_watchdog != 0) { |
| defines += [ "WATCHDOG_ALLOWED" ] |
| } |
| |
| if (rt_nvm_component == "nvm_fwk") { |
| defines += [ |
| #NVM flags |
| "gNvStorageIncluded_d=1", |
| "gNvTableKeptInRam_d=1", |
| "NVM_NO_COMPONNET=1", |
| ] |
| } |
| |
| if (rt_nvm_component == "littlefs" || rt_nvm_component == "key_storage") { |
| defines += [ |
| "LFS_THREADSAFE=1", |
| "LFS_NO_DEBUG", |
| "LFS_NO_ERROR", |
| "LFS_NO_WARN", |
| ] |
| } |
| |
| if (chip_enable_wifi || chip_enable_ethernet) { |
| defines += [ |
| "SDK_DEBUGCONSOLE=1", |
| "MCUXPRESSO_SDK", |
| "PRINTF_FLOAT_ENABLE=0", |
| "DEBUG", |
| "__GCC", |
| "__USE_CMSIS", |
| "PRINT_FLOAT_ENABLE=0", |
| "CR_INTEGER_PRINTF", |
| |
| # No OSA main task |
| "FSL_OSA_MAIN_FUNC_ENABLE=0", |
| ] |
| if (chip_enable_openthread) { |
| defines += [ "CONFIG_MAX_IPV6_ADDRESSES=8" ] |
| } else { |
| defines += [ "CONFIG_MAX_IPV6_ADDRESSES=5" ] |
| } |
| } |
| |
| if (chip_enable_ethernet) { |
| defines += [ "FSL_FEATURE_PHYKSZ8081_USE_RMII50M_MODE" ] |
| } |
| |
| if (chip_enable_pairing_autostart == 1) { |
| defines += [ "CHIP_DEVICE_CONFIG_ENABLE_PAIRING_AUTOSTART=1" ] |
| } else { |
| defines += [ "CHIP_DEVICE_CONFIG_ENABLE_PAIRING_AUTOSTART=0" ] |
| } |
| |
| if (iw416_transceiver) { |
| defines += [ |
| "WIFI_IW416_BOARD_AW_AM510_USD", |
| "SDIO_ENABLED", |
| ] |
| } |
| |
| if (w8801_transceiver) { |
| defines += [ |
| "WIFI_88W8801_BOARD_MURATA_2DS_USD", |
| "SDIO_ENABLED", |
| ] |
| } |
| |
| if (iwx12_transceiver) { |
| defines += [ |
| nxp_transceiver_interface_detail, |
| "SDIO_ENABLED", |
| ] |
| } |
| |
| if (k32w0_transceiver) { |
| defines += [ "K32W061_TRANSCEIVER" ] |
| defines += [ "BOARD_OTW_K32W0_PIN_INIT" ] |
| |
| #Framework OTW defines to locate transceiver binary header |
| defines += [ "K32W0_RCP_BINARY_H_FILE=\"${k32w0_transceiver_bin_path}\"" ] |
| |
| #SDK defines for OTW |
| defines += [ "HAL_UART_DMA_ENABLE=1" ] |
| _sdk_include_dirs += |
| [ "${rt_sdk_root}/middleware/wireless/framework/OTW/Interface" ] |
| if (otw_logs_enabled) { |
| defines += [ "OTW_LOG_ENABLED=1" ] |
| } |
| } |
| |
| if (nxp_software_version != "") { |
| defines += |
| [ "NXP_CONFIG_DEVICE_SOFTWARE_VERSION=${nxp_software_version}" ] |
| } |
| |
| if (nxp_software_version_string != "") { |
| defines += [ "NXP_CONFIG_DEVICE_SOFTWARE_VERSION_STRING=\"${nxp_software_version_string}\"" ] |
| } |
| |
| if (defined(invoker.defines)) { |
| defines += invoker.defines |
| } |
| cflags = [] |
| |
| if (defined(invoker.cflags)) { |
| cflags += invoker.cflags |
| } |
| |
| cflags += [ |
| "-Wno-unused-function", |
| "-Wno-conversion", |
| "-Wno-sign-compare", |
| "-Wno-shadow", |
| "-Wno-empty-body", |
| "-Wno-implicit-fallthrough", |
| "-Wno-stringop-truncation", |
| "-Wno-unused-variable", |
| "-Wno-format-truncation", |
| ] |
| |
| if (chip_enable_openthread) { |
| defines += [ "CHIP_DEVICE_CONFIG_ENABLE_THREAD=1" ] |
| } |
| |
| if (chip_enable_ble) { |
| defines += [ "CHIP_DEVICE_CONFIG_ENABLE_CHIPOBLE=1" ] |
| } |
| |
| if (chip_enable_wifi) { |
| defines += [ "CHIP_DEVICE_CONFIG_ENABLE_WIFI_STATION=1" ] |
| } |
| |
| # Now add our "system-header" include dirs |
| foreach(include_dir, _sdk_include_dirs) { |
| cflags += [ "-isystem" + rebase_path(include_dir, root_build_dir) ] |
| } |
| |
| if (is_sdk_2_15) { |
| defines += [ "NXP_SDK_2_15_SUPPORT" ] |
| } |
| |
| #Adding pre-include files |
| cflags += [ "-include" + rebase_path( |
| "${nxp_sdk_build_root}/${nxp_sdk_name}/transceiver/app_transceiver_config.h", |
| root_build_dir) ] |
| } |
| |
| # TODO - Break up this monolith and make it configurable. |
| source_set(sdk_target_name) { |
| forward_variables_from(invoker, "*") |
| |
| if (!defined(sources)) { |
| sources = [] |
| } |
| |
| sources += [ |
| #freertos files |
| "${rt_sdk_freertos_kernel}/croutine.c", |
| "${rt_sdk_freertos_kernel}/event_groups.c", |
| "${rt_sdk_freertos_kernel}/list.c", |
| "${rt_sdk_freertos_kernel}/queue.c", |
| "${rt_sdk_freertos_kernel}/stream_buffer.c", |
| "${rt_sdk_freertos_kernel}/tasks.c", |
| "${rt_sdk_freertos_kernel}/timers.c", |
| |
| #SDK components |
| "${rt_core_sdk_root}/components/button/fsl_component_button.c", |
| "${rt_core_sdk_root}/components/lists/fsl_component_generic_list.c", |
| "${rt_core_sdk_root}/components/log/fsl_component_log.c", |
| "${rt_core_sdk_root}/components/log/fsl_component_log_backend_debugconsole.c", |
| "${rt_core_sdk_root}/components/messaging/fsl_component_messaging.c", |
| "${rt_core_sdk_root}/components/osa/fsl_os_abstraction_free_rtos.c", |
| "${rt_core_sdk_root}/components/phy/device/phyksz8081/fsl_phyksz8081.c", |
| "${rt_core_sdk_root}/components/serial_manager/fsl_component_serial_manager.c", |
| "${rt_core_sdk_root}/components/serial_manager/fsl_component_serial_port_uart.c", |
| "${rt_core_sdk_root}/components/timer_manager/fsl_component_timer_manager.c", |
| |
| #Framework files |
| "${rt_sdk_root}/middleware/wireless/framework/FunctionLib/FunctionLib.c", |
| ] |
| |
| #OtaSupport files |
| if (chip_enable_ota_requestor) { |
| sources += [ |
| "${rt_sdk_root}/middleware/wireless/framework/OtaSupport/Source/OtaExternalFlash.c", |
| "${rt_sdk_root}/middleware/wireless/framework/OtaSupport/Source/OtaPrivate.h", |
| "${rt_sdk_root}/middleware/wireless/framework/OtaSupport/Source/OtaSupport.c", |
| "${rt_sdk_root}/middleware/wireless/framework/platform/${rt_fwk_platform}/fwk_platform_extflash.c", |
| "${rt_sdk_root}/middleware/wireless/framework/platform/${rt_fwk_platform}/fwk_platform_ota.c", |
| ] |
| } |
| |
| if (rt_nvm_component == "nvm_fwk") { |
| sources += [ |
| "${rt_sdk_root}/middleware/wireless/framework/FileSystem/fwk_filesystem.c", |
| "${rt_sdk_root}/middleware/wireless/framework/NVM/Source/NV_Flash.c", |
| "${rt_sdk_root}/middleware/wireless/framework/platform/${rt_fwk_platform}/fwk_platform_flash.c", |
| ] |
| } |
| |
| if (rt_nvm_component == "key_storage") { |
| sources += [ |
| "${rt_sdk_root}/middleware/wireless/framework/FSAbstraction/fwk_fs_abstraction.c", |
| "${rt_sdk_root}/middleware/wireless/framework/FSAbstraction/fwk_lfs_mflash.c", |
| "${rt_sdk_root}/middleware/wireless/framework/FileCache/fwk_file_cache.c", |
| "${rt_sdk_root}/middleware/wireless/framework/KeyStorage/fwk_key_storage.c", |
| ] |
| sources += [ |
| #littlefs |
| "${rt_sdk_root}/middleware/littlefs/lfs.c", |
| "${rt_sdk_root}/middleware/littlefs/lfs_util.c", |
| ] |
| } |
| |
| if (rt_nvm_component == "littlefs") { |
| sources += [ |
| "${rt_sdk_root}/middleware/wireless/framework/FileSystem/fwk_filesystem.c", |
| "${rt_sdk_root}/middleware/wireless/framework/platform/${rt_fwk_platform}/fwk_platform_flash.c", |
| ] |
| sources += [ |
| #littlefs |
| "${rt_sdk_root}/middleware/littlefs/lfs.c", |
| "${rt_sdk_root}/middleware/littlefs/lfs_util.c", |
| ] |
| } |
| |
| if (iwx12_transceiver) { |
| sources += [ "${rt_sdk_root}/middleware/wireless/framework/platform/imx_rt/iw612/fwk_platform_coex.c" ] |
| } |
| |
| if (k32w0_transceiver) { |
| sources += [ |
| "${rt_sdk_root}/middleware/wireless/framework/OTW/k32w0_transceiver/fwk_otw.c", |
| "${rt_sdk_root}/middleware/wireless/framework/platform/imx_rt/k32w0/fwk_platform_coex.c", |
| ] |
| } |
| |
| if (!defined(public_configs)) { |
| public_configs = [] |
| } |
| |
| if (!defined(public_deps)) { |
| public_deps = [] |
| } |
| |
| public_configs += [ ":${sdk_target_name}_config" ] |
| |
| public_configs += |
| [ "${nxp_sdk_build_root}/${nxp_sdk_name}:nxp_transceiver_config" ] |
| |
| public_configs += [ |
| "${nxp_sdk_build_root}/${nxp_sdk_name}:nxp_lwip_base_config", |
| "${nxp_sdk_build_root}/${nxp_sdk_name}:lwip_rt_config", |
| ] |
| |
| public_configs += [ "" + nxp_sdk_driver_target + "_config" ] |
| |
| if (chip_enable_ble) { |
| public_configs += |
| [ "${nxp_sdk_build_root}/${nxp_sdk_name}:nxp_bt_ble_config" ] |
| } |
| if (chip_enable_wifi) { |
| public_configs += |
| [ "${nxp_sdk_build_root}/${nxp_sdk_name}:nxp_wifi_config" ] |
| } |
| |
| all_dependent_configs = public_configs |
| } |
| } |