[U-Boot] [RFC PATCH v2 2/2] fastboot: Update fastboot documentation

Alex Kiernan alex.kiernan at gmail.com
Thu May 17 18:19:26 UTC 2018


Update fastboot documentation to reflect merged USB/UDP implementation.
Bring in current Android fastboot protocol document.

Signed-off-by: Alex Kiernan <alex.kiernan at gmail.com>
---

Changes in v2:
- new

 doc/README.android-fastboot | 80 +++++++++++++++++++++++++++++++--------------
 1 file changed, 55 insertions(+), 25 deletions(-)

diff --git a/doc/README.android-fastboot b/doc/README.android-fastboot
index 2c3ee78..ff6518e 100644
--- a/doc/README.android-fastboot
+++ b/doc/README.android-fastboot
@@ -1,35 +1,45 @@
+================
 Android Fastboot
-~~~~~~~~~~~~~~~~
+================
 
 Overview
 ========
-The protocol that is used over USB is described in
-README.android-fastboot-protocol in same directory.
+The protocol that is used over USB and UDP is described in the
+README.android-fastboot-protocol file in the same directory.
 
-The current implementation is a minimal support of the erase command,the
-"oem format" command and flash command;it only supports eMMC devices.
+The current implementation supports the following standard commands:
+
+- boot
+- continue
+- download
+- erase (if enabled)
+- flash (if enabled)
+- getvar
+- reboot
+- reboot-bootloader
+- set_active (only a stub implementation which always succeeds)
+
+The following OEM commands are supported (if enabled):
+
+- oem format - this executes 'gpt write mmc %x $partitions'
+
+Support for both eMMC and NAND devices is included.
 
 Client installation
 ===================
-The counterpart to this gadget is the fastboot client which can
-be found in Android's platform/system/core repository in the fastboot
-folder. It runs on Windows, Linux and even OSX. Linux user are lucky since
-they only need libusb.
-Windows users need to bring some time until they have Android SDK (currently
-http://dl.google.com/android/installer_r12-windows.exe) installed. You
-need to install ADB package which contains the required glue libraries for
-accessing USB. Also you need "Google USB driver package" and "SDK platform
-tools". Once installed the usb driver is placed in your SDK folder under
-extras\google\usb_driver. The android_winusb.inf needs a line like
-
-   %SingleBootLoaderInterface% = USB_Install, USB\VID_0451&PID_D022
-
-either in the [Google.NTx86] section for 32bit Windows or [Google.NTamd64]
-for 64bit Windows. VID and PID should match whatever the fastboot is
-advertising.
+
+The counterpart to this is the fastboot client which can be found in
+Android's platform/system/core repository in the fastboot folder. It runs on
+Windows, Linux and even OSX. The fastboot client is part of the Android
+SDK Platform-Tools and can be downloaded from:
+
+https://developer.android.com/studio/releases/platform-tools
 
 Board specific
 ==============
+
+USB configuration
+-----------------
 The fastboot gadget relies on the USB download gadget, so the following
 options must be configured:
 
@@ -42,14 +52,19 @@ NOTE: The CONFIG_USB_GADGET_VENDOR_NUM must be one of the numbers supported by
 the fastboot client. The list of vendor IDs supported can be found in the
 fastboot client source code (fastboot.c) mentioned above.
 
-The fastboot function is enabled by defining CONFIG_USB_FUNCTION_FASTBOOT,
-CONFIG_CMD_FASTBOOT and CONFIG_ANDROID_BOOT_IMAGE.
-
+General configuration
+---------------------
 The fastboot protocol requires a large memory buffer for downloads. This
 buffer should be as large as possible for a platform. The location of the
 buffer and size are set with CONFIG_FASTBOOT_BUF_ADDR and
-CONFIG_FASTBOOT_BUF_SIZE.
+CONFIG_FASTBOOT_BUF_SIZE. These may be overridden on the fastboot command
+line using -l and -s.
+
+Fastboot environment variables
+==============================
 
+Partition aliases
+-----------------
 Fastboot partition aliases can also be defined for devices where GPT
 limitations prevent user-friendly partition names such as "boot", "system"
 and "cache".  Or, where the actual partition name doesn't match a standard
@@ -59,6 +74,21 @@ To define a partition alias add an environment variable similar to:
 fastboot_partition_alias_<alias partition name>=<actual partition name>
 Example: fastboot_partition_alias_boot=LNX
 
+Variable overrides
+------------------
+Variables retrived through getvar can be overridden by defining environment
+variables of the form "fastboot.<variable>". These are looked up first so
+can be used to override values which would otherwise be returned. Using this
+mechanism you can also return types for NAND filesystems, as the fully
+parameterised variable is looked up, e.g.
+
+fastboot.partition-type:boot=jffs2
+
+Boot command
+------------
+When executing the fastboot 'boot' command, if fastboot_bootcmd is set then
+that will be executed in place of bootm <CONFIG_FASTBOOT_BUF_ADDR>.
+
 Partition Names
 ===============
 The Fastboot implementation in U-boot allows to write images into disk
-- 
2.7.4



More information about the U-Boot mailing list