diff options
| author | Eugeniu Rosca <[email protected]> | 2019-05-23 17:32:23 +0200 |
|---|---|---|
| committer | Tom Rini <[email protected]> | 2019-07-11 14:11:19 -0400 |
| commit | 9bdf0e8fef8683f147bb11c61242dde67d1be291 (patch) | |
| tree | 0a4c6072e08dc363fa20dc4d5b153bea2ee65f2b /doc/README.android-fastboot | |
| parent | db7b7a05b2671c63cd49955dee58157045c68f05 (diff) | |
doc: relocate/rename Android README and add BCB overview
Rename:
- doc/{README.avb2 => android/avb2.txt}
- doc/{README.android-fastboot => android/fastboot.txt}
Add a new file documenting the 'bcb' command:
- doc/android/bcb.txt
The new directory structure has been reviewed by Simon in
https://patchwork.ozlabs.org/patch/1101107/#2176031 .
Signed-off-by: Eugeniu Rosca <[email protected]>
Reviewed-by: Simon Glass <[email protected]>
Diffstat (limited to 'doc/README.android-fastboot')
| -rw-r--r-- | doc/README.android-fastboot | 214 |
1 files changed, 0 insertions, 214 deletions
diff --git a/doc/README.android-fastboot b/doc/README.android-fastboot deleted file mode 100644 index 431191c473f..00000000000 --- a/doc/README.android-fastboot +++ /dev/null @@ -1,214 +0,0 @@ -================ -Android Fastboot -================ - -Overview -======== - -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 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 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 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: - -:: - - CONFIG_USB_GADGET_DOWNLOAD - CONFIG_USB_GADGET_VENDOR_NUM - CONFIG_USB_GADGET_PRODUCT_NUM - CONFIG_USB_GADGET_MANUFACTURER - -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. - -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``. 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 -partition name used commonly with fastboot. - -The current implementation checks aliases when accessing partitions by -name (flash_write and erase functions). To define a partition alias -add an environment variable similar to: - -``fastboot_partition_alias_<alias partition name>=<actual partition name>`` - -for 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 -partitions. Target partitions are referred on the host computer by -their names. - -For GPT/EFI the respective partition name is used. - -For MBR the partitions are referred by generic names according to the -following schema: - - <device type><device index letter><partition index> - -Example: ``hda3``, ``sdb1``, ``usbda1`` - -The device type is as follows: - - * IDE, ATAPI and SATA disks: ``hd`` - * SCSI disks: ``sd`` - * USB media: ``usbd`` - * MMC and SD cards: ``mmcsd`` - * Disk on chip: ``docd`` - * other: ``xx`` - -The device index starts from ``a`` and refers to the interface (e.g. USB -controller, SD/MMC controller) or disk index. The partition index starts -from ``1`` and describes the partition number on the particular device. - -Writing Partition Table -======================= - -Fastboot also allows to write the partition table to the media. This can be -done by writing the respective partition table image to a special target -"gpt" or "mbr". These names can be customized by defining the following -configuration options: - -:: - - CONFIG_FASTBOOT_GPT_NAME - CONFIG_FASTBOOT_MBR_NAME - -In Action -========= - -Enter into fastboot by executing the fastboot command in U-Boot for either USB: - -:: - - => fastboot usb 0 - -or UDP: - -:: - - => fastboot udp - link up on port 0, speed 100, full duplex - Using ethernet@4a100000 device - Listening for fastboot command on 192.168.0.102 - -On the client side you can fetch the bootloader version for instance: - -:: - - $ fastboot getvar bootloader-version - bootloader-version: U-Boot 2014.04-00005-gd24cabc - finished. total time: 0.000s - -or initiate a reboot: - -:: - - $ fastboot reboot - -and once the client comes back, the board should reset. - -You can also specify a kernel image to boot. You have to either specify -the an image in Android format *or* pass a binary kernel and let the -fastboot client wrap the Android suite around it. On OMAP for instance you -take zImage kernel and pass it to the fastboot client: - -:: - - $ fastboot -b 0x80000000 -c "console=ttyO2 earlyprintk root=/dev/ram0 mem=128M" boot zImage - creating boot image... - creating boot image - 1847296 bytes - downloading 'boot.img'... - OKAY [ 2.766s] - booting... - OKAY [ -0.000s] - finished. total time: 2.766s - -and on the U-Boot side you should see: - -:: - - Starting download of 1847296 bytes - ........................................................ - downloading of 1847296 bytes finished - Booting kernel.. - ## Booting Android Image at 0x81000000 ... - Kernel load addr 0x80008000 size 1801 KiB - Kernel command line: console=ttyO2 earlyprintk root=/dev/ram0 mem=128M - Loading Kernel Image ... OK - OK - - Starting kernel ... |
