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

Update fastboot documentation to reflect merged USB/UDP implementation. Bring in current Android fastboot protocol document.
Signed-off-by: Alex Kiernan alex.kiernan@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
participants (1)
-
Alex Kiernan