device: add ALWAYS_RUN_OPROM option

Certain platforms require that the option rom always needs to be
ran in order for display to work correctly. Therefore, provide
this ability for the platform to select such that we force option
rom loading.

BUG=b:72400950

Change-Id: I597bc8af7ac8b68fe8505aac5f1c7e1ccd34ac27
Signed-off-by: Aaron Durbin <adurbin@chromium.org>
Reviewed-on: https://review.coreboot.org/23505
Reviewed-by: Justin TerAvest <teravest@chromium.org>
Reviewed-by: Martin Roth <martinroth@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Furquan Shaikh <furquan@google.com>
diff --git a/src/device/Kconfig b/src/device/Kconfig
index 99eedab..82caa96 100644
--- a/src/device/Kconfig
+++ b/src/device/Kconfig
@@ -140,6 +140,13 @@
 	  are needed for the kernel's display driver to know how a piece of
 	  hardware is configured to be used.
 
+config ALWAYS_RUN_OPROM
+	def_bool n
+	depends on VGA_ROM_RUN && ALWAYS_LOAD_OPROM
+	help
+	  Always uncondtionally run the option regardless of other
+	  policies.
+
 config ON_DEVICE_ROM_LOAD
 	bool "Load Option ROMs on PCI devices"
 	default n if PAYLOAD_SEABIOS
diff --git a/src/device/pci_device.c b/src/device/pci_device.c
index 13ab112..02eca66 100644
--- a/src/device/pci_device.c
+++ b/src/device/pci_device.c
@@ -671,6 +671,11 @@
 	if (should_run >= 0)
 		return should_run;
 
+	if (IS_ENABLED(CONFIG_ALWAYS_RUN_OPROM)) {
+		should_run = 1;
+		return should_run;
+	}
+
 	/* Don't run VGA option ROMs, unless we have to print
 	 * something on the screen before the kernel is loaded.
 	 */