vboot: stop setting context mode flag in VBSLK

Stop setting mode flags (developer or recovery)
in VbSelectAndLoadKernel; this has already been
done in firmware verification.

BUG=b:124141368, chromium:994060
TEST=make clean && make runtests
BRANCH=none

Change-Id: I659f406e0182f809ad46c92a2597b05f685d45dd
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/vboot_reference/+/2054265
Reviewed-by: Joel Kitching <kitching@chromium.org>
Commit-Queue: Joel Kitching <kitching@chromium.org>
Tested-by: Joel Kitching <kitching@chromium.org>
diff --git a/firmware/lib/vboot_api_kernel.c b/firmware/lib/vboot_api_kernel.c
index 822f1cb..c5328d2 100644
--- a/firmware/lib/vboot_api_kernel.c
+++ b/firmware/lib/vboot_api_kernel.c
@@ -228,13 +228,6 @@
 {
 	struct vb2_shared_data *sd = vb2_get_sd(ctx);
 
-	/* Set selected boot mode in context object.
-	   TODO: Confirm that this can be removed with persistent context. */
-	if (sd->recovery_reason)
-		ctx->flags |= VB2_CONTEXT_RECOVERY_MODE;
-	if (sd->flags & VB2_SD_FLAG_DEV_MODE_ENABLED)
-		ctx->flags |= VB2_CONTEXT_DEVELOPER_MODE;
-
 	/* Translate vboot2 flags and fields into vboot1. */
 	if (ctx->flags & VB2_CONTEXT_EC_SYNC_SUPPORTED)
 		shared->flags |= VBSD_EC_SOFTWARE_SYNC;
diff --git a/tests/vboot_api_kernel4_tests.c b/tests/vboot_api_kernel4_tests.c
index 6ac25bd..8b73650 100644
--- a/tests/vboot_api_kernel4_tests.c
+++ b/tests/vboot_api_kernel4_tests.c
@@ -85,6 +85,9 @@
 
 static void test_slk(vb2_error_t retval, int recovery_reason, const char *desc)
 {
+	if (sd->recovery_reason)
+		ctx->flags |= VB2_CONTEXT_RECOVERY_MODE;
+
 	expected_recovery_reason = recovery_reason;
 	TEST_EQ(VbSelectAndLoadKernel(ctx, shared, &kparams), retval, desc);
 	TEST_EQ(current_recovery_reason, expected_recovery_reason,
@@ -284,19 +287,19 @@
 
 	/* Boot dev */
 	reset_common_data();
-	sd->flags |= VB2_SD_FLAG_DEV_MODE_ENABLED;
+	ctx->flags |= VB2_CONTEXT_DEVELOPER_MODE;
 	vbboot_retval = -2;
 	test_slk(VB2_ERROR_MOCK, 0, "Dev boot bad");
 
 	reset_common_data();
-	sd->flags |= VB2_SD_FLAG_DEV_MODE_ENABLED;
+	ctx->flags |= VB2_CONTEXT_DEVELOPER_MODE;
 	new_version = 0x20003;
 	test_slk(0, 0, "Dev doesn't roll forward");
 	TEST_EQ(kernel_version, 0x10002, "  version");
 
 	/* Boot dev - phase1 failure */
 	reset_common_data();
-	sd->flags |= VB2_SD_FLAG_DEV_MODE_ENABLED;
+	ctx->flags |= VB2_CONTEXT_DEVELOPER_MODE;
 	kernel_phase1_retval = VB2_ERROR_MOCK;
 	test_slk(VB2_ERROR_MOCK, 0, "Dev phase1 failure");