nuttx/boards
wangjianyu3 cab92d310d boards/rp2040: add USB fastboot composite support for waveshare boards
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>
2026-09-08 08:22:37 -03:00
..
arm boards/rp2040: add USB fastboot composite support for waveshare boards 2026-09-08 08:22:37 -03:00
arm64 boards/imx93-evk: disable work queues in bootloader 2026-09-04 23:02:48 +08:00
avr !arch/arm: Use r9 as the PIC base register. 2026-08-06 01:38:23 +08:00
dummy
hc/m9s12 !arch/arm: Use r9 as the PIC base register. 2026-08-06 01:38:23 +08:00
mips arch/mips/jz4780: Add HDMI EDID parsing and dynamic display modes 2026-08-29 11:08:25 -03:00
misoc/lm32/misoc !libc/stream: remove CONFIG_LIBC_LONG_LONG and always support long long 2026-05-19 16:21:28 +08:00
or1k/mor1kx/or1k !arch/arm: Use r9 as the PIC base register. 2026-08-06 01:38:23 +08:00
renesas !arch/arm: Use r9 as the PIC base register. 2026-08-06 01:38:23 +08:00
risc-v arch/risc-v/eic7700x: Add CPU core clock control. 2026-09-07 10:03:33 -03:00
sim/sim/sim arch, boards, cmake: Build C++ ELF modules without __cxa_atexit. 2026-09-04 15:44:24 -03:00
sparc !libc/stream: remove CONFIG_LIBC_LONG_LONG and always support long long 2026-05-19 16:21:28 +08:00
tricore !sched/clock: remove CONFIG_SYSTEM_TIME64 and always use 64-bit time 2026-05-19 16:21:28 +08:00
x86/qemu/qemu-i486 boards/comments: Remove legacy comments 2026-05-04 12:16:11 -03:00
x86_64/qemu/qemu-intel64 fs: rename PSEUDOFS_SOFTLINKS to FS_LINKS 2026-08-27 01:12:33 +08:00
xtensa arch, boards, cmake: Build C++ ELF modules without __cxa_atexit. 2026-09-04 15:44:24 -03:00
z16/z16f/z16f2800100zcog boards/z16: Replace board_app_initialize 2026-05-02 18:36:46 +08:00
z80 boards/comments: Remove legacy comments 2026-05-04 12:16:11 -03:00
.gitignore
Board.mk !tools/mkpasswd: PBKDF2 host tool and ROMFS passwd build integration 2026-07-21 20:19:14 +08:00
boardctl.c !boards/boardctl: Remove BOARDIOC_INIT 2026-05-26 09:57:29 +08:00
CMakeLists.txt cmake: Use NUTTX(_DIR/_BIN_DIR) instead CMAKE(_SRC_DIR/_BIN_DIR) 2026-08-09 11:13:08 -03:00
dummy.c boards: migrate to SPDX identifier 2024-11-12 22:20:59 +08:00
Kconfig boards/gd32vm55x: Add support to GD32VW553-HMQ 2026-09-03 07:27:43 +02:00
Makefile tools: fix stale archive members surviving a Kconfig-driven CSRCS change 2026-07-28 21:26:03 -03:00