UPSTREAM: vboot: Change oprom checks to CONFIG_VBOOT, assert OPROM_MATTERS

Skipping display init on normal-mode boot is a vboot feature, not
specific to Chrome OS. Fix the code in display_init_required() and
pci_dev_init() to check CONFIG_VBOOT rather than CONFIG_CHROMEOS now
that the two aren't always the same anymore.

Also add a check to guarantee at compile time that
CONFIG_VBOOT_OPROM_MATTERS is enabled on all platforms that make a check
to this function (when CONFIG_VBOOT is also enabled). The whole display
skipping mechanism is based on the oprom_needed NVRAM flag, and skipping
display init without enabling the option to tell vboot that it needs to
pay attention to that flag would make the whole thing not work right.

BUG=none
BRANCH=none
TEST=none

Change-Id: Ica124a124f0d89b4562a8289b70b1372847bdec2
Signed-off-by: Patrick Georgi <pgeorgi@google.com>
Original-Commit-Id: 6d9c131061fbc984711cb97a0a24e7d4ce77549e
Original-Change-Id: I5d6421509bdcdaa61b78015af3fa6241fe75bb7f
Original-Signed-off-by: Julius Werner <jwerner@chromium.org>
Original-Reviewed-on: https://review.coreboot.org/c/coreboot/+/32112
Original-Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Original-Reviewed-by: Paul Menzel <paulepanter@users.sourceforge.net>
Original-Reviewed-by: Patrick Georgi <pgeorgi@google.com>
Reviewed-on: https://chromium-review.googlesource.com/1553839
Commit-Ready: Patrick Georgi <pgeorgi@chromium.org>
Tested-by: Patrick Georgi <pgeorgi@chromium.org>
Reviewed-by: Patrick Georgi <pgeorgi@chromium.org>
diff --git a/src/device/pci_device.c b/src/device/pci_device.c
index 5f908d2..b5453c7 100644
--- a/src/device/pci_device.c
+++ b/src/device/pci_device.c
@@ -780,7 +780,7 @@
 	 */
 	should_run = display_init_required();
 
-	if (!should_run && CONFIG(CHROMEOS))
+	if (!should_run && CONFIG(VBOOT))
 		should_run = vboot_wants_oprom();
 
 	if (!should_run)
diff --git a/src/lib/bootmode.c b/src/lib/bootmode.c
index e402536..052eb8f 100644
--- a/src/lib/bootmode.c
+++ b/src/lib/bootmode.c
@@ -13,6 +13,7 @@
  * GNU General Public License for more details.
  */
 
+#include <assert.h>
 #include <bootmode.h>
 #include <vendorcode/google/chromeos/chromeos.h>
 
@@ -34,9 +35,13 @@
 
 int display_init_required(void)
 {
-	/* For Chrome OS always honor vboot_handoff_skip_display_init(). */
-	if (CONFIG(CHROMEOS))
+	/* For vboot always honor vboot_handoff_skip_display_init(). */
+	if (CONFIG(VBOOT)) {
+		/* Must always select OPROM_MATTERS when using this function. */
+		if (!CONFIG(VBOOT_OPROM_MATTERS))
+			dead_code();
 		return !vboot_handoff_skip_display_init();
+	}
 
 	/* By default always initialize display. */
 	return 1;