diff --git a/common/hw-gfx-gma-config.ads.template b/common/hw-gfx-gma-config.ads.template
index 2349272..b38201e 100644
--- a/common/hw-gfx-gma-config.ads.template
+++ b/common/hw-gfx-gma-config.ads.template
@@ -110,6 +110,7 @@
    ----- GMBUS: -----------
    Ungate_GMBUS_Unit_Level : constant Boolean := CPU >= Skylake;
    GMBUS_Alternative_Pins  : constant Boolean := CPU = Broxton;
+   Has_PCH_GMBUS           : constant Boolean := CPU >= Ironlake;
 
    ----- Power: -----------
    Has_IPS                 : constant Boolean := (CPU = Haswell and
diff --git a/common/hw-gfx-gma-i2c.adb b/common/hw-gfx-gma-i2c.adb
index 4b58dde..d8cdf44 100644
--- a/common/hw-gfx-gma-i2c.adb
+++ b/common/hw-gfx-gma-i2c.adb
@@ -71,6 +71,22 @@
 
    GMBUS5_2BYTE_INDEX_ENABLE        : constant :=   1 * 2 ** 31;
 
+   GMBUS_Regs : constant array (0 .. 5) of Registers.Registers_Index :=
+     (if Config.Has_PCH_GMBUS then
+        (0 => Registers.PCH_GMBUS0,
+         1 => Registers.PCH_GMBUS1,
+         2 => Registers.PCH_GMBUS2,
+         3 => Registers.PCH_GMBUS3,
+         4 => Registers.PCH_GMBUS4,
+         5 => Registers.PCH_GMBUS5)
+      else
+        (0 => Registers.GMCH_GMBUS0,
+         1 => Registers.GMCH_GMBUS1,
+         2 => Registers.GMCH_GMBUS2,
+         3 => Registers.GMCH_GMBUS3,
+         4 => Registers.GMCH_GMBUS4,
+         5 => Registers.GMCH_GMBUS5));
+
    function GMBUS1_TOTAL_BYTE_COUNT
      (Count : HW.GFX.I2C.Transfer_Length)
       return Word32 is
@@ -109,7 +125,7 @@
    is
       GMBUS2 : Word32;
    begin
-      Registers.Read (Registers.PCH_GMBUS2, GMBUS2);
+      Registers.Read (GMBUS_Regs (2), GMBUS2);
       Result := (GMBUS2 and (GMBUS2_HARDWARE_WAIT_PHASE or
                               GMBUS2_SLAVE_STALL_TIMEOUT_ERROR or
                               GMBUS2_GMBUS_INTERRUPT_STATUS or
@@ -120,9 +136,9 @@
    begin
       pragma Debug (Debug.Put_Line (GNAT.Source_Info.Enclosing_Entity));
 
-      Registers.Write (Registers.PCH_GMBUS1, GMBUS1_SOFTWARE_CLEAR_INTERRUPT);
-      Registers.Write (Registers.PCH_GMBUS1, 0);
-      Registers.Write (Registers.PCH_GMBUS0, GMBUS0_PIN_PAIR_SELECT_NONE);
+      Registers.Write (GMBUS_Regs (1), GMBUS1_SOFTWARE_CLEAR_INTERRUPT);
+      Registers.Write (GMBUS_Regs (1), 0);
+      Registers.Write (GMBUS_Regs (0), GMBUS0_PIN_PAIR_SELECT_NONE);
 
       GMBUS_Ready (Success);
    end Reset_GMBUS;
@@ -138,7 +154,7 @@
       end if;
 
       -- TODO: Refactor + check for timeout.
-      Registers.Wait_Unset_Mask (Registers.PCH_GMBUS2, GMBUS2_INUSE);
+      Registers.Wait_Unset_Mask (GMBUS_Regs (2), GMBUS2_INUSE);
 
       GMBUS_Ready (Success);
       if not Success then
@@ -147,14 +163,14 @@
 
       if Success then
          Registers.Write
-           (Register => Registers.PCH_GMBUS0,
+           (Register => GMBUS_Regs (0),
             Value    => GMBUS0_GMBUS_RATE_SELECT_100KHZ or
                         GMBUS0_PIN_PAIR_SELECT (Port));
          Registers.Write
-           (Register => Registers.PCH_GMBUS4,
+           (Register => GMBUS_Regs (4),
             Value    => 0);
          Registers.Write
-           (Register => Registers.PCH_GMBUS5,
+           (Register => GMBUS_Regs (5),
             Value    => 0);
       end if;
    end Init_GMBUS;
@@ -164,10 +180,10 @@
    begin
       pragma Debug (Debug.Put_Line (GNAT.Source_Info.Enclosing_Entity));
 
-      Registers.Write (Registers.PCH_GMBUS0, GMBUS0_PIN_PAIR_SELECT_NONE);
+      Registers.Write (GMBUS_Regs (0), GMBUS0_PIN_PAIR_SELECT_NONE);
 
       -- Clear INUSE. TODO: Don't do it, if timeout occured (see above).
-      Registers.Write (Registers.PCH_GMBUS2, GMBUS2_INUSE);
+      Registers.Write (GMBUS_Regs (2), GMBUS2_INUSE);
 
       if Config.Ungate_GMBUS_Unit_Level then
          Registers.Unset_Mask
@@ -196,7 +212,7 @@
       Init_GMBUS (Port, Success);
       if Success then
          Registers.Write
-           (Register => Registers.PCH_GMBUS1,
+           (Register => GMBUS_Regs (1),
             Value    => GMBUS1_SOFTWARE_READY or
                         GMBUS1_BUS_CYCLE_INDEX or
                         GMBUS1_BUS_CYCLE_WAIT or
@@ -206,17 +222,17 @@
 
          while Success and then Transfered < Length loop
             Registers.Wait_Set_Mask
-              (Register => Registers.PCH_GMBUS2,
+              (Register => GMBUS_Regs (2),
                Mask     => GMBUS2_HARDWARE_READY,
                TOut_MS  => 55);
 
-            Registers.Read (Registers.PCH_GMBUS2, GMBUS2);
+            Registers.Read (GMBUS_Regs (2), GMBUS2);
             Success :=  (GMBUS2 and GMBUS2_HARDWARE_READY) /= 0 and
                         (GMBUS2 and GMBUS2_NAK_INDICATOR) = 0;
             if Success then
                Current := GFX.I2C.Transfer_Length'Min (Length, Transfered + 4);
 
-               Registers.Read (Registers.PCH_GMBUS3, GMBUS3);
+               Registers.Read (GMBUS_Regs (3), GMBUS3);
                for I in Transfered .. Current - 1 loop
                   Data (I) := Byte (GMBUS3 and 16#ff#);
                   GMBUS3 := Shift_Right (GMBUS3, 8);
@@ -226,13 +242,13 @@
          end loop;
          if Success then
             Registers.Wait_Set_Mask
-              (Register => Registers.PCH_GMBUS2,
+              (Register => GMBUS_Regs (2),
                Mask     => GMBUS2_HARDWARE_WAIT_PHASE);
             Registers.Write
-              (Register => Registers.PCH_GMBUS1,
+              (Register => GMBUS_Regs (1),
                Value    => GMBUS1_SOFTWARE_READY or GMBUS1_BUS_CYCLE_STOP);
             Registers.Wait_Unset_Mask
-              (Register => Registers.PCH_GMBUS2,
+              (Register => GMBUS_Regs (2),
                Mask     => GMBUS2_GMBUS_ACTIVE);
          end if;
       end if;
diff --git a/common/hw-gfx-gma-registers.ads b/common/hw-gfx-gma-registers.ads
index 1515fab..37e62e8 100644
--- a/common/hw-gfx-gma-registers.ads
+++ b/common/hw-gfx-gma-registers.ads
@@ -44,6 +44,12 @@
       ARB_MODE,
       HWS_PGA,
       GAM_ECOCHK,
+      GMCH_GMBUS0,
+      GMCH_GMBUS1,
+      GMCH_GMBUS2,
+      GMCH_GMBUS3,
+      GMCH_GMBUS4,
+      GMCH_GMBUS5,
       MBCTL,
       UCGCTL1,
       UCGCTL2,
@@ -1347,6 +1353,12 @@
       SDEIER                => 16#0c_400c# / Register_Width,
 
       -- I2C stuff
+      GMCH_GMBUS0           => 16#00_5100# / Register_Width,
+      GMCH_GMBUS1           => 16#00_5104# / Register_Width,
+      GMCH_GMBUS2           => 16#00_5108# / Register_Width,
+      GMCH_GMBUS3           => 16#00_510c# / Register_Width,
+      GMCH_GMBUS4           => 16#00_5110# / Register_Width,
+      GMCH_GMBUS5           => 16#00_5120# / Register_Width,
       PCH_GMBUS0            => 16#0c_5100# / Register_Width,
       PCH_GMBUS1            => 16#0c_5104# / Register_Width,
       PCH_GMBUS2            => 16#0c_5108# / Register_Width,
