blob: 4bcca85aed41639fcf1bf2bece03a49d8254270b [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/chip.gni")
import("//build_overrides/jlink.gni")
import("//build_overrides/lwip.gni")
import("//build_overrides/mw320_sdk.gni")
import("${chip_root}/src/crypto/crypto.gni")
declare_args() {
# Location of the mw320 SDK.
mw320_sdk_root = "${chip_root}/third_party/nxp/mw320_sdk/repo"
#mbedtls_use_tinycrypt = false
chip_with_factory_data = 0
}
assert(mw320_sdk_root != "", "mw320_sdk_root must be specified")
# Defines an mw320 SDK build target.
#
# Parameters:
# mw320_sdk_root - The location of the mw320 SDK.
# sources - Extra source files to build.
template("mw320_sdk") {
if (defined(invoker.mw320_sdk_root)) {
mw320_sdk_root = invoker.mw320_sdk_root
}
assert(mw320_sdk_root != "", "mw320_sdk_root must be specified")
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 = [
"${mw320_sdk_root}/rtos/freertos/freertos_kernel/include",
"${mw320_sdk_root}/rtos/freertos/freertos_kernel/portable/GCC/ARM_CM4F",
"${mw320_sdk_root}/boards/rdmw320_r0/wifi_examples/mw_wifi_cli",
"${mw320_sdk_root}/devices/88MW320/drivers",
"${mw320_sdk_root}/devices/88MW320",
"${mw320_sdk_root}/CMSIS/Include",
"${mw320_sdk_root}/devices/88MW320/utilities/debug_console",
"${mw320_sdk_root}/components/serial_manager",
"${mw320_sdk_root}/components/uart",
"${mw320_sdk_root}/middleware/wifi/incl/port/os",
"${mw320_sdk_root}/middleware/wifi/incl",
"${mw320_sdk_root}/devices/88MW320/utilities/str",
"${mw320_sdk_root}/components//flash/mflash/mw320",
"${mw320_sdk_root}/components//flash/mflash",
"${mw320_sdk_root}/middleware/wifi/incl/wlcmgr",
"${mw320_sdk_root}/middleware/wifi/incl/wifidriver",
"${mw320_sdk_root}/middleware/wifi/wifidriver/incl",
"${mw320_sdk_root}/middleware/wifi/incl/port/lwip",
"${mw320_sdk_root}/components/boot2_utils",
"${mw320_sdk_root}/middleware/lwip/port",
"${mw320_sdk_root}/middleware/wifi/wifidriver",
"${mw320_sdk_root}/middleware/sdmmc/common",
"${mw320_sdk_root}/middleware/sdmmc/host/sdioc",
"${mw320_sdk_root}/middleware/sdmmc/osa",
"${mw320_sdk_root}/components/osa",
"${mw320_sdk_root}/components/lists",
"${mw320_sdk_root}/boards/rdmw320_r0/wifi_examples/mw_wifi_cli/armgcc/../../..",
"${mw320_sdk_root}/middleware/sdmmc/sdio",
"${mw320_sdk_root}/middleware/wifi/port/lwip",
"${mw320_sdk_root}/middleware/lwip/src/include",
"${mw320_sdk_root}/middleware/lwip/src/include/lwip",
"${mw320_sdk_root}/middleware/lwip/src/include/lwip/apps",
]
defines = [
"CHIP_ENABLE_OPENTHREAD=0",
"SUPPORT_FOR_15_4=0",
"__GCC",
"LWIP_ETHERNET=1",
"CHIP_DEVICE_CONFIG_ENABLE_CHIPOBLE=0",
"CONFIG_NETWORK_LAYER_BLE=0",
"DEBUG",
"CPU_88MW320_A0_NAPC",
"USE_RTOS=1",
"CONFIG_USE_PSM=1",
"CONFIG_SECURE_PSM=1",
"PRINTF_ADVANCED_ENABLE=1",
"FSL_RTOS_FREE_RTOS=1",
"SDIO_ENABLED",
"SERIAL_PORT_TYPE_UART=1",
"CONFIG_IPV6",
"LWIP_IPV6_SCOPES=0",
"LWIP_TIMEVAL_PRIVATE=0",
]
if (defined(invoker.defines)) {
defines += invoker.defines
}
if (chip_with_factory_data == 1) {
defines += [ "CONFIG_CHIP_MW320_REAL_FACTORY_DATA=1" ]
}
cflags = [
"-Wno-unused-function",
"-Wno-conversion",
"-O1",
"-Wall",
"-MMD",
"-MP",
"-fno-common",
"-ffunction-sections",
"-fdata-sections",
"-fno-builtin",
"-mapcs",
]
cflags += [ "-include" + rebase_path(
"${mw320_sdk_root}/boards/rdmw320_r0/wifi_examples/mw_wifi_cli/wifi_config.h",
root_build_dir) ]
# 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 += [
"${mw320_sdk_root}/boards/rdmw320_r0/sdmmc_config.c",
"${mw320_sdk_root}/boards/rdmw320_r0/wifi_examples/mw_wifi_cli/board.c",
"${mw320_sdk_root}/boards/rdmw320_r0/wifi_examples/mw_wifi_cli/clock_config.c",
"${mw320_sdk_root}/boards/rdmw320_r0/wifi_examples/mw_wifi_cli/lpm.c",
"${mw320_sdk_root}/boards/rdmw320_r0/wifi_examples/mw_wifi_cli/network_flash_storage.c",
"${mw320_sdk_root}/boards/rdmw320_r0/wifi_examples/mw_wifi_cli/pin_mux.c",
"${mw320_sdk_root}/components/boot2_utils/boot_flags.c",
"${mw320_sdk_root}/components/boot2_utils/crc32.c",
"${mw320_sdk_root}/components/boot2_utils/keystore.c",
"${mw320_sdk_root}/components/boot2_utils/partition.c",
"${mw320_sdk_root}/components/boot2_utils/psm-v2-secure.c",
"${mw320_sdk_root}/components/boot2_utils/psm-v2.c",
"${mw320_sdk_root}/components/boot2_utils/wmtlv.c",
"${mw320_sdk_root}/components/flash/mflash/mw320/mflash_drv.c",
"${mw320_sdk_root}/components/osa/fsl_os_abstraction_free_rtos.c",
"${mw320_sdk_root}/components/serial_manager/fsl_component_serial_manager.c",
"${mw320_sdk_root}/components/serial_manager/fsl_component_serial_port_uart.c",
"${mw320_sdk_root}/components/uart/fsl_adapter_mwuart.c",
"${mw320_sdk_root}/devices/88MW320/drivers/fsl_aes.c",
"${mw320_sdk_root}/devices/88MW320/drivers/fsl_clock.c",
"${mw320_sdk_root}/devices/88MW320/drivers/fsl_crc.c",
"${mw320_sdk_root}/devices/88MW320/drivers/fsl_flashc.c",
"${mw320_sdk_root}/devices/88MW320/drivers/fsl_gpio.c",
"${mw320_sdk_root}/devices/88MW320/drivers/fsl_pinmux.c",
"${mw320_sdk_root}/devices/88MW320/drivers/fsl_power.c",
"${mw320_sdk_root}/devices/88MW320/drivers/fsl_qspi.c",
"${mw320_sdk_root}/devices/88MW320/drivers/fsl_rtc.c",
"${mw320_sdk_root}/devices/88MW320/drivers/fsl_sdioc.c",
"${mw320_sdk_root}/devices/88MW320/drivers/fsl_uart.c",
"${mw320_sdk_root}/devices/88MW320/gcc/startup_88MW320.S",
"${mw320_sdk_root}/devices/88MW320/system_88MW320.c",
"${mw320_sdk_root}/devices/88MW320/utilities/debug_console/fsl_debug_console.c",
"${mw320_sdk_root}/devices/88MW320/utilities/str/fsl_str.c",
"${mw320_sdk_root}/middleware/lwip/port/sys_arch.c",
"${mw320_sdk_root}/middleware/lwip/src/api/api_lib.c",
"${mw320_sdk_root}/middleware/lwip/src/api/api_msg.c",
"${mw320_sdk_root}/middleware/lwip/src/api/err.c",
"${mw320_sdk_root}/middleware/lwip/src/api/netbuf.c",
"${mw320_sdk_root}/middleware/lwip/src/api/netifapi.c",
"${mw320_sdk_root}/middleware/lwip/src/api/sockets.c",
"${mw320_sdk_root}/middleware/lwip/src/api/tcpip.c",
"${mw320_sdk_root}/middleware/lwip/src/apps/lwiperf/lwiperf.c",
"${mw320_sdk_root}/middleware/lwip/src/core/def.c",
"${mw320_sdk_root}/middleware/lwip/src/core/dns.c",
"${mw320_sdk_root}/middleware/lwip/src/core/inet_chksum.c",
"${mw320_sdk_root}/middleware/lwip/src/core/init.c",
"${mw320_sdk_root}/middleware/lwip/src/core/ip.c",
"${mw320_sdk_root}/middleware/lwip/src/core/ipv4/acd.c",
"${mw320_sdk_root}/middleware/lwip/src/core/ipv4/dhcp.c",
"${mw320_sdk_root}/middleware/lwip/src/core/ipv4/etharp.c",
"${mw320_sdk_root}/middleware/lwip/src/core/ipv4/icmp.c",
"${mw320_sdk_root}/middleware/lwip/src/core/ipv4/igmp.c",
"${mw320_sdk_root}/middleware/lwip/src/core/ipv4/ip4.c",
"${mw320_sdk_root}/middleware/lwip/src/core/ipv4/ip4_addr.c",
"${mw320_sdk_root}/middleware/lwip/src/core/ipv4/ip4_frag.c",
"${mw320_sdk_root}/middleware/lwip/src/core/ipv6/ethip6.c",
"${mw320_sdk_root}/middleware/lwip/src/core/ipv6/icmp6.c",
"${mw320_sdk_root}/middleware/lwip/src/core/ipv6/ip6.c",
"${mw320_sdk_root}/middleware/lwip/src/core/ipv6/ip6_addr.c",
"${mw320_sdk_root}/middleware/lwip/src/core/ipv6/ip6_frag.c",
"${mw320_sdk_root}/middleware/lwip/src/core/ipv6/mld6.c",
"${mw320_sdk_root}/middleware/lwip/src/core/ipv6/nd6.c",
"${mw320_sdk_root}/middleware/lwip/src/core/mem.c",
"${mw320_sdk_root}/middleware/lwip/src/core/memp.c",
"${mw320_sdk_root}/middleware/lwip/src/core/netif.c",
"${mw320_sdk_root}/middleware/lwip/src/core/pbuf.c",
"${mw320_sdk_root}/middleware/lwip/src/core/raw.c",
"${mw320_sdk_root}/middleware/lwip/src/core/stats.c",
"${mw320_sdk_root}/middleware/lwip/src/core/tcp.c",
"${mw320_sdk_root}/middleware/lwip/src/core/tcp_in.c",
"${mw320_sdk_root}/middleware/lwip/src/core/tcp_out.c",
"${mw320_sdk_root}/middleware/lwip/src/core/timeouts.c",
"${mw320_sdk_root}/middleware/lwip/src/core/udp.c",
"${mw320_sdk_root}/middleware/lwip/src/netif/ethernet.c",
"${mw320_sdk_root}/middleware/sdmmc/common/fsl_sdmmc_common.c",
"${mw320_sdk_root}/middleware/sdmmc/host/sdioc/non_blocking/fsl_sdmmc_host.c",
"${mw320_sdk_root}/middleware/sdmmc/osa/fsl_sdmmc_osa.c",
"${mw320_sdk_root}/middleware/sdmmc/sdio/fsl_sdio.c",
"${mw320_sdk_root}/middleware/wifi/cli/cli.c",
"${mw320_sdk_root}/middleware/wifi/cli/cli_mem_simple.c",
"${mw320_sdk_root}/middleware/wifi/cli/cli_utils.c",
"${mw320_sdk_root}/middleware/wifi/dhcpd/dhcp-server-cli.c",
"${mw320_sdk_root}/middleware/wifi/dhcpd/dhcp-server-main.c",
"${mw320_sdk_root}/middleware/wifi/dhcpd/dhcp-server.c",
"${mw320_sdk_root}/middleware/wifi/dhcpd/dns-server.c",
"${mw320_sdk_root}/middleware/wifi/nw_utils/iperf.c",
"${mw320_sdk_root}/middleware/wifi/nw_utils/ping.c",
"${mw320_sdk_root}/middleware/wifi/port/lwip/net.c",
"${mw320_sdk_root}/middleware/wifi/port/lwip/wifi_netif.c",
"${mw320_sdk_root}/middleware/wifi/port/os/os.c",
"${mw320_sdk_root}/middleware/wifi/wifidriver/mlan_11ac.c",
"${mw320_sdk_root}/middleware/wifi/wifidriver/mlan_11d.c",
"${mw320_sdk_root}/middleware/wifi/wifidriver/mlan_11h.c",
"${mw320_sdk_root}/middleware/wifi/wifidriver/mlan_11n.c",
"${mw320_sdk_root}/middleware/wifi/wifidriver/mlan_11n_aggr.c",
"${mw320_sdk_root}/middleware/wifi/wifidriver/mlan_11n_rxreorder.c",
"${mw320_sdk_root}/middleware/wifi/wifidriver/mlan_api.c",
"${mw320_sdk_root}/middleware/wifi/wifidriver/mlan_cfp.c",
"${mw320_sdk_root}/middleware/wifi/wifidriver/mlan_cmdevt.c",
"${mw320_sdk_root}/middleware/wifi/wifidriver/mlan_glue.c",
"${mw320_sdk_root}/middleware/wifi/wifidriver/mlan_init.c",
"${mw320_sdk_root}/middleware/wifi/wifidriver/mlan_join.c",
"${mw320_sdk_root}/middleware/wifi/wifidriver/mlan_misc.c",
"${mw320_sdk_root}/middleware/wifi/wifidriver/mlan_scan.c",
"${mw320_sdk_root}/middleware/wifi/wifidriver/mlan_sdio.c",
"${mw320_sdk_root}/middleware/wifi/wifidriver/mlan_shim.c",
"${mw320_sdk_root}/middleware/wifi/wifidriver/mlan_sta_cmd.c",
"${mw320_sdk_root}/middleware/wifi/wifidriver/mlan_sta_cmdresp.c",
"${mw320_sdk_root}/middleware/wifi/wifidriver/mlan_sta_event.c",
"${mw320_sdk_root}/middleware/wifi/wifidriver/mlan_sta_ioctl.c",
"${mw320_sdk_root}/middleware/wifi/wifidriver/mlan_sta_rx.c",
"${mw320_sdk_root}/middleware/wifi/wifidriver/mlan_txrx.c",
"${mw320_sdk_root}/middleware/wifi/wifidriver/mlan_uap_cmdevent.c",
"${mw320_sdk_root}/middleware/wifi/wifidriver/mlan_uap_ioctl.c",
"${mw320_sdk_root}/middleware/wifi/wifidriver/mlan_wmm.c",
"${mw320_sdk_root}/middleware/wifi/wifidriver/wifi-mem.c",
"${mw320_sdk_root}/middleware/wifi/wifidriver/wifi-sdio.c",
"${mw320_sdk_root}/middleware/wifi/wifidriver/wifi-uap.c",
"${mw320_sdk_root}/middleware/wifi/wifidriver/wifi.c",
"${mw320_sdk_root}/middleware/wifi/wifidriver/wifi_pwrmgr.c",
"${mw320_sdk_root}/middleware/wifi/wlcmgr/wlan.c",
"${mw320_sdk_root}/middleware/wifi/wlcmgr/wlan_basic_cli.c",
"${mw320_sdk_root}/middleware/wifi/wlcmgr/wlan_tests.c",
"${mw320_sdk_root}/middleware/wifi/wlcmgr/wlan_txpwrlimit_cfg.c",
"${mw320_sdk_root}/rtos/freertos/freertos_kernel/list.c",
"${mw320_sdk_root}/rtos/freertos/freertos_kernel/portable/GCC/ARM_CM4F/port.c",
"${mw320_sdk_root}/rtos/freertos/freertos_kernel/portable/MemMang/heap_4.c",
"${mw320_sdk_root}/rtos/freertos/freertos_kernel/queue.c",
"${mw320_sdk_root}/rtos/freertos/freertos_kernel/tasks.c",
"${mw320_sdk_root}/rtos/freertos/freertos_kernel/timers.c",
]
if (!defined(public_configs)) {
public_configs = []
}
public_configs += [ ":${sdk_target_name}_config" ]
}
}