diff --git a/src/device/pci_device.c b/src/device/pci_device.c
index ca36046..dfc0898 100644
--- a/src/device/pci_device.c
+++ b/src/device/pci_device.c
@@ -32,6 +32,7 @@
 #include <device/device.h>
 #include <device/pci.h>
 #include <device/pci_ids.h>
+#include <bootmode.h>
 #include <delay.h>
 #if CONFIG_HYPERTRANSPORT_PLUGIN_SUPPORT
 #include <device/hypertransport.h>
@@ -660,10 +661,6 @@
 			   ((device & 0xffff) << 16) | (vendor & 0xffff));
 }
 
-#if CONFIG_CHROMEOS
-int oprom_is_loaded = 0;
-#endif
-
 #if CONFIG_VGA_ROM_RUN
 static int should_run_oprom(struct device *dev)
 {
@@ -733,10 +730,8 @@
 		return;
 
 	run_bios(dev, (unsigned long)ram);
-#if CONFIG_CHROMEOS
-	oprom_is_loaded = 1;
-	printk(BIOS_DEBUG, "VGA Option ROM has been loaded\n");
-#endif
+	gfx_set_init_done(1);
+	printk(BIOS_DEBUG, "VGA Option ROM was run\n");
 #endif /* CONFIG_VGA_ROM_RUN */
 }
 
diff --git a/src/include/bootmode.h b/src/include/bootmode.h
index d64bf93..a2c3411 100644
--- a/src/include/bootmode.h
+++ b/src/include/bootmode.h
@@ -23,6 +23,9 @@
 int get_developer_mode_switch(void);
 int get_recovery_mode_switch(void);
 
+int gfx_get_init_done(void);
+void gfx_set_init_done(int done);
+
 #if CONFIG_BOOTMODE_STRAPS
 int developer_mode_enabled(void);
 int recovery_mode_enabled(void);
diff --git a/src/lib/bootmode.c b/src/lib/bootmode.c
index 156321f..9818490 100644
--- a/src/lib/bootmode.c
+++ b/src/lib/bootmode.c
@@ -17,6 +17,7 @@
  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include <rules.h>
 #include <bootmode.h>
 #if CONFIG_CHROMEOS || CONFIG_VBOOT_VERIFY_FIRMWARE
 #include <vendorcode/google/chromeos/chromeos.h>
@@ -61,3 +62,19 @@
 	return 0;
 }
 #endif /* CONFIG_BOOTMODE_STRAPS */
+
+#if ENV_RAMSTAGE
+static int gfx_init_done = -1;
+
+int gfx_get_init_done(void)
+{
+	if (gfx_init_done < 0)
+		return 0;
+	return gfx_init_done;
+}
+
+void gfx_set_init_done(int done)
+{
+	gfx_init_done = done;
+}
+#endif
diff --git a/src/mainboard/google/bolt/chromeos.c b/src/mainboard/google/bolt/chromeos.c
index 76f2c313c..5724101 100644
--- a/src/mainboard/google/bolt/chromeos.c
+++ b/src/mainboard/google/bolt/chromeos.c
@@ -79,7 +79,7 @@
 	fill_lb_gpio(gpio++, -1, ACTIVE_HIGH, "lid",
 		     get_lid_switch());
 	fill_lb_gpio(gpio++, -1, ACTIVE_HIGH, "power", 0);
-	fill_lb_gpio(gpio++, -1, ACTIVE_HIGH, "oprom", oprom_is_loaded);
+	fill_lb_gpio(gpio++, -1, ACTIVE_HIGH, "oprom", gfx_get_init_done());
 }
 #endif
 
diff --git a/src/mainboard/google/butterfly/chromeos.c b/src/mainboard/google/butterfly/chromeos.c
index b5a645f..397679a 100644
--- a/src/mainboard/google/butterfly/chromeos.c
+++ b/src/mainboard/google/butterfly/chromeos.c
@@ -93,7 +93,7 @@
 	/* Was VGA Option ROM loaded? */
 	gpios->gpios[5].port = -1; /* Indicate that this is a pseudo GPIO */
 	gpios->gpios[5].polarity = ACTIVE_HIGH;
-	gpios->gpios[5].value = oprom_is_loaded;
+	gpios->gpios[5].value = gfx_get_init_done();
 	strncpy((char *)gpios->gpios[5].name,"oprom", GPIO_MAX_NAME_LENGTH);
 
 }
diff --git a/src/mainboard/google/falco/chromeos.c b/src/mainboard/google/falco/chromeos.c
index 51d625b..780e58f 100644
--- a/src/mainboard/google/falco/chromeos.c
+++ b/src/mainboard/google/falco/chromeos.c
@@ -76,7 +76,7 @@
 	fill_lb_gpio(gpio++, -1, ACTIVE_HIGH, "lid",
 		     get_lid_switch());
 	fill_lb_gpio(gpio++, -1, ACTIVE_HIGH, "power", 0);
-	fill_lb_gpio(gpio++, -1, ACTIVE_HIGH, "oprom", oprom_is_loaded);
+	fill_lb_gpio(gpio++, -1, ACTIVE_HIGH, "oprom", gfx_get_init_done());
 }
 #endif
 
diff --git a/src/mainboard/google/link/chromeos.c b/src/mainboard/google/link/chromeos.c
index dd1606f..33069b1 100644
--- a/src/mainboard/google/link/chromeos.c
+++ b/src/mainboard/google/link/chromeos.c
@@ -88,7 +88,7 @@
 	/* Did we load the VGA Option ROM? */
 	gpios->gpios[5].port = -1; /* Indicate that this is a pseudo GPIO */
 	gpios->gpios[5].polarity = ACTIVE_HIGH;
-	gpios->gpios[5].value = oprom_is_loaded;
+	gpios->gpios[5].value = gfx_get_init_done();
 	strncpy((char *)gpios->gpios[5].name,"oprom", GPIO_MAX_NAME_LENGTH);
 }
 #endif
diff --git a/src/mainboard/google/link/i915.c b/src/mainboard/google/link/i915.c
index a38760b..2b62bf4 100644
--- a/src/mainboard/google/link/i915.c
+++ b/src/mainboard/google/link/i915.c
@@ -58,7 +58,6 @@
 static unsigned short addrport;
 static unsigned short dataport;
 static unsigned int physbase;
-extern int oprom_is_loaded;
 static u32 htotal, hblank, hsync, vtotal, vblank, vsync;
 
 const u32 link_edid_data[] = {
@@ -379,6 +378,5 @@
 	printk(BIOS_SPEW, "%ld microseconds\n", globalmicroseconds());
 	set_vbe_mode_info_valid(&edid, graphics);
 	i915_init_done = 1;
-	oprom_is_loaded = 1;
-	return 0;
+	return i915_init_done;
 }
diff --git a/src/mainboard/google/parrot/chromeos.c b/src/mainboard/google/parrot/chromeos.c
index 6f50a79..1e79e4b 100644
--- a/src/mainboard/google/parrot/chromeos.c
+++ b/src/mainboard/google/parrot/chromeos.c
@@ -84,7 +84,7 @@
 	/* Did we load the VGA Option ROM? */
 	gpios->gpios[5].port = -1; /* Indicate that this is a pseudo GPIO */
 	gpios->gpios[5].polarity = ACTIVE_HIGH;
-	gpios->gpios[5].value = oprom_is_loaded;
+	gpios->gpios[5].value = gfx_get_init_done();
 	strncpy((char *)gpios->gpios[5].name,"oprom", GPIO_MAX_NAME_LENGTH);
 
 }
diff --git a/src/mainboard/google/peppy/chromeos.c b/src/mainboard/google/peppy/chromeos.c
index 51d625b..780e58f 100644
--- a/src/mainboard/google/peppy/chromeos.c
+++ b/src/mainboard/google/peppy/chromeos.c
@@ -76,7 +76,7 @@
 	fill_lb_gpio(gpio++, -1, ACTIVE_HIGH, "lid",
 		     get_lid_switch());
 	fill_lb_gpio(gpio++, -1, ACTIVE_HIGH, "power", 0);
-	fill_lb_gpio(gpio++, -1, ACTIVE_HIGH, "oprom", oprom_is_loaded);
+	fill_lb_gpio(gpio++, -1, ACTIVE_HIGH, "oprom", gfx_get_init_done());
 }
 #endif
 
diff --git a/src/mainboard/google/rambi/chromeos.c b/src/mainboard/google/rambi/chromeos.c
index f6f13ed..636aae1 100644
--- a/src/mainboard/google/rambi/chromeos.c
+++ b/src/mainboard/google/rambi/chromeos.c
@@ -78,7 +78,7 @@
 		     get_developer_mode_switch());
 	fill_lb_gpio(gpio++, -1, ACTIVE_HIGH, "lid", get_lid_switch());
 	fill_lb_gpio(gpio++, -1, ACTIVE_HIGH, "power", 0);
-	fill_lb_gpio(gpio++, -1, ACTIVE_HIGH, "oprom", oprom_is_loaded);
+	fill_lb_gpio(gpio++, -1, ACTIVE_HIGH, "oprom", gfx_get_init_done());
 }
 #endif
 
diff --git a/src/mainboard/google/slippy/chromeos.c b/src/mainboard/google/slippy/chromeos.c
index 51d625b..780e58f 100644
--- a/src/mainboard/google/slippy/chromeos.c
+++ b/src/mainboard/google/slippy/chromeos.c
@@ -76,7 +76,7 @@
 	fill_lb_gpio(gpio++, -1, ACTIVE_HIGH, "lid",
 		     get_lid_switch());
 	fill_lb_gpio(gpio++, -1, ACTIVE_HIGH, "power", 0);
-	fill_lb_gpio(gpio++, -1, ACTIVE_HIGH, "oprom", oprom_is_loaded);
+	fill_lb_gpio(gpio++, -1, ACTIVE_HIGH, "oprom", gfx_get_init_done());
 }
 #endif
 
diff --git a/src/mainboard/google/slippy/gma.c b/src/mainboard/google/slippy/gma.c
index e698fc9..f2f93b1 100644
--- a/src/mainboard/google/slippy/gma.c
+++ b/src/mainboard/google/slippy/gma.c
@@ -89,7 +89,6 @@
 static unsigned short addrport;
 static unsigned short dataport;
 static unsigned int physbase;
-extern int oprom_is_loaded;
 
 static int ioread = 0, iowrite = 0;
 
@@ -462,10 +461,9 @@
 
 	set_vbe_mode_info_valid(&dp->edid, graphics);
 	i915_init_done = 1;
-	oprom_is_loaded = 1;
 	//io_i915_write32( 0x80000000,BLC_PWM_CPU_CTL2);
 	//io_i915_write32( 0x80000000,BLC_PWM_PCH_CTL1);
-	return 1;
+	return i915_init_done;
 
 fail:
 	printk(BIOS_SPEW, "Graphics could not be started;");
diff --git a/src/mainboard/google/stout/chromeos.c b/src/mainboard/google/stout/chromeos.c
index 0e43250..297626c 100644
--- a/src/mainboard/google/stout/chromeos.c
+++ b/src/mainboard/google/stout/chromeos.c
@@ -82,7 +82,7 @@
 	/* Was VGA Option ROM loaded? */
 	gpios->gpios[5].port = -1; /* Indicate that this is a pseudo GPIO */
 	gpios->gpios[5].polarity = ACTIVE_HIGH;
-	gpios->gpios[5].value = oprom_is_loaded;
+	gpios->gpios[5].value = gfx_get_init_done();
 	strncpy((char *)gpios->gpios[5].name,"oprom", GPIO_MAX_NAME_LENGTH);
 
 	/* EC is in RW mode when it isn't in recovery mode. */
diff --git a/src/mainboard/google/stout/i915.c b/src/mainboard/google/stout/i915.c
index 8085de6..4ebd567 100644
--- a/src/mainboard/google/stout/i915.c
+++ b/src/mainboard/google/stout/i915.c
@@ -41,7 +41,6 @@
 static unsigned short addrport;
 static unsigned short dataport;
 static unsigned int physbase;
-extern int oprom_is_loaded;
 
 #define READ32(addr) io_i915_READ32(addr)
 #define WRITE32(val, addr) io_i915_WRITE32(val, addr)
@@ -278,6 +277,5 @@
 	memset((void *)graphics, 0, 4520*4096);
 	printk(BIOS_SPEW, "%ld microseconds\n", globalmicroseconds());
 	i915_init_done = 1;
-	oprom_is_loaded = 1;
-	return 0;
+	return i915_init_done;
 }
diff --git a/src/mainboard/intel/baskingridge/chromeos.c b/src/mainboard/intel/baskingridge/chromeos.c
index 6bf5116..7b64f10 100644
--- a/src/mainboard/intel/baskingridge/chromeos.c
+++ b/src/mainboard/intel/baskingridge/chromeos.c
@@ -81,7 +81,7 @@
 	/* Did we load the VGA option ROM? */
 	gpios->gpios[5].port = -1;
 	gpios->gpios[5].polarity = ACTIVE_HIGH;
-	gpios->gpios[5].value = oprom_is_loaded;
+	gpios->gpios[5].value = gfx_get_init_done();
 	strncpy((char *)gpios->gpios[5].name,"oprom", GPIO_MAX_NAME_LENGTH);
 }
 #endif
diff --git a/src/mainboard/intel/emeraldlake2/chromeos.c b/src/mainboard/intel/emeraldlake2/chromeos.c
index 4d998ec..2194973 100644
--- a/src/mainboard/intel/emeraldlake2/chromeos.c
+++ b/src/mainboard/intel/emeraldlake2/chromeos.c
@@ -80,7 +80,7 @@
 	/* Did we load the VGA option ROM? */
 	gpios->gpios[5].port = -1;
 	gpios->gpios[5].polarity = ACTIVE_HIGH;
-	gpios->gpios[5].value = oprom_is_loaded;
+	gpios->gpios[5].value = gfx_get_init_done();
 	strncpy((char *)gpios->gpios[5].name,"oprom", GPIO_MAX_NAME_LENGTH);
 }
 #endif
diff --git a/src/mainboard/intel/wtm2/chromeos.c b/src/mainboard/intel/wtm2/chromeos.c
index 594b4a7..a5ca4eb 100644
--- a/src/mainboard/intel/wtm2/chromeos.c
+++ b/src/mainboard/intel/wtm2/chromeos.c
@@ -61,7 +61,7 @@
 	fill_lb_gpio(gpio++, -1, ACTIVE_HIGH, "developer", DEV_MODE_SETTING);
 	fill_lb_gpio(gpio++, -1, ACTIVE_HIGH, "lid", 1); // force open
 	fill_lb_gpio(gpio++, -1, ACTIVE_HIGH, "power", 0);
-	fill_lb_gpio(gpio++, -1, ACTIVE_HIGH, "oprom", oprom_is_loaded);
+	fill_lb_gpio(gpio++, -1, ACTIVE_HIGH, "oprom", gfx_get_init_done());
 }
 #endif
 
diff --git a/src/mainboard/intel/wtm2/i915.c b/src/mainboard/intel/wtm2/i915.c
index b664c35..64fa6b1 100644
--- a/src/mainboard/intel/wtm2/i915.c
+++ b/src/mainboard/intel/wtm2/i915.c
@@ -70,7 +70,6 @@
 static unsigned short addrport;
 static unsigned short dataport;
 static unsigned int physbase;
-extern int oprom_is_loaded;
 
 const u32 link_edid_data[] = {
 	0xffffff00, 0x00ffffff, 0x0379e430, 0x00000000,
@@ -220,8 +219,7 @@
 	 */
 
 	i915_init_done = 1;
-	oprom_is_loaded = 1;
-	return 1;
+	return i915_init_done;
 
 fail:
 	printk(BIOS_SPEW, "Graphics could not be started;");
diff --git a/src/mainboard/lenovo/x60/i915.c b/src/mainboard/lenovo/x60/i915.c
index 4870fd8..b41a0ba 100644
--- a/src/mainboard/lenovo/x60/i915.c
+++ b/src/mainboard/lenovo/x60/i915.c
@@ -369,5 +369,5 @@
 
 	set_vbe_mode_info_valid(&edid, graphics);
 
-	return 0;
+	return 1;
 }
diff --git a/src/mainboard/samsung/lumpy/chromeos.c b/src/mainboard/samsung/lumpy/chromeos.c
index afbdeeb..c9fa1d9 100644
--- a/src/mainboard/samsung/lumpy/chromeos.c
+++ b/src/mainboard/samsung/lumpy/chromeos.c
@@ -86,7 +86,7 @@
 	/* Did we load the VGA Option ROM? */
 	gpios->gpios[5].port = -1; /* Indicate that this is a pseudo GPIO */
 	gpios->gpios[5].polarity = ACTIVE_HIGH;
-	gpios->gpios[5].value = oprom_is_loaded;
+	gpios->gpios[5].value = gfx_get_init_done();
 	strncpy((char *)gpios->gpios[5].name,"oprom", GPIO_MAX_NAME_LENGTH);
 }
 #endif
diff --git a/src/mainboard/samsung/stumpy/chromeos.c b/src/mainboard/samsung/stumpy/chromeos.c
index e639fd3..be18370 100644
--- a/src/mainboard/samsung/stumpy/chromeos.c
+++ b/src/mainboard/samsung/stumpy/chromeos.c
@@ -83,7 +83,7 @@
 	/* Did we load the VGA Option ROM? */
 	gpios->gpios[5].port = -1; /* Indicate that this is a pseudo GPIO */
 	gpios->gpios[5].polarity = ACTIVE_HIGH;
-	gpios->gpios[5].value = oprom_is_loaded;
+	gpios->gpios[5].value = gfx_get_init_done();
 	strncpy((char *)gpios->gpios[5].name,"oprom", GPIO_MAX_NAME_LENGTH);
 }
 #endif
diff --git a/src/northbridge/intel/haswell/gma.c b/src/northbridge/intel/haswell/gma.c
index 2ceffe4..0c56f76 100644
--- a/src/northbridge/intel/haswell/gma.c
+++ b/src/northbridge/intel/haswell/gma.c
@@ -19,6 +19,7 @@
 
 #include <arch/io.h>
 #include <console/console.h>
+#include <bootmode.h>
 #include <delay.h>
 #include <device/device.h>
 #include <device/pci.h>
@@ -408,6 +409,8 @@
 
 	int i915lightup(u32 physbase, u32 iobase, u32 mmiobase, u32 gfx);
 	lightup_ok = i915lightup(physbase, iobase, mmiobase, graphics_base);
+	if (lightup_ok)
+		gfx_set_init_done(1);
 #endif
 	if (! lightup_ok) {
 		printk(BIOS_SPEW, "FUI did not run; using VBIOS\n");
diff --git a/src/northbridge/intel/i945/gma.c b/src/northbridge/intel/i945/gma.c
index 433152c..453e9c8 100644
--- a/src/northbridge/intel/i945/gma.c
+++ b/src/northbridge/intel/i945/gma.c
@@ -18,6 +18,7 @@
  */
 
 #include <console/console.h>
+#include <bootmode.h>
 #include <delay.h>
 #include <device/device.h>
 #include <device/pci.h>
@@ -63,7 +64,9 @@
 	);
 
 	int i915lightup(u32 physbase, u32 iobase, u32 mmiobase, u32 gfx);
-	i915lightup(uma_memory_base, iobase, mmiobase, graphics_base);
+	int lightup_ok = i915lightup(uma_memory_base, iobase, mmiobase, graphics_base);
+	if (lightup_ok)
+		gfx_set_init_done(1);
 #endif
 
 }
diff --git a/src/northbridge/intel/sandybridge/gma.c b/src/northbridge/intel/sandybridge/gma.c
index b9a07a2..2d8bd77 100644
--- a/src/northbridge/intel/sandybridge/gma.c
+++ b/src/northbridge/intel/sandybridge/gma.c
@@ -19,6 +19,7 @@
 
 #include <arch/io.h>
 #include <console/console.h>
+#include <bootmode.h>
 #include <delay.h>
 #include <device/device.h>
 #include <device/pci.h>
@@ -649,7 +650,9 @@
 	graphics_base = dev->resource_list[1].base;
 
 	int i915lightup(u32 physbase, u32 iobase, u32 mmiobase, u32 gfx);
-	i915lightup(physbase, iobase, mmiobase, graphics_base);
+	int lightup_ok = i915lightup(physbase, iobase, mmiobase, graphics_base);
+	if (lightup_ok)
+		gfx_set_init_done(1);
 #endif
 }
 
diff --git a/src/vendorcode/google/chromeos/chromeos.h b/src/vendorcode/google/chromeos/chromeos.h
index 9430276..e501427 100644
--- a/src/vendorcode/google/chromeos/chromeos.h
+++ b/src/vendorcode/google/chromeos/chromeos.h
@@ -33,7 +33,6 @@
 /* functions implemented in vbnv.c: */
 int get_recovery_mode_from_vbnv(void);
 int vboot_wants_oprom(void);
-extern int oprom_is_loaded;
 
 void read_vbnv(uint8_t *vbnv_copy);
 void save_vbnv(const uint8_t *vbnv_copy);
