
On Mon, 18 Feb 2019 at 09:22, Igor Opaniuk igor.opaniuk@linaro.org wrote:
From: Ruslan Trofymenko ruslan.trofymenko@linaro.org
Add support for A/B boot process on AM57xx based boards:
- Define 'slot_suffix' variable (using 'ab_select' command)
- Extend 'emmc_android_boot' boot command (add commands for A/B boot process)
'ab_select' command is used to decide which slot should be used for booting up. A/B metadata resides in 'misc' partition.
To activate the A/B boot process, the following config options must be set:
CONFIG_ANDROID_AB=y CONFIG_CMD_AB_SELECT=y
For successful A/B boot, the corresponding A/B infrastructure must be involved on Android side [1] (including mounting system as root), and disk must be partitioned accordingly.
When A/B boot is enabled, there are some known limitations currently exist (not related to A/B patches, need to be implemented later):
- The 'Verified Boot' sequence is not supported
- dev path to system partition (system_a or system_b) is passed via 'bootargs' as 'root=' argument like 'root=/dev/mmcblk1p12', but further we'll need to rework it with respect to dm-verity requirements [2]
In case when A/B partitions are not present in system (and A/B boot is enabled), boot up process will be terminated and next message will be shown:
"boot_a(b) partition not found"
[1] https://source.android.com/devices/tech/ota/ab [2] https://source.android.com/devices/tech/ota/ab/ab_implement#kernel
Signed-off-by: Ruslan Trofymenko ruslan.trofymenko@linaro.org Signed-off-by: Igor Opaniuk igor.opaniuk@linaro.org Reviewed-by: Alistair Strachan astrachan@google.com Reviewed-by: Sam Protsenko semen.protsenko@linaro.org
Changes in v3: None
Changes in v2:
- Add changes related to command renaming (android_ab_select -> ab_select).
- Slotted sections (e.g. system_a and system_b) are added to the default sections if CONFIG_CMD_AB_SELECT flag is defined
- Rebased on top of master
- system partitions sizes increased to 1024 MiB (to be consistent with recent changes to boot.h file)
include/environment/ti/boot.h | 58 ++++++++++++++++++++++++++++++++++++++----- 1 file changed, 52 insertions(+), 6 deletions(-)
Reviewed-by: Simon Glass sjg@chromium.org