diff --git a/firmware/2lib/include/2api.h b/firmware/2lib/include/2api.h
index b1bc2ed..f8a1b4e 100644
--- a/firmware/2lib/include/2api.h
+++ b/firmware/2lib/include/2api.h
@@ -968,13 +968,6 @@
  */
 vb2_error_t vb2ex_commit_data(struct vb2_context *ctx);
 
-/**
- * Check that physical presence button is currently pressed by the user.
- *
- * @returns 1 for pressed, 0 for not.
- */
-int vb2ex_physical_presence_pressed(void);
-
 /*****************************************************************************/
 /* Auxiliary firmware (auxfw) */
 
@@ -1213,4 +1206,18 @@
 			     uint32_t selected_item,
 			     uint32_t disabled_item_mask);
 
+/**
+ * Check that physical presence button is currently pressed by the user.
+ *
+ * @returns 1 for pressed, 0 for not.
+ */
+int vb2ex_physical_presence_pressed(void);
+
+/**
+ * Get the number of supported locales.
+ *
+ * @returns Number of locales.  0 if none or on error.
+ */
+uint32_t vb2ex_get_locale_count(void);
+
 #endif  /* VBOOT_REFERENCE_2API_H_ */
diff --git a/firmware/include/vboot_api.h b/firmware/include/vboot_api.h
index a8da939..4931d59 100644
--- a/firmware/include/vboot_api.h
+++ b/firmware/include/vboot_api.h
@@ -613,14 +613,6 @@
  */
 vb2_error_t VbExLegacy(enum VbAltFwIndex_t altfw_num);
 
-/**
- * Return number of locales supported
- *
- * @param count		Pointer to the number of locales.
- * @return VBERROR_... error, VB2_SUCCESS on success.
- */
-vb2_error_t VbExGetLocalizationCount(uint32_t *count);
-
 enum vb_altfw {
 	VB_ALTFW_COUNT	= 9,	/* We allow 9 bootloaders, numbered 1-9 */
 };
diff --git a/firmware/lib/vboot_display.c b/firmware/lib/vboot_display.c
index e10a421..9461d5d 100644
--- a/firmware/lib/vboot_display.c
+++ b/firmware/lib/vboot_display.c
@@ -5,6 +5,7 @@
  * Display functions used in kernel selection.
  */
 
+#include "2api.h"
 #include "2common.h"
 #include "2misc.h"
 #include "2nvstorage.h"
@@ -21,9 +22,8 @@
 static uint32_t disp_disabled_idx_mask = 0;
 
 __attribute__((weak))
-vb2_error_t VbExGetLocalizationCount(uint32_t *count) {
-	*count = 0;
-	return VB2_ERROR_UNKNOWN;
+uint32_t vb2ex_get_locale_count(void) {
+	return 0;
 }
 
 __attribute__((weak))
@@ -243,7 +243,8 @@
 	case VB_KEY_DOWN:
 		/* Arrow keys = change localization */
 		loc = vb2_nv_get(ctx, VB2_NV_LOCALIZATION_INDEX);
-		if (VB2_SUCCESS != VbExGetLocalizationCount(&count))
+		count = vb2ex_get_locale_count();
+		if (count == 0)
 			loc = 0;  /* No localization count (bad GBB?) */
 		else if (VB_KEY_RIGHT == key || VB_KEY_UP == key)
 			loc = (loc < count - 1 ? loc + 1 : 0);
diff --git a/firmware/lib/vboot_ui_legacy_menu.c b/firmware/lib/vboot_ui_legacy_menu.c
index 1e1462b..26de487 100644
--- a/firmware/lib/vboot_ui_legacy_menu.c
+++ b/firmware/lib/vboot_ui_legacy_menu.c
@@ -700,7 +700,8 @@
 	int i;
 
 	/* Initialize language menu with the correct amount of entries. */
-	if (VB2_SUCCESS != VbExGetLocalizationCount(&count) || count == 0)
+	count = vb2ex_get_locale_count();
+	if (count == 0)
 		count = 1;  /* Fall back to 1 language entry on failure */
 
 	items = malloc(count * sizeof(struct vb2_menu_item));
diff --git a/tests/vboot_display_tests.c b/tests/vboot_display_tests.c
index b57915f..c902614 100644
--- a/tests/vboot_display_tests.c
+++ b/tests/vboot_display_tests.c
@@ -45,13 +45,9 @@
 }
 
 /* Mocks */
-vb2_error_t VbExGetLocalizationCount(uint32_t *count) {
+uint32_t vb2ex_get_locale_count(void) {
 
-	if (mock_localization_count == 0xffffffff)
-		return VB2_ERROR_UNKNOWN;
-
-	*count = mock_localization_count;
-	return VB2_SUCCESS;
+	return mock_localization_count;
 }
 
 uint32_t VbExGetAltFwIdxMask() {
@@ -113,7 +109,7 @@
 	/* Reset localization if localization count is invalid */
 	ResetMocks();
 	vb2_nv_set(ctx, VB2_NV_LOCALIZATION_INDEX, 1);
-	mock_localization_count = 0xffffffff;
+	mock_localization_count = 0;
 	VbCheckDisplayKey(ctx, VB_KEY_UP, NULL);
 	TEST_EQ(vb2_nv_get(ctx, VB2_NV_LOCALIZATION_INDEX), 0,
 		"DisplayKey invalid");
diff --git a/tests/vboot_legacy_menu_tests.c b/tests/vboot_legacy_menu_tests.c
index 80325f8..4a0dfaa 100644
--- a/tests/vboot_legacy_menu_tests.c
+++ b/tests/vboot_legacy_menu_tests.c
@@ -118,9 +118,8 @@
 	return &gbb;
 }
 
-vb2_error_t VbExGetLocalizationCount(uint32_t *count) {
-	*count = 1;
-	return VB2_SUCCESS;
+uint32_t vb2ex_get_locale_count(void) {
+	return 1;
 }
 
 uint32_t VbExGetAltFwIdxMask() {
