mirror of
https://github.com/apache/nuttx.git
synced 2026-10-03 12:18:06 +00:00
Add a CDC/ACM (console) + USB fastboot (ADB "fastboot" personality) composite device to the shared rp2040_composite.c board glue, and a new "fastboot_usb" defconfig for waveshare-rp2040-zero and waveshare-rp2040-lcd-1.28. - boards/arm/rp2040/common/src/rp2040_composite.c: add a third composite slot for CONFIG_USBADB (covers both plain ADB and, with CONFIG_USBFASTBOOT, the "fastboot" personality of the same driver) alongside the existing MSC/CDC-ACM slots. While adding this, fixed a latent bug: the CDC/ACM block never advanced ifnobase/ strbase after filling in its own slot, because CDC/ACM used to always be the *last* device in the composite (nothing downstream ever needed the incremented values). Now that a device can follow CDC/ACM, the missing increment caused the fastboot interface to be assigned the same USB interface number as CDC/ACM's control interface (both 0), which the Linux kernel rejects with "Duplicate descriptor for config 1 interface 0 altsetting 0, skipping" and drops the fastboot interface entirely (confirmed via lsusb -v and disassembly of the generated board_composite_connect() code). - boards/arm/rp2040/waveshare-rp2040-zero/configs/fastboot_usb and boards/arm/rp2040/waveshare-rp2040-lcd-1.28/configs/fastboot_usb: new defconfig booting directly into fastbootd (CONFIG_INIT_ENTRYPOINT="fastbootd_main", no nsh) which brings up the CDC/ACM + fastboot composite via CONFIG_SYSTEM_FASTBOOTD_USB_BOARDCTL as soon as fastbootd starts, so the CDC/ACM sub-interface still provides a console for boot/ fastbootd log visibility without requiring a wired UART, while the fastboot vendor interface is what `fastboot devices`/`getvar` talk to. Assisted-by: OpenCode:claude-sonnet-5 Signed-off-by: wangjianyu3 <wangjianyu3@xiaomi.com> |
||
|---|---|---|
| .. | ||
| adafruit-feather-rp2040 | ||
| adafruit-kb2040 | ||
| adafruit-qt-py-rp2040 | ||
| common | ||
| pimoroni-tiny2040 | ||
| raspberrypi-pico | ||
| raspberrypi-pico-w | ||
| seeed-xiao-rp2040 | ||
| w5500-evb-pico | ||
| waveshare-rp2040-lcd-1.28 | ||
| waveshare-rp2040-zero | ||