vboot/ui: implement phone recovery screens

Finish implementing phone recovery screen step 1, and
implement step 2.  (Step 3 is in initramfs.)

BUG=b:146399181
TEST=make clean && make runtests
BRANCH=none

Change-Id: I3b18aa0d6c5ec93cb9b69fec7976db434270db79
Signed-off-by: Joel Kitching <kitching@google.com>
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/vboot_reference/+/2220820
Commit-Queue: Joel Kitching <kitching@chromium.org>
Tested-by: Joel Kitching <kitching@chromium.org>
Reviewed-by: Yu-Ping Wu <yupingso@chromium.org>
diff --git a/firmware/2lib/2ui_screens.c b/firmware/2lib/2ui_screens.c
index 50281e0..61cbb0f 100644
--- a/firmware/2lib/2ui_screens.c
+++ b/firmware/2lib/2ui_screens.c
@@ -335,6 +335,8 @@
 
 static const struct vb2_menu_item recovery_phone_step1_items[] = {
 	LANGUAGE_SELECT_ITEM,
+	NEXT_ITEM(VB2_SCREEN_RECOVERY_PHONE_STEP2),
+	BACK_ITEM,
 };
 
 static const struct vb2_screen_info recovery_phone_step1_screen = {
@@ -344,6 +346,20 @@
 };
 
 /******************************************************************************/
+/* VB2_SCREEN_RECOVERY_PHONE_STEP2 */
+
+static const struct vb2_menu_item recovery_phone_step2_items[] = {
+	LANGUAGE_SELECT_ITEM,
+	BACK_ITEM,
+};
+
+static const struct vb2_screen_info recovery_phone_step2_screen = {
+	.id = VB2_SCREEN_RECOVERY_PHONE_STEP2,
+	.name = "Phone recovery step 2",
+	.menu = MENU_ITEMS(recovery_phone_step2_items),
+};
+
+/******************************************************************************/
 /* VB2_SCREEN_RECOVERY_DISK_STEP1 */
 
 static const struct vb2_menu_item recovery_disk_step1_items[] = {
@@ -573,6 +589,7 @@
 	&recovery_invalid_screen,
 	&recovery_to_dev_screen,
 	&recovery_phone_step1_screen,
+	&recovery_phone_step2_screen,
 	&recovery_disk_step1_screen,
 	&recovery_disk_step2_screen,
 	&recovery_disk_step3_screen,
diff --git a/firmware/2lib/include/2api.h b/firmware/2lib/include/2api.h
index 5b34082..3b5c731 100644
--- a/firmware/2lib/include/2api.h
+++ b/firmware/2lib/include/2api.h
@@ -1180,12 +1180,13 @@
 	VB2_SCREEN_RECOVERY_INVALID		= 0x201,
 	/* Confirm transition to developer mode */
 	VB2_SCREEN_RECOVERY_TO_DEV		= 0x202,
-	/* Recovery using disk */
-	VB2_SCREEN_RECOVERY_DISK_STEP1		= 0x210,
-	VB2_SCREEN_RECOVERY_DISK_STEP2		= 0x211,
-	VB2_SCREEN_RECOVERY_DISK_STEP3		= 0x212,
 	/* Recovery using phone */
-	VB2_SCREEN_RECOVERY_PHONE_STEP1		= 0x220,
+	VB2_SCREEN_RECOVERY_PHONE_STEP1		= 0x210,
+	VB2_SCREEN_RECOVERY_PHONE_STEP2		= 0x211,
+	/* Recovery using disk */
+	VB2_SCREEN_RECOVERY_DISK_STEP1		= 0x220,
+	VB2_SCREEN_RECOVERY_DISK_STEP2		= 0x221,
+	VB2_SCREEN_RECOVERY_DISK_STEP3		= 0x222,
 	/* Developer screen */
 	VB2_SCREEN_DEVELOPER_MODE		= 0x300,
 	/* Confirm transition to normal mode */