Skip to content

NXP Iw416 and nw61x wifi and bt soc support #512

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
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
124 changes: 84 additions & 40 deletions mcux/middleware/wifi_nxp/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -33,120 +33,150 @@ zephyr_compile_definitions_ifdef(CONFIG_NXP_RW610
WIFI_BT_TX_PWR_LIMITS="wlan_txpwrlimit_cfg_WW_rw610.h"
)

zephyr_compile_definitions_ifdef(CONFIG_88W8987_AW_CM358_USD
zephyr_compile_definitions_ifdef(CONFIG_NXP_88W8987_AW_CM358_USD
WIFI_BT_TX_PWR_LIMITS="wlan_txpwrlimit_cfg_WW.h"
CONFIG_NXP_WIFI_ED_OFFSET_2G=0x09
CONFIG_NXP_WIFI_ED_OFFSET_5G=0x0C
WIFI_BT_USE_USD_INTERFACE
)

zephyr_compile_definitions_ifdef(CONFIG_88W8987_AW_CM358MA_M2
zephyr_compile_definitions_ifdef(CONFIG_NXP_88W8987_AW_CM358MA_M2
WIFI_BT_TX_PWR_LIMITS="wlan_txpwrlimit_cfg_WW.h"
CONFIG_NXP_WIFI_ED_OFFSET_2G=0x09
CONFIG_NXP_WIFI_ED_OFFSET_5G=0x0C
WIFI_BT_USE_M2_INTERFACE
)

zephyr_compile_definitions_ifdef(CONFIG_88W8987_MURATA_1ZM_USD
zephyr_compile_definitions_ifdef(CONFIG_NXP_88W8987_MURATA_1ZM_USD
WIFI_BT_TX_PWR_LIMITS="wlan_txpwrlimit_cfg_murata_1ZM_WW.h"
CONFIG_NXP_WIFI_ED_OFFSET_2G=0x06
CONFIG_NXP_WIFI_ED_OFFSET_5G=0x06
WIFI_BT_USE_USD_INTERFACE
)

zephyr_compile_definitions_ifdef(CONFIG_88W8987_MURATA_1ZM_M2
zephyr_compile_definitions_ifdef(CONFIG_NXP_88W8987_MURATA_1ZM_M2
WIFI_BT_TX_PWR_LIMITS="wlan_txpwrlimit_cfg_murata_1ZM_WW.h"
CONFIG_NXP_WIFI_ED_OFFSET_2G=0x06
CONFIG_NXP_WIFI_ED_OFFSET_5G=0x06
WIFI_BT_USE_M2_INTERFACE
)

zephyr_compile_definitions_ifdef(CONFIG_IW416_AW_AM457_USD
WIFI_BT_TX_PWR_LIMITS="wlan_txpwrlimit_cfg_WW.h"
zephyr_compile_definitions_ifdef(CONFIG_NXP_IW416_AW_AM457_USD
CONFIG_NXP_WIFI_ED_OFFSET_2G=0x09
CONFIG_NXP_WIFI_ED_OFFSET_5G=0x0C
WIFI_BT_USE_USD_INTERFACE
)

zephyr_compile_definitions_ifdef(CONFIG_IW416_AW_AM457MA_M2
WIFI_BT_TX_PWR_LIMITS="wlan_txpwrlimit_cfg_WW.h"
zephyr_compile_definitions_ifdef(CONFIG_NXP_IW416_AW_AM457MA_M2
CONFIG_NXP_WIFI_ED_OFFSET_2G=0x09
CONFIG_NXP_WIFI_ED_OFFSET_5G=0x0C
WIFI_BT_USE_M2_INTERFACE
)

zephyr_compile_definitions_ifdef(CONFIG_IW416_AW_AM510_USD
WIFI_BT_TX_PWR_LIMITS="wlan_txpwrlimit_cfg_WW.h"
zephyr_compile_definitions_ifdef(CONFIG_NXP_IW416_AW_AM510_USD
CONFIG_NXP_WIFI_ED_OFFSET_2G=0x09
CONFIG_NXP_WIFI_ED_OFFSET_5G=0x0C
WIFI_BT_USE_USD_INTERFACE
)

zephyr_compile_definitions_ifdef(CONFIG_IW416_AW_AM510MA_M2
WIFI_BT_TX_PWR_LIMITS="wlan_txpwrlimit_cfg_murata_1XK_WW.h"
zephyr_compile_definitions_ifdef(CONFIG_NXP_IW416_AW_AM510MA_M2
CONFIG_NXP_WIFI_ED_OFFSET_2G=0x09
CONFIG_NXP_WIFI_ED_OFFSET_5G=0x0C
WIFI_BT_USE_M2_INTERFACE
)

zephyr_compile_definitions_ifdef(CONFIG_IW416_MURATA_1XK_USD
WIFI_BT_TX_PWR_LIMITS="wlan_txpwrlimit_cfg_murata_1XK_WW.h"
zephyr_compile_definitions_ifdef(CONFIG_NXP_IW416_MURATA_1XK_USD
CONFIG_NXP_WIFI_ED_OFFSET_2G=0x00
CONFIG_NXP_WIFI_ED_OFFSET_5G=0x0C
WIFI_BT_USE_USD_INTERFACE
)

zephyr_compile_definitions_ifdef(CONFIG_IW416_MURATA_1XK_M2
WIFI_BT_TX_PWR_LIMITS="wlan_txpwrlimit_cfg_murata_1XK_WW.h"
zephyr_compile_definitions_ifdef(CONFIG_NXP_IW416_MURATA_1XK_M2
CONFIG_NXP_WIFI_ED_OFFSET_2G=0x00
CONFIG_NXP_WIFI_ED_OFFSET_5G=0x0C
WIFI_BT_USE_M2_INTERFACE
)

zephyr_compile_definitions_ifdef(CONFIG_IW612_MURATA_2EL_USD
WIFI_BT_TX_PWR_LIMITS="wlan_txpwrlimit_cfg_murata_2EL_WW.h"
zephyr_compile_definitions_ifdef(CONFIG_NXP_IW416_REGION_EU
WIFI_BT_TX_PWR_LIMITS="wlan_txpwrlimit_cfg_murata_1XK_EU.h"
)

zephyr_compile_definitions_ifdef(CONFIG_NXP_IW416_REGION_CA
WIFI_BT_TX_PWR_LIMITS="wlan_txpwrlimit_cfg_murata_1XK_CA.h"
)

zephyr_compile_definitions_ifdef(CONFIG_NXP_IW416_REGION_WW
WIFI_BT_TX_PWR_LIMITS="wlan_txpwrlimit_cfg_murata_1XK_WW.h"
)

zephyr_compile_definitions_ifdef(CONFIG_NXP_IW416_REGION_US
WIFI_BT_TX_PWR_LIMITS="wlan_txpwrlimit_cfg_murata_1XK_US.h"
)

zephyr_compile_definitions_ifdef(CONFIG_NXP_IW416_REGION_JP
WIFI_BT_TX_PWR_LIMITS="wlan_txpwrlimit_cfg_murata_1XK_JP.h"
)

zephyr_compile_definitions_ifdef(CONFIG_NXP_IW416_REGION_CA
WIFI_BT_TX_PWR_LIMITS="wlan_txpwrlimit_cfg_murata_1XK_CA.h"
)

zephyr_compile_definitions_ifdef(CONFIG_NXP_IW612_MURATA_2EL_USD
CONFIG_NXP_WIFI_ED_OFFSET_2G=0x0A
CONFIG_NXP_WIFI_ED_OFFSET_5G=0x0A
WIFI_BT_USE_USD_INTERFACE
)

zephyr_compile_definitions_ifdef(CONFIG_IW612_MURATA_2EL_M2
WIFI_BT_TX_PWR_LIMITS="wlan_txpwrlimit_cfg_murata_2EL_WW.h"
zephyr_compile_definitions_ifdef(CONFIG_NXP_IW612_MURATA_2EL_M2
CONFIG_NXP_WIFI_ED_OFFSET_2G=0x0A
CONFIG_NXP_WIFI_ED_OFFSET_5G=0x0A
WIFI_BT_USE_M2_INTERFACE
)

zephyr_compile_definitions_ifdef(CONFIG_IW611_MURATA_2DL_USD
WIFI_BT_TX_PWR_LIMITS="wlan_txpwrlimit_cfg_murata_2EL_WW.h"
zephyr_compile_definitions_ifdef(CONFIG_NXP_IW611_MURATA_2DL_USD
CONFIG_NXP_WIFI_ED_OFFSET_2G=0x0A
CONFIG_NXP_WIFI_ED_OFFSET_5G=0x0A
WIFI_BT_USE_USD_INTERFACE
)

zephyr_compile_definitions_ifdef(CONFIG_IW611_MURATA_2DL_M2
WIFI_BT_TX_PWR_LIMITS="wlan_txpwrlimit_cfg_murata_2EL_WW.h"
zephyr_compile_definitions_ifdef(CONFIG_NXP_IW611_MURATA_2DL_M2
CONFIG_NXP_WIFI_ED_OFFSET_2G=0x0A
CONFIG_NXP_WIFI_ED_OFFSET_5G=0x0A
WIFI_BT_USE_M2_INTERFACE
)

zephyr_compile_definitions_ifdef(CONFIG_88W8801_AW_NM191_USD
zephyr_compile_definitions_ifdef(CONFIG_NXP_IW61X_REGION_US
WIFI_BT_TX_PWR_LIMITS="wlan_txpwrlimit_cfg_murata_2EL_US_RU_Tx_power.h"
)
zephyr_compile_definitions_ifdef(CONFIG_NXP_IW61X_REGION_JP
WIFI_BT_TX_PWR_LIMITS="wlan_txpwrlimit_cfg_murata_2EL_JP_RU_Tx_power.h"
)
zephyr_compile_definitions_ifdef(CONFIG_NXP_IW61X_REGION_CA
WIFI_BT_TX_PWR_LIMITS="wlan_txpwrlimit_cfg_murata_2EL_CA_RU_Tx_power.h"
)
zephyr_compile_definitions_ifdef(CONFIG_NXP_IW61X_REGION_EU
WIFI_BT_TX_PWR_LIMITS="wlan_txpwrlimit_cfg_murata_2EL_EU_RU_Tx_power.h"
)
zephyr_compile_definitions_ifdef(CONFIG_NXP_IW61X_REGION_WW
WIFI_BT_TX_PWR_LIMITS="wlan_txpwrlimit_cfg_murata_2EL_WW.h"
)

zephyr_compile_definitions_ifdef(CONFIG_NXP_88W8801_AW_NM191_USD
WIFI_BT_TX_PWR_LIMITS="wlan_txpwrlimit_cfg_WW.h"
CONFIG_NXP_WIFI_ED_OFFSET_2G=0x1B
)

zephyr_compile_definitions_ifdef(CONFIG_88W8801_AW_NM191MA_M2
zephyr_compile_definitions_ifdef(CONFIG_NXP_88W8801_AW_NM191MA_M2
WIFI_BT_TX_PWR_LIMITS="wlan_txpwrlimit_cfg_WW.h"
CONFIG_NXP_WIFI_ED_OFFSET_2G=0x1B
)

zephyr_compile_definitions_ifdef(CONFIG_88W8801_MURATA_2DS_USD
zephyr_compile_definitions_ifdef(CONFIG_NXP_88W8801_MURATA_2DS_USD
WIFI_BT_TX_PWR_LIMITS="wlan_txpwrlimit_cfg_murata_2DS_WW.h"
CONFIG_NXP_WIFI_ED_OFFSET_2G=0x0E
)

zephyr_compile_definitions_ifdef(CONFIG_88W8801_MURATA_2DS_M2
zephyr_compile_definitions_ifdef(CONFIG_NXP_88W8801_MURATA_2DS_M2
WIFI_BT_TX_PWR_LIMITS="wlan_txpwrlimit_cfg_murata_2DS_WW.h"
CONFIG_NXP_WIFI_ED_OFFSET_2G=0x0E
)
Expand All @@ -171,6 +201,10 @@ if(DEFINED CONFIG_SOC_SDKNG_UNSUPPORTED)
zephyr_library_sources(${ZEPHYR_HAL_NXP_MODULE_DIR}/mcux/mcux-sdk/utilities/misc_utilities/fsl_memcpy.S)
zephyr_library_sources(${ZEPHYR_HAL_NXP_MODULE_DIR}/mcux/mcux-sdk/components/lists/fsl_component_generic_list.c)
zephyr_library_sources(${ZEPHYR_HAL_NXP_MODULE_DIR}/mcux/mcux-sdk/components/osa/fsl_os_abstraction_zephyr.c)
else()
zephyr_library_sources(${ZEPHYR_HAL_NXP_MODULE_DIR}/mcux/mcux-sdk-ng/components/misc_utilities/fsl_memcpy.S)
zephyr_library_sources(${ZEPHYR_HAL_NXP_MODULE_DIR}/mcux/mcux-sdk-ng/components/osa/fsl_os_abstraction_zephyr.c)
zephyr_include_directories(${MCUX_SDK_DIR}/components/osa/config)
endif()

zephyr_include_directories(
Expand Down Expand Up @@ -263,6 +297,13 @@ zephyr_library_compile_definitions_ifdef(CONFIG_WIFI_NM_HOSTAPD_AP

if(CONFIG_CODE_DATA_RELOCATION)
if(CONFIG_SPEED_OPTIMIZATIONS OR CONFIG_SIZE_OPTIMIZATIONS)

if(CONFIG_NXP_RW610)
set(QUICK_ACCESS_CODE_AREA RAM_TEXT)
else()
set(QUICK_ACCESS_CODE_AREA ITCM_TEXT)
endif()

# critical path code relocated to SRAM
zephyr_code_relocate(FILES
port/osa/osa.c
Expand All @@ -273,13 +314,13 @@ zephyr_code_relocate(FILES
wifidriver/mlan_11n_rxreorder.c
wifidriver/mlan_wmm.c
wifidriver/wifi.c
LOCATION RAM_TEXT)
LOCATION ${QUICK_ACCESS_CODE_AREA})

if(CONFIG_SDIO_STACK)
zephyr_code_relocate(FILES
sdio_nxp_abs/mlan_sdio.c
wifidriver/wifi-sdio.c
LOCATION RAM_TEXT)
LOCATION ${QUICK_ACCESS_CODE_AREA})
endif()

if(CONFIG_NXP_RW610)
Expand All @@ -292,41 +333,44 @@ endif()

zephyr_code_relocate(FILES
${MCUX_SDK_DIR}/components/osa/fsl_os_abstraction_zephyr.c
LOCATION RAM_TEXT)
LOCATION ${QUICK_ACCESS_CODE_AREA})

if(DEFINED CONFIG_SOC_SDKNG_UNSUPPORTED)
zephyr_code_relocate(FILES
${ZEPHYR_HAL_NXP_MODULE_DIR}/mcux/mcux-sdk/utilities/misc_utilities/fsl_memcpy.S
LOCATION RAM_TEXT)
LOCATION ${QUICK_ACCESS_CODE_AREA})
else()
zephyr_code_relocate(FILES
${ZEPHYR_HAL_NXP_MODULE_DIR}/mcux/mcux-sdk-ng/components/misc_utilities/fsl_memcpy.S
LOCATION RAM_TEXT)
LOCATION ${QUICK_ACCESS_CODE_AREA})
endif()

file(GLOB ZPERF_SRC ${ZEPHYR_BASE}/subsys/net/lib/zperf/*.c)
zephyr_code_relocate(FILES ${ZPERF_SRC} LOCATION RAM_TEXT)

zephyr_code_relocate(FILES
${ZEPHYR_BASE}/subsys/net/ip/connection.c
${ZEPHYR_BASE}/subsys/net/ip/ipv6.c
${ZEPHYR_BASE}/subsys/net/ip/ipv6_fragment.c
${ZEPHYR_BASE}/subsys/net/ip/packet_socket.c
${ZEPHYR_BASE}/subsys/net/ip/utils.c
LOCATION RAM_TEXT)

zephyr_code_relocate(FILES
${ZEPHYR_BASE}/subsys/net/lib/sockets/sockets_packet.c
${ZEPHYR_BASE}/subsys/net/lib/sockets/sockets.c
${ZEPHYR_BASE}/subsys/net/ip/connection.c
${ZEPHYR_BASE}/subsys/net/ip/ipv4.c
${ZEPHYR_BASE}/subsys/net/ip/ipv4_fragment.c
${ZEPHYR_BASE}/subsys/net/ip/ipv6.c
${ZEPHYR_BASE}/subsys/net/ip/ipv6_fragment.c
${ZEPHYR_BASE}/subsys/net/ip/net_context.c
${ZEPHYR_BASE}/subsys/net/ip/net_core.c
${ZEPHYR_BASE}/subsys/net/ip/net_if.c
${ZEPHYR_BASE}/subsys/net/ip/net_pkt.c
${ZEPHYR_BASE}/subsys/net/ip/net_tc.c
${ZEPHYR_BASE}/subsys/net/ip/packet_socket.c
${ZEPHYR_BASE}/subsys/net/ip/tcp.c
${ZEPHYR_BASE}/subsys/net/ip/udp.c
${ZEPHYR_BASE}/subsys/net/ip/utils.c
${ZEPHYR_BASE}/subsys/net/l2/ethernet/ethernet.c
${ZEPHYR_BASE}/lib/net_buf/buf.c
LOCATION RAM_TEXT)
LOCATION ${QUICK_ACCESS_CODE_AREA})

zephyr_code_relocate(FILES
${ZEPHYR_BASE}/kernel/mem_slab.c
Expand All @@ -338,7 +382,7 @@ zephyr_code_relocate(FILES
${ZEPHYR_BASE}/kernel/sem.c
${ZEPHYR_BASE}/kernel/thread.c
${ZEPHYR_BASE}/kernel/work.c
LOCATION RAM_TEXT)
LOCATION ${QUICK_ACCESS_CODE_AREA})
endif()
endif()

Expand Down
33 changes: 33 additions & 0 deletions mcux/middleware/wifi_nxp/LICENSE
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
The BSD 3 Clause License

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:

1. Redistributions of source code must retain the above copyright notice, this
list of conditions and the following disclaimer.

2. Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.

3. Neither the name of the copyright holder nor the names of its contributors
may be used to endorse or promote products derived from this software without
specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
Original file line number Diff line number Diff line change
Expand Up @@ -1791,6 +1791,7 @@
*/
#define MBEDTLS_SSL_SESSION_TICKETS

#ifndef MBEDTLS_SSL_EXPORT_KEYS
/**
* \def MBEDTLS_SSL_EXPORT_KEYS
*
Expand All @@ -1800,6 +1801,7 @@
* Comment this macro to disable support for key export
*/
#define MBEDTLS_SSL_EXPORT_KEYS
#endif

/**
* \def MBEDTLS_SSL_SERVER_NAME_INDICATION
Expand Down Expand Up @@ -3750,6 +3752,8 @@
#undef MBEDTLS_NO_DEFAULT_ENTROPY_SOURCES
#endif /* CONFIG_BUILD_WITH_TFM */

#undef MBEDTLS_PSA_P256M_DRIVER_ENABLED

/*
* CBC-MAC is not yet supported via the PSA API in Mbed TLS.
*/
Expand Down
9 changes: 6 additions & 3 deletions mcux/middleware/wifi_nxp/incl/wifidriver/wifi.h
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/*
* Copyright 2008-2024 NXP
* Copyright 2008-2025 NXP
*
* SPDX-License-Identifier: BSD-3-Clause
*
Expand Down Expand Up @@ -190,11 +190,13 @@ int wifi_init_fcc(const uint8_t *fw_start_addr, const size_t size);
*
*/
void wifi_deinit(void);
#ifdef RW610

/**
* This API can be used to destroy all wifi driver tasks.
*/
void wifi_destroy_wifidriver_tasks(void);

#ifdef RW610
/**
* This API can be used to get IMU task lock.
*/
Expand Down Expand Up @@ -907,7 +909,8 @@ unsigned short wifi_get_listen_interval();
unsigned int wifi_get_delay_to_ps();
void wifi_configure_null_pkt_interval(unsigned int null_pkt_interval);
int wrapper_wifi_assoc(
const unsigned char *bssid, int wlan_security, bool is_wpa_tkip, unsigned int owe_trans_mode, bool is_ft);
const unsigned char *bssid, int wlan_security, bool is_wpa_tkip,
unsigned int owe_trans_mode, bool is_ft, int key_mgmt);
bool wifi_get_xfer_pending(void);
void wifi_set_xfer_pending(bool xfer_val);
int wrapper_wlan_cmd_11n_ba_stream_timeout(void *saved_event_buff);
Expand Down
Loading