blob: 509a4584316a9f697dcb2e3932a9a13c2cd21172 [file] [log] [blame]
# Copyright (c) 2020 Project CHIP Authors
#
# 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/build.gni")
import("//build_overrides/chip.gni")
import("//build_overrides/mbedtls.gni")
import("//build_overrides/nxp_sdk.gni")
import("//build_overrides/openthread.gni")
import("${build_root}/config/compiler/compiler.gni")
import("${chip_root}/src/crypto/crypto.gni")
import("${chip_root}/src/lib/core/core.gni")
import("${chip_root}/src/platform/device.gni")
import("${chip_root}/src/platform/nxp/${nxp_platform}/args.gni")
declare_args() {
# Location of the k32w0 SDK.
k32w0_sdk_root = getenv("NXP_K32W0_SDK_ROOT")
chip_with_DK6 = true
chip_with_OM15082 = 0
chip_with_ot_cli = 0
chip_with_low_power = 0
build_for_k32w061 = 1
build_for_k32w041am = 0
build_for_k32w041a = 0
build_for_k32w041 = 0
device = "K32W061"
board = "k32w061dk6"
chip_with_ntag = 1
chip_with_high_power = 0
use_fro_32k = 0
use_custom_factory_provider = 0
chip_crypto_flavor = "NXP-Ultrafast-P256"
chip_reduce_ssbl_size = false
chip_enable_ota_firmware_processor = 1
chip_enable_ota_factory_data_processor = 0
chip_with_pdm_encryption = 1
ota_custom_entry_address = "0x000C1000"
use_antenna_diversity = 0
chip_with_ota_encryption = 0
chip_with_ota_key = "1234567890ABCDEFA1B2C3D4E5F6F1B4"
chip_with_sdk_package = 1
}
assert(k32w0_sdk_root != "", "k32w0_sdk_root must be specified")
if (chip_crypto == "platform") {
assert(chip_crypto_flavor == "tinycrypt" ||
chip_crypto_flavor == "NXP-Ultrafast-P256",
"choose tinycrypt or NXP-Ultrafast-P256 as crypto platform")
}
# Defines an k32w SDK build target.
#
# Parameters:
# k32w0_sdk_root - The location of the k32w SDK.
# sources - Extra source files to build.
template("k32w0_sdk") {
if (defined(invoker.k32w0_sdk_root)) {
k32w0_sdk_root = invoker.k32w0_sdk_root
}
if (defined(invoker.override_is_DK6)) {
chip_with_DK6 = invoker.override_is_DK6
}
assert(k32w0_sdk_root != "", "k32w0_sdk_root must be specified")
assert(chip_with_OM15082 == 0 || chip_with_DK6,
"OM15082 expansion board is only supported on DK6 board")
assert(
chip_with_low_power == 0 ||
(chip_with_low_power == 1 && chip_with_OM15082 == 0 &&
chip_with_ot_cli == 0 && chip_with_se05x == 0),
"Please disable low power if expansion board, openthread CLI or SE is needed!")
assert(
use_custom_factory_provider == 0 || chip_with_factory_data == 1,
"Please set chip_with_factory_data=1 if using custom factory provider.")
assert(
chip_enable_ota_factory_data_processor == 0 ||
chip_enable_ota_firmware_processor == 1,
"Please set chip_enable_ota_firmware_processor=1 if using default factory data processor.")
assert(
chip_enable_ota_factory_data_processor == 0 ||
chip_with_factory_data == 1,
"Please set chip_with_factory_data=1 if using default factory data processor.")
assert(
chip_enable_ota_factory_data_processor == 0 ||
chip_enable_ota_firmware_processor == 1,
"Please set chip_enable_ota_firmware_processor=1 if using default factory data processor.")
assert(
chip_enable_ota_factory_data_processor == 0 ||
chip_with_factory_data == 1,
"Please set chip_with_factory_data=1 if using default factory data processor.")
if (build_for_k32w041am == 1 || build_for_k32w041a == 1 ||
build_for_k32w041 == 1) {
build_for_k32w061 = 0
}
if (build_for_k32w061 == 1) {
assert(build_for_k32w061 == 1 && build_for_k32w041am == 0 &&
build_for_k32w041a == 0 && build_for_k32w041 == 0,
"Please build for only one platform")
device = "K32W061"
board = "k32w061dk6"
chip_with_ntag = 0
}
if (build_for_k32w041am == 1) {
assert(build_for_k32w041am == 1 && build_for_k32w061 == 0 &&
build_for_k32w041a == 0 && build_for_k32w041 == 0,
"Please build for only one platform")
device = "K32W041AM"
board = "k32w041amdk6"
chip_with_ntag = 0
}
if (build_for_k32w041a == 1) {
assert(build_for_k32w041a == 1 && build_for_k32w061 == 0 &&
build_for_k32w041am == 0 && build_for_k32w041 == 0,
"Please build for only one platform")
device = "K32W041A"
board = "k32w041adk6"
chip_with_ntag = 0
}
if (build_for_k32w041 == 1) {
assert(build_for_k32w041 == 1 && build_for_k32w061 == 0 &&
build_for_k32w041am == 0 && build_for_k32w041a == 0,
"Please build for only one platform")
device = "K32W041"
board = "k32w041dk6"
chip_with_ntag = 0
}
if (k32w0_sdk_root == "${chip_root}/third_party/nxp/k32w0_sdk/repo/core" ||
k32w0_sdk_root == "/opt/sdk/core") {
chip_with_sdk_package = 0
} else {
chip_with_sdk_package = 1
}
print("device:", device)
print("board:", board)
print("ntag:", chip_with_ntag)
print("increased TX power:", chip_with_high_power)
print("FRO32k: ", use_fro_32k)
print("low power: ", chip_with_low_power)
print("OTA default firmware processor: ", chip_enable_ota_firmware_processor)
print("OTA default factory data processor: ",
chip_enable_ota_factory_data_processor)
print("PDM Encryption: ", chip_with_pdm_encryption)
print("Antenna Diversity enabled: ", use_antenna_diversity)
if (chip_with_low_power == 1 && chip_logging == true) {
print(
"WARNING: enabling logs in low power might break the LP timings. Use at your own risk!")
print("WARNING: set chip_logging=false to disable logging.")
}
if (chip_crypto == "platform") {
print("ECC crypto lib: ", chip_crypto_flavor)
}
print("chip_with_sdk_package:", chip_with_sdk_package)
device_lowercase = string_replace(board, "dk6", "")
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 = []
# Directories specified with -isystem options are scanned in left-to-right order.
# sha256_alt.h is present in both these paths, but the one from port/matter will
# be selected, which is intended. Both paths are needed, because some header
# files are not overwritten (e.g. aes_alt.h).
_sdk_include_dirs += [
"${k32w0_sdk_root}/middleware/mbedtls/port/matter",
"${k32w0_sdk_root}/middleware/mbedtls/port/ksdk",
]
if (chip_with_DK6) {
if (chip_with_low_power != 0) {
_sdk_include_dirs += [ "${k32w0_sdk_root}/boards/${board}/wireless_examples/openthread/lped/bm" ]
} else {
_sdk_include_dirs += [ "${k32w0_sdk_root}/boards/${board}/wireless_examples/openthread/reed/bm" ]
}
}
if (chip_with_low_power != 0) {
_sdk_include_dirs += [ "${k32w0_sdk_root}/boards/${board}/wireless_examples/hybrid/ble_ot/lped_ble_wuart/ble_802_15_4_common" ]
}
if (chip_with_ntag != 0) {
_sdk_include_dirs += [
"${k32w0_sdk_root}/middleware/ntag_i2c_plus/HAL_I2C/inc",
"${k32w0_sdk_root}/middleware/ntag_i2c_plus/HAL_NTAG/inc",
"${k32w0_sdk_root}/middleware/ntag_i2c_plus/inc",
"${k32w0_sdk_root}/middleware/ntag_i2c_plus/HAL_TMR/inc",
]
}
_sdk_include_dirs += [
"${chip_root}/src/platform/nxp/k32w/k32w0",
"${k32w0_sdk_root}/CMSIS/Include",
"${k32w0_sdk_root}/components/serial_manager",
"${k32w0_sdk_root}/components/uart",
"${k32w0_sdk_root}/devices/${device}",
"${k32w0_sdk_root}/utilities/debug_console/str",
"${k32w0_sdk_root}/utilities/debug_console",
"${k32w0_sdk_root}/devices/${device}/utilities",
"${k32w0_sdk_root}/devices/${device}/utilities/debug_console",
"${k32w0_sdk_root}/devices/${device}/utilities/str",
"${k32w0_sdk_root}/middleware/wireless/ble_controller/interface",
"${k32w0_sdk_root}/middleware/wireless/bluetooth/application/common",
"${k32w0_sdk_root}/middleware/wireless/bluetooth/application/common/gatt_db",
"${k32w0_sdk_root}/middleware/wireless/bluetooth/application/common/gatt_db/macros",
"${k32w0_sdk_root}/middleware/wireless/bluetooth/host/config",
"${k32w0_sdk_root}/middleware/wireless/bluetooth/host/interface",
"${k32w0_sdk_root}/middleware/wireless/framework/Common",
"${k32w0_sdk_root}/middleware/wireless/framework/Flash/External/Interface",
"${k32w0_sdk_root}/middleware/wireless/framework/Flash/Internal",
"${k32w0_sdk_root}/middleware/wireless/framework/FunctionLib",
"${k32w0_sdk_root}/middleware/wireless/framework/GPIO",
"${k32w0_sdk_root}/middleware/wireless/framework/Logging/Interface",
"${k32w0_sdk_root}/middleware/wireless/framework/Keyboard/Interface",
"${k32w0_sdk_root}/middleware/wireless/framework/LED/Interface",
"${k32w0_sdk_root}/middleware/wireless/framework/Lists",
"${k32w0_sdk_root}/middleware/wireless/framework/LowPower/Interface/${board}",
"${k32w0_sdk_root}/middleware/wireless/framework/MemManager/Interface",
"${k32w0_sdk_root}/middleware/wireless/framework/Messaging/Interface",
"${k32w0_sdk_root}/middleware/wireless/framework/ModuleInfo",
"${k32w0_sdk_root}/middleware/wireless/framework/OSAbstraction/Interface",
"${k32w0_sdk_root}/middleware/wireless/framework/OtaSupport/Interface/",
"${k32w0_sdk_root}/middleware/wireless/framework/Panic/Interface",
"${k32w0_sdk_root}/middleware/wireless/framework/PDM/Include",
"${k32w0_sdk_root}/middleware/wireless/framework/RNG/Interface",
"${k32w0_sdk_root}/middleware/wireless/framework/SecLib",
"${k32w0_sdk_root}/middleware/wireless/framework/SerialManager/Interface",
"${k32w0_sdk_root}/middleware/wireless/framework/SerialManager/Source",
"${k32w0_sdk_root}/middleware/wireless/framework/TimersManager/Interface",
"${k32w0_sdk_root}/middleware/wireless/framework/TimersManager/Source",
"${k32w0_sdk_root}/middleware/wireless/framework/XCVR/DK6",
"${k32w0_sdk_root}/middleware/wireless/framework/XCVR/DK6/Build/Include",
"${k32w0_sdk_root}/middleware/wireless/ieee-802.15.4/MacDynamic/Include",
"${k32w0_sdk_root}/middleware/wireless/ieee-802.15.4/uMac/Include",
"${k32w0_sdk_root}/rtos/amazon-freertos/lib/FreeRTOS/portable/GCC/ARM_CM3",
"${k32w0_sdk_root}/rtos/amazon-freertos/lib/include",
"${k32w0_sdk_root}/rtos/amazon-freertos/lib/include/private",
"${k32w0_sdk_root}/rtos/amazon-freertos/lib/third_party/unity/src",
]
if (chip_with_sdk_package == 1) {
_sdk_include_dirs += [ "${k32w0_sdk_root}/devices/${device}/drivers" ]
} else {
_sdk_include_dirs += [
"${k32w0_sdk_root}/devices/K32W061/drivers",
"${k32w0_sdk_root}/drivers/common",
"${k32w0_sdk_root}/drivers/lpc_gpio",
"${k32w0_sdk_root}/drivers/aes",
"${k32w0_sdk_root}/drivers/jn_iocon",
"${k32w0_sdk_root}/drivers/lpc_adc",
"${k32w0_sdk_root}/drivers/aes",
"${k32w0_sdk_root}/drivers/jn_flash",
"${k32w0_sdk_root}/drivers/sha",
"${k32w0_sdk_root}/drivers/flexcomm",
"${k32w0_sdk_root}/drivers/lpc_dma",
"${k32w0_sdk_root}/drivers/pint",
"${k32w0_sdk_root}/drivers/inputmux",
"${k32w0_sdk_root}/drivers/spifi",
"${k32w0_sdk_root}/drivers/jn_rtc",
"${k32w0_sdk_root}/drivers/fmeas",
"${k32w0_sdk_root}/drivers/jn_rng",
"${k32w0_sdk_root}/drivers/ctimer",
"${k32w0_sdk_root}/drivers/wwdt",
"${k32w0_sdk_root}/drivers/gint",
]
}
libs = [
"${k32w0_sdk_root}/middleware/wireless/ble_controller/lib/lib_ble_controller_peripheral_commissioning.a",
"${k32w0_sdk_root}//middleware/wireless/bluetooth/host/lib/lib_ble_5-0_host_matter_cm4_noFP.a",
"${k32w0_sdk_root}/middleware/wireless/ieee-802.15.4/lib/libMiniMac_Sched.a",
"${k32w0_sdk_root}/middleware/wireless/framework/PDM/Library/libPDM_extFlash.a",
"${k32w0_sdk_root}/middleware/wireless/framework/XCVR/lib/libRadio.a",
"${k32w0_sdk_root}/middleware/wireless/framework/SecLib/lib_crypto_m4.a",
]
defines = [
"gMainThreadPriority_c=5",
"CPU_JN518X",
"CPU_JN518X_REV=2",
"JENNIC_CHIP_FAMILY_NAME=_JN518x",
"MAC_PROTO_TAG=1",
"JENNIC_CHIP_FAMILY_JN518x",
"gPWR_LDOMEM_0_9V_PD=0",
"SDK_DEBUGCONSOLE=DEBUGCONSOLE_REDIRECT_TO_SDK",
"PRINTF_ADVANCED_ENABLE",
"NO_SYSCORECLK_UPD=0",
"USE_RTOS=1",
"USE_SDK_OSA=0",
"gSerialManagerMaxInterfaces_c=2",
"FSL_RTOS_FREE_RTOS=1",
"gTotalHeapSize_c=0xF000",
"DEBUG_SERIAL_INTERFACE_INSTANCE=0",
"APP_SERIAL_INTERFACE_INSTANCE=1",
"gOTA_externalFlash_d=1",
"gEepromPostedOperations_d=1",
"gOtaEepromPostedOperations_d=1",
"gOtaVerifyWrite_d=0",
"gExternalFlashIsCiphered_d=1",
"PDM_USE_DYNAMIC_MEMORY=1",
"PDM_SAVE_IDLE=1",
"gBootData_None_c=1",
"PROGRAM_PAGE_SZ=256",
"configFRTOS_MEMORY_SCHEME=4",
"osCustomStartup=1",
"ENABLE_RAM_VECTOR_TABLE=1",
"gTMR_Enabled_d=1",
"gTimestamp_Enabled_d=0",
"CHIP_ENABLE_OPENTHREAD=1",
"gOtaMemPoolId_c=1",
"PoolsDetails_c=_block_size_ 32 _number_of_blocks_ 6 _pool_id_(0) _eol_ _block_size_ 256 _number_of_blocks_ 3 _pool_id_(0) _eol_ _block_size_ 512 _number_of_blocks_ 2 _pool_id_(0) _eol_ _block_size_ 768 _number_of_blocks_ 1 _pool_id_(0) _eol_ _block_size_ 268 _number_of_blocks_ 8 _pool_id_(gOtaMemPoolId_c) _eol_",
"SUPPORT_FOR_15_4=1",
"gAppMaxConnections_c=1",
"gAppUseBonding_d=0",
"gAppUsePairing_d=0",
"gAppUsePrivacy_d=0",
"gController_ReducedRxThoughput=1",
"gPasskeyValue_c=999999",
"gSupportBle=1",
"SUPPORT_FOR_BLE=1",
"gEnableBleInactivityTimeNotify=1",
"gConnPhyUpdateReqTxPhySettings_c=(gLePhy2MFlag_c)",
"gConnPhyUpdateReqRxPhySettings_c=(gLePhy2MFlag_c)",
"gConnPhyUpdateReqPhyOptions_c=(gLeCodingNoPreference_c)",
"BLE_HIGH_TX_POWER=0",
"gAdvertisingPowerLeveldBm_c=0",
"gConnectPowerLeveldBm_c=0",
"DUAL_MODE_APP=1",
"gMainThreadStackSize_c=5096",
"HEAP_SIZE=gTotalHeapSize_c",
"gLoggingActive_d=0",
"gLogRingPlacementOffset_c=0xF000",
"gSecLibUseSha256Alt_d=1",
"gOTA_UseSecLibAes=1",
"gResetSystemReset_d=1",
# TODO: move these platform specific defines to args.gni
"NXP_OT_IDLE_INTERVAL=${nxp_ot_idle_interval_ms}",
"NXP_OT_ACTIVE_INTERVAL=${nxp_ot_active_interval_ms}",
"NXP_ICD_ENABLED=1",
"NXP_ACTIVE_MODE_THRESHOLD=${nxp_active_mode_threshold_ms}",
"NXP_ACTIVE_MODE_DURATION_MS=${nxp_active_mode_duration_ms}",
"NXP_IDLE_MODE_DURATION_SEC=${nxp_idle_mode_duration_s}",
"NXP_ICD_SUPPORTED_CLIENTS_PER_FABRIC=${nxp_icd_supported_clients_per_fabric}",
]
if (use_antenna_diversity == 1) {
print("Check ADO/ADE pin configuration when using Antenna Diversity.")
defines += [ "ANTENNA_DIVERSITY_ENABLE" ]
}
# If OTA default processors are enabled, then OTA custom entry structure
# will be saved in external flash: gOTACustomOtaEntryMemory=OTACustomStorage_ExtFlash (1)
if (chip_enable_ota_firmware_processor == 1) {
defines += [
"gOTAAllowCustomStartAddress=1",
"gOTAUseCustomOtaEntry=1",
"gOTACustomOtaEntryMemory=1",
"OTA_ENTRY_TOP_ADDR=${ota_custom_entry_address}",
]
if (chip_enable_ota_factory_data_processor == 1) {
defines += [ "CONFIG_CHIP_K32W0_OTA_FACTORY_DATA_PROCESSOR=1" ]
}
}
if (chip_crypto == "platform" &&
chip_crypto_flavor == "NXP-Ultrafast-P256") {
defines += [ "EC_P256_DSPEXT=1" ]
}
if (use_fro_32k == 1) {
defines += [
"gClkUseFro32K=1",
"gPWR_CpuClk_48MHz=0",
]
} else {
defines += [
"gClkUseFro32K=0",
"gPWR_CpuClk_48MHz=1",
]
}
if (chip_with_pdm_encryption == 1) {
defines += [ "PDM_ENCRYPTION=1" ]
} else {
defines += [ "PDM_ENCRYPTION=0" ]
}
if (chip_with_pdm_encryption == 1) {
defines += [ "PDM_ENCRYPTION=1" ]
} else {
defines += [ "PDM_ENCRYPTION=0" ]
}
if (chip_with_ota_encryption == 1) {
defines += [
"OTA_ENCRYPTION_ENABLE=1",
"OTA_ENCRYPTION_KEY=\"${chip_with_ota_key}\"",
]
} else {
defines += [ "OTA_ENCRYPTION_ENABLE=0" ]
}
if (chip_mdns == "platform") {
defines += [
"OPENTHREAD_CONFIG_SRP_CLIENT_ENABLE=1",
"OPENTHREAD_CONFIG_ECDSA_ENABLE=1",
"OPENTHREAD_CONFIG_DNS_CLIENT_SERVICE_DISCOVERY_ENABLE=1",
"OPENTHREAD_CONFIG_DNS_CLIENT_ENABLE=1",
]
}
if (chip_with_se05x == 1) {
defines += [
"MBEDTLS_FREESCALE_FREERTOS_CALLOC_ALT=1",
"CHIP_DEVICE_CONFIG_CHIP_TASK_STACK_SIZE=9216",
]
}
if (chip_with_DK6) {
defines += [
"gUsePdm_d=1",
"PDM_EXT_FLASH=1",
"gEepromType_d=gEepromDevice_MX25R8035F_c",
"gPdmNbSegments=63",
"gRadioUsePdm_d=1",
]
if (chip_with_OM15082 != 0) {
defines += [
"OM15082=1",
"gKeyBoardSupported_d=1",
"gKBD_KeysCount_c=4",
]
} else {
defines += [
"gKeyBoardSupported_d=1",
"gKBD_KeysCount_c=2",
]
}
if (chip_with_low_power == 0) {
defines += [
"gLEDSupported_d=1",
"gLEDsOnTargetBoardCnt_c=2",
"gLED_InvertedMode_d=1",
]
}
}
if (chip_with_ot_cli == 1) {
defines += [ "CHIP_DEVICE_CONFIG_THREAD_ENABLE_CLI=1" ]
}
if (chip_with_low_power == 1) {
defines += [
"chip_with_low_power=1",
"cPWR_UsePowerDownMode=1",
"cPWR_FullPowerDownMode=1",
"DBG_PostStepTickAssess=0",
"gPWR_FreqScalingWFI=0",
"mAppUseTickLessMode_c=1",
"cPWR_DiscardRunningTimerForPowerDown=1",
]
if (chip_logging == false) {
defines += [
"K32W_LOG_ENABLED=0",
"gUartDebugConsole_d=0",
]
} else {
defines += [
"K32W_LOG_ENABLED=1",
"gUartDebugConsole_d=1",
]
}
} else {
defines += [
"cPWR_UsePowerDownMode=0",
"cPWR_FullPowerDownMode=0",
"K32W_LOG_ENABLED=1",
"gUartDebugConsole_d=1",
]
}
if (build_for_k32w061 == 1) {
defines += [ "CPU_K32W061HN" ]
} else if (build_for_k32w041am == 1) {
defines += [ "CPU_K32W041AMZ" ]
} else if (build_for_k32w041a == 1) {
defines += [ "CPU_K32W041AZ" ]
} else if (build_for_k32w041 == 1) {
defines += [ "CPU_K32W041HN" ]
}
if (chip_with_high_power == 1) {
defines += [
"K32WMCM_APP_BUILD",
"JENNIC_CHIP_FAMILY_JN518x",
]
_sdk_include_dirs += [
"${k32w0_sdk_root}/middleware/wireless/ieee-802.15.4/Include",
"${k32w0_sdk_root}/middleware/wireless/ieee-802.15.4/mMac/Include",
]
}
if (chip_with_ntag == 1) {
defines += [
"CONFIG_CHIP_NFC_COMMISSIONING=1",
"CHIP_DEVICE_CONFIG_ENABLE_NFC=1",
]
}
if (chip_with_factory_data == 1) {
defines += [ "CONFIG_CHIP_LOAD_REAL_FACTORY_DATA=1" ]
}
if (defined(invoker.defines)) {
defines += invoker.defines
}
cflags = [
"-Wno-unused-function",
"-Wno-conversion",
"-Wno-sign-compare",
"-Wno-clobbered",
"-Wno-implicit-fallthrough",
"-Wno-shadow",
"-mthumb",
"-MMD",
"-MP",
]
if (is_clang) {
cflags += [
"-Wno-self-assign",
"-Wno-parentheses-equality",
]
} else {
cflags += [
"-fno-optimize-strlen",
# TODO After upgrading the compiler we started to see new error from address
# warning. To allow PR that rolls up compiler we have suppress this warning
# as an error temporarily.
# see https://github.com/project-chip/connectedhomeip/issues/26221
"-Wno-error=address",
]
}
# Now add our "system-header" include dirs
foreach(include_dir, _sdk_include_dirs) {
cflags += [ "-isystem" + rebase_path(include_dir, 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 += [
"${k32w0_sdk_root}/components/serial_manager/serial_manager.c",
"${k32w0_sdk_root}/components/serial_manager/serial_port_uart.c",
"${k32w0_sdk_root}/components/uart/usart_adapter.c",
"${k32w0_sdk_root}/devices/${device}/mcuxpresso/startup_${device_lowercase}.c",
"${k32w0_sdk_root}/devices/${device}/system_${device}.c",
"${k32w0_sdk_root}/middleware/wireless/ble_controller/config/controller_config.c",
"${k32w0_sdk_root}/middleware/wireless/bluetooth/application/common/ble_conn_manager.c",
"${k32w0_sdk_root}/middleware/wireless/bluetooth/application/common/ble_host_tasks.c",
"${k32w0_sdk_root}/middleware/wireless/bluetooth/host/config/ble_globals.c",
"${k32w0_sdk_root}/middleware/wireless/framework/Common/MicroInt_arm_sdk2.c",
"${k32w0_sdk_root}/middleware/wireless/framework/Flash/External/Source/Eeprom_MX25R8035F.c",
"${k32w0_sdk_root}/middleware/wireless/framework/Flash/Internal/Flash_Adapter.c",
"${k32w0_sdk_root}/middleware/wireless/framework/FunctionLib/FunctionLib.c",
"${k32w0_sdk_root}/middleware/wireless/framework/GPIO/GPIO_Adapter.c",
"${k32w0_sdk_root}/middleware/wireless/framework/Keyboard/Source/Keyboard.c",
"${k32w0_sdk_root}/middleware/wireless/framework/LED/Source/LED.c",
"${k32w0_sdk_root}/middleware/wireless/framework/Lists/GenericList.c",
"${k32w0_sdk_root}/middleware/wireless/framework/Logging/Source/dbg_logging.c",
"${k32w0_sdk_root}/middleware/wireless/framework/LowPower/Source/${board}/PWR.c",
"${k32w0_sdk_root}/middleware/wireless/framework/LowPower/Source/${board}/PWRLib.c",
"${k32w0_sdk_root}/middleware/wireless/framework/LowPower/Source/${board}/PWR_setjmp.S",
"${k32w0_sdk_root}/middleware/wireless/framework/MemManager/Source/MemManager.c",
"${k32w0_sdk_root}/middleware/wireless/framework/Messaging/Source/Messaging.c",
"${k32w0_sdk_root}/middleware/wireless/framework/OSAbstraction/Source/fsl_os_abstraction_free_rtos.c",
"${k32w0_sdk_root}/middleware/wireless/framework/OtaSupport/Source/OtaSupport.c",
"${k32w0_sdk_root}/middleware/wireless/framework/OtaSupport/Source/OtaUtils.c",
"${k32w0_sdk_root}/middleware/wireless/framework/PDM/pdm_port.c",
"${k32w0_sdk_root}/middleware/wireless/framework/Panic/Source/Panic.c",
"${k32w0_sdk_root}/middleware/wireless/framework/RNG/Source/RNG.c",
"${k32w0_sdk_root}/middleware/wireless/framework/Reset/Reset.c",
"${k32w0_sdk_root}/middleware/wireless/framework/SecLib/SecLib.c",
"${k32w0_sdk_root}/middleware/wireless/framework/SecLib/SecLib_ecp256_sw.c",
"${k32w0_sdk_root}/middleware/wireless/framework/SerialManager/Source/SerialManager.c",
"${k32w0_sdk_root}/middleware/wireless/framework/SerialManager/Source/UART_Serial_Adapter.c",
"${k32w0_sdk_root}/middleware/wireless/framework/TimersManager/Source/TMR_Adapter.c",
"${k32w0_sdk_root}/middleware/wireless/framework/TimersManager/Source/TimersManager.c",
"${k32w0_sdk_root}/middleware/wireless/framework/XCVR/DK6/fsl_xcvr.c",
"${k32w0_sdk_root}/rtos/amazon-freertos/lib/FreeRTOS/event_groups.c",
"${k32w0_sdk_root}/rtos/amazon-freertos/lib/FreeRTOS/list.c",
"${k32w0_sdk_root}/rtos/amazon-freertos/lib/FreeRTOS/portable/GCC/ARM_CM3/port.c",
"${k32w0_sdk_root}/rtos/amazon-freertos/lib/FreeRTOS/portable/MemMang/heap_4.c",
"${k32w0_sdk_root}/rtos/amazon-freertos/lib/FreeRTOS/queue.c",
"${k32w0_sdk_root}/rtos/amazon-freertos/lib/FreeRTOS/tasks.c",
"${k32w0_sdk_root}/rtos/amazon-freertos/lib/FreeRTOS/timers.c",
]
if (chip_with_sdk_package == 1) {
sources += [
"${k32w0_sdk_root}/devices/${device}/drivers/fsl_adc.c",
"${k32w0_sdk_root}/devices/${device}/drivers/fsl_aes.c",
"${k32w0_sdk_root}/devices/${device}/drivers/fsl_clock.c",
"${k32w0_sdk_root}/devices/${device}/drivers/fsl_common.c",
"${k32w0_sdk_root}/devices/${device}/drivers/fsl_ctimer.c",
"${k32w0_sdk_root}/devices/${device}/drivers/fsl_flash.c",
"${k32w0_sdk_root}/devices/${device}/drivers/fsl_flexcomm.c",
"${k32w0_sdk_root}/devices/${device}/drivers/fsl_fmeas.c",
"${k32w0_sdk_root}/devices/${device}/drivers/fsl_gpio.c",
"${k32w0_sdk_root}/devices/${device}/drivers/fsl_i2c.c",
"${k32w0_sdk_root}/devices/${device}/drivers/fsl_i2c_freertos.c",
"${k32w0_sdk_root}/devices/${device}/drivers/fsl_inputmux.c",
"${k32w0_sdk_root}/devices/${device}/drivers/fsl_pint.c",
"${k32w0_sdk_root}/devices/${device}/drivers/fsl_power.c",
"${k32w0_sdk_root}/devices/${device}/drivers/fsl_reset.c",
"${k32w0_sdk_root}/devices/${device}/drivers/fsl_rng.c",
"${k32w0_sdk_root}/devices/${device}/drivers/fsl_rtc.c",
"${k32w0_sdk_root}/devices/${device}/drivers/fsl_sha.c",
"${k32w0_sdk_root}/devices/${device}/drivers/fsl_spifi.c",
"${k32w0_sdk_root}/devices/${device}/drivers/fsl_usart.c",
"${k32w0_sdk_root}/devices/${device}/drivers/fsl_wtimer.c",
"${k32w0_sdk_root}/devices/${device}/utilities/debug_console/fsl_debug_console.c",
"${k32w0_sdk_root}/devices/${device}/utilities/str/fsl_str.c",
]
} else {
sources += [
"${k32w0_sdk_root}/devices/K32W061/drivers/fsl_clock.c",
"${k32w0_sdk_root}/devices/K32W061/drivers/fsl_power.c",
"${k32w0_sdk_root}/devices/K32W061/drivers/fsl_reset.c",
"${k32w0_sdk_root}/devices/K32W061/drivers/fsl_wtimer.c",
"${k32w0_sdk_root}/drivers/aes/fsl_aes.c",
"${k32w0_sdk_root}/drivers/common/fsl_common.c",
"${k32w0_sdk_root}/drivers/ctimer/fsl_ctimer.c",
"${k32w0_sdk_root}/drivers/flexcomm/fsl_flexcomm.c",
"${k32w0_sdk_root}/drivers/flexcomm/fsl_i2c.c",
"${k32w0_sdk_root}/drivers/flexcomm/fsl_i2c_freertos.c",
"${k32w0_sdk_root}/drivers/flexcomm/fsl_usart.c",
"${k32w0_sdk_root}/drivers/fmeas/fsl_fmeas.c",
"${k32w0_sdk_root}/drivers/inputmux/fsl_inputmux.c",
"${k32w0_sdk_root}/drivers/jn_flash/fsl_flash.c",
"${k32w0_sdk_root}/drivers/jn_rng/fsl_rng.c",
"${k32w0_sdk_root}/drivers/jn_rtc/fsl_rtc.c",
"${k32w0_sdk_root}/drivers/lpc_adc/fsl_adc.c",
"${k32w0_sdk_root}/drivers/lpc_gpio/fsl_gpio.c",
"${k32w0_sdk_root}/drivers/pint/fsl_pint.c",
"${k32w0_sdk_root}/drivers/sha/fsl_sha.c",
"${k32w0_sdk_root}/drivers/spifi/fsl_spifi.c",
"${k32w0_sdk_root}/utilities/debug_console/fsl_debug_console.c",
"${k32w0_sdk_root}/utilities/debug_console/str/fsl_str.c",
]
}
if (chip_with_DK6) {
sources += [
"${k32w0_sdk_root}/boards/${board}/wireless_examples/openthread/reed/bm/board.c",
"${k32w0_sdk_root}/boards/${board}/wireless_examples/openthread/reed/bm/board_utility.c",
"${k32w0_sdk_root}/boards/${board}/wireless_examples/openthread/reed/bm/hardware_init.c",
]
if (chip_with_se05x != 0) {
sources += [
"${chip_root}/third_party/simw-top-mini/repo/demos/ksdk/common/boards/DK6/wireless_examples/chip/clock_config.c",
"${chip_root}/third_party/simw-top-mini/repo/demos/ksdk/common/boards/DK6/wireless_examples/chip/pin_mux.c",
]
} else {
sources += [
"${k32w0_sdk_root}/boards/${board}/wireless_examples/openthread/reed/bm/clock_config.c",
"${k32w0_sdk_root}/boards/${board}/wireless_examples/openthread/reed/bm/pin_mux.c",
]
}
}
if (chip_with_low_power != 0) {
sources += [ "${k32w0_sdk_root}/boards/${board}/wireless_examples/hybrid/ble_ot/lped_ble_wuart/ble_802_15_4_common/app_dual_mode_low_power.c" ]
}
if (chip_with_ntag != 0) {
sources += [
"${k32w0_sdk_root}/devices/${device}/drivers/fsl_ntag.c",
"${k32w0_sdk_root}/middleware/ntag_i2c_plus/HAL_I2C/i2c_jn_fsl.c",
"${k32w0_sdk_root}/middleware/ntag_i2c_plus/HAL_NTAG/ntag_driver.c",
"${k32w0_sdk_root}/middleware/ntag_i2c_plus/HAL_TMR/timer_driver_jn.c",
]
}
if (!defined(public_deps)) {
public_deps = []
}
public_deps += [ "${openthread_root}/src/core:libopenthread_core_headers" ]
if (!defined(public_configs)) {
public_configs = []
}
public_configs += [ ":${sdk_target_name}_config" ]
}
}