Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions drivers/wifi/nxp/Kconfig.nxp
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,13 @@ module = WIFI_NXP
config WIFI_MGMT_SCAN_CHAN_MAX_MANUAL
default 50

config NXP_WIFI_BUILD_ONLY_MODE
bool "Build only mode (do not link wireless firmware blob)"
help
Skip linking the firmware blob into the Wi-Fi build. This will
not result in a functional application, but allows the Wi-Fi
driver to be built without binary blobs

config NXP_WIFI_CUSTOM
bool "Custom NXP Wi-Fi part"
help
Expand Down
127 changes: 0 additions & 127 deletions drivers/wifi/nxp/nxp_wifi_drv.c
Original file line number Diff line number Diff line change
Expand Up @@ -769,47 +769,6 @@ static int nxp_wifi_version(const struct device *dev, struct wifi_version *param
return 0;
}

static int nxp_wifi_ap_bandwidth(const struct device *dev, struct wifi_ap_params *params)
{
int status = NXP_WIFI_RET_SUCCESS;
int ret = WM_SUCCESS;
struct interface *if_handle = (struct interface *)dev->data;

if (if_handle->state.interface != WLAN_BSS_TYPE_UAP) {
LOG_ERR("Wi-Fi not in uAP mode");
return -EIO;
}

if (s_nxp_wifi_State != NXP_WIFI_STARTED) {
status = NXP_WIFI_RET_NOT_READY;
}

if (status == NXP_WIFI_RET_SUCCESS) {

if (params->oper == WIFI_MGMT_SET) {

ret = wlan_uap_set_bandwidth(params->bandwidth);

if (ret != WM_SUCCESS) {
status = NXP_WIFI_RET_FAIL;
}
} else {
ret = wlan_uap_get_bandwidth(&params->bandwidth);

if (ret != WM_SUCCESS) {
status = NXP_WIFI_RET_FAIL;
}
}
}

if (status != NXP_WIFI_RET_SUCCESS) {
LOG_ERR("Failed to get/set Wi-Fi AP bandwidth");
return -EAGAIN;
}

return 0;
}

static int nxp_wifi_connect(const struct device *dev, struct wifi_connect_req_params *params)
{
int status = NXP_WIFI_RET_SUCCESS;
Expand Down Expand Up @@ -958,68 +917,6 @@ static inline enum wifi_security_type nxp_wifi_security_type(enum wlan_security_
}
}

#ifndef CONFIG_WIFI_NM_WPA_SUPPLICANT
static int nxp_wifi_uap_status(const struct device *dev, struct wifi_iface_status *status)
{
enum wlan_connection_state connection_state = WLAN_DISCONNECTED;
struct interface *if_handle = (struct interface *)&g_uap;

wlan_get_uap_connection_state(&connection_state);

if (connection_state == WLAN_UAP_STARTED) {

if (!wlan_get_current_uap_network(&nxp_wlan_network)) {
strncpy(status->ssid, nxp_wlan_network.ssid, WIFI_SSID_MAX_LEN);
status->ssid[WIFI_SSID_MAX_LEN - 1] = 0;
status->ssid_len = strlen(status->ssid);

memcpy(status->bssid, nxp_wlan_network.bssid, WIFI_MAC_ADDR_LEN);

status->rssi = nxp_wlan_network.rssi;

status->channel = nxp_wlan_network.channel;

status->beacon_interval = nxp_wlan_network.beacon_period;

status->dtim_period = nxp_wlan_network.dtim_period;

if (if_handle->state.interface == WLAN_BSS_TYPE_STA) {
status->iface_mode = WIFI_MODE_INFRA;
}
#ifdef CONFIG_NXP_WIFI_SOFTAP_SUPPORT
else if (if_handle->state.interface == WLAN_BSS_TYPE_UAP) {
status->iface_mode = WIFI_MODE_AP;
}
#endif

#ifdef CONFIG_NXP_WIFI_11AX
if (nxp_wlan_network.dot11ax) {
status->link_mode = WIFI_6;
}
#endif
#ifdef CONFIG_NXP_WIFI_11AC
else if (nxp_wlan_network.dot11ac) {
status->link_mode = WIFI_5;
}
#endif
else if (nxp_wlan_network.dot11n) {
status->link_mode = WIFI_4;
} else {
status->link_mode = WIFI_3;
}

status->band = nxp_wlan_network.channel > 14 ? WIFI_FREQ_BAND_5_GHZ
: WIFI_FREQ_BAND_2_4_GHZ;
status->security = nxp_wifi_security_type(nxp_wlan_network.security.type);
status->mfp = nxp_wlan_network.security.mfpr ? WIFI_MFP_REQUIRED :
(nxp_wlan_network.security.mfpc ? WIFI_MFP_OPTIONAL : 0);
}
}

return 0;
}
#endif

static int nxp_wifi_status(const struct device *dev, struct wifi_iface_status *status)
{
enum wlan_connection_state connection_state = WLAN_DISCONNECTED;
Expand Down Expand Up @@ -1443,12 +1340,10 @@ static int nxp_wifi_set_twt(const struct device *dev, struct wifi_twt_params *pa
twt_setup_conf.implicit = params->setup.implicit;
twt_setup_conf.announced = params->setup.announce;
twt_setup_conf.trigger_enabled = params->setup.trigger;
twt_setup_conf.twt_info_disabled = params->setup.twt_info_disable;
twt_setup_conf.negotiation_type = params->negotiation_type;
twt_setup_conf.twt_wakeup_duration = params->setup.twt_wake_interval;
twt_setup_conf.flow_identifier = params->flow_id;
twt_setup_conf.hard_constraint = 1;
twt_setup_conf.twt_exponent = params->setup.exponent;
twt_setup_conf.twt_mantissa = params->setup.twt_interval;
twt_setup_conf.twt_request = params->setup.responder;
ret = wlan_set_twt_setup_cfg(&twt_setup_conf);
Expand All @@ -1462,25 +1357,6 @@ static int nxp_wifi_set_twt(const struct device *dev, struct wifi_twt_params *pa
return ret;
}

static int nxp_wifi_set_btwt(const struct device *dev, struct wifi_twt_params *params)
{
wlan_btwt_config_t btwt_config;
int ret = -1;

btwt_config.action = 1;
btwt_config.sub_id = params->btwt.sub_id;
btwt_config.nominal_wake = params->btwt.nominal_wake;
btwt_config.max_sta_support = params->btwt.max_sta_support;
btwt_config.twt_mantissa = params->btwt.twt_interval;
btwt_config.twt_offset = params->btwt.twt_offset;
btwt_config.twt_exponent = params->btwt.twt_exponent;
btwt_config.sp_gap = params->btwt.sp_gap;

ret = wlan_set_btwt_cfg(&btwt_config);

return ret;
}

static void nxp_wifi_sta_init(struct net_if *iface)
{
const struct device *dev = net_if_get_device(iface);
Expand Down Expand Up @@ -1758,7 +1634,6 @@ static const struct wifi_mgmt_ops nxp_wifi_sta_mgmt = {
.reg_domain = nxp_wifi_reg_domain,
#ifdef CONFIG_NXP_WIFI_SOFTAP_SUPPORT
.ap_enable = nxp_wifi_start_ap,
.ap_bandwidth = nxp_wifi_ap_bandwidth,
.ap_disable = nxp_wifi_stop_ap,
#endif
.iface_status = nxp_wifi_status,
Expand Down Expand Up @@ -1837,8 +1712,6 @@ static const struct wifi_mgmt_ops nxp_wifi_uap_mgmt = {
#endif
.set_power_save = nxp_wifi_power_save,
.get_power_save_config = nxp_wifi_get_power_save,
.set_btwt = nxp_wifi_set_btwt,
.ap_bandwidth = nxp_wifi_ap_bandwidth,
.ap_config_params = nxp_wifi_ap_config_params,
};

Expand Down
7 changes: 7 additions & 0 deletions modules/hostap/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -331,8 +331,15 @@ zephyr_library_sources_ifdef(CONFIG_WIFI_NM_WPA_SUPPLICANT_WPS
${HOSTAP_SRC_BASE}/wps/wps_enrollee.c
${HOSTAP_SRC_BASE}/wps/wps_registrar.c
${HOSTAP_SRC_BASE}/crypto/dh_groups.c
)

if(NOT CONFIG_WIFI_NM_WPA_SUPPLICANT_CRYPTO_ALT)
# dh_group5 is only needed if we are not using mbedtls, as mbedtls provides
# its own definition
zephyr_library_sources_ifdef(CONFIG_WIFI_NM_WPA_SUPPLICANT_WPS
${HOSTAP_SRC_BASE}/crypto/dh_group5.c
)
endif()

zephyr_library_compile_definitions_ifdef(CONFIG_WIFI_NM_WPA_SUPPLICANT_P2P
CONFIG_P2P
Expand Down
158 changes: 158 additions & 0 deletions samples/net/wifi/boards/frdm_rw612.conf
Original file line number Diff line number Diff line change
@@ -0,0 +1,158 @@
CONFIG_WIFI_NXP=y
CONFIG_NXP_RW610=y
CONFIG_NXP_WIFI_SHELL=y

#
# C Library
#
CONFIG_REQUIRES_FULL_LIBC=y
CONFIG_CBPRINTF_FP_SUPPORT=y

# log
CONFIG_WIFI_LOG_LEVEL_DBG=y
CONFIG_THREAD_LOCAL_STORAGE=y
CONFIG_ASSERT=y
CONFIG_ASSERT_LEVEL=2
CONFIG_LOG_MODE_IMMEDIATE=y
CONFIG_LOG_PRINTK=n

# os
CONFIG_THREAD_CUSTOM_DATA=y
CONFIG_EVENTS=y
CONFIG_SYS_HEAP_AUTO=y
CONFIG_HEAP_MEM_POOL_SIZE=122880
CONFIG_SCHED_MULTIQ=y
CONFIG_ZVFS_OPEN_MAX=30

# shell
CONFIG_SHELL_ARGC_MAX=48
CONFIG_WIFI_SHELL_MAX_AP_STA=8
CONFIG_WIFI_MGMT_AP_MAX_NUM_STA=8
CONFIG_SHELL_CMD_BUFF_SIZE=512

# net
CONFIG_NET_L2_ETHERNET=y
CONFIG_NET_DHCPV4_SERVER_ADDR_COUNT=32
CONFIG_NET_IPV4=y
CONFIG_NET_IPV6=y
CONFIG_ETH_MCUX=n
CONFIG_NET_ZPERF=y
CONFIG_NET_ZPERF_MAX_PACKET_SIZE=1500
CONFIG_NET_BUF_LOG=y
CONFIG_NET_PKT_RX_COUNT=60
CONFIG_NET_PKT_TX_COUNT=40
CONFIG_NET_BUF_RX_COUNT=60
CONFIG_NET_BUF_TX_COUNT=80
CONFIG_NET_BUF_DATA_SIZE=1744
CONFIG_NET_TC_TX_COUNT=1
CONFIG_NET_TC_RX_COUNT=1
CONFIG_NET_MGMT_EVENT_QUEUE_SIZE=20
CONFIG_NET_IF_MAX_IPV4_COUNT=2
CONFIG_NET_IF_MAX_IPV6_COUNT=2
CONFIG_DNS_RESOLVER=y
CONFIG_DNS_RESOLVER_MAX_SERVERS=2
CONFIG_NET_SOCKETS_POLL_MAX=14
CONFIG_NET_ZPERF_MAX_SESSIONS=6
CONFIG_NET_IPV4_FRAGMENT=y
CONFIG_NET_IPV4_FRAGMENT_MAX_COUNT=3
CONFIG_NET_IPV4_FRAGMENT_MAX_PKT=7
CONFIG_NET_IPV4_FRAGMENT_TIMEOUT=3
CONFIG_NET_IPV6_FRAGMENT=y
CONFIG_NET_IPV6_FRAGMENT_MAX_COUNT=3
CONFIG_NET_IPV6_FRAGMENT_MAX_PKT=8
CONFIG_NET_IPV6_FRAGMENT_TIMEOUT=3
CONFIG_NET_MAX_CONN=10
CONFIG_NET_DHCPV4_SERVER_ICMP_PROBE_TIMEOUT=100
CONFIG_ETH_DRIVER=n

# net threads priority
CONFIG_NET_TC_THREAD_PRIO_CUSTOM=y
CONFIG_NET_TC_THREAD_PREEMPTIVE=y
CONFIG_NET_TCP_WORKER_PRIO=-16
CONFIG_NET_TC_TX_THREAD_BASE_PRIO=3
CONFIG_NET_TC_RX_THREAD_BASE_PRIO=3
CONFIG_ZPERF_WORK_Q_THREAD_PRIORITY=3
CONFIG_NET_SOCKETS_SERVICE_THREAD_PRIO=3
CONFIG_NET_TC_SKIP_FOR_HIGH_PRIO=y
CONFIG_NET_CONTEXT_PRIORITY=y

CONFIG_WIFI_NM_WPA_SUPPLICANT=y
CONFIG_WIFI_NM_WPA_SUPPLICANT_CLI=y
CONFIG_WIFI_NM_WPA_SUPPLICANT_CRYPTO_ALT=y
CONFIG_WIFI_NM_WPA_SUPPLICANT_CRYPTO_ENTERPRISE=y
CONFIG_WIFI_NM_WPA_SUPPLICANT_DPP=y
CONFIG_WIFI_NM_WPA_SUPPLICANT_EAPOL=y
CONFIG_WIFI_NM_WPA_SUPPLICANT_CRYPTO_MBEDTLS_PSA=y
CONFIG_WIFI_NM_WPA_SUPPLICANT_INF_MON=n
CONFIG_WIFI_NM_MAX_MANAGED_INTERFACES=2
CONFIG_SAE_PWE_EARLY_EXIT=y
CONFIG_WIFI_NM_HOSTAPD_AP=y
CONFIG_WIFI_NM_WPA_SUPPLICANT_WPS=y

# Enable mbedtls
CONFIG_MBEDTLS=y
CONFIG_MBEDTLS_BUILTIN=y
CONFIG_MBEDTLS_USER_CONFIG_ENABLE=y
CONFIG_MBEDTLS_USER_CONFIG_FILE="wpa_supp_els_pkc_mbedtls_config.h"

# Include els_pkc in build
CONFIG_ENTROPY_GENERATOR=y
CONFIG_MBEDTLS_PSA_CRYPTO_C=y
CONFIG_MBEDTLS_ENTROPY_C=y
CONFIG_MBEDTLS_ENTROPY_POLL_ZEPHYR=y
CONFIG_MBEDTLS_SSL_MAX_CONTENT_LEN=8192

# power management
CONFIG_PM=y
CONFIG_PM_DEVICE=y
CONFIG_PM_LOG_LEVEL_OFF=y
CONFIG_PM_DEVICE_LOG_LEVEL_OFF=y
CONFIG_IDLE_STACK_SIZE=1024

# stack size
CONFIG_SHELL_STACK_SIZE=6144
CONFIG_SYSTEM_WORKQUEUE_STACK_SIZE=2048
CONFIG_NET_MGMT_EVENT_STACK_SIZE=4608
CONFIG_NET_TCP_WORKQ_STACK_SIZE=2048
CONFIG_MAIN_STACK_SIZE=4096
CONFIG_NET_SOCKETS_SERVICE_STACK_SIZE=4096
CONFIG_WIFI_NM_WPA_SUPPLICANT_WQ_STACK_SIZE=12288
CONFIG_WIFI_NM_WPA_SUPPLICANT_THREAD_STACK_SIZE=12288

# optimization level
# refer to Kconfig.zephyr for Optimizations Level
CONFIG_SPEED_OPTIMIZATIONS=y
#CONFIG_SIZE_OPTIMIZATIONS=y
#CONFIG_DEBUG_OPTIMIZATIONS=y
#CONFIG_NO_OPTIMIZATIONS=y

# debug & stats
CONFIG_SYS_HEAP_VALIDATE=y
CONFIG_SYS_HEAP_RUNTIME_STATS=y
#CONFIG_NET_PKT_TXTIME_STATS=y
#CONFIG_NET_PKT_TXTIME_STATS_DETAIL=y
CONFIG_NET_STATISTICS_WIFI=y
CONFIG_NET_STATISTICS_USER_API=y
#CONFIG_NET_STATISTICS_PERIODIC_OUTPUT=y
#CONFIG_NET_BUF_POOL_USAGE=y
#CONFIG_NET_DEBUG_NET_PKT_ALLOC=y

# stack size for -O0
#CONFIG_SHELL_STACK_SIZE=8192
#CONFIG_NET_TCP_WORKQ_STACK_SIZE=4096
#CONFIG_NET_TX_STACK_SIZE=4096
#CONFIG_NET_RX_STACK_SIZE=4096
#CONFIG_SYSTEM_WORKQUEUE_STACK_SIZE=4096
#CONFIG_ZPERF_WORK_Q_STACK_SIZE=4096
#CONFIG_MAIN_STACK_SIZE=4096
#CONFIG_WIFI_NM_WPA_SUPPLICANT_WQ_STACK_SIZE=16384
#CONFIG_WIFI_NM_WPA_SUPPLICANT_THREAD_STACK_SIZE=16384
#CONFIG_IDLE_STACK_SIZE=2048

# comment out for -O0
CONFIG_CODE_DATA_RELOCATION_SRAM=y
#CONFIG_WIFI_NM_WPA_SUPPLICANT_DEBUG_LEVEL=2
CONFIG_WIFI_NM_WPA_SUPPLICANT_LOG_LEVEL_INF=y
CONFIG_WIFI_NM_WPA_SUPPLICANT_WQ_PRIO=3
CONFIG_WIFI_NM_WPA_SUPPLICANT_PRIO=3
CONFIG_COMMON_LIBC_MALLOC_ARENA_SIZE=80000
1 change: 0 additions & 1 deletion samples/net/wifi/boards/rd_rw612_bga.conf
Original file line number Diff line number Diff line change
Expand Up @@ -93,7 +93,6 @@ CONFIG_MBEDTLS=y
CONFIG_MBEDTLS_BUILTIN=y
CONFIG_MBEDTLS_USER_CONFIG_ENABLE=y
CONFIG_MBEDTLS_USER_CONFIG_FILE="wpa_supp_els_pkc_mbedtls_config.h"
CONFIG_MBEDTLS_HAVE_TIME_DATE=y

# Include els_pkc in build
CONFIG_ENTROPY_GENERATOR=y
Expand Down
6 changes: 6 additions & 0 deletions samples/net/wifi/sample.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -74,3 +74,9 @@ tests:
- thingy53/nrf5340/cpuapp
integration_platforms:
- thingy53/nrf5340/cpuapp
sample.net.wifi.nxp_wifi:
extra_args:
- CONFIG_NXP_WIFI_BUILD_ONLY_MODE=y
platform_allow:
- frdm_rw612
- rd_rw612_bga
7 changes: 7 additions & 0 deletions subsys/net/l2/wifi/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@ file(MAKE_DIRECTORY ${gen_dir})
# convert .pem files to array data at build time
zephyr_include_directories(${gen_inc_dir})

if (CONFIG_WIFI_NM_WPA_SUPPLICANT_CRYPTO_ENTERPRISE)
generate_inc_file_for_target(
app
${ZEPHYR_BASE}/samples/net/wifi/test_certs/client.pem
Expand Down Expand Up @@ -67,3 +68,9 @@ generate_inc_file_for_target(
${ZEPHYR_BASE}/samples/net/wifi/test_certs/ca2.pem
${gen_dir}/ca2.pem.inc
)

# Add explicit dependency on app target for ZEPHYR_CURRENT_LIBRARY, so these
# headers are generated at the correct point in the build
add_dependencies(${ZEPHYR_CURRENT_LIBRARY} app)

endif() # CONFIG_WIFI_NM_WPA_SUPPLICANT_CRYPTO_ENTERPRISE
Loading
Loading