detachables: Define options menu

This menu will be used by any of the legacy screens.
The idea is that when the user hits volume up/down, then
they will enter this options menu, which will allow the user
to change languages or show debug info.

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

Change-Id: I31d3e312388b56613368276ec72e5c68ded2264e
Signed-off-by: Shelley Chen <shchen@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/770257
Commit-Ready: Benjamin Gordon <bmgordon@chromium.org>
Reviewed-by: Randall Spangler <rspangler@chromium.org>
(cherry picked from commit 5f9b770d7a44e6011ebe1ec7b28692e4eab1c2b6)
Reviewed-on: https://chromium-review.googlesource.com/885142
diff --git a/firmware/include/vboot_api.h b/firmware/include/vboot_api.h
index 5edf0a6..ba545d7 100644
--- a/firmware/include/vboot_api.h
+++ b/firmware/include/vboot_api.h
@@ -765,6 +765,8 @@
 	VB_SCREEN_DEVELOPER_TO_NORM_MENU = 0x20e,
 	/* Detachable Menu - Languages */
 	VB_SCREEN_LANGUAGES_MENU = 0x20f,
+	/* Detachable Menu - Options */
+	VB_SCREEN_OPTIONS_MENU = 0x210,
 };
 
 /**
diff --git a/firmware/lib/include/vboot_ui_menu_private.h b/firmware/lib/include/vboot_ui_menu_private.h
index 7c6be49..f451a53 100644
--- a/firmware/lib/include/vboot_ui_menu_private.h
+++ b/firmware/lib/include/vboot_ui_menu_private.h
@@ -15,6 +15,7 @@
 	VB_MENU_RECOVERY,
 	VB_MENU_TO_DEV,
 	VB_MENU_LANGUAGES,
+	VB_MENU_OPTIONS,
 	VB_MENU_RECOVERY_INSERT,
 	VB_MENU_RECOVERY_NO_GOOD,
 	VB_MENU_RECOVERY_BROKEN,
@@ -74,6 +75,14 @@
 	VB_LANGUAGES_COUNT,
 } VB_LANGUAGES_MENU;
 
+typedef enum _VB_OPTIONS_MENU {
+	VB_OPTIONS_CANCEL,
+	VB_OPTIONS_DBG_INFO,
+	VB_OPTIONS_POWER_OFF,
+	VB_OPTIONS_LANGUAGE,
+	VB_OPTIONS_COUNT,
+} VB_OPTIONS_MENU;
+
 extern VB_MENU current_menu;
 extern VB_MENU prev_menu;
 extern int current_menu_idx;
diff --git a/firmware/lib/vboot_ui_menu.c b/firmware/lib/vboot_ui_menu.c
index 5ef7046..00fb0b1 100644
--- a/firmware/lib/vboot_ui_menu.c
+++ b/firmware/lib/vboot_ui_menu.c
@@ -146,6 +146,13 @@
 	"US English\n",
 };
 
+static char *options_menu[] = {
+	"Cancel\n",
+	"Show Debug Info\n",
+	"Power Off\n",
+	"Language\n"
+};
+
 /**
  * Get the string array and size of current_menu.
  *
@@ -185,6 +192,10 @@
 		*size = VB_LANGUAGES_COUNT;
 		temp_menu = languages_menu;
 		break;
+	case VB_MENU_OPTIONS:
+		*size = VB_OPTIONS_COUNT;
+		temp_menu = options_menu;
+		break;
 	default:
 		*size = 0;
 	}
@@ -238,6 +249,7 @@
 	VB_SCREEN_RECOVERY_MENU,
 	VB_SCREEN_RECOVERY_TO_DEV_MENU,
 	VB_SCREEN_LANGUAGES_MENU,
+	VB_SCREEN_OPTIONS_MENU,
 	VB_SCREEN_RECOVERY_INSERT,
 	VB_SCREEN_RECOVERY_NO_GOOD,
 	VB_SCREEN_OS_BROKEN,