Skip to content

Commit 9f5410b

Browse files
committed
wip: usb_next other fixes
1 parent 477a771 commit 9f5410b

File tree

10 files changed

+72
-31
lines changed

10 files changed

+72
-31
lines changed

loader/CMakeLists.txt

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,11 @@ project(app LANGUAGES C CXX)
1616

1717
add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/blobs)
1818

19+
# for USB device stack NEXT
20+
target_sources_ifdef(CONFIG_USB_DEVICE_STACK_NEXT app PRIVATE
21+
${CMAKE_CURRENT_LIST_DIR}/../cores/arduino/usb_device_descriptor.c
22+
)
23+
1924
FILE(GLOB app_sources *.c)
2025
target_sources(app PRIVATE ${app_sources})
2126

loader/llext_exports.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -239,4 +239,4 @@ FORCE_EXPORT_SYM(__aeabi_dcmpge);
239239

240240
#if defined (CONFIG_CPP)
241241
FORCE_EXPORT_SYM(__cxa_pure_virtual);
242-
#endif
242+
#endif

loader/main.c

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,11 +33,31 @@ struct sketch_header_v1 {
3333
#define SKETCH_FLAG_LINKED 0x02
3434

3535
#define TARGET_HAS_USB_CDC_SHELL \
36-
DT_NODE_HAS_PROP(DT_PATH(zephyr_user), cdc_acm) && CONFIG_SHELL && CONFIG_USB_DEVICE_STACK
36+
DT_NODE_HAS_PROP(DT_PATH(zephyr_user), cdc_acm) && CONFIG_SHELL && (CONFIG_USB_DEVICE_STACK || CONFIG_USB_DEVICE_STACK_NEXT)
3737

3838
#if TARGET_HAS_USB_CDC_SHELL
3939
const struct device *const usb_dev = DEVICE_DT_GET(DT_PHANDLE_BY_IDX(DT_PATH(zephyr_user), cdc_acm, 0));
4040

41+
#if CONFIG_USB_DEVICE_STACK_NEXT
42+
#include <zephyr/usb/usbd.h>
43+
struct usbd_context *usbd_init_device(usbd_msg_cb_t msg_cb);
44+
int usb_enable(usb_dc_status_callback status_cb)
45+
{
46+
int err;
47+
struct usbd_context *_usbd = usbd_init_device(NULL);
48+
if (_usbd == NULL) {
49+
return -ENODEV;
50+
}
51+
if (!usbd_can_detect_vbus(_usbd)) {
52+
err = usbd_enable(_usbd);
53+
if (err) {
54+
return err;
55+
}
56+
}
57+
return 0;
58+
}
59+
#endif
60+
4161
static int enable_shell_usb(void)
4262
{
4363
bool log_backend = CONFIG_SHELL_BACKEND_SERIAL_LOG_LEVEL > 0;

variants/arduino_giga_r1_stm32h747xx_m7/arduino_giga_r1_stm32h747xx_m7.conf

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,15 @@
1-
CONFIG_USB_DEVICE_STACK=y
1+
CONFIG_USB_DEVICE_STACK_NEXT=y
22
CONFIG_USB_DEVICE_PRODUCT="Arduino GIGA R1"
33
CONFIG_USB_DEVICE_MANUFACTURER="Arduino"
44
CONFIG_USB_DEVICE_VID=0x2341
55
CONFIG_USB_DEVICE_PID=0x0066
66

7-
CONFIG_USB_CDC_ACM=y
8-
CONFIG_USB_CDC_ACM_RINGBUF_SIZE=512
9-
CONFIG_UART_LINE_CTRL=y
7+
CONFIG_USBD_CDC_ACM_CLASS=y
108
CONFIG_CDC_ACM_DTE_RATE_CALLBACK_SUPPORT=y
9+
CONFIG_USBD_CDC_ACM_LOG_LEVEL_ERR=y
10+
CONFIG_UDC_DRIVER_LOG_LEVEL_ERR=y
11+
CONFIG_USBD_LOG_LEVEL_ERR=y
12+
CONFIG_UART_LINE_CTRL=y
1113

1214
CONFIG_LLEXT_STORAGE_WRITABLE=n
1315
CONFIG_SHARED_MULTI_HEAP=y
@@ -62,6 +64,7 @@ CONFIG_BT_CTLR_ADV_PERIODIC=y
6264
CONFIG_BT_CTLR_DTM_HCI=y
6365
CONFIG_CYW4343W_MURATA_1DX=y
6466
CONFIG_BT_HCI_DRIVER_LOG_LEVEL_DBG=y
67+
6568
CONFIG_SYSTEM_WORKQUEUE_STACK_SIZE=2048
6669
CONFIG_BT_RX_STACK_SIZE=4096
6770
CONFIG_BT_HCI_TX_STACK_SIZE=4096

variants/arduino_nano_33_ble_nrf52840_sense/arduino_nano_33_ble_nrf52840_sense.conf

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -16,17 +16,18 @@ CONFIG_SYSTEM_WORKQUEUE_STACK_SIZE=2048
1616
# Host number of completed commands does not follow normal flow control.
1717
CONFIG_BT_BUF_CMD_TX_COUNT=10
1818

19-
20-
CONFIG_USB_DEVICE_STACK=y
19+
CONFIG_USB_DEVICE_STACK_NEXT=y
2120
CONFIG_USB_DEVICE_PRODUCT="Arduino Nano 33 BLE"
2221
CONFIG_USB_DEVICE_MANUFACTURER="Arduino"
2322
CONFIG_USB_DEVICE_VID=0x2341
2423
CONFIG_USB_DEVICE_PID=0x035A
2524

26-
CONFIG_USB_CDC_ACM=y
27-
CONFIG_USB_CDC_ACM_RINGBUF_SIZE=512
28-
CONFIG_UART_LINE_CTRL=y
25+
CONFIG_USBD_CDC_ACM_CLASS=y
2926
CONFIG_CDC_ACM_DTE_RATE_CALLBACK_SUPPORT=y
27+
CONFIG_USBD_CDC_ACM_LOG_LEVEL_ERR=y
28+
CONFIG_UDC_DRIVER_LOG_LEVEL_ERR=y
29+
CONFIG_USBD_LOG_LEVEL_ERR=y
30+
CONFIG_UART_LINE_CTRL=y
3031

3132
CONFIG_ADC=y
3233
CONFIG_PWM=y

variants/arduino_nano_33_ble_nrf52840_sense/variant.cpp

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,11 +12,9 @@ void initVariant(void) {
1212
GPIO_DT_SPEC_GET(DT_PATH(zephyr_user), pin_enable_gpios);
1313
if (gpio_is_ready_dt(&enable_sensors)) {
1414
gpio_flags_t flags = enable_sensors.dt_flags | GPIO_OUTPUT_HIGH | GPIO_ACTIVE_HIGH | NRF_GPIO_DRIVE_H0H1;
15-
Serial.println((uint32_t)flags, HEX);
16-
15+
1716
gpio_pin_configure(enable_sensors.port, enable_sensors.pin, flags);
1817
gpio_pin_set(enable_sensors.port, enable_sensors.pin, HIGH);
19-
//Serial.println("### Sensor pin enabled ###");
2018

2119
delay(500);
2220
}

variants/arduino_opta_stm32h747xx_m7/arduino_opta_stm32h747xx_m7.conf

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,18 @@
1-
CONFIG_USB_DEVICE_STACK=y
1+
CONFIG_USB_DEVICE_STACK_NEXT=y
22
CONFIG_USB_DEVICE_PRODUCT="Arduino Opta"
33
CONFIG_USB_DEVICE_MANUFACTURER="Arduino"
44
CONFIG_USB_DEVICE_VID=0x2341
55
CONFIG_USB_DEVICE_PID=0x0064
66

7-
CONFIG_USB_CDC_ACM=y
8-
CONFIG_USB_CDC_ACM_RINGBUF_SIZE=512
9-
CONFIG_UART_LINE_CTRL=y
7+
# Get rid of old USB stack
8+
CONFIG_BOARD_SERIAL_BACKEND_CDC_ACM=n
9+
10+
CONFIG_USBD_CDC_ACM_CLASS=y
1011
CONFIG_CDC_ACM_DTE_RATE_CALLBACK_SUPPORT=y
12+
CONFIG_USBD_CDC_ACM_LOG_LEVEL_ERR=y
13+
CONFIG_UDC_DRIVER_LOG_LEVEL_ERR=y
14+
CONFIG_USBD_LOG_LEVEL_ERR=y
15+
CONFIG_UART_LINE_CTRL=y
1116

1217
CONFIG_LLEXT_STORAGE_WRITABLE=n
1318

variants/arduino_portenta_h7_stm32h747xx_m7/arduino_portenta_h7_stm32h747xx_m7.conf

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,18 @@
1-
CONFIG_USB_DEVICE_STACK=y
1+
CONFIG_USB_DEVICE_STACK_NEXT=y
22
CONFIG_USB_DEVICE_PRODUCT="Arduino Portenta H7"
33
CONFIG_USB_DEVICE_MANUFACTURER="Arduino"
44
CONFIG_USB_DEVICE_VID=0x2341
55
CONFIG_USB_DEVICE_PID=0x005b
66

7-
CONFIG_USB_CDC_ACM=y
8-
CONFIG_USB_CDC_ACM_RINGBUF_SIZE=512
9-
CONFIG_UART_LINE_CTRL=y
7+
# Get rid of old USB stack
8+
CONFIG_BOARD_SERIAL_BACKEND_CDC_ACM=n
9+
10+
CONFIG_USBD_CDC_ACM_CLASS=y
1011
CONFIG_CDC_ACM_DTE_RATE_CALLBACK_SUPPORT=y
12+
CONFIG_USBD_CDC_ACM_LOG_LEVEL_ERR=y
13+
CONFIG_UDC_DRIVER_LOG_LEVEL_ERR=y
14+
CONFIG_USBD_LOG_LEVEL_ERR=y
15+
CONFIG_UART_LINE_CTRL=y
1116

1217
CONFIG_LLEXT_STORAGE_WRITABLE=n
1318

variants/frdm_mcxn947_mcxn947_cpu0/frdm_mcxn947_mcxn947_cpu0.conf

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,17 +5,20 @@ CONFIG_BUILD_NO_GAP_FILL=y
55
CONFIG_FLASH=y
66

77
#CONFIG_USB_DC_NXP_EHCI=y
8-
CONFIG_USB_DEVICE_STACK=y
8+
CONFIG_USB_DEVICE_STACK_NEXT=y
99
CONFIG_USB_DEVICE_PRODUCT="Freedom MCXN947"
1010
CONFIG_USB_DEVICE_MANUFACTURER="NXP"
1111
CONFIG_USB_DEVICE_VID=0x2341
1212
CONFIG_USB_DEVICE_PID=0x0078
1313
CONFIG_USB_DEVICE_INITIALIZE_AT_BOOT=n
1414

15-
CONFIG_USB_CDC_ACM=y
16-
CONFIG_USB_CDC_ACM_RINGBUF_SIZE=512
17-
CONFIG_UART_LINE_CTRL=y
15+
CONFIG_USBD_CDC_ACM_CLASS=y
1816
CONFIG_CDC_ACM_DTE_RATE_CALLBACK_SUPPORT=y
17+
CONFIG_USBD_CDC_ACM_LOG_LEVEL_ERR=y
18+
CONFIG_UDC_DRIVER_LOG_LEVEL_ERR=y
19+
CONFIG_USBD_LOG_LEVEL_ERR=y
20+
CONFIG_UART_LINE_CTRL=y
21+
1922
CONFIG_USB_MCUX_THREAD_STACK_SIZE=4096
2023

2124
CONFIG_LLEXT_STORAGE_WRITABLE=n

variants/frdm_rw612_rw612/frdm_rw612_rw612.conf

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,18 +4,19 @@ CONFIG_BUILD_OUTPUT_HEX=y
44
CONFIG_FLASH=y
55

66
#CONFIG_USB_DC_NXP_EHCI=y
7-
CONFIG_USB_DEVICE_STACK=y
7+
CONFIG_USB_DEVICE_STACK_NEXT=y
88
CONFIG_USB_DEVICE_PRODUCT="Freedom RW612"
99
CONFIG_USB_DEVICE_MANUFACTURER="NXP"
1010
CONFIG_USB_DEVICE_VID=0x2341
1111
CONFIG_USB_DEVICE_PID=0x0079
1212
CONFIG_USB_DEVICE_INITIALIZE_AT_BOOT=n
1313

14-
CONFIG_USB_CDC_ACM=y
15-
CONFIG_USB_CDC_ACM_RINGBUF_SIZE=512
16-
CONFIG_UART_LINE_CTRL=y
14+
CONFIG_USBD_CDC_ACM_CLASS=y
1715
CONFIG_CDC_ACM_DTE_RATE_CALLBACK_SUPPORT=y
18-
CONFIG_USB_MCUX_THREAD_STACK_SIZE=4096
16+
CONFIG_USBD_CDC_ACM_LOG_LEVEL_ERR=y
17+
CONFIG_UDC_DRIVER_LOG_LEVEL_ERR=y
18+
CONFIG_USBD_LOG_LEVEL_ERR=y
19+
CONFIG_UART_LINE_CTRL=y
1920

2021
CONFIG_LLEXT_STORAGE_WRITABLE=y
2122
CONFIG_STACK_USAGE=n

0 commit comments

Comments
 (0)