[U-Boot] strawman Fastboot in U-Boot Design Doc

John Rigby john.rigby at linaro.org
Fri Apr 29 03:07:24 CEST 2011

Here a first draft design doc.  It is based in part on the Fastboot
implementation in the rowboat git repo (pointer below).

As always, comments welcome.


Mainline support for Android Fastboot would be useful.  Arguing the merits
of Fastboot vs DFU is not in the scope of this document.  This document
is to discuss design goals/requirements of an implementation of
Fastboot in U-Boot.


See the Android Fastboot page in Omappedia for an example of how
Fastboot is used to flash nand partitions on an Android device.

A description of the Fastboot protocol is available in the gitorious
rowboat git repo.

Hooks into U-Boot

Fastboot gets access to the USB subsystem via the same interfaces as USB_TTY,
namely the udc_* api's:


Fastboot will be started on the target by issuing the "fastboot" command.
Optionally a board specific startup method may exist.  For example if
a certain combination of keys is pressed on reset then fastboot will be
started immediately.


Once started the fastboot command will continue until:
	<CTRL-C> is typed on the console
	a "continue" command is sent from the host
	usb cable is removed
	no commands have been sent from the host for some configurable timeout
Coexistance With USB_TTY and DFU

One should be able to enable USB_TTY, DFU and Fastboot at compile time
and chose one at runtime.


Should a Fastboot host program be included in the U-Boot source?
Could Fastboot be implemented as an extension to USB_TTY?
Could Fastboot, DFU and USB_TTY share a layer of code above the
udc_* api's?

More information about the U-Boot mailing list