aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRuslan Trofymenko2019-07-10 15:38:05 -0500
committerandroid-build-merger2019-07-10 15:38:05 -0500
commit51f573d48304609368dafac740c79a86e78ac894 (patch)
treea0c0214667af6171248826807cd7a3225927fd11
parent3fb13d1fe6060612aadd168dbbee5544cf308181 (diff)
parent2dc6da91a08f50cad8b67cc7f7fc55dd0fece4ff (diff)
downloadu-boot-51f573d48304609368dafac740c79a86e78ac894.tar.gz
u-boot-51f573d48304609368dafac740c79a86e78ac894.tar.xz
u-boot-51f573d48304609368dafac740c79a86e78ac894.zip
FROMLIST: env: am57xx: Implement A/B boot process
am: 2dc6da91a0 Change-Id: If70fc1d3b338920b75d9ee64556607f44d4bd7d0
-rw-r--r--include/environment/ti/boot.h58
1 files changed, 52 insertions, 6 deletions
diff --git a/include/environment/ti/boot.h b/include/environment/ti/boot.h
index a6b245b1c7..54e9b2de4d 100644
--- a/include/environment/ti/boot.h
+++ b/include/environment/ti/boot.h
@@ -23,6 +23,18 @@
23#define VBMETA_PART "" 23#define VBMETA_PART ""
24#endif 24#endif
25 25
26#if defined(CONFIG_CMD_AB_SELECT)
27#define COMMON_PARTS \
28 "name=boot_a,size=20M,uuid=${uuid_gpt_boot_a};" \
29 "name=boot_b,size=20M,uuid=${uuid_gpt_boot_b};" \
30 "name=system_a,size=1024M,uuid=${uuid_gpt_system_a};" \
31 "name=system_b,size=1024M,uuid=${uuid_gpt_system_b};"
32#else
33#define COMMON_PARTS \
34 "name=boot,size=20M,uuid=${uuid_gpt_boot};" \
35 "name=system,size=1024M,uuid=${uuid_gpt_system};"
36#endif
37
26#ifndef PARTS_DEFAULT 38#ifndef PARTS_DEFAULT
27/* Define the default GPT table for eMMC */ 39/* Define the default GPT table for eMMC */
28#define PARTS_DEFAULT \ 40#define PARTS_DEFAULT \
@@ -38,8 +50,7 @@
38 "name=uboot-env,start=2432K,size=256K,uuid=${uuid_gpt_reserved};" \ 50 "name=uboot-env,start=2432K,size=256K,uuid=${uuid_gpt_reserved};" \
39 "name=misc,size=128K,uuid=${uuid_gpt_misc};" \ 51 "name=misc,size=128K,uuid=${uuid_gpt_misc};" \
40 "name=recovery,size=40M,uuid=${uuid_gpt_recovery};" \ 52 "name=recovery,size=40M,uuid=${uuid_gpt_recovery};" \
41 "name=boot,size=20M,uuid=${uuid_gpt_boot};" \ 53 COMMON_PARTS \
42 "name=system,size=1024M,uuid=${uuid_gpt_system};" \
43 "name=vendor,size=256M,uuid=${uuid_gpt_vendor};" \ 54 "name=vendor,size=256M,uuid=${uuid_gpt_vendor};" \
44 VBMETA_PART \ 55 VBMETA_PART \
45 "name=userdata,size=-,uuid=${uuid_gpt_userdata}" 56 "name=userdata,size=-,uuid=${uuid_gpt_userdata}"
@@ -58,6 +69,35 @@
58#define AVB_VERIFY_CMD "" 69#define AVB_VERIFY_CMD ""
59#endif 70#endif
60 71
72#define CONTROL_PARTITION "misc"
73
74#if defined(CONFIG_CMD_AB_SELECT)
75#define AB_SELECT \
76 "if part number mmc 1 " CONTROL_PARTITION " control_part_number; " \
77 "then " \
78 "echo " CONTROL_PARTITION \
79 " partition number:${control_part_number};" \
80 "ab_select slot_name mmc ${mmcdev}:${control_part_number};" \
81 "else " \
82 "echo " CONTROL_PARTITION " partition not found;" \
83 "exit;" \
84 "fi;" \
85 "setenv slot_suffix _${slot_name};" \
86 "if part number mmc ${mmcdev} system${slot_suffix} " \
87 "system_part_number; then " \
88 "setenv bootargs_ab " \
89 "ro root=/dev/mmcblk${mmcdev}p${system_part_number} " \
90 "rootwait init=/init skip_initramfs " \
91 "androidboot.slot_suffix=${slot_suffix};" \
92 "echo A/B cmdline addition: ${bootargs_ab};" \
93 "setenv bootargs ${bootargs} ${bootargs_ab};" \
94 "else " \
95 "echo system${slot_suffix} partition not found;" \
96 "fi;"
97#else
98#define AB_SELECT ""
99#endif
100
61#define DEFAULT_COMMON_BOOT_TI_ARGS \ 101#define DEFAULT_COMMON_BOOT_TI_ARGS \
62 "console=" CONSOLEDEV ",115200n8\0" \ 102 "console=" CONSOLEDEV ",115200n8\0" \
63 "fdtfile=undefined\0" \ 103 "fdtfile=undefined\0" \
@@ -86,10 +126,16 @@
86 "mmc dev $mmcdev; " \ 126 "mmc dev $mmcdev; " \
87 "mmc rescan; " \ 127 "mmc rescan; " \
88 AVB_VERIFY_CHECK \ 128 AVB_VERIFY_CHECK \
89 "part start mmc ${mmcdev} boot boot_start; " \ 129 AB_SELECT \
90 "part size mmc ${mmcdev} boot boot_size; " \ 130 "if part start mmc ${mmcdev} boot${slot_suffix} boot_start; " \
91 "mmc read ${loadaddr} ${boot_start} ${boot_size}; " \ 131 "then " \
92 "bootm ${loadaddr}#${fdtfile};\0 " 132 "part size mmc ${mmcdev} boot${slot_suffix} " \
133 "boot_size; " \
134 "mmc read ${loadaddr} ${boot_start} ${boot_size}; " \
135 "bootm ${loadaddr}#${fdtfile}; " \
136 "else " \
137 "echo boot${slot_suffix} partition not found; " \
138 "fi;\0"
93 139
94#ifdef CONFIG_OMAP54XX 140#ifdef CONFIG_OMAP54XX
95 141