diff --git a/src/northbridge/intel/sandybridge/gma.c b/src/northbridge/intel/sandybridge/gma.c
index 181d901..499f347 100644
--- a/src/northbridge/intel/sandybridge/gma.c
+++ b/src/northbridge/intel/sandybridge/gma.c
@@ -79,6 +79,62 @@
 };
 
 struct gt_powermeter ivb_pm_gt1[] = {
+	{ 0xa800, 0x00000000 },
+	{ 0xa804, 0x00021c00 },
+	{ 0xa808, 0x00000403 },
+	{ 0xa80c, 0x02001700 },
+	{ 0xa810, 0x05000200 },
+	{ 0xa814, 0x00000000 },
+	{ 0xa818, 0x00690500 },
+	{ 0xa81c, 0x0000007f },
+	{ 0xa820, 0x01002501 },
+	{ 0xa824, 0x00000300 },
+	{ 0xa828, 0x01000331 },
+	{ 0xa82c, 0x0000000c },
+	{ 0xa830, 0x00010016 },
+	{ 0xa834, 0x01100101 },
+	{ 0xa838, 0x00010103 },
+	{ 0xa83c, 0x00041300 },
+	{ 0xa840, 0x00000b30 },
+	{ 0xa844, 0x00000000 },
+	{ 0xa848, 0x7f000000 },
+	{ 0xa84c, 0x05000008 },
+	{ 0xa850, 0x00000001 },
+	{ 0xa854, 0x00000004 },
+	{ 0xa858, 0x00000007 },
+	{ 0xa85c, 0x00000000 },
+	{ 0xa860, 0x00010000 },
+	{ 0xa248, 0x0000221e },
+	{ 0xa900, 0x00000000 },
+	{ 0xa904, 0x00001c00 },
+	{ 0xa908, 0x00000000 },
+	{ 0xa90c, 0x06000000 },
+	{ 0xa910, 0x09000200 },
+	{ 0xa914, 0x00000000 },
+	{ 0xa918, 0x00590000 },
+	{ 0xa91c, 0x00000000 },
+	{ 0xa920, 0x04002501 },
+	{ 0xa924, 0x00000100 },
+	{ 0xa928, 0x03000410 },
+	{ 0xa92c, 0x00000000 },
+	{ 0xa930, 0x00020000 },
+	{ 0xa934, 0x02070106 },
+	{ 0xa938, 0x00010100 },
+	{ 0xa93c, 0x00401c00 },
+	{ 0xa940, 0x00000000 },
+	{ 0xa944, 0x00000000 },
+	{ 0xa948, 0x10000e00 },
+	{ 0xa94c, 0x02000004 },
+	{ 0xa950, 0x00000001 },
+	{ 0xa954, 0x00000004 },
+	{ 0xa960, 0x00060000 },
+	{ 0xaa3c, 0x00001c00 },
+	{ 0xaa54, 0x00000004 },
+	{ 0xaa60, 0x00060000 },
+	{ 0 }
+};
+
+struct gt_powermeter ivb_pm_gt2[] = {
 	{ 0xa800, 0x10000000 },
 	{ 0xa804, 0x00033800 },
 	{ 0xa808, 0x00000902 },
@@ -134,7 +190,7 @@
 	{ 0 }
 };
 
-struct gt_powermeter ivb_pm_gt2[] = {
+struct gt_powermeter ivb_pm_gt2_17w[] = {
 	{ 0xa800, 0x20000000 },
 	{ 0xa804, 0x000e3800 },
 	{ 0xa808, 0x00000806 },
@@ -155,9 +211,9 @@
 	{ 0xa844, 0x00000000 },
 	{ 0xa848, 0xff000000 },
 	{ 0xa84c, 0x0a000010 },
-	{ 0xa850, 0x00000004 },
+	{ 0xa850, 0x00000002 },
 	{ 0xa854, 0x00000008 },
-	{ 0xa858, 0x00000018 },
+	{ 0xa858, 0x0000000f },
 	{ 0xa85c, 0x00000000 },
 	{ 0xa860, 0x00020000 },
 	{ 0xa248, 0x0000221e },
@@ -165,16 +221,72 @@
 	{ 0xa904, 0x00003800 },
 	{ 0xa908, 0x00000000 },
 	{ 0xa90c, 0x0c000000 },
-	{ 0xa910, 0x12000500 },
+	{ 0xa910, 0x12000800 },
 	{ 0xa914, 0x00000000 },
 	{ 0xa918, 0x00b20000 },
 	{ 0xa91c, 0x00000000 },
 	{ 0xa920, 0x08004b02 },
-	{ 0xa924, 0x00000200 },
-	{ 0xa928, 0x07000820 },
+	{ 0xa924, 0x00000300 },
+	{ 0xa928, 0x01000820 },
 	{ 0xa92c, 0x00000000 },
 	{ 0xa930, 0x00030000 },
-	{ 0xa934, 0x050f020d },
+	{ 0xa934, 0x15150406 },
+	{ 0xa938, 0x00020300 },
+	{ 0xa93c, 0x00903900 },
+	{ 0xa940, 0x00000000 },
+	{ 0xa944, 0x00000000 },
+	{ 0xa948, 0x20001b00 },
+	{ 0xa94c, 0x0a000010 },
+	{ 0xa950, 0x00000000 },
+	{ 0xa954, 0x00000008 },
+	{ 0xa960, 0x00110000 },
+	{ 0xaa3c, 0x00003900 },
+	{ 0xaa54, 0x00000008 },
+	{ 0xaa60, 0x00110000 },
+	{ 0 }
+};
+
+struct gt_powermeter ivb_pm_gt2_35w[] = {
+	{ 0xa800, 0x00000000 },
+	{ 0xa804, 0x00030400 },
+	{ 0xa808, 0x00000806 },
+	{ 0xa80c, 0x0c002f00 },
+	{ 0xa810, 0x0c000300 },
+	{ 0xa814, 0x00000000 },
+	{ 0xa818, 0x00d20d00 },
+	{ 0xa81c, 0x000000ff },
+	{ 0xa820, 0x03004b02 },
+	{ 0xa824, 0x00000600 },
+	{ 0xa828, 0x07000773 },
+	{ 0xa82c, 0x00000000 },
+	{ 0xa830, 0x00020032 },
+	{ 0xa834, 0x1520040d },
+	{ 0xa838, 0x00020105 },
+	{ 0xa83c, 0x00083700 },
+	{ 0xa840, 0x000016ff },
+	{ 0xa844, 0x00000000 },
+	{ 0xa848, 0xff000000 },
+	{ 0xa84c, 0x0a000010 },
+	{ 0xa850, 0x00000001 },
+	{ 0xa854, 0x00000008 },
+	{ 0xa858, 0x00000008 },
+	{ 0xa85c, 0x00000000 },
+	{ 0xa860, 0x00020000 },
+	{ 0xa248, 0x0000221e },
+	{ 0xa900, 0x00000000 },
+	{ 0xa904, 0x00003800 },
+	{ 0xa908, 0x00000000 },
+	{ 0xa90c, 0x0c000000 },
+	{ 0xa910, 0x12000800 },
+	{ 0xa914, 0x00000000 },
+	{ 0xa918, 0x00b20000 },
+	{ 0xa91c, 0x00000000 },
+	{ 0xa920, 0x08004b02 },
+	{ 0xa924, 0x00000300 },
+	{ 0xa928, 0x01000820 },
+	{ 0xa92c, 0x00000000 },
+	{ 0xa930, 0x00030000 },
+	{ 0xa934, 0x15150406 },
 	{ 0xa938, 0x00020300 },
 	{ 0xa93c, 0x00903900 },
 	{ 0xa940, 0x00000000 },
@@ -269,6 +381,12 @@
 		gtt_write(0xa188, 0xffff0001);
 		if (!gtt_poll(0x130040, (1 << 0), (1 << 0)))
 			return;
+		/*
+		 * HACK: also poll on 0x130090, for some reason graphics does
+		 * not work on all SKUs unless this register is polled at boot.
+		 */
+		if (!gtt_poll(0x130090, (1 << 0), (1 << 0)))
+			return;
 	}
 
 	if ((bridge_silicon_revision() & BASE_REV_MASK) == BASE_REV_SNB) {
@@ -297,17 +415,32 @@
 		}
 	} else {
 		u32 unit = MCHBAR32(0x5938) & 0xf;
-		u32 tdp = MCHBAR32(0x5930) & 0x7fff;
-		tdp /= (1 << unit);
 
-		if ((tdp <= 17) && !(reg32 & (1 << 13))) {
-			/* <=17W ULV and GT2 SKU */
-			printk(BIOS_DEBUG, "IVB GT2 Power Meter Weights\n");
-			gtt_write_powermeter(ivb_pm_gt2);
-		} else {
+		if (reg32 & (1 << 13)) {
 			/* GT1 SKU */
 			printk(BIOS_DEBUG, "IVB GT1 Power Meter Weights\n");
 			gtt_write_powermeter(ivb_pm_gt1);
+		} else {
+			/* GT2 SKU */
+			u32 tdp = MCHBAR32(0x5930) & 0x7fff;
+			tdp /= (1 << unit);
+
+			if (tdp <= 17) {
+				/* <=17W ULV */
+				printk(BIOS_DEBUG, "IVB GT2 17W "
+				       "Power Meter Weights\n");
+				gtt_write_powermeter(ivb_pm_gt2_17w);
+			} else if ((tdp >= 25) && (tdp <= 35)) {
+				/* 25W-35W */
+				printk(BIOS_DEBUG, "IVB GT2 35W "
+				       "Power Meter Weights\n");
+				gtt_write_powermeter(ivb_pm_gt2_35w);
+			} else {
+				/* All others */
+				printk(BIOS_DEBUG, "IVB GT2 35W "
+				       "Power Meter Weights\n");
+				gtt_write_powermeter(ivb_pm_gt2_35w);
+			}
 		}
 	}
 
@@ -441,6 +574,13 @@
 		if (!gtt_poll(0x130040, (1 << 0), (0 << 0))) {
 			return;
 		}
+		/*
+		 * HACK: also poll on 0x130090, for some reason graphics does
+		 * not work on all SKUs unless this register is polled at boot.
+		 */
+		if (!gtt_poll(0x130090, (1 << 0), (0 << 0))) {
+			return;
+		}
 		gtt_write(0xa188, gtt_read(0xa188) | 1);
 	}
 
