diff options
author | Ruslan Trofymenko | 2019-07-10 15:38:05 -0500 |
---|---|---|
committer | android-build-merger | 2019-07-10 15:38:05 -0500 |
commit | 51f573d48304609368dafac740c79a86e78ac894 (patch) | |
tree | a0c0214667af6171248826807cd7a3225927fd11 | |
parent | 3fb13d1fe6060612aadd168dbbee5544cf308181 (diff) | |
parent | 2dc6da91a08f50cad8b67cc7f7fc55dd0fece4ff (diff) | |
download | u-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.h | 58 |
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 | ||