Skip to content

Commit d08d6fc

Browse files
committed
rp2/network: Add USB Network support in RPI_PICO/USB_NET variant build.
Signed-off-by: Andrew Leech <[email protected]>
1 parent 2026ae3 commit d08d6fc

File tree

7 files changed

+31
-0
lines changed

7 files changed

+31
-0
lines changed

ports/rp2/boards/RPI_PICO/board.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,5 +15,8 @@
1515
"product": "Pico",
1616
"thumbnail": "",
1717
"url": "https://www.raspberrypi.com/products/raspberry-pi-pico/",
18+
"variants": {
19+
"USB_NET": "USB Network Adapter"
20+
},
1821
"vendor": "Raspberry Pi"
1922
}
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
# cmake file for Raspberry Pi Pico
22
set(PICO_BOARD "pico")
33
set(PICO_PLATFORM "rp2040")
4+
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,9 @@
11
// Board and hardware specific configuration
22
#define MICROPY_HW_BOARD_NAME "Raspberry Pi Pico"
33
#define MICROPY_HW_FLASH_STORAGE_BYTES (1408 * 1024)
4+
5+
#if MICROPY_PY_LWIP
6+
// Enable networking.
7+
#define MICROPY_PY_NETWORK 1
8+
#define MICROPY_PY_NETWORK_HOSTNAME_DEFAULT "Pico"
9+
#endif
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
set(MICROPY_PY_LWIP OFF)
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
set(MICROPY_PY_LWIP ON)
2+
3+
list(APPEND MICROPY_DEF_BOARD
4+
MICROPY_HW_NETWORK_USBNET=1
5+
)
6+
# Board specific version of the frozen manifest
7+
set(MICROPY_FROZEN_MANIFEST ${MICROPY_BOARD_DIR}/../RPI_PICO_W/manifest.py)

ports/rp2/mpconfigport.h

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -245,6 +245,13 @@ extern const struct _mp_obj_type_t mod_network_nic_type_wiznet5k;
245245
#define MICROPY_HW_NIC_WIZNET5K
246246
#endif
247247

248+
#if MICROPY_HW_NETWORK_USBNET
249+
extern const struct _mp_obj_type_t mod_network_nic_type_usbnet;
250+
#define MICROPY_HW_NIC_USBNET { MP_ROM_QSTR(MP_QSTR_USBNET), MP_ROM_PTR(&mod_network_nic_type_usbnet) },
251+
#else
252+
#define MICROPY_HW_NIC_USBNET
253+
#endif
254+
248255
#ifndef MICROPY_BOARD_NETWORK_INTERFACES
249256
#define MICROPY_BOARD_NETWORK_INTERFACES
250257
#endif
@@ -253,6 +260,7 @@ extern const struct _mp_obj_type_t mod_network_nic_type_wiznet5k;
253260
MICROPY_HW_NIC_CYW43 \
254261
MICROPY_HW_NIC_NINAW10 \
255262
MICROPY_HW_NIC_WIZNET5K \
263+
MICROPY_HW_NIC_USBNET \
256264
MICROPY_BOARD_NETWORK_INTERFACES \
257265

258266
// Additional entries for use with pendsv_schedule_dispatch.

ports/rp2/mpnetworkport.c

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030

3131
#if MICROPY_PY_LWIP
3232

33+
#include "extmod/network_usbd_ncm.h"
3334
#include "shared/runtime/softtimer.h"
3435
#include "lwip/timeouts.h"
3536

@@ -116,6 +117,10 @@ static void mp_network_soft_timer_callback(soft_timer_entry_t *self) {
116117
#if MICROPY_PY_NETWORK_WIZNET5K
117118
wiznet5k_poll();
118119
#endif
120+
121+
#if MICROPY_HW_NETWORK_USBNET
122+
network_usbd_ncm_service_traffic();
123+
#endif
119124
}
120125

121126
void mod_network_lwip_init(void) {

0 commit comments

Comments
 (0)