[PATCH v4 0/5] Add fastboot to SPL
Carlo Caione <[email protected]>
| Newsgroups | org.u-boot-project.lists.u-boot |
|---|---|
| Message-ID | <20260820-ccaione-upstream-spl-fastboot-v4-0-57e5ef71c74d@baylibre.com> |
Some recovery and initial-provisioning flows need a standard host protocol
before usable firmware is available in persistent storage. U-Boot already
provides fastboot, but the implementation can currently be started only
from the U-Boot-proper command line.
This series makes USB fastboot available as an opt-in SPL service,
including MMC partition flashing and Android sparse images. The interface
is kept deliberately narrower in SPL: it does not support the boot command
or filesystem probing, and reboot support remains platform-dependent.
The first four patches separate the generic preparation from SPL
enablement. They factor out the USB session runner, route USB reboot
through the common handler, make shared fastboot configuration phase-aware,
and add phase-aware sparse-image support. The final patch then contains the
SPL-specific Kconfig, gadget behavior, and documentation.
No fastboot code or supporting library is added to SPL when SPL_FASTBOOT is
disabled, so the feature has no size cost for existing SPL builds.
---
Changes in v4:
- Drop RFC status.
- Make the USB fastboot helper and gadget build rules phase-aware.
- Use a separate command table for the SPL-supported command subset.
- Document the commands available in SPL.
- Apply the requested Makefile, annotation and preprocessor cleanups.
- Link to v3: https://patch.msgid.link/20260731-ccaione-upstream-spl-fastboot-v3-0-dbea3ff4529e@baylibre.com
Changes in v3:
- Rename the USB session helper to fastboot_usb_run().
- Initialize UDP and TCP sessions in their transport helpers.
- Remove a redundant USB session return assignment.
- Collect the Reviewed-by tag.
- Link to v2: https://patch.msgid.link/20260722-ccaione-upstream-spl-fastboot-v2-0-2ba3f71c42bc@baylibre.com
Changes in v2:
- Split the common USB session runner into a prerequisite patch.
- Route USB reboot through the common fastboot handler separately.
- Split phase-aware fastboot configuration and build rules.
- Split phase-aware Android sparse-image support.
- Keep SPL-specific behavior in the final patch.
- No functional change from v1.
- Link to v1: https://patch.msgid.link/20260719-ccaione-upstream-spl-fastboot-v1-1-c9bab5b0ba72@baylibre.com
---
Carlo Caione (5):
fastboot: factor out the USB session runner
fastboot: use the common handler for USB reboot
fastboot: make shared configuration checks phase-aware
image: sparse: add phase-aware SPL support
fastboot: add SPL support
cmd/fastboot.c | 53 +++-------------------
doc/android/fastboot.rst | 31 +++++++++++++
drivers/Makefile | 2 +-
drivers/fastboot/Kconfig | 92 +++++++++++++++++++++++++++++++++++++-
drivers/fastboot/Makefile | 9 ++--
drivers/fastboot/fb_block.c | 9 ++--
drivers/fastboot/fb_command.c | 97 ++++++++++++++++++++++++++++++++---------
drivers/fastboot/fb_common.c | 23 +++++++++-
drivers/fastboot/fb_getvar.c | 19 +++++---
drivers/fastboot/fb_mmc.c | 36 +++++++--------
drivers/fastboot/fb_usb.c | 66 ++++++++++++++++++++++++++++
drivers/usb/gadget/Makefile | 2 +-
drivers/usb/gadget/f_fastboot.c | 6 ++-
include/fastboot.h | 10 +++++
lib/Kconfig | 11 +++++
lib/Makefile | 3 +-
lib/image-sparse.c | 2 +-
17 files changed, 360 insertions(+), 111 deletions(-)
---
base-commit: 527115ef6783cec49e5610c523c124b399011361
change-id: 20260718-ccaione-upstream-spl-fastboot-14fa2b6b2b64
Best regards,
--
Carlo Caione <[email protected]>