Index: northbridge/amd/geodelx/grphinit.c
===================================================================
--- northbridge/amd/geodelx/grphinit.c	(revision 1166)
+++ northbridge/amd/geodelx/grphinit.c	(working copy)
@@ -22,7 +22,25 @@
 #include <amd_geodelx.h>
 #include <console.h>
 #include <statictree.h>
+#include <msr.h>
+#include <lib.h>
 
+#ifdef CONFIG_PCI_OPTION_ROM_RUN
+/* Legacy VGA Ports , from AMD's Virtualized PCI Config Space datasheet */
+static const struct msrinit geodelx_vga_msr[] = {
+    {.msrnum = MSR_GLIU0_BASE4, {.lo = 0x0a0fffe0, .hi = 0x80000000}},
+    {.msrnum = GLIU0_IOD_BM_0,  {.lo = 0x3c0ffff0, .hi = 0x80000000}},
+    {.msrnum = GLIU0_IOD_BM_1,  {.lo = 0x3d0ffff0, .hi = 0x80000000}},
+};
+
+void geodelx_vga_msr_init(void)
+{
+    int i;
+    for (i = 0; i < ARRAY_SIZE(geodelx_vga_msr); i++)
+        wrmsr(geodelx_vga_msr[i].msrnum, geodelx_vga_msr[i].msr);
+}
+#endif
+
 /**
  * This function mirrors the Graphics_Init routine in GeodeROM.
  *
@@ -35,6 +53,10 @@
 	/* SoftVG initialization */
 	printk(BIOS_DEBUG, "Graphics init...\n");
 
+#ifdef CONFIG_PCI_OPTION_ROM_RUN
+	geodelx_vga_msr_init();
+#endif
+
 	/* Call SoftVG with the main configuration parameters. */
 	/* NOTE: SoftVG expects the memory size to be given in 2MB blocks. */
 

