diff --git a/ports/mimxrt/Makefile b/ports/mimxrt/Makefile index 63cba7d7a67c7..45d10e8a9e573 100644 --- a/ports/mimxrt/Makefile +++ b/ports/mimxrt/Makefile @@ -120,6 +120,17 @@ SRC_ETH_C += \ hal/phy/mdio/enet/fsl_enet_mdio.c endif +ifeq ($(MICROPY_PY_NETWORK_NINAW10),1) +CFLAGS += -DMICROPY_PY_NETWORK_NINAW10=1 +INC += -I$(TOP)/drivers/ninaw10 + +SRC_C += \ + drivers/ninaw10/nina_bt_hci.c \ + drivers/ninaw10/nina_wifi_drv.c \ + drivers/ninaw10/nina_wifi_bsp.c \ + drivers/ninaw10/machine_pin_nina.c +endif + # NXP SDK sources SRC_HAL_IMX_C += \ $(MCU_DIR)/drivers/fsl_clock.c \ diff --git a/ports/mimxrt/mpconfigport.h b/ports/mimxrt/mpconfigport.h index ce71cb279534e..2f32bf775e545 100644 --- a/ports/mimxrt/mpconfigport.h +++ b/ports/mimxrt/mpconfigport.h @@ -59,6 +59,8 @@ uint32_t trng_random_u32(void); #define MICROPY_ENABLE_EMERGENCY_EXCEPTION_BUF (1) #define MICROPY_LONGINT_IMPL (MICROPY_LONGINT_IMPL_MPZ) #define MICROPY_SCHEDULER_DEPTH (8) +#define MICROPY_ENABLE_SCHEDULER (1) +#define MICROPY_SCHEDULER_STATIC_NODES (1) #define MICROPY_VFS (1) // Control over Python builtins @@ -108,19 +110,24 @@ uint32_t trng_random_u32(void); #ifndef MICROPY_PY_SOCKET #define MICROPY_PY_SOCKET (1) #endif -#define MICROPY_PY_WEBSOCKET (MICROPY_PY_LWIP) -#define MICROPY_PY_WEBREPL (MICROPY_PY_LWIP) + +#ifndef MICROPY_PY_SSL +#define MICROPY_PY_SSL (1) +#endif +#define MICROPY_PY_WEBSOCKET (MICROPY_PY_LWIP || MICROPY_PY_NETWORK_NINAW10) +#define MICROPY_PY_WEBREPL (MICROPY_PY_LWIP || MICROPY_PY_NETWORK_NINAW10) #define MICROPY_PY_LWIP_SOCK_RAW (MICROPY_PY_LWIP) #define MICROPY_PY_SSL_FINALISER (MICROPY_PY_SSL) -// #define MICROPY_PY_HASHLIB_MD5 (MICROPY_PY_SSL) +#define MICROPY_PY_HASHLIB_MD5 (MICROPY_PY_SSL) #define MICROPY_PY_HASHLIB_SHA1 (MICROPY_PY_SSL) -// #define MICROPY_PY_CRYPTOLIB (MICROPY_PY_SSL) +#define MICROPY_PY_CRYPTOLIB (MICROPY_PY_SSL) // Prevent the "LWIP task" from running. #define MICROPY_PY_LWIP_ENTER MICROPY_PY_PENDSV_ENTER #define MICROPY_PY_LWIP_REENTER MICROPY_PY_PENDSV_REENTER #define MICROPY_PY_LWIP_EXIT MICROPY_PY_PENDSV_EXIT + #ifndef MICROPY_PY_NETWORK_HOSTNAME_DEFAULT #define MICROPY_PY_NETWORK_HOSTNAME_DEFAULT "mpy-mimxrt" #endif @@ -173,13 +180,32 @@ extern const struct _mp_obj_type_t network_lan_type; #define MICROPY_HW_NIC_ETH #endif +#if MICROPY_PY_NETWORK_NINAW10 +// This Network interface requires the extended socket state. +#ifndef MICROPY_PY_SOCKET_EXTENDED_STATE +#define MICROPY_PY_SOCKET_EXTENDED_STATE (1) +#endif +extern const struct _mp_obj_type_t mod_network_nic_type_nina; +extern const struct _mp_obj_type_t mod_network_nic_type_wlan; +#define MICROPY_HW_NIC_NINAW10 { MP_ROM_QSTR(MP_QSTR_NinaW10), MP_ROM_PTR(&mod_network_nic_type_nina) }, +#define MICROPY_HW_NIC_WLAN { MP_ROM_QSTR(MP_QSTR_WLAN), MP_ROM_PTR(&mod_network_nic_type_wlan) }, + +#else + +#define MICROPY_HW_NIC_NINAW10 +#define MICROPY_HW_NIC_WLAN + +#endif // MICROPY_PY_NETWORK_NINAW10 + #ifndef MICROPY_BOARD_NETWORK_INTERFACES #define MICROPY_BOARD_NETWORK_INTERFACES #endif #define MICROPY_PORT_NETWORK_INTERFACES \ MICROPY_HW_NIC_ETH \ - MICROPY_BOARD_NETWORK_INTERFACES \ + MICROPY_HW_NIC_WLAN \ + MICROPY_HW_NIC_NINAW10 \ + MICROPY_BOARD_NETWORK_INTERFACES #ifndef MICROPY_BOARD_ROOT_POINTERS #define MICROPY_BOARD_ROOT_POINTERS