vboot/ui: implement disk recovery screens

Implement disk recovery screens for all the 3 steps.

BRANCH=none
BUG=b:146399181
TEST=USE="menu_ui" emerge-nami depthcharge

Change-Id: Iea8fe4650cecb63ea519084ec8a71325ba4e3ebb
Signed-off-by: Yu-Ping Wu <yupingso@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/vboot_reference/+/2211981
Reviewed-by: Joel Kitching <kitching@chromium.org>
diff --git a/firmware/2lib/2ui_screens.c b/firmware/2lib/2ui_screens.c
index 612a08c..50281e0 100644
--- a/firmware/2lib/2ui_screens.c
+++ b/firmware/2lib/2ui_screens.c
@@ -25,6 +25,16 @@
 	.is_language_select = 1, \
 }
 
+#define NEXT_ITEM(target_screen) { \
+	.text = "Next", \
+	.target = (target_screen), \
+}
+
+#define BACK_ITEM { \
+	.text = "Back", \
+	.action = vb2_ui_change_root, \
+}
+
 #define ADVANCED_OPTIONS_ITEM { \
 	.text = "Advanced options", \
 	.target = VB2_SCREEN_ADVANCED_OPTIONS, \
@@ -153,10 +163,7 @@
 		.text = "Enable developer mode",
 		.target = VB2_SCREEN_RECOVERY_TO_DEV,
 	},
-	[ADVANCED_OPTIONS_ITEM_BACK] = {
-		.text = "Back",
-		.action = vb2_ui_change_root,
-	},
+	[ADVANCED_OPTIONS_ITEM_BACK] = BACK_ITEM,
 };
 
 static const struct vb2_screen_info advanced_options_screen = {
@@ -341,6 +348,8 @@
 
 static const struct vb2_menu_item recovery_disk_step1_items[] = {
 	LANGUAGE_SELECT_ITEM,
+	NEXT_ITEM(VB2_SCREEN_RECOVERY_DISK_STEP2),
+	BACK_ITEM,
 };
 
 static const struct vb2_screen_info recovery_disk_step1_screen = {
@@ -350,6 +359,35 @@
 };
 
 /******************************************************************************/
+/* VB2_SCREEN_RECOVERY_DISK_STEP2 */
+
+static const struct vb2_menu_item recovery_disk_step2_items[] = {
+	LANGUAGE_SELECT_ITEM,
+	NEXT_ITEM(VB2_SCREEN_RECOVERY_DISK_STEP3),
+	BACK_ITEM,
+};
+
+static const struct vb2_screen_info recovery_disk_step2_screen = {
+	.id = VB2_SCREEN_RECOVERY_DISK_STEP2,
+	.name = "Disk recovery step 2",
+	.menu = MENU_ITEMS(recovery_disk_step2_items),
+};
+
+/******************************************************************************/
+/* VB2_SCREEN_RECOVERY_DISK_STEP3 */
+
+static const struct vb2_menu_item recovery_disk_step3_items[] = {
+	LANGUAGE_SELECT_ITEM,
+	BACK_ITEM,
+};
+
+static const struct vb2_screen_info recovery_disk_step3_screen = {
+	.id = VB2_SCREEN_RECOVERY_DISK_STEP3,
+	.name = "Disk recovery step 3",
+	.menu = MENU_ITEMS(recovery_disk_step3_items),
+};
+
+/******************************************************************************/
 /* VB2_SCREEN_DEVELOPER_MODE */
 
 #define DEVELOPER_MODE_ITEM_RETURN_TO_SECURE 1
@@ -536,6 +574,8 @@
 	&recovery_to_dev_screen,
 	&recovery_phone_step1_screen,
 	&recovery_disk_step1_screen,
+	&recovery_disk_step2_screen,
+	&recovery_disk_step3_screen,
 	&developer_mode_screen,
 	&developer_to_norm_screen,
 };