summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefan Reinauer <reinauer@chromium.org>2012-03-30 17:10:49 -0700
committerStefan Reinauer <stefan.reinauer@coreboot.org>2012-04-02 18:42:54 +0200
commit74a0efe09a203959d5ab4879e4c1cf139c93b410 (patch)
tree89d2b8178e12d42175e358c161e7fdc3ea419c8b
parent020b22a5c4efd82937706372817fc441c5345d68 (diff)
downloadcoreboot-74a0efe09a203959d5ab4879e4c1cf139c93b410.tar.xz
[ChromeOS] Don't initialize VGA Option ROM in normal mode
ChromeOS features two different modes: normal mode and developer mode (aka jailbreak mode). In developer mode, we need to display a warning screen for security reasons. However, in normal mode we want to boot blazingly fast. Therefore we don't run (VGA) option ROMs, unless we have to print something on the screen before the kernel is loaded. Change-Id: I37f63d0b082a48e037e65bde2b380f9b8743ed29 Signed-off-by: Stefan Reinauer <reinauer@google.com> Reviewed-on: http://review.coreboot.org/829 Tested-by: build bot (Jenkins) Reviewed-by: Mathias Krause <minipli@googlemail.com> Reviewed-by: Ronald G. Minnich <rminnich@gmail.com>
-rw-r--r--src/devices/pci_device.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/devices/pci_device.c b/src/devices/pci_device.c
index 0a870b84cf..c0559956b3 100644
--- a/src/devices/pci_device.c
+++ b/src/devices/pci_device.c
@@ -54,6 +54,9 @@
#if CONFIG_HAVE_ACPI_RESUME && !CONFIG_S3_VGA_ROM_RUN
#include <arch/acpi.h>
#endif
+#if CONFIG_CHROMEOS
+#include <vendorcode/google/chromeos/chromeos.h>
+#endif
u8 pci_moving_config8(struct device *dev, unsigned int reg)
{
@@ -667,6 +670,15 @@ void pci_dev_init(struct device *dev)
((dev->class >> 8) == PCI_CLASS_DISPLAY_VGA))
return;
+#if CONFIG_CHROMEOS
+ /* In ChromeOS we want to boot blazingly fast. Therefore
+ * we don't run (VGA) option ROMs, unless we have to print
+ * something on the screen before the kernel is loaded.
+ */
+ if (!developer_mode_enabled() && !recovery_mode_enabled())
+ return;
+#endif
+
rom = pci_rom_probe(dev);
if (rom == NULL)
return;