detachables: create menu items for legacy screens

Previously, we didn't require any action on these legacy screens, so
didn't update current_screen when displaying these.  Now, will be
adding language switching and debug display for these screens, so need
to keep track of them.

BUG=b:65470853, b:67371896, b:64400036
BRANCH=None
TEST=None

Change-Id: I2bab22fcbb0bb3cdfffe585eb633231ba8015fc3
Signed-off-by: Shelley Chen <shchen@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/676269
Commit-Ready: ChromeOS CL Exonerator Bot <chromiumos-cl-exonerator@appspot.gserviceaccount.com>
Reviewed-by: Randall Spangler <rspangler@chromium.org>
diff --git a/firmware/lib/vboot_ui_menu.c b/firmware/lib/vboot_ui_menu.c
index 851e905..23ef713 100644
--- a/firmware/lib/vboot_ui_menu.c
+++ b/firmware/lib/vboot_ui_menu.c
@@ -102,6 +102,9 @@
 	VB_MENU_TO_DEV,
 	VB_MENU_LANGUAGES,
 	VB_MENU_RECOVERY_INSERT,
+	VB_MENU_RECOVERY_NO_GOOD,
+	VB_MENU_RECOVERY_BROKEN,
+	VB_MENU_TO_NORM_CONFIRMED,
 	VB_MENU_COUNT,
 } VB_MENU;
 
@@ -302,6 +305,9 @@
 	VB_SCREEN_RECOVERY_TO_DEV_MENU,
 	VB_SCREEN_LANGUAGES_MENU,
 	VB_SCREEN_RECOVERY_INSERT,
+	VB_SCREEN_RECOVERY_NO_GOOD,
+	VB_SCREEN_OS_BROKEN,
+	VB_SCREEN_TO_NORM_CONFIRMED,
 };
 
 VbError_t vb2_draw_current_screen(struct vb2_context *ctx,
@@ -458,6 +464,10 @@
 		vb2_set_menu_items(VB_MENU_RECOVERY,
 				   VB_RECOVERY_POWER_OFF);
 		break;
+	case VB_MENU_RECOVERY_NO_GOOD:
+	case VB_MENU_RECOVERY_BROKEN:
+	case VB_MENU_TO_NORM_CONFIRMED:
+		break;
 	case VB_MENU_RECOVERY:
 		switch(current_menu_idx) {
 		case VB_RECOVERY_TO_DEV:
@@ -909,6 +919,7 @@
 						cparams,
 						VB_SCREEN_TO_NORM_CONFIRMED,
 						0);
+					current_menu = VB_MENU_TO_NORM_CONFIRMED;
 					VbExSleepMs(5000);
 					return VBERROR_REBOOT_REQUIRED;
 				}
@@ -995,6 +1006,7 @@
 		vb2_nv_commit(ctx);
 
 		VbDisplayScreen(ctx, cparams, VB_SCREEN_OS_BROKEN, 0);
+		current_menu = VB_MENU_RECOVERY_BROKEN;
 		VB2_DEBUG("waiting for manual recovery\n");
 		while (1) {
 			key = VbExKeyboardRead();
@@ -1039,10 +1051,12 @@
 		    current_menu_idx != VB_RECOVERY_DBG_INFO) {
 			if (retval == VBERROR_NO_DISK_FOUND)
 				vb2_draw_current_screen(ctx, cparams);
-			else
+			else {
 				VbDisplayScreen(ctx, cparams,
 						VB_SCREEN_RECOVERY_NO_GOOD,
 						0);
+				current_menu = VB_MENU_RECOVERY_NO_GOOD;
+			}
 		}
 
 		/*
@@ -1124,10 +1138,12 @@
 					if (retval == VBERROR_NO_DISK_FOUND)
 						vb2_draw_current_screen(ctx,
 							cparams);
-					else
+					else {
 						VbDisplayScreen(ctx, cparams,
 						VB_SCREEN_RECOVERY_NO_GOOD,
 						0);
+						current_menu = VB_MENU_RECOVERY_NO_GOOD;
+					}
 				}
 
 				/* Probably shutting down */