[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.
John
Purpose
=======
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.
Background
==========
See the Android Fastboot page in Omappedia for an example of how
Fastboot is used to flash nand partitions on an Android device.
http://www.omappedia.org/wiki/Android_Fastboot
A description of the Fastboot protocol is available in the gitorious
rowboat git repo.
http://gitorious.org/rowboat/bootable-bootloader-legacy/blobs/master/fastboot_protocol.txt
Hooks into U-Boot
=================
Fastboot gets access to the USB subsystem via the same interfaces as USB_TTY,
namely the udc_* api's:
udc_init
udc_startup_events
udc_connect
udc_poll
udc_setup_ep
etc.
Startup
=======
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.
Shutdown
========
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.
Questions
========
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