diff --git a/extmod/modnetwork.c b/extmod/modnetwork.c index 043d1967a3..a6a37ccb7e 100644 --- a/extmod/modnetwork.c +++ b/extmod/modnetwork.c @@ -44,8 +44,6 @@ #include "lwip/dns.h" #include "lwip/dhcp.h" #include "lwip/apps/mdns.h" -#include "extmod/network_cyw43.h" -#include "drivers/cyw43/cyw43.h" #endif /// \module network - network configuration @@ -89,32 +87,14 @@ STATIC MP_DEFINE_CONST_FUN_OBJ_0(network_route_obj, network_route); STATIC const mp_rom_map_elem_t mp_module_network_globals_table[] = { { MP_ROM_QSTR(MP_QSTR___name__), MP_ROM_QSTR(MP_QSTR_network) }, - - #if defined(MICROPY_HW_ETH_MDC) - { MP_ROM_QSTR(MP_QSTR_LAN), MP_ROM_PTR(&network_lan_type) }, - #endif - #if MICROPY_PY_NETWORK_CYW43 - { MP_ROM_QSTR(MP_QSTR_WLAN), MP_ROM_PTR(&mp_network_cyw43_type) }, - #endif - - #if MICROPY_PY_WIZNET5K - { MP_ROM_QSTR(MP_QSTR_WIZNET5K), MP_ROM_PTR(&mod_network_nic_type_wiznet5k) }, - #endif - #if MICROPY_PY_CC3K - { MP_ROM_QSTR(MP_QSTR_CC3K), MP_ROM_PTR(&mod_network_nic_type_cc3k) }, - #endif - { MP_ROM_QSTR(MP_QSTR_route), MP_ROM_PTR(&network_route_obj) }, + // Defined per port in mpconfigport.h + MICROPY_PORT_NETWORK_INTERFACES + // Constants - #if MICROPY_PY_NETWORK_CYW43 - { MP_ROM_QSTR(MP_QSTR_STA_IF), MP_ROM_INT(CYW43_ITF_STA)}, - { MP_ROM_QSTR(MP_QSTR_AP_IF), MP_ROM_INT(CYW43_ITF_AP)}, - #else - // Station/AP mode. { MP_ROM_QSTR(MP_QSTR_STA_IF), MP_ROM_INT(MOD_NETWORK_STA_IF) }, { MP_ROM_QSTR(MP_QSTR_AP_IF), MP_ROM_INT(MOD_NETWORK_AP_IF) }, - #endif }; STATIC MP_DEFINE_CONST_DICT(mp_module_network_globals, mp_module_network_globals_table); diff --git a/extmod/modnetwork.h b/extmod/modnetwork.h index 50c8bc4b06..0f49350980 100644 --- a/extmod/modnetwork.h +++ b/extmod/modnetwork.h @@ -39,17 +39,9 @@ #define MOD_NETWORK_AP_IF (1) #if MICROPY_PY_LWIP - struct netif; - -extern const mp_obj_type_t network_lan_type; -extern const mp_obj_type_t mod_network_nic_type_wiznet5k; - void mod_network_lwip_poll_wrapper(uint32_t ticks_ms); mp_obj_t mod_network_nic_ifconfig(struct netif *netif, size_t n_args, const mp_obj_t *args); - -void wiznet5k_poll(void); - #else struct _mod_network_socket_obj_t; @@ -96,10 +88,7 @@ typedef struct _mod_network_socket_obj_t { #endif } mod_network_socket_obj_t; -extern const mod_network_nic_type_t mod_network_nic_type_wiznet5k; -extern const mod_network_nic_type_t mod_network_nic_type_cc3k; - -#endif +#endif // MICROPY_PY_LWIP void mod_network_init(void); void mod_network_deinit(void); diff --git a/ports/stm32/mpconfigport.h b/ports/stm32/mpconfigport.h index eff90cb25f..3147e28681 100644 --- a/ports/stm32/mpconfigport.h +++ b/ports/stm32/mpconfigport.h @@ -323,6 +323,34 @@ extern const struct _mp_obj_module_t mp_module_onewire; #define ONEWIRE_BUILTIN_MODULE #endif +#if defined(MICROPY_HW_ETH_MDC) +extern const struct _mp_obj_type_t network_lan_type; +#define MICROPY_HW_NIC_ETH { MP_ROM_QSTR(MP_QSTR_LAN), MP_ROM_PTR(&network_lan_type) }, +#else +#define MICROPY_HW_NIC_ETH +#endif + +#if MICROPY_PY_NETWORK_CYW43 +extern const struct _mp_obj_type_t mp_network_cyw43_type; +#define MICROPY_HW_NIC_CYW43 { MP_ROM_QSTR(MP_QSTR_WLAN), MP_ROM_PTR(&mp_network_cyw43_type) }, +#else +#define MICROPY_HW_NIC_CYW43 +#endif + +#if MICROPY_PY_WIZNET5K +extern const struct _mod_network_nic_type_t mod_network_nic_type_wiznet5k; +#define MICROPY_HW_NIC_WIZNET5K { MP_ROM_QSTR(MP_QSTR_WIZNET5K), MP_ROM_PTR(&mod_network_nic_type_wiznet5k) }, +#else +#define MICROPY_HW_NIC_WIZNET5K +#endif + +#if MICROPY_PY_CC3K +extern const struct _mod_network_nic_type_t mod_network_nic_type_cc3k; +#define MICROPY_HW_NIC_CC3K { MP_ROM_QSTR(MP_QSTR_CC3K), MP_ROM_PTR(&mod_network_nic_type_cc3k) }, +#else +#define MICROPY_HW_NIC_CC3K +#endif + #define MICROPY_PORT_BUILTIN_MODULES \ MACHINE_BUILTIN_MODULE \ PYB_BUILTIN_MODULE \ @@ -340,6 +368,12 @@ extern const struct _mp_obj_module_t mp_module_onewire; PYB_BUILTIN_MODULE \ STM_BUILTIN_MODULE \ +#define MICROPY_PORT_NETWORK_INTERFACES \ + MICROPY_HW_NIC_ETH \ + MICROPY_HW_NIC_CYW43 \ + MICROPY_HW_NIC_WIZNET5K \ + MICROPY_HW_NIC_CC3K \ + #define MP_STATE_PORT MP_STATE_VM #if MICROPY_SSL_MBEDTLS