mirror of
https://github.com/apache/nuttx.git
synced 2026-09-09 02:16:35 +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> |
||
|---|---|---|
| .. | ||
| arm | ||
| arm64 | ||
| avr | ||
| dummy | ||
| hc/m9s12 | ||
| mips | ||
| misoc/lm32/misoc | ||
| or1k/mor1kx/or1k | ||
| renesas | ||
| risc-v | ||
| sim/sim/sim | ||
| sparc | ||
| tricore | ||
| x86/qemu/qemu-i486 | ||
| x86_64/qemu/qemu-intel64 | ||
| xtensa | ||
| z16/z16f/z16f2800100zcog | ||
| z80 | ||
| .gitignore | ||
| Board.mk | ||
| boardctl.c | ||
| CMakeLists.txt | ||
| dummy.c | ||
| Kconfig | ||
| Makefile | ||