[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