mirror of
				https://github.com/smaeul/u-boot.git
				synced 2025-11-04 05:50:17 +00:00 
			
		
		
		
	Add initial documentation for the Android bootmeth. Signed-off-by: Mattijs Korpershoek <mkorpershoek@baylibre.com> Reviewed-by: Simon Glass <sjg@chromium.org>
		
			
				
	
	
		
			40 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			ReStructuredText
		
	
	
	
	
	
			
		
		
	
	
			40 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			ReStructuredText
		
	
	
	
	
	
.. SPDX-License-Identifier: GPL-2.0+:
 | 
						|
 | 
						|
Android Bootmeth
 | 
						|
================
 | 
						|
 | 
						|
Android provides a mechanism for booting its Operating System from eMMC storage,
 | 
						|
described on `source.android.com <https://source.android.com/docs/core/architecture/bootloader>`_.
 | 
						|
 | 
						|
Android has strong requirements about partitioning layout which are described
 | 
						|
`here <https://source.android.com/docs/core/architecture/partitions>`_.
 | 
						|
Because multiple partitions are required, this bootmeth only operates on whole mmc
 | 
						|
devices which have a valid partition table.
 | 
						|
 | 
						|
When invoked on a bootdev, this bootmeth searches for the ``misc`` partition in order
 | 
						|
to read the *boot mode*, which can be one of following:
 | 
						|
 | 
						|
Normal
 | 
						|
  Boot the regular Android Operating System.
 | 
						|
 | 
						|
Recovery
 | 
						|
  Boot a slimmed down Recovery Operating System. Can be used
 | 
						|
  to factory reset the device or to apply system updates.
 | 
						|
 | 
						|
Bootloader
 | 
						|
  Stay in U-Boot and wait for fastboot commands from the host.
 | 
						|
 | 
						|
After the *boot mode* has been determined, this bootmeth will read the *slot suffix*
 | 
						|
from the ``misc`` partition. For details about slots, see
 | 
						|
`the AOSP documentation <https://source.android.com/docs/core/ota/ab#slots>`_.
 | 
						|
 | 
						|
When both the *boot mode* and the *slot suffix* are known, the bootflow is created.
 | 
						|
 | 
						|
When the bootflow is booted, the bootmeth reads the kernel, the boot arguments and
 | 
						|
the vendor ramdisk.
 | 
						|
It then boots the kernel using bootm. The relevant devicetree blob is extracted
 | 
						|
from the ``boot`` partition based on the ``adtb_idx`` environment variable.
 | 
						|
 | 
						|
The compatible string "u-boot,android" is used for the driver. It is present
 | 
						|
if `CONFIG_BOOTMETH_ANDROID` is enabled.
 |