src/security/vboot: Add option to skip display init with vboot 2.0

This config option, when set, will allow the platform to skip display
initialization in normal (non-developer, non-recovery) mode. This allows
platforms that do not implement firmware UI in normal mode to skip the
display init in firmware.

TEST=Set option CONFIG_VBOOT and clear CONFIG_VBOOT_MAY_SKIP_DISPLAY_INIT
     and the display should initialize in ramstage when platform boots. Set
     CONFIG_VBOOT and set CONFIG_VBOOT_MAY_SKIP_DISPLAY_INIT and the display
     initialization should be skipped in coreboot.

Signed-off-by: Sukerkar, Amol N <amol.n.sukerkar@intel.com>
Change-Id: Icadad6da34dcb817af02868e89a94ea62dbfa7b3
Reviewed-on: https://review.coreboot.org/c/coreboot/+/33844
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Julius Werner <jwerner@chromium.org>
diff --git a/src/lib/bootmode.c b/src/lib/bootmode.c
index 737dcf9..51bbbe5 100644
--- a/src/lib/bootmode.c
+++ b/src/lib/bootmode.c
@@ -2,6 +2,7 @@
  * This file is part of the coreboot project.
  *
  * Copyright (C) 2011 The ChromiumOS Authors.  All rights reserved.
+ * Copyright (C) 2019 Intel Corporation.  All rights reserved.
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -33,8 +34,7 @@
 
 int display_init_required(void)
 {
-	/* For vboot, always honor VBOOT_WD_FLAG_DISPLAY_INIT. */
-	if (CONFIG(VBOOT)) {
+	if (CONFIG(VBOOT_MAY_SKIP_DISPLAY_INIT)) {
 		/* Must always select MUST_REQUEST_DISPLAY when using this
 		   function. */
 		if (!CONFIG(VBOOT_MUST_REQUEST_DISPLAY))
diff --git a/src/security/vboot/Kconfig b/src/security/vboot/Kconfig
index ea1f738..fa98935 100644
--- a/src/security/vboot/Kconfig
+++ b/src/security/vboot/Kconfig
@@ -154,10 +154,21 @@
 	  reboots caused after vboot verification is run. e.g. reboots caused by
 	  FSP components on Intel platforms.
 
+config VBOOT_MAY_SKIP_DISPLAY_INIT
+	bool "Skip display initialization in normal mode"
+	default y if CHROMEOS
+	default n
+	help
+	  Set this option to indicate that coreboot should skip display
+	  initialization on a normal (non-recovery, non-developer) boot.
+	  This is useful for platforms that do not support firmware
+	  user-interface in normal mode.
+
 config VBOOT_MUST_REQUEST_DISPLAY
 	bool
 	default y if VGA_ROM_RUN
 	default n
+	depends on VBOOT_MAY_SKIP_DISPLAY_INIT
 	help
 	  Set this option to indicate to vboot that this platform will skip its
 	  display initialization on a normal (non-recovery, non-developer) boot.