<p>Felix Held has uploaded this change for <strong>review</strong>.</p><p><a href="https://review.coreboot.org/27707">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">nehalem/raminit: clean up code and use MCHBAR macros<br><br>On a a timeless build with coreboot i386 crossgcc 6.3.0, this doesn't change the<br>hash of the output binary.<br><br>Change-Id: I15e09320e72cffb8a2617eca0cfe40780f74bece<br>Signed-off-by: Felix Held <felix-coreboot@felixheld.de><br>---<br>M src/northbridge/intel/nehalem/raminit.c<br>1 file changed, 686 insertions(+), 755 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">git pull ssh://review.coreboot.org:29418/coreboot refs/changes/07/27707/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/src/northbridge/intel/nehalem/raminit.c b/src/northbridge/intel/nehalem/raminit.c</span><br><span>index 8c4d50e..4e2679d 100644</span><br><span>--- a/src/northbridge/intel/nehalem/raminit.c</span><br><span>+++ b/src/northbridge/intel/nehalem/raminit.c</span><br><span>@@ -152,26 +152,28 @@</span><br><span> /* OK */</span><br><span> static void write_1d0(u32 val, u16 addr, int bits, int flag)</span><br><span> {</span><br><span style="color: hsl(0, 100%, 40%);">-       write_mchbar32(0x1d0, 0);</span><br><span style="color: hsl(0, 100%, 40%);">-       while (read_mchbar32(0x1d0) & 0x800000);</span><br><span style="color: hsl(0, 100%, 40%);">-    write_mchbar32(0x1d4,</span><br><span style="color: hsl(0, 100%, 40%);">-                  (val & ((1 << bits) - 1)) | (2 << bits) | (flag <<</span><br><span style="color: hsl(0, 100%, 40%);">-                                                           bits));</span><br><span style="color: hsl(0, 100%, 40%);">-       write_mchbar32(0x1d0, 0x40000000 | addr);</span><br><span style="color: hsl(0, 100%, 40%);">-       while (read_mchbar32(0x1d0) & 0x800000);</span><br><span style="color: hsl(120, 100%, 40%);">+  MCHBAR32(0x1d0) = 0;</span><br><span style="color: hsl(120, 100%, 40%);">+  while (MCHBAR32(0x1d0) & 0x800000)</span><br><span style="color: hsl(120, 100%, 40%);">+                ;</span><br><span style="color: hsl(120, 100%, 40%);">+     MCHBAR32(0x1d4) =</span><br><span style="color: hsl(120, 100%, 40%);">+             (val & ((1 << bits) - 1)) | (2 << bits) | (flag << bits);</span><br><span style="color: hsl(120, 100%, 40%);">+       MCHBAR32(0x1d0) = 0x40000000 | addr;</span><br><span style="color: hsl(120, 100%, 40%);">+  while (read_mchbar32(0x1d0) & 0x800000)</span><br><span style="color: hsl(120, 100%, 40%);">+           ;</span><br><span> }</span><br><span> </span><br><span> /* OK */</span><br><span> static u16 read_1d0(u16 addr, int split)</span><br><span> {</span><br><span>      u32 val;</span><br><span style="color: hsl(0, 100%, 40%);">-        write_mchbar32(0x1d0, 0);</span><br><span style="color: hsl(0, 100%, 40%);">-       while (read_mchbar32(0x1d0) & 0x800000);</span><br><span style="color: hsl(0, 100%, 40%);">-    write_mchbar32(0x1d0,</span><br><span style="color: hsl(0, 100%, 40%);">-                  0x80000000 | (((read_mchbar8(0x246) >> 2) & 3) +</span><br><span style="color: hsl(0, 100%, 40%);">-                                    0x361 - addr));</span><br><span style="color: hsl(0, 100%, 40%);">-    while (read_mchbar32(0x1d0) & 0x800000);</span><br><span style="color: hsl(0, 100%, 40%);">-    val = read_mchbar32(0x1d8);</span><br><span style="color: hsl(120, 100%, 40%);">+   MCHBAR32(0x1d0) = 0;</span><br><span style="color: hsl(120, 100%, 40%);">+  while (MCHBAR32(0x1d0) & 0x800000)</span><br><span style="color: hsl(120, 100%, 40%);">+                ;</span><br><span style="color: hsl(120, 100%, 40%);">+     MCHBAR32(0x1d0) =</span><br><span style="color: hsl(120, 100%, 40%);">+             0x80000000 | (((MCHBAR8(0x246) >> 2) & 3) + 0x361 - addr);</span><br><span style="color: hsl(120, 100%, 40%);">+  while (MCHBAR32(0x1d0) & 0x800000)</span><br><span style="color: hsl(120, 100%, 40%);">+                ;</span><br><span style="color: hsl(120, 100%, 40%);">+     val = MCHBAR32(0x1d8);</span><br><span>       write_1d0(0, 0x33d, 0, 0);</span><br><span>   write_1d0(0, 0x33d, 0, 0);</span><br><span>   val &= ((1 << split) - 1);</span><br><span>@@ -268,14 +270,15 @@</span><br><span> {</span><br><span>    u32 val;</span><br><span>     info->last_500_command[channel] = 0x80000000;</span><br><span style="color: hsl(0, 100%, 40%);">-        write_mchbar32(0x500 + (channel << 10), 0);</span><br><span style="color: hsl(0, 100%, 40%);">-       while (read_mchbar32(0x500 + (channel << 10)) & 0x800000);</span><br><span style="color: hsl(0, 100%, 40%);">-    write_mchbar32(0x500 + (channel << 10),</span><br><span style="color: hsl(0, 100%, 40%);">-                  0x80000000 |</span><br><span style="color: hsl(0, 100%, 40%);">-                    (((read_mchbar8(0x246 + (channel << 10)) >> 2) &</span><br><span style="color: hsl(0, 100%, 40%);">-                  3) + 0xb88 - addr));</span><br><span style="color: hsl(0, 100%, 40%);">-   while (read_mchbar32(0x500 + (channel << 10)) & 0x800000);</span><br><span style="color: hsl(0, 100%, 40%);">-    val = read_mchbar32(0x508 + (channel << 10));</span><br><span style="color: hsl(120, 100%, 40%);">+   MCHBAR32(0x500 + (channel << 10)) = 0;</span><br><span style="color: hsl(120, 100%, 40%);">+  while (MCHBAR32(0x500 + (channel << 10)) & 0x800000)</span><br><span style="color: hsl(120, 100%, 40%);">+                ;</span><br><span style="color: hsl(120, 100%, 40%);">+     MCHBAR32(0x500 + (channel << 10)) =</span><br><span style="color: hsl(120, 100%, 40%);">+             0x80000000 | (((MCHBAR8(0x246 + (channel << 10)) >> 2) & 3)</span><br><span style="color: hsl(120, 100%, 40%);">+           + 0xb88 - addr);</span><br><span style="color: hsl(120, 100%, 40%);">+      while (MCHBAR32(0x500 + (channel << 10)) & 0x800000)</span><br><span style="color: hsl(120, 100%, 40%);">+                ;</span><br><span style="color: hsl(120, 100%, 40%);">+     val = MCHBAR32(0x508 + (channel << 10));</span><br><span>       return val & ((1 << split) - 1);</span><br><span> }</span><br><span> </span><br><span>@@ -288,13 +291,14 @@</span><br><span>          info->last_500_command[channel] = 0x40000000;</span><br><span>             write_500(info, channel, 0, 0xb61, 0, 0);</span><br><span>    }</span><br><span style="color: hsl(0, 100%, 40%);">-       write_mchbar32(0x500 + (channel << 10), 0);</span><br><span style="color: hsl(0, 100%, 40%);">-       while (read_mchbar32(0x500 + (channel << 10)) & 0x800000);</span><br><span style="color: hsl(0, 100%, 40%);">-    write_mchbar32(0x504 + (channel << 10),</span><br><span style="color: hsl(0, 100%, 40%);">-                  (val & ((1 << bits) - 1)) | (2 << bits) | (flag <<</span><br><span style="color: hsl(0, 100%, 40%);">-                                                           bits));</span><br><span style="color: hsl(0, 100%, 40%);">-       write_mchbar32(0x500 + (channel << 10), 0x40000000 | addr);</span><br><span style="color: hsl(0, 100%, 40%);">-       while (read_mchbar32(0x500 + (channel << 10)) & 0x800000);</span><br><span style="color: hsl(120, 100%, 40%);">+  MCHBAR32(0x500 + (channel << 10)) = 0;</span><br><span style="color: hsl(120, 100%, 40%);">+  while (MCHBAR32(0x500 + (channel << 10)) & 0x800000)</span><br><span style="color: hsl(120, 100%, 40%);">+                ;</span><br><span style="color: hsl(120, 100%, 40%);">+     MCHBAR32(0x504 + (channel << 10)) =</span><br><span style="color: hsl(120, 100%, 40%);">+             (val & ((1 << bits) - 1)) | (2 << bits) | (flag << bits);</span><br><span style="color: hsl(120, 100%, 40%);">+       MCHBAR32(0x500 + (channel << 10)) = 0x40000000 | addr;</span><br><span style="color: hsl(120, 100%, 40%);">+  while (read_mchbar32(0x500 + (channel << 10)) & 0x800000)</span><br><span style="color: hsl(120, 100%, 40%);">+           ;</span><br><span> }</span><br><span> </span><br><span> static int rw_test(int rank)</span><br><span>@@ -357,23 +361,22 @@</span><br><span> </span><br><span> static void write_26c(int channel, u16 si)</span><br><span> {</span><br><span style="color: hsl(0, 100%, 40%);">-       write_mchbar32(0x26c + (channel << 10), 0x03243f35);</span><br><span style="color: hsl(0, 100%, 40%);">-      write_mchbar32(0x268 + (channel << 10), 0xcfc00000 | (si << 9));</span><br><span style="color: hsl(0, 100%, 40%);">-    write_mchbar16(0x2b9 + (channel << 10), si);</span><br><span style="color: hsl(120, 100%, 40%);">+    MCHBAR32(0x26c + (channel << 10)) = 0x03243f35;</span><br><span style="color: hsl(120, 100%, 40%);">+ MCHBAR32(0x268 + (channel << 10)) = 0xcfc00000 | (si << 9);</span><br><span style="color: hsl(120, 100%, 40%);">+       MCHBAR16(0x2b9 + (channel << 10)) = si;</span><br><span> }</span><br><span> </span><br><span> static u32 get_580(int channel, u8 addr)</span><br><span> {</span><br><span>      u32 ret;</span><br><span>     gav(read_1d0(0x142, 3));</span><br><span style="color: hsl(0, 100%, 40%);">-        write_mchbar8(0x5ff, 0x0);      /* OK */</span><br><span style="color: hsl(0, 100%, 40%);">-        write_mchbar8(0x5ff, 0x80);     /* OK */</span><br><span style="color: hsl(0, 100%, 40%);">-        write_mchbar32(0x580 + (channel << 10), 0x8493c012 | addr);</span><br><span style="color: hsl(0, 100%, 40%);">-       write_mchbar8(0x580 + (channel << 10),</span><br><span style="color: hsl(0, 100%, 40%);">-                  read_mchbar8(0x580 + (channel << 10)) | 1);</span><br><span style="color: hsl(0, 100%, 40%);">- while (!((ret = read_mchbar32(0x580 + (channel << 10))) & 0x10000));</span><br><span style="color: hsl(0, 100%, 40%);">-  write_mchbar8(0x580 + (channel << 10),</span><br><span style="color: hsl(0, 100%, 40%);">-                  read_mchbar8(0x580 + (channel << 10)) & ~1);</span><br><span style="color: hsl(120, 100%, 40%);">+  MCHBAR8(0x5ff) = 0x0;</span><br><span style="color: hsl(120, 100%, 40%);">+ MCHBAR8(0x5ff) = 0x80;</span><br><span style="color: hsl(120, 100%, 40%);">+        MCHBAR32(0x580 + (channel << 10)) = 0x8493c012 | addr;</span><br><span style="color: hsl(120, 100%, 40%);">+  MCHBAR8_OR(0x580 + (channel << 10), 1);</span><br><span style="color: hsl(120, 100%, 40%);">+ while (!((ret = MCHBAR32(0x580 + (channel << 10))) & 0x10000))</span><br><span style="color: hsl(120, 100%, 40%);">+              ;</span><br><span style="color: hsl(120, 100%, 40%);">+     MCHBAR8_AND(0x580 + (channel << 10), ~1);</span><br><span>      return ret;</span><br><span> }</span><br><span> </span><br><span>@@ -423,8 +426,8 @@</span><br><span>   }</span><br><span> </span><br><span>        gav(read_1d0(0x142, 3));        // = 0x10408118</span><br><span style="color: hsl(0, 100%, 40%);">- write_mchbar8(0x5ff, 0x0);      /* OK */</span><br><span style="color: hsl(0, 100%, 40%);">-        write_mchbar8(0x5ff, 0x80);     /* OK */</span><br><span style="color: hsl(120, 100%, 40%);">+      MCHBAR8(0x5ff) = 0x0;</span><br><span style="color: hsl(120, 100%, 40%);">+ MCHBAR8(0x5ff) = 0x80;</span><br><span>       write_1d0(0x2, 0x142, 3, 1);</span><br><span>         for (lane = 0; lane < 8; lane++) {</span><br><span>                //      printk (BIOS_ERR, "before: %x\n", info->training.lane_timings[2][channel][slot][rank][lane]);</span><br><span>@@ -474,8 +477,8 @@</span><br><span>     gav(get_580(channel, 0xc | (rank << 5)));</span><br><span>      gav(read_1d0(0x142, 3));</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-    write_mchbar8(0x5ff, 0x0);      /* OK */</span><br><span style="color: hsl(0, 100%, 40%);">-        write_mchbar8(0x5ff, 0x80);     /* OK */</span><br><span style="color: hsl(120, 100%, 40%);">+      MCHBAR8(0x5ff) = 0x0;</span><br><span style="color: hsl(120, 100%, 40%);">+ MCHBAR8(0x5ff) = 0x80;</span><br><span> }</span><br><span> </span><br><span> static void set_4cf(struct raminfo *info, int channel, u8 val)</span><br><span>@@ -507,28 +510,29 @@</span><br><span>                            c = 0x5f5f;</span><br><span> </span><br><span>                      for (k = 0; k < 2; k++) {</span><br><span style="color: hsl(0, 100%, 40%);">-                            write_mchbar32(0x138 + 8 * k,</span><br><span style="color: hsl(0, 100%, 40%);">-                                          (channel << 26) | (j << 24));</span><br><span style="color: hsl(120, 100%, 40%);">+                              MCHBAR32(0x138 + 8 * k) =</span><br><span style="color: hsl(120, 100%, 40%);">+                                     (channel << 26) | (j << 24);</span><br><span>                             gav(vd8[1][(channel << 3) | (j << 1) | k] =</span><br><span style="color: hsl(0, 100%, 40%);">-                             read_mchbar32(0x138 + 8 * k));</span><br><span style="color: hsl(120, 100%, 40%);">+                                MCHBAR32(0x138 + 8 * k));</span><br><span>                                gav(vd8[0][(channel << 3) | (j << 1) | k] =</span><br><span style="color: hsl(0, 100%, 40%);">-                             read_mchbar32(0x13c + 8 * k));</span><br><span style="color: hsl(120, 100%, 40%);">+                                MCHBAR32(0x13c + 8 * k));</span><br><span>                        }</span><br><span> </span><br><span>                        write_mchbar32(0x334 + (channel << 10) + (j * 0x44),</span><br><span>                                  zero ? 0 : val3[j]);</span><br><span style="color: hsl(0, 100%, 40%);">-                     write_mchbar32(0x32c + (channel << 10) + (j * 0x44),</span><br><span style="color: hsl(0, 100%, 40%);">-                                     zero ? 0 : (0x18191819 & lmask));</span><br><span style="color: hsl(0, 100%, 40%);">-                    write_mchbar16(0x34a + (channel << 10) + (j * 0x44), c);</span><br><span style="color: hsl(0, 100%, 40%);">-                  write_mchbar32(0x33c + (channel << 10) + (j * 0x44),</span><br><span style="color: hsl(0, 100%, 40%);">-                                     zero ? 0 : (a & lmask));</span><br><span style="color: hsl(0, 100%, 40%);">-                     write_mchbar32(0x344 + (channel << 10) + (j * 0x44),</span><br><span style="color: hsl(0, 100%, 40%);">-                                     zero ? 0 : (a & lmask));</span><br><span style="color: hsl(120, 100%, 40%);">+                   MCHBAR32(0x32c + (channel << 10) + (j * 0x44)) =</span><br><span style="color: hsl(120, 100%, 40%);">+                                zero ? 0 : (0x18191819 & lmask);</span><br><span style="color: hsl(120, 100%, 40%);">+                  MCHBAR16(0x34a + (channel << 10) + (j * 0x44)) = c;</span><br><span style="color: hsl(120, 100%, 40%);">+                     MCHBAR32(0x33c + (channel << 10) + (j * 0x44)) =</span><br><span style="color: hsl(120, 100%, 40%);">+                                zero ? 0 : (a & lmask);</span><br><span style="color: hsl(120, 100%, 40%);">+                   MCHBAR32(0x344 + (channel << 10) + (j * 0x44)) =</span><br><span style="color: hsl(120, 100%, 40%);">+                                zero ? 0 : (a & lmask);</span><br><span>          }</span><br><span>    }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-   write_mchbar32(0x130, read_mchbar32(0x130) | 1);        /* OK */</span><br><span style="color: hsl(0, 100%, 40%);">-        while (read_mchbar8(0x130) & 1);    /* OK */</span><br><span style="color: hsl(120, 100%, 40%);">+      MCHBAR32_OR(0x130, 1);</span><br><span style="color: hsl(120, 100%, 40%);">+        while (MCHBAR8(0x130) & 1)</span><br><span style="color: hsl(120, 100%, 40%);">+                ;</span><br><span> }</span><br><span> </span><br><span> static void rmw_1d0(u16 addr, u32 and, u32 or, int split, int flag)</span><br><span>@@ -926,12 +930,11 @@</span><br><span>    else</span><br><span>                 info->max_slots_used_in_channel = 1;</span><br><span>      for (channel = 0; channel < 2; channel++)</span><br><span style="color: hsl(0, 100%, 40%);">-            write_mchbar32(0x244 + (channel << 10),</span><br><span style="color: hsl(0, 100%, 40%);">-                          ((info->revision < 8) ? 1 : 0x200)</span><br><span style="color: hsl(0, 100%, 40%);">-                        | ((2 - info->max_slots_used_in_channel) << 17) |</span><br><span style="color: hsl(0, 100%, 40%);">-                              (channel << 21) | (info-></span><br><span style="color: hsl(0, 100%, 40%);">-                                                 some_delay_1_cycle_floor <<</span><br><span style="color: hsl(0, 100%, 40%);">-                                               18) | 0x9510);</span><br><span style="color: hsl(120, 100%, 40%);">+              MCHBAR32(0x244 + (channel << 10)) =</span><br><span style="color: hsl(120, 100%, 40%);">+                     ((info->revision < 8) ? 1 : 0x200) |</span><br><span style="color: hsl(120, 100%, 40%);">+                    ((2 - info->max_slots_used_in_channel) << 17) |</span><br><span style="color: hsl(120, 100%, 40%);">+                      (channel << 21) |</span><br><span style="color: hsl(120, 100%, 40%);">+                       (info->some_delay_1_cycle_floor << 18) | 0x9510;</span><br><span>    if (info->max_slots_used_in_channel == 1) {</span><br><span>               info->mode4030[0] = (count_ranks_in_channel(info, 0) == 2);</span><br><span>               info->mode4030[1] = (count_ranks_in_channel(info, 1) == 2);</span><br><span>@@ -1049,11 +1052,10 @@</span><br><span> {</span><br><span>        /* Handle mirrored mapping.  */</span><br><span>      if ((rank & 1) && (info->spd[channel][slot][RANK1_ADDRESS_MAPPING] & 1))</span><br><span style="color: hsl(0, 100%, 40%);">-             addr3 =</span><br><span style="color: hsl(0, 100%, 40%);">-             (addr3 & 0xCF) | ((addr3 & 0x10) << 1) | ((addr3 >> 1) &</span><br><span style="color: hsl(0, 100%, 40%);">-                                                          0x10);</span><br><span style="color: hsl(0, 100%, 40%);">-    write_mchbar8(0x271, addr3 | (read_mchbar8(0x271) & 0xC1));</span><br><span style="color: hsl(0, 100%, 40%);">- write_mchbar8(0x671, addr3 | (read_mchbar8(0x671) & 0xC1));</span><br><span style="color: hsl(120, 100%, 40%);">+               addr3 = (addr3 & 0xCF) | ((addr3 & 0x10) << 1) |</span><br><span style="color: hsl(120, 100%, 40%);">+                        ((addr3 >> 1) & 0x10);</span><br><span style="color: hsl(120, 100%, 40%);">+      MCHBAR8(0x271) = addr3 | (MCHBAR8(0x271) & 0xC1);</span><br><span style="color: hsl(120, 100%, 40%);">+ MCHBAR8(0x671) = addr3 | (MCHBAR8(0x671) & 0xC1);</span><br><span> </span><br><span>    /* Handle mirrored mapping.  */</span><br><span>      if ((rank & 1) && (info->spd[channel][slot][RANK1_ADDRESS_MAPPING] & 1))</span><br><span>@@ -1063,8 +1065,8 @@</span><br><span> </span><br><span>      read32p((value << 3) | (total_rank << 28));</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-     write_mchbar8(0x271, (read_mchbar8(0x271) & 0xC3) | 2);</span><br><span style="color: hsl(0, 100%, 40%);">-     write_mchbar8(0x671, (read_mchbar8(0x671) & 0xC3) | 2);</span><br><span style="color: hsl(120, 100%, 40%);">+   MCHBAR8(0x271) = (MCHBAR8(0x271) & 0xC3) | 2;</span><br><span style="color: hsl(120, 100%, 40%);">+     MCHBAR8(0x671) = (MCHBAR8(0x671) & 0xC3) | 2;</span><br><span> </span><br><span>        read32p(total_rank << 28);</span><br><span> }</span><br><span>@@ -1145,11 +1147,11 @@</span><br><span>                      }</span><br><span>            }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-           write_mchbar16(0x588 + (channel << 10), 0x0);</span><br><span style="color: hsl(0, 100%, 40%);">-             write_mchbar16(0x58a + (channel << 10), 0x4);</span><br><span style="color: hsl(0, 100%, 40%);">-             write_mchbar16(0x58c + (channel << 10), rtt | MR1_ODS34OHM);</span><br><span style="color: hsl(0, 100%, 40%);">-              write_mchbar16(0x58e + (channel << 10), rzq_reg58e | 0x82);</span><br><span style="color: hsl(0, 100%, 40%);">-               write_mchbar16(0x590 + (channel << 10), 0x1282);</span><br><span style="color: hsl(120, 100%, 40%);">+                MCHBAR16(0x588 + (channel << 10)) = 0x0;</span><br><span style="color: hsl(120, 100%, 40%);">+                MCHBAR16(0x58a + (channel << 10)) = 0x4;</span><br><span style="color: hsl(120, 100%, 40%);">+                MCHBAR16(0x58c + (channel << 10)) = rtt | MR1_ODS34OHM;</span><br><span style="color: hsl(120, 100%, 40%);">+         MCHBAR16(0x58e + (channel << 10)) = rzq_reg58e | 0x82;</span><br><span style="color: hsl(120, 100%, 40%);">+          MCHBAR16(0x590 + (channel << 10)) = 0x1282;</span><br><span> </span><br><span>                for (slot = 0; slot < NUM_SLOTS; slot++)</span><br><span>                  for (rank = 0; rank < NUM_RANKS; rank++)</span><br><span>@@ -1191,15 +1193,14 @@</span><br><span>                            pre_jedec ? 256 : (256 << info-></span><br><span>                                               density[channel][slot] >> info-></span><br><span>                                            is_x16_module[channel][slot]);</span><br><span style="color: hsl(0, 100%, 40%);">-                   write_mchbar8(0x208 + rank + 2 * slot + (channel << 10),</span><br><span style="color: hsl(0, 100%, 40%);">-                                (pre_jedec ? (1 | ((1 + 1) << 1))</span><br><span style="color: hsl(0, 100%, 40%);">-                                  : (info-></span><br><span style="color: hsl(0, 100%, 40%);">-                                       is_x16_module[channel][slot] |</span><br><span style="color: hsl(0, 100%, 40%);">-                                          ((info->density[channel][slot] +</span><br><span style="color: hsl(0, 100%, 40%);">-                                       1) << 1))) | 0x80);</span><br><span style="color: hsl(120, 100%, 40%);">+                 MCHBAR8(0x208 + rank + 2 * slot + (channel << 10)) =</span><br><span style="color: hsl(120, 100%, 40%);">+                            (pre_jedec ? (1 | ((1 + 1) << 1)) :</span><br><span style="color: hsl(120, 100%, 40%);">+                             (info->is_x16_module[channel][slot] |</span><br><span style="color: hsl(120, 100%, 40%);">+                              ((info->density[channel][slot] + 1) << 1))) |</span><br><span style="color: hsl(120, 100%, 40%);">+                                0x80;</span><br><span>                }</span><br><span style="color: hsl(0, 100%, 40%);">-               write_mchbar16(0x200 + (channel << 10) + 4 * slot + 2 * rank,</span><br><span style="color: hsl(0, 100%, 40%);">-                            total_mb[channel] >> 6);</span><br><span style="color: hsl(120, 100%, 40%);">+         MCHBAR16(0x200 + (channel << 10) + 4 * slot + 2 * rank) =</span><br><span style="color: hsl(120, 100%, 40%);">+                       total_mb[channel] >> 6;</span><br><span>        }</span><br><span> </span><br><span>        info->total_memory_mb = total_mb[0] + total_mb[1];</span><br><span>@@ -1209,12 +1210,10 @@</span><br><span>      info->non_interleaved_part_mb =</span><br><span>       total_mb[0] + total_mb[1] - info->interleaved_part_mb;</span><br><span>        channel_0_non_interleaved = total_mb[0] - info->interleaved_part_mb / 2;</span><br><span style="color: hsl(0, 100%, 40%);">-     write_mchbar32(0x100,</span><br><span style="color: hsl(0, 100%, 40%);">-                  channel_0_non_interleaved | (info-></span><br><span style="color: hsl(0, 100%, 40%);">-                                               non_interleaved_part_mb <<</span><br><span style="color: hsl(0, 100%, 40%);">-                                                16));</span><br><span style="color: hsl(120, 100%, 40%);">+     MCHBAR32(0x100) = channel_0_non_interleaved |</span><br><span style="color: hsl(120, 100%, 40%);">+         (info->non_interleaved_part_mb << 16);</span><br><span>      if (!pre_jedec)</span><br><span style="color: hsl(0, 100%, 40%);">-         write_mchbar16(0x104, info->interleaved_part_mb);</span><br><span style="color: hsl(120, 100%, 40%);">+          MCHBAR16(0x104) = info->interleaved_part_mb;</span><br><span> }</span><br><span> </span><br><span> static void program_board_delay(struct raminfo *info)</span><br><span>@@ -1253,15 +1252,13 @@</span><br><span>                  || info->silicon_revision == 3))</span><br><span>                  rmw_1d0(0x116, 5, 2, 4, 1);</span><br><span>  }</span><br><span style="color: hsl(0, 100%, 40%);">-       write_mchbar32(0x120,</span><br><span style="color: hsl(0, 100%, 40%);">-                  (1 << (info->max_slots_used_in_channel + 28)) |</span><br><span style="color: hsl(0, 100%, 40%);">-                0x188e7f9f);</span><br><span style="color: hsl(120, 100%, 40%);">+   MCHBAR32(0x120) = (1 << (info->max_slots_used_in_channel + 28)) |</span><br><span style="color: hsl(120, 100%, 40%);">+            0x188e7f9f;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">- write_mchbar8(0x124,</span><br><span style="color: hsl(0, 100%, 40%);">-                  info->board_lane_delay[4] +</span><br><span style="color: hsl(0, 100%, 40%);">-                  ((frequency_01(info) + 999) / 1000));</span><br><span style="color: hsl(0, 100%, 40%);">-     write_mchbar16(0x125, 0x1360);</span><br><span style="color: hsl(0, 100%, 40%);">-  write_mchbar8(0x127, 0x40);</span><br><span style="color: hsl(120, 100%, 40%);">+   MCHBAR8(0x124) = info->board_lane_delay[4] +</span><br><span style="color: hsl(120, 100%, 40%);">+               ((frequency_01(info) + 999) / 1000);</span><br><span style="color: hsl(120, 100%, 40%);">+  MCHBAR16(0x125) = 0x1360;</span><br><span style="color: hsl(120, 100%, 40%);">+     MCHBAR8(0x127) = 0x40;</span><br><span>       if (info->fsb_frequency < frequency_11(info) / 2) {</span><br><span>            unsigned some_delay_2_half_cycles;</span><br><span>           high_multiplier = 1;</span><br><span>@@ -1288,47 +1285,30 @@</span><br><span>       if (read_mchbar8(0x2ca9) & 1)</span><br><span>            some_delay_3_half_cycles = 3;</span><br><span>        for (channel = 0; channel < NUM_CHANNELS; channel++) {</span><br><span style="color: hsl(0, 100%, 40%);">-               write_mchbar32(0x220 + (channel << 10),</span><br><span style="color: hsl(0, 100%, 40%);">-                          read_mchbar32(0x220 +</span><br><span style="color: hsl(0, 100%, 40%);">-                                         (channel << 10)) | 0x18001117);</span><br><span style="color: hsl(0, 100%, 40%);">-              write_mchbar32(0x224 + (channel << 10),</span><br><span style="color: hsl(0, 100%, 40%);">-                          (info->max_slots_used_in_channel - 1)</span><br><span style="color: hsl(0, 100%, 40%);">-                        |</span><br><span style="color: hsl(0, 100%, 40%);">-                               ((info->cas_latency - 5 -</span><br><span style="color: hsl(0, 100%, 40%);">-                              info->clock_speed_index) << 21)</span><br><span style="color: hsl(0, 100%, 40%);">-                              |</span><br><span style="color: hsl(0, 100%, 40%);">-                               ((info->max_slots_used_in_channel +</span><br><span style="color: hsl(0, 100%, 40%);">-                            info->cas_latency - cas_latency_shift -</span><br><span style="color: hsl(0, 100%, 40%);">-                              4) << 16)</span><br><span style="color: hsl(0, 100%, 40%);">-                               | ((info->cas_latency - cas_latency_shift - 4) <<</span><br><span style="color: hsl(0, 100%, 40%);">-                                 26)</span><br><span style="color: hsl(0, 100%, 40%);">-                          |</span><br><span style="color: hsl(0, 100%, 40%);">-                               ((info->cas_latency - info->clock_speed_index +</span><br><span style="color: hsl(0, 100%, 40%);">-                             info->max_slots_used_in_channel - 6) << 8));</span><br><span style="color: hsl(0, 100%, 40%);">-          write_mchbar32(0x228 + (channel << 10),</span><br><span style="color: hsl(0, 100%, 40%);">-                          info->max_slots_used_in_channel);</span><br><span style="color: hsl(0, 100%, 40%);">-             write_mchbar8(0x239 + (channel << 10), 32);</span><br><span style="color: hsl(0, 100%, 40%);">-               write_mchbar32(0x248 + (channel << 10),</span><br><span style="color: hsl(0, 100%, 40%);">-                          (high_multiplier << 24) |</span><br><span style="color: hsl(0, 100%, 40%);">-                         (some_delay_3_half_cycles << 25) | 0x840000);</span><br><span style="color: hsl(0, 100%, 40%);">-              write_mchbar32(0x278 + (channel << 10), 0xc362042);</span><br><span style="color: hsl(0, 100%, 40%);">-               write_mchbar32(0x27c + (channel << 10), 0x8b000062);</span><br><span style="color: hsl(0, 100%, 40%);">-              write_mchbar32(0x24c + (channel << 10),</span><br><span style="color: hsl(0, 100%, 40%);">-                          ((! !info-></span><br><span style="color: hsl(0, 100%, 40%);">-                            clock_speed_index) << 17) | (((2 +</span><br><span style="color: hsl(0, 100%, 40%);">-                                                               info-></span><br><span style="color: hsl(0, 100%, 40%);">-                                                               clock_speed_index</span><br><span style="color: hsl(0, 100%, 40%);">-                                                               -</span><br><span style="color: hsl(0, 100%, 40%);">-                                                               (! !info-></span><br><span style="color: hsl(0, 100%, 40%);">-                                                            clock_speed_index)))</span><br><span style="color: hsl(0, 100%, 40%);">-                                                         << 12) | 0x10200);</span><br><span style="color: hsl(120, 100%, 40%);">+                MCHBAR32_OR(0x220 + (channel << 10), 0x18001117);</span><br><span style="color: hsl(120, 100%, 40%);">+               MCHBAR32(0x224 + (channel << 10)) =</span><br><span style="color: hsl(120, 100%, 40%);">+                     (info->max_slots_used_in_channel - 1) |</span><br><span style="color: hsl(120, 100%, 40%);">+                    ((info->cas_latency - 5 - info->clock_speed_index)</span><br><span style="color: hsl(120, 100%, 40%);">+                      << 21) | ((info->max_slots_used_in_channel +</span><br><span style="color: hsl(120, 100%, 40%);">+                 info->cas_latency - cas_latency_shift - 4) << 16) |</span><br><span style="color: hsl(120, 100%, 40%);">+                  ((info->cas_latency - cas_latency_shift - 4) << 26) |</span><br><span style="color: hsl(120, 100%, 40%);">+                        ((info->cas_latency - info->clock_speed_index +</span><br><span style="color: hsl(120, 100%, 40%);">+                 info->max_slots_used_in_channel - 6) << 8);</span><br><span style="color: hsl(120, 100%, 40%);">+          MCHBAR32(0x228 + (channel << 10)) =</span><br><span style="color: hsl(120, 100%, 40%);">+                     info->max_slots_used_in_channel;</span><br><span style="color: hsl(120, 100%, 40%);">+           MCHBAR8(0x239 + (channel << 10)) = 32;</span><br><span style="color: hsl(120, 100%, 40%);">+          MCHBAR32(0x248 + (channel << 10)) = (high_multiplier << 24) |</span><br><span style="color: hsl(120, 100%, 40%);">+                     (some_delay_3_half_cycles << 25) | 0x840000;</span><br><span style="color: hsl(120, 100%, 40%);">+            MCHBAR32(0x278 + (channel << 10)) = 0xc362042;</span><br><span style="color: hsl(120, 100%, 40%);">+          MCHBAR32(0x27c + (channel << 10)) = 0x8b000062;</span><br><span style="color: hsl(120, 100%, 40%);">+         MCHBAR32(0x24c + (channel << 10)) =</span><br><span style="color: hsl(120, 100%, 40%);">+                     ((!!info->clock_speed_index) << 17) |</span><br><span style="color: hsl(120, 100%, 40%);">+                        (((2 + info->clock_speed_index -</span><br><span style="color: hsl(120, 100%, 40%);">+                   (!!info->clock_speed_index))) << 12) | 0x10200;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-            write_mchbar8(0x267 + (channel << 10), 0x4);</span><br><span style="color: hsl(0, 100%, 40%);">-              write_mchbar16(0x272 + (channel << 10), 0x155);</span><br><span style="color: hsl(0, 100%, 40%);">-           write_mchbar32(0x2bc + (channel << 10),</span><br><span style="color: hsl(0, 100%, 40%);">-                          (read_mchbar32(0x2bc + (channel << 10)) &</span><br><span style="color: hsl(0, 100%, 40%);">-                              0xFF000000)</span><br><span style="color: hsl(0, 100%, 40%);">-                            | 0x707070);</span><br><span style="color: hsl(120, 100%, 40%);">+           MCHBAR8(0x267 + (channel << 10)) = 0x4;</span><br><span style="color: hsl(120, 100%, 40%);">+         MCHBAR16(0x272 + (channel << 10)) = 0x155;</span><br><span style="color: hsl(120, 100%, 40%);">+              MCHBAR32_AND_OR(0x2bc + (channel << 10), 0xFF000000, 0x707070);</span><br><span> </span><br><span>            write_500(info, channel,</span><br><span>                       ((!info->populated_ranks[channel][1][1])</span><br><span>@@ -1347,7 +1327,7 @@</span><br><span>                        freq_divisor = 1;</span><br><span>            else</span><br><span>                         freq_divisor = 2;</span><br><span style="color: hsl(0, 100%, 40%);">-               write_mchbar32(0x2c0, (freq_divisor << 11) | 0x6009c400);</span><br><span style="color: hsl(120, 100%, 40%);">+               MCHBAR32(0x2c0) = (freq_divisor << 11) | 0x6009c400;</span><br><span>   }</span><br><span> </span><br><span>        if (info->board_lane_delay[3] <= 10) {</span><br><span>@@ -1362,69 +1342,48 @@</span><br><span>       if (info->clock_speed_index > 1)</span><br><span>               cas_latency_derived++;</span><br><span>       for (channel = 0; channel < NUM_CHANNELS; channel++) {</span><br><span style="color: hsl(0, 100%, 40%);">-               write_mchbar32(0x240 + (channel << 10),</span><br><span style="color: hsl(0, 100%, 40%);">-                          ((info->clock_speed_index ==</span><br><span style="color: hsl(0, 100%, 40%);">-                           0) * 0x11000) | 0x1002100 | ((2 +</span><br><span style="color: hsl(0, 100%, 40%);">-                                                             info-></span><br><span style="color: hsl(0, 100%, 40%);">-                                                               clock_speed_index)</span><br><span style="color: hsl(0, 100%, 40%);">-                                                             << 4) | (info-></span><br><span style="color: hsl(0, 100%, 40%);">-                                                                 cas_latency</span><br><span style="color: hsl(0, 100%, 40%);">-                                                                     - 3));</span><br><span style="color: hsl(120, 100%, 40%);">+         MCHBAR32(0x240 + (channel << 10)) =</span><br><span style="color: hsl(120, 100%, 40%);">+                     ((info->clock_speed_index == 0) * 0x11000) |</span><br><span style="color: hsl(120, 100%, 40%);">+                       0x1002100 | ((2 + info->clock_speed_index) << 4) |</span><br><span style="color: hsl(120, 100%, 40%);">+                   (info->cas_latency - 3);</span><br><span>          write_500(info, channel, (info->clock_speed_index << 1) | 1,</span><br><span>                          0x609, 6, 1);</span><br><span>              write_500(info, channel,</span><br><span>                       info->clock_speed_index + 2 * info->cas_latency - 7,</span><br><span>                           0x601, 6, 1);</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-             write_mchbar32(0x250 + (channel << 10),</span><br><span style="color: hsl(0, 100%, 40%);">-                          ((lane_3_delay + info->clock_speed_index +</span><br><span style="color: hsl(0, 100%, 40%);">-                             9) << 6)</span><br><span style="color: hsl(0, 100%, 40%);">-                        | (info->board_lane_delay[7] << 2) | (info-></span><br><span style="color: hsl(0, 100%, 40%);">-                                                              board_lane_delay</span><br><span style="color: hsl(0, 100%, 40%);">-                                                                [4] << 16)</span><br><span style="color: hsl(0, 100%, 40%);">-                          | (info->board_lane_delay[1] << 25) | (info-></span><br><span style="color: hsl(0, 100%, 40%);">-                                                                      board_lane_delay</span><br><span style="color: hsl(0, 100%, 40%);">-                                                                [1] << 29)</span><br><span style="color: hsl(0, 100%, 40%);">-                         | 1);</span><br><span style="color: hsl(0, 100%, 40%);">-            write_mchbar32(0x254 + (channel << 10),</span><br><span style="color: hsl(0, 100%, 40%);">-                          (info-></span><br><span style="color: hsl(0, 100%, 40%);">-                               board_lane_delay[1] >> 3) | ((info-></span><br><span style="color: hsl(0, 100%, 40%);">-                                                         board_lane_delay</span><br><span style="color: hsl(0, 100%, 40%);">-                                                        [8] +</span><br><span style="color: hsl(0, 100%, 40%);">-                                                           4 *</span><br><span style="color: hsl(0, 100%, 40%);">-                                                             info-></span><br><span style="color: hsl(0, 100%, 40%);">-                                                       use_ecc) << 6) |</span><br><span style="color: hsl(0, 100%, 40%);">-                           0x80 | (info->board_lane_delay[6] << 1) | (info-></span><br><span style="color: hsl(0, 100%, 40%);">-                                                                      board_lane_delay</span><br><span style="color: hsl(0, 100%, 40%);">-                                                                        [2] <<</span><br><span style="color: hsl(0, 100%, 40%);">-                                                                    28) |</span><br><span style="color: hsl(0, 100%, 40%);">-                        (cas_latency_derived << 16) | 0x4700000);</span><br><span style="color: hsl(0, 100%, 40%);">-          write_mchbar32(0x258 + (channel << 10),</span><br><span style="color: hsl(0, 100%, 40%);">-                          ((info->board_lane_delay[5] +</span><br><span style="color: hsl(0, 100%, 40%);">-                          info->clock_speed_index +</span><br><span style="color: hsl(0, 100%, 40%);">-                            9) << 12) | ((info->clock_speed_index -</span><br><span style="color: hsl(0, 100%, 40%);">-                                              info->cas_latency + 12) << 8)</span><br><span style="color: hsl(0, 100%, 40%);">-                          | (info->board_lane_delay[2] << 17) | (info-></span><br><span style="color: hsl(0, 100%, 40%);">-                                                                      board_lane_delay</span><br><span style="color: hsl(0, 100%, 40%);">-                                                                [4] << 24)</span><br><span style="color: hsl(0, 100%, 40%);">-                         | 0x47);</span><br><span style="color: hsl(0, 100%, 40%);">-         write_mchbar32(0x25c + (channel << 10),</span><br><span style="color: hsl(0, 100%, 40%);">-                          (info->board_lane_delay[1] << 1) | (info-></span><br><span style="color: hsl(0, 100%, 40%);">-                                                              board_lane_delay</span><br><span style="color: hsl(0, 100%, 40%);">-                                                                [0] << 8) |</span><br><span style="color: hsl(0, 100%, 40%);">-                           0x1da50000);</span><br><span style="color: hsl(0, 100%, 40%);">-             write_mchbar8(0x264 + (channel << 10), 0xff);</span><br><span style="color: hsl(0, 100%, 40%);">-             write_mchbar8(0x5f8 + (channel << 10),</span><br><span style="color: hsl(0, 100%, 40%);">-                          (cas_latency_shift << 3) | info->use_ecc);</span><br><span style="color: hsl(120, 100%, 40%);">+             MCHBAR32(0x250 + (channel << 10)) =</span><br><span style="color: hsl(120, 100%, 40%);">+                     ((lane_3_delay + info->clock_speed_index + 9) << 6) |</span><br><span style="color: hsl(120, 100%, 40%);">+                        (info->board_lane_delay[7] << 2) |</span><br><span style="color: hsl(120, 100%, 40%);">+                   (info->board_lane_delay[4] << 16) |</span><br><span style="color: hsl(120, 100%, 40%);">+                  (info->board_lane_delay[1] << 25) |</span><br><span style="color: hsl(120, 100%, 40%);">+                  (info->board_lane_delay[1] << 29) | 1;</span><br><span style="color: hsl(120, 100%, 40%);">+               MCHBAR32(0x254 + (channel << 10)) =</span><br><span style="color: hsl(120, 100%, 40%);">+                     (info->board_lane_delay[1] >> 3) |</span><br><span style="color: hsl(120, 100%, 40%);">+                   ((info->board_lane_delay[8] + 4 * info->use_ecc) << 6) |</span><br><span style="color: hsl(120, 100%, 40%);">+                  0x80 | (info->board_lane_delay[6] << 1) |</span><br><span style="color: hsl(120, 100%, 40%);">+                    (info->board_lane_delay[2] << 28) |</span><br><span style="color: hsl(120, 100%, 40%);">+                  (cas_latency_derived << 16) | 0x4700000;</span><br><span style="color: hsl(120, 100%, 40%);">+                MCHBAR32(0x258 + (channel << 10)) =</span><br><span style="color: hsl(120, 100%, 40%);">+                     ((info->board_lane_delay[5] + info->clock_speed_index +</span><br><span style="color: hsl(120, 100%, 40%);">+                 9) << 12) | ((info->clock_speed_index -</span><br><span style="color: hsl(120, 100%, 40%);">+                      info->cas_latency + 12) << 8) |</span><br><span style="color: hsl(120, 100%, 40%);">+                      (info->board_lane_delay[2] << 17) |</span><br><span style="color: hsl(120, 100%, 40%);">+                  (info->board_lane_delay[4] << 24) | 0x47;</span><br><span style="color: hsl(120, 100%, 40%);">+            MCHBAR32(0x25c + (channel << 10)) =</span><br><span style="color: hsl(120, 100%, 40%);">+                     (info->board_lane_delay[1] << 1) |</span><br><span style="color: hsl(120, 100%, 40%);">+                   (info->board_lane_delay[0] << 8) | 0x1da50000;</span><br><span style="color: hsl(120, 100%, 40%);">+               MCHBAR8(0x264 + (channel << 10)) = 0xff;</span><br><span style="color: hsl(120, 100%, 40%);">+                MCHBAR8(0x5f8 + (channel << 10)) =</span><br><span style="color: hsl(120, 100%, 40%);">+                      (cas_latency_shift << 3) | info->use_ecc;</span><br><span>   }</span><br><span> </span><br><span>        program_modules_memory_map(info, 1);</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-        write_mchbar16(0x610,</span><br><span style="color: hsl(0, 100%, 40%);">-                  (min(ns_to_cycles(info, some_delay_ns) / 2, 127) << 9)</span><br><span style="color: hsl(0, 100%, 40%);">-                    | (read_mchbar16(0x610) & 0x1C3) | 0x3C);</span><br><span style="color: hsl(0, 100%, 40%);">-    write_mchbar16(0x612, read_mchbar16(0x612) | 0x100);</span><br><span style="color: hsl(0, 100%, 40%);">-    write_mchbar16(0x214, read_mchbar16(0x214) | 0x3E00);</span><br><span style="color: hsl(120, 100%, 40%);">+ MCHBAR16(0x610) = (min(ns_to_cycles(info, some_delay_ns) / 2, 127) << 9)</span><br><span style="color: hsl(120, 100%, 40%);">+                | (MCHBAR16(0x610) & 0x1C3) | 0x3C;</span><br><span style="color: hsl(120, 100%, 40%);">+       MCHBAR16_OR(0x612, 0x100);</span><br><span style="color: hsl(120, 100%, 40%);">+    MCHBAR16_OR(0x214, 0x3E00);</span><br><span>  for (i = 0; i < 8; i++) {</span><br><span>                 pci_write_config32(PCI_DEV (QUICKPATH_BUS, 0, 1), 0x80 + 4 * i,</span><br><span>                             (info->total_memory_mb - 64) | !i | 2);</span><br><span>@@ -1571,7 +1530,8 @@</span><br><span>    unsigned channel;</span><br><span> </span><br><span>        /* Wait for some bit, maybe TXT clear. */</span><br><span style="color: hsl(0, 100%, 40%);">-       while (!(read8((u8 *)0xfed40000) & (1 << 7)));</span><br><span style="color: hsl(120, 100%, 40%);">+      while (!(read8((u8 *)0xfed40000) & (1 << 7)))</span><br><span style="color: hsl(120, 100%, 40%);">+               ;</span><br><span> </span><br><span>        if (!info->heci_bar)</span><br><span>              gav(info->heci_bar =</span><br><span>@@ -1702,14 +1662,14 @@</span><br><span> </span><br><span>        for (channel = 0; channel < NUM_CHANNELS; channel++) {</span><br><span>            u32 reg32;</span><br><span style="color: hsl(0, 100%, 40%);">-              reg32 = read_mchbar32 ((channel << 10) + 0x274);</span><br><span style="color: hsl(120, 100%, 40%);">+                reg32 = MCHBAR32((channel << 10) + 0x274);</span><br><span>             train.reg274265[channel][0] = reg32 >> 16;</span><br><span>             train.reg274265[channel][1] = reg32 & 0xffff;</span><br><span>            train.reg274265[channel][2] = read_mchbar16 ((channel << 10) + 0x265) >> 8;</span><br><span>      }</span><br><span style="color: hsl(0, 100%, 40%);">-       train.reg2ca9_bit0 = read_mchbar8(0x2ca9) & 1;</span><br><span style="color: hsl(0, 100%, 40%);">-      train.reg_6dc = read_mchbar32 (0x6dc);</span><br><span style="color: hsl(0, 100%, 40%);">-  train.reg_6e8 = read_mchbar32 (0x6e8);</span><br><span style="color: hsl(120, 100%, 40%);">+        train.reg2ca9_bit0 = MCHBAR8(0x2ca9) & 1;</span><br><span style="color: hsl(120, 100%, 40%);">+ train.reg_6dc = MCHBAR32(0x6dc);</span><br><span style="color: hsl(120, 100%, 40%);">+      train.reg_6e8 = MCHBAR32(0x6e8);</span><br><span> </span><br><span>         printk (BIOS_SPEW, "[6dc] = %x\n", train.reg_6dc);</span><br><span>         printk (BIOS_SPEW, "[6e8] = %x\n", train.reg_6e8);</span><br><span>@@ -1731,7 +1691,8 @@</span><br><span> /* FIXME: add timeout.  */</span><br><span> static void wait_heci_ready(void)</span><br><span> {</span><br><span style="color: hsl(0, 100%, 40%);">-    while (!(read32(DEFAULT_HECIBAR + 0xc) & 8));       // = 0x8000000c</span><br><span style="color: hsl(120, 100%, 40%);">+       while (!(read32(DEFAULT_HECIBAR + 0xc) & 8))        // = 0x8000000c</span><br><span style="color: hsl(120, 100%, 40%);">+               ;</span><br><span>    write32((DEFAULT_HECIBAR + 0x4),</span><br><span>             (read32(DEFAULT_HECIBAR + 0x4) & ~0x10) | 0xc);</span><br><span> }</span><br><span>@@ -1810,7 +1771,8 @@</span><br><span>     do {</span><br><span>                 csr.raw = read32(DEFAULT_HECIBAR + 0xc);</span><br><span>     }</span><br><span style="color: hsl(0, 100%, 40%);">-       while (csr.csr.buffer_write_ptr == csr.csr.buffer_read_ptr);</span><br><span style="color: hsl(120, 100%, 40%);">+  while (csr.csr.buffer_write_ptr == csr.csr.buffer_read_ptr)</span><br><span style="color: hsl(120, 100%, 40%);">+           ;</span><br><span>    *(u32 *) head = read32(DEFAULT_HECIBAR + 0x8);</span><br><span>       if (!head->length) {</span><br><span>              write32(DEFAULT_HECIBAR + 0x4,</span><br><span>@@ -1941,11 +1903,12 @@</span><br><span> </span><br><span>                 write32(DEFAULT_RCBA + 0x40, 0x87000080);       // OK</span><br><span>                write32(DEFAULT_DMIBAR + 0x38, 0x87000080);     // OK</span><br><span style="color: hsl(0, 100%, 40%);">-           while (read16(DEFAULT_RCBA + 0x46) & 2</span><br><span style="color: hsl(0, 100%, 40%);">-                     && read16(DEFAULT_DMIBAR + 0x3e) & 2);</span><br><span style="color: hsl(120, 100%, 40%);">+             while ((read16(DEFAULT_RCBA + 0x46) & 2) &&</span><br><span style="color: hsl(120, 100%, 40%);">+                       read16(DEFAULT_DMIBAR + 0x3e) & 2)</span><br><span style="color: hsl(120, 100%, 40%);">+                        ;</span><br><span>    }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-   write_mchbar32(0x24, 0x10000 + info->memory_reserved_for_heci_mb);</span><br><span style="color: hsl(120, 100%, 40%);">+ MCHBAR32(0x24) = 0x10000 + info->memory_reserved_for_heci_mb;</span><br><span> </span><br><span>         send_heci_uma_message(info);</span><br><span> </span><br><span>@@ -2315,7 +2278,7 @@</span><br><span>     u16 count[8];</span><br><span>        u8 lower_usable[8];</span><br><span>  u8 upper_usable[8];</span><br><span style="color: hsl(0, 100%, 40%);">-     unsigned short num_sucessfully_checked[8];</span><br><span style="color: hsl(120, 100%, 40%);">+    unsigned short num_successfully_checked[8];</span><br><span>  u8 secondary_total_rank;</span><br><span>     u8 reg1b3;</span><br><span> </span><br><span>@@ -2362,7 +2325,7 @@</span><br><span>               write_1d0(reg1b3 ^ 32, 0x1b3, 6, 1);</span><br><span>                 write_1d0(reg1b3 ^ 32, 0x1a3, 6, 1);</span><br><span>                 failmask = check_testing(info, total_rank, 0);</span><br><span style="color: hsl(0, 100%, 40%);">-          write_mchbar32(0xfb0, read_mchbar32(0xfb0) | 0x00030000);</span><br><span style="color: hsl(120, 100%, 40%);">+             MCHBAR32_OR(0xfb0, 0x00030000);</span><br><span>              do_fsm(state, count, failmask, 5, 47, lower_usable,</span><br><span>                 upper_usable, reg1b3);</span><br><span>        }</span><br><span>@@ -2411,9 +2374,9 @@</span><br><span>                                                                       slot,</span><br><span>                                                                        rank),</span><br><span>                                      9, 1);</span><br><span style="color: hsl(0, 100%, 40%);">-                                num_sucessfully_checked[lane] = 0;</span><br><span style="color: hsl(120, 100%, 40%);">+                            num_successfully_checked[lane] = 0;</span><br><span>                  } else</span><br><span style="color: hsl(0, 100%, 40%);">-                          num_sucessfully_checked[lane] = -1;</span><br><span style="color: hsl(120, 100%, 40%);">+                           num_successfully_checked[lane] = -1;</span><br><span> </span><br><span>             do {</span><br><span>                         u8 failmask = 0;</span><br><span>@@ -2428,20 +2391,19 @@</span><br><span>                               check_testing_type2(info, total_rank, 3, i,</span><br><span>                                                      1);</span><br><span>                  }</span><br><span style="color: hsl(0, 100%, 40%);">-                       write_mchbar32(0xfb0,</span><br><span style="color: hsl(0, 100%, 40%);">-                                  read_mchbar32(0xfb0) | 0x00030000);</span><br><span style="color: hsl(120, 100%, 40%);">+                    MCHBAR32_OR(0xfb0, 0x00030000);</span><br><span>                      for (lane = 0; lane < 8; lane++)</span><br><span style="color: hsl(0, 100%, 40%);">-                             if (num_sucessfully_checked[lane] != 0xffff) {</span><br><span style="color: hsl(120, 100%, 40%);">+                                if (num_successfully_checked[lane] != 0xffff) {</span><br><span>                                      if ((1 << lane) & failmask) {</span><br><span>                                              if (timings[reg_178][channel]</span><br><span>                                                    [slot][rank][lane].</span><br><span>                                                  largest <=</span><br><span>                                                timings[reg_178][channel]</span><br><span>                                                    [slot][rank][lane].smallest)</span><br><span style="color: hsl(0, 100%, 40%);">-                                                        num_sucessfully_checked</span><br><span style="color: hsl(120, 100%, 40%);">+                                                       num_successfully_checked</span><br><span>                                                         [lane] = -1;</span><br><span>                                             else {</span><br><span style="color: hsl(0, 100%, 40%);">-                                                  num_sucessfully_checked</span><br><span style="color: hsl(120, 100%, 40%);">+                                                       num_successfully_checked</span><br><span>                                                         [lane] = 0;</span><br><span>                                                      timings[reg_178]</span><br><span>                                                         [channel][slot]</span><br><span>@@ -2484,10 +2446,12 @@</span><br><span>                                                                  9, 1);</span><br><span>                                             }</span><br><span>                                    } else</span><br><span style="color: hsl(0, 100%, 40%);">-                                          num_sucessfully_checked[lane]++;</span><br><span style="color: hsl(120, 100%, 40%);">+                                              num_successfully_checked[lane]</span><br><span style="color: hsl(120, 100%, 40%);">+                                                        ++;</span><br><span>                          }</span><br><span>            }</span><br><span style="color: hsl(0, 100%, 40%);">-               while (!check_bounded(num_sucessfully_checked, 2));</span><br><span style="color: hsl(120, 100%, 40%);">+           while (!check_bounded(num_successfully_checked, 2))</span><br><span style="color: hsl(120, 100%, 40%);">+                   ;</span><br><span> </span><br><span>                for (lane = 0; lane < 8; lane++)</span><br><span>                  if (state[lane] == COMPLETE) {</span><br><span>@@ -2511,9 +2475,9 @@</span><br><span>                                                                          slot,</span><br><span>                                                                        rank),</span><br><span>                                      9, 1);</span><br><span style="color: hsl(0, 100%, 40%);">-                                num_sucessfully_checked[lane] = 0;</span><br><span style="color: hsl(120, 100%, 40%);">+                            num_successfully_checked[lane] = 0;</span><br><span>                  } else</span><br><span style="color: hsl(0, 100%, 40%);">-                          num_sucessfully_checked[lane] = -1;</span><br><span style="color: hsl(120, 100%, 40%);">+                           num_successfully_checked[lane] = -1;</span><br><span> </span><br><span>             do {</span><br><span>                         int failmask = 0;</span><br><span>@@ -2529,10 +2493,9 @@</span><br><span>                                                   1);</span><br><span>                  }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-                   write_mchbar32(0xfb0,</span><br><span style="color: hsl(0, 100%, 40%);">-                                  read_mchbar32(0xfb0) | 0x00030000);</span><br><span style="color: hsl(120, 100%, 40%);">+                    MCHBAR32_OR(0xfb0, 0x00030000);</span><br><span>                      for (lane = 0; lane < 8; lane++) {</span><br><span style="color: hsl(0, 100%, 40%);">-                           if (num_sucessfully_checked[lane] != 0xffff) {</span><br><span style="color: hsl(120, 100%, 40%);">+                                if (num_successfully_checked[lane] != 0xffff) {</span><br><span>                                      if ((1 << lane) & failmask) {</span><br><span>                                              if (timings[reg_178][channel]</span><br><span>                                                    [slot][rank][lane].</span><br><span>@@ -2540,10 +2503,10 @@</span><br><span>                                                timings[reg_178][channel]</span><br><span>                                                    [slot][rank][lane].</span><br><span>                                                  smallest) {</span><br><span style="color: hsl(0, 100%, 40%);">-                                                 num_sucessfully_checked</span><br><span style="color: hsl(120, 100%, 40%);">+                                                       num_successfully_checked</span><br><span>                                                         [lane] = -1;</span><br><span>                                             } else {</span><br><span style="color: hsl(0, 100%, 40%);">-                                                        num_sucessfully_checked</span><br><span style="color: hsl(120, 100%, 40%);">+                                                       num_successfully_checked</span><br><span>                                                         [lane] = 0;</span><br><span>                                                      timings[reg_178]</span><br><span>                                                         [channel][slot]</span><br><span>@@ -2586,11 +2549,13 @@</span><br><span>                                                                  9, 1);</span><br><span>                                             }</span><br><span>                                    } else</span><br><span style="color: hsl(0, 100%, 40%);">-                                          num_sucessfully_checked[lane]++;</span><br><span style="color: hsl(120, 100%, 40%);">+                                              num_successfully_checked[lane]</span><br><span style="color: hsl(120, 100%, 40%);">+                                                        ++;</span><br><span>                          }</span><br><span>                    }</span><br><span>            }</span><br><span style="color: hsl(0, 100%, 40%);">-               while (!check_bounded(num_sucessfully_checked, 3));</span><br><span style="color: hsl(120, 100%, 40%);">+           while (!check_bounded(num_successfully_checked, 3))</span><br><span style="color: hsl(120, 100%, 40%);">+                   ;</span><br><span> </span><br><span>                for (lane = 0; lane < 8; lane++) {</span><br><span>                        write_500(info, channel,</span><br><span>@@ -2650,12 +2615,12 @@</span><br><span>   int channel;</span><br><span>         for (channel = 0; channel < NUM_CHANNELS; channel++) {</span><br><span>            u8 t;</span><br><span style="color: hsl(0, 100%, 40%);">-           t = read_mchbar8((channel << 10) + 0x5f8);</span><br><span style="color: hsl(120, 100%, 40%);">+              t = MCHBAR8((channel << 10) + 0x5f8);</span><br><span>          if (onoff)</span><br><span>                   t |= 1;</span><br><span>              else</span><br><span>                         t &= ~1;</span><br><span style="color: hsl(0, 100%, 40%);">-            write_mchbar8((channel << 10) + 0x5f8, t);</span><br><span style="color: hsl(120, 100%, 40%);">+              MCHBAR8((channel << 10) + 0x5f8) = t;</span><br><span>  }</span><br><span> }</span><br><span> </span><br><span>@@ -2955,10 +2920,10 @@</span><br><span>                sizeof(info->training.timing_offset));</span><br><span> </span><br><span>         write_1d0(2, 0x142, 3, 1);</span><br><span style="color: hsl(0, 100%, 40%);">-      saved_243[0] = read_mchbar8(0x243);</span><br><span style="color: hsl(0, 100%, 40%);">-     saved_243[1] = read_mchbar8(0x643);</span><br><span style="color: hsl(0, 100%, 40%);">-     write_mchbar8(0x243, saved_243[0] | 2);</span><br><span style="color: hsl(0, 100%, 40%);">- write_mchbar8(0x643, saved_243[1] | 2);</span><br><span style="color: hsl(120, 100%, 40%);">+       saved_243[0] = MCHBAR8(0x243);</span><br><span style="color: hsl(120, 100%, 40%);">+        saved_243[1] = MCHBAR8(0x643);</span><br><span style="color: hsl(120, 100%, 40%);">+        MCHBAR8(0x243) = saved_243[0] | 2;</span><br><span style="color: hsl(120, 100%, 40%);">+    MCHBAR8(0x643) = saved_243[1] | 2;</span><br><span>   set_ecc(0);</span><br><span>  pci_write_config16(NORTHBRIDGE, 0xc8, 3);</span><br><span>    if (read_1d0(0x10b, 6) & 1)</span><br><span>@@ -3066,8 +3031,8 @@</span><br><span>      write_1d0(0, 0x1bb, 6, 1);</span><br><span>   write_1d0(0, 0x1b3, 6, 1);</span><br><span>   write_1d0(0, 0x1a3, 6, 1);</span><br><span style="color: hsl(0, 100%, 40%);">-      write_mchbar8(0x243, saved_243[0]);</span><br><span style="color: hsl(0, 100%, 40%);">-     write_mchbar8(0x643, saved_243[1]);</span><br><span style="color: hsl(120, 100%, 40%);">+   MCHBAR8(0x243) = saved_243[0];</span><br><span style="color: hsl(120, 100%, 40%);">+        MCHBAR8(0x643) = saved_243[1];</span><br><span> </span><br><span>   return 1;</span><br><span> </span><br><span>@@ -3081,8 +3046,8 @@</span><br><span>        write_1d0(0, 0x1bb, 6, 1);</span><br><span>   write_1d0(0, 0x1b3, 6, 1);</span><br><span>   write_1d0(0, 0x1a3, 6, 1);</span><br><span style="color: hsl(0, 100%, 40%);">-      write_mchbar8(0x243, saved_243[0]);</span><br><span style="color: hsl(0, 100%, 40%);">-     write_mchbar8(0x643, saved_243[1]);</span><br><span style="color: hsl(120, 100%, 40%);">+   MCHBAR8(0x243) = saved_243[0];</span><br><span style="color: hsl(120, 100%, 40%);">+        MCHBAR8(0x643) = saved_243[1];</span><br><span> </span><br><span>   return 0;</span><br><span> }</span><br><span>@@ -3099,10 +3064,10 @@</span><br><span>     u8 reg178_center;</span><br><span> </span><br><span>        write_1d0(2, 0x142, 3, 1);</span><br><span style="color: hsl(0, 100%, 40%);">-      saved_243[0] = read_mchbar8(0x243);</span><br><span style="color: hsl(0, 100%, 40%);">-     saved_243[1] = read_mchbar8(0x643);</span><br><span style="color: hsl(0, 100%, 40%);">-     write_mchbar8(0x243, saved_243[0] | 2);</span><br><span style="color: hsl(0, 100%, 40%);">- write_mchbar8(0x643, saved_243[1] | 2);</span><br><span style="color: hsl(120, 100%, 40%);">+       saved_243[0] = MCHBAR8(0x243);</span><br><span style="color: hsl(120, 100%, 40%);">+        saved_243[1] = MCHBAR8(0x643);</span><br><span style="color: hsl(120, 100%, 40%);">+        MCHBAR8(0x243) = saved_243[0] | 2;</span><br><span style="color: hsl(120, 100%, 40%);">+    MCHBAR8(0x643) = saved_243[1] | 2;</span><br><span>   switch (info->clock_speed_index) {</span><br><span>        case 0:</span><br><span>              niter = 5;</span><br><span>@@ -3269,8 +3234,8 @@</span><br><span>           try_timing_offsets(info, channel, slot, rank, totalrank);</span><br><span>            totalrank++;</span><br><span>         }</span><br><span style="color: hsl(0, 100%, 40%);">-       write_mchbar8(0x243, saved_243[0]);</span><br><span style="color: hsl(0, 100%, 40%);">-     write_mchbar8(0x643, saved_243[1]);</span><br><span style="color: hsl(120, 100%, 40%);">+   MCHBAR8(0x243) = saved_243[0];</span><br><span style="color: hsl(120, 100%, 40%);">+        MCHBAR8(0x643) = saved_243[1];</span><br><span>       write_1d0(0, 0x142, 3, 1);</span><br><span>   info->training.reg178_center = reg178_center;</span><br><span> }</span><br><span>@@ -3279,8 +3244,8 @@</span><br><span> {</span><br><span>   u16 saved_fc4;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-      saved_fc4 = read_mchbar16(0xfc4);</span><br><span style="color: hsl(0, 100%, 40%);">-       write_mchbar16(0xfc4, 0xffff);</span><br><span style="color: hsl(120, 100%, 40%);">+        saved_fc4 = MCHBAR16(0xfc4);</span><br><span style="color: hsl(120, 100%, 40%);">+  MCHBAR16(0xfc4) = 0xffff;</span><br><span> </span><br><span>        if (info->revision >= 8)</span><br><span>               read_4090(info);</span><br><span>@@ -3290,7 +3255,7 @@</span><br><span>     if ((info->silicon_revision == 2 || info->silicon_revision == 3)</span><br><span>           && info->clock_speed_index < 2)</span><br><span>            set_10b(info, 1);</span><br><span style="color: hsl(0, 100%, 40%);">-       write_mchbar16(0xfc4, saved_fc4);</span><br><span style="color: hsl(120, 100%, 40%);">+     MCHBAR16(0xfc4) = saved_fc4;</span><br><span> }</span><br><span> </span><br><span> static unsigned gcd(unsigned a, unsigned b)</span><br><span>@@ -3463,11 +3428,11 @@</span><br><span>                                                                        << 16)</span><br><span>            | (vv.divisor_f4_to_f2 << 20) | (vv.freq_min_reduced << 24);</span><br><span>         if (reverse) {</span><br><span style="color: hsl(0, 100%, 40%);">-          write_mchbar32(reg, y);</span><br><span style="color: hsl(0, 100%, 40%);">-         write_mchbar32(reg + 4, x);</span><br><span style="color: hsl(120, 100%, 40%);">+           MCHBAR32(reg) = y;</span><br><span style="color: hsl(120, 100%, 40%);">+            MCHBAR32(reg + 4) = x;</span><br><span>       } else {</span><br><span style="color: hsl(0, 100%, 40%);">-                write_mchbar32(reg + 4, y);</span><br><span style="color: hsl(0, 100%, 40%);">-             write_mchbar32(reg, x);</span><br><span style="color: hsl(120, 100%, 40%);">+               MCHBAR32(reg + 4) = y;</span><br><span style="color: hsl(120, 100%, 40%);">+                MCHBAR32(reg) = x;</span><br><span>   }</span><br><span> }</span><br><span> </span><br><span>@@ -3490,13 +3455,10 @@</span><br><span>                        | (ratios1.divisor_f4_to_fmax << 16) | (ratios2.</span><br><span>                                                               divisor_f4_to_fmax</span><br><span>                                                           << 20));</span><br><span style="color: hsl(0, 100%, 40%);">-   write_mchbar32(reg,</span><br><span style="color: hsl(0, 100%, 40%);">-                    ratios1.freq4_to_max_remainder | (ratios2.</span><br><span style="color: hsl(0, 100%, 40%);">-                                                        freq4_to_max_remainder</span><br><span style="color: hsl(0, 100%, 40%);">-                                                  << 8)</span><br><span style="color: hsl(0, 100%, 40%);">-                   | (ratios1.divisor_f4_to_fmax << 16) | (ratios2.</span><br><span style="color: hsl(0, 100%, 40%);">-                                                          divisor_f4_to_fmax</span><br><span style="color: hsl(0, 100%, 40%);">-                                                              << 20));</span><br><span style="color: hsl(120, 100%, 40%);">+ MCHBAR32(reg) = ratios1.freq4_to_max_remainder |</span><br><span style="color: hsl(120, 100%, 40%);">+              (ratios2.freq4_to_max_remainder << 8) |</span><br><span style="color: hsl(120, 100%, 40%);">+         (ratios1.divisor_f4_to_fmax << 16) |</span><br><span style="color: hsl(120, 100%, 40%);">+            (ratios2.divisor_f4_to_fmax << 20);</span><br><span> }</span><br><span> </span><br><span> static void</span><br><span>@@ -3509,45 +3471,33 @@</span><br><span>                           round_it, add_freqs, &ratios);</span><br><span>  switch (mode) {</span><br><span>      case 0:</span><br><span style="color: hsl(0, 100%, 40%);">-         write_mchbar32(reg + 4,</span><br><span style="color: hsl(0, 100%, 40%);">-                        ratios.freq_diff_reduced | (ratios.</span><br><span style="color: hsl(0, 100%, 40%);">-                                                         freqs_reversed <<</span><br><span style="color: hsl(0, 100%, 40%);">-                                                         8));</span><br><span style="color: hsl(0, 100%, 40%);">-         write_mchbar32(reg,</span><br><span style="color: hsl(0, 100%, 40%);">-                            ratios.freq3_to_2_remainder | (ratios.</span><br><span style="color: hsl(0, 100%, 40%);">-                                                         freq4_to_max_remainder</span><br><span style="color: hsl(0, 100%, 40%);">-                                                          << 8)</span><br><span style="color: hsl(0, 100%, 40%);">-                              | (ratios.divisor_f3_to_fmax << 16) | (ratios.</span><br><span style="color: hsl(0, 100%, 40%);">-                                                                   divisor_f4_to_fmax</span><br><span style="color: hsl(0, 100%, 40%);">-                                                                      << 20) |</span><br><span style="color: hsl(0, 100%, 40%);">-                           (ratios.freq_min_reduced << 24));</span><br><span style="color: hsl(120, 100%, 40%);">+                MCHBAR32(reg + 4) = ratios.freq_diff_reduced |</span><br><span style="color: hsl(120, 100%, 40%);">+                        (ratios.freqs_reversed << 8);</span><br><span style="color: hsl(120, 100%, 40%);">+           MCHBAR32(reg) = ratios.freq3_to_2_remainder |</span><br><span style="color: hsl(120, 100%, 40%);">+                 (ratios.freq4_to_max_remainder << 8) |</span><br><span style="color: hsl(120, 100%, 40%);">+                  (ratios.divisor_f3_to_fmax << 16) |</span><br><span style="color: hsl(120, 100%, 40%);">+                     (ratios.divisor_f4_to_fmax << 20) |</span><br><span style="color: hsl(120, 100%, 40%);">+                     (ratios.freq_min_reduced << 24);</span><br><span>               break;</span><br><span> </span><br><span>   case 1:</span><br><span style="color: hsl(0, 100%, 40%);">-         write_mchbar32(reg,</span><br><span style="color: hsl(0, 100%, 40%);">-                            ratios.freq3_to_2_remainder | (ratios.</span><br><span style="color: hsl(0, 100%, 40%);">-                                                         divisor_f3_to_fmax</span><br><span style="color: hsl(0, 100%, 40%);">-                                                              << 16));</span><br><span style="color: hsl(120, 100%, 40%);">+          MCHBAR32(reg) = ratios.freq3_to_2_remainder |</span><br><span style="color: hsl(120, 100%, 40%);">+                 (ratios.divisor_f3_to_fmax << 16);</span><br><span>             break;</span><br><span> </span><br><span>   case 2:</span><br><span style="color: hsl(0, 100%, 40%);">-         write_mchbar32(reg,</span><br><span style="color: hsl(0, 100%, 40%);">-                            ratios.freq3_to_2_remainder | (ratios.</span><br><span style="color: hsl(0, 100%, 40%);">-                                                         freq4_to_max_remainder</span><br><span style="color: hsl(0, 100%, 40%);">-                                                          << 8) | (ratios.</span><br><span style="color: hsl(0, 100%, 40%);">-                                                                   divisor_f3_to_fmax</span><br><span style="color: hsl(0, 100%, 40%);">-                                                                      << 16) |</span><br><span style="color: hsl(0, 100%, 40%);">-                          (ratios.divisor_f4_to_fmax << 20));</span><br><span style="color: hsl(120, 100%, 40%);">+              MCHBAR32(reg) = ratios.freq3_to_2_remainder |</span><br><span style="color: hsl(120, 100%, 40%);">+                 (ratios.freq4_to_max_remainder << 8) |</span><br><span style="color: hsl(120, 100%, 40%);">+                  (ratios.divisor_f3_to_fmax << 16) |</span><br><span style="color: hsl(120, 100%, 40%);">+                     (ratios.divisor_f4_to_fmax << 20);</span><br><span>             break;</span><br><span> </span><br><span>   case 4:</span><br><span style="color: hsl(0, 100%, 40%);">-         write_mchbar32(reg, (ratios.divisor_f3_to_fmax << 4)</span><br><span style="color: hsl(0, 100%, 40%);">-                             | (ratios.divisor_f4_to_fmax << 8) | (ratios.</span><br><span style="color: hsl(0, 100%, 40%);">-                                                                   freqs_reversed</span><br><span style="color: hsl(0, 100%, 40%);">-                                                                  << 12) |</span><br><span style="color: hsl(0, 100%, 40%);">-                            (ratios.freq_min_reduced << 16) | (ratios.</span><br><span style="color: hsl(0, 100%, 40%);">-                                                           freq_diff_reduced</span><br><span style="color: hsl(0, 100%, 40%);">-                                                               << 24));</span><br><span style="color: hsl(120, 100%, 40%);">+              MCHBAR32(reg) = (ratios.divisor_f3_to_fmax << 4) |</span><br><span style="color: hsl(120, 100%, 40%);">+                      (ratios.divisor_f4_to_fmax << 8) |</span><br><span style="color: hsl(120, 100%, 40%);">+                      (ratios.freqs_reversed << 12) |</span><br><span style="color: hsl(120, 100%, 40%);">+                 (ratios.freq_min_reduced << 16) |</span><br><span style="color: hsl(120, 100%, 40%);">+                       (ratios.freq_diff_reduced << 24);</span><br><span>              break;</span><br><span>       }</span><br><span> }</span><br><span>@@ -3582,7 +3532,7 @@</span><br><span> </span><br><span>   if (s3resume) {</span><br><span>              printk (BIOS_SPEW, "[6dc] <= %x\n", info->cached_training->reg_6dc);</span><br><span style="color: hsl(0, 100%, 40%);">-         write_mchbar32(0x6dc, info->cached_training->reg_6dc);</span><br><span style="color: hsl(120, 100%, 40%);">+          MCHBAR32(0x6dc) = info->cached_training->reg_6dc;</span><br><span>      } else</span><br><span>               set_6d_reg(info, 0x6dc, 2 * info->fsb_frequency, frequency_11(info), 0,</span><br><span>                      info->delay46_ps[0], 0,</span><br><span>@@ -3593,7 +3543,7 @@</span><br><span>                     frequency_11(info) / 2, 3500, 0, 0, 0);</span><br><span>         if (s3resume) {</span><br><span>              printk (BIOS_SPEW, "[6e8] <= %x\n", info->cached_training->reg_6e8);</span><br><span style="color: hsl(0, 100%, 40%);">-         write_mchbar32(0x6e8, info->cached_training->reg_6e8);</span><br><span style="color: hsl(120, 100%, 40%);">+          MCHBAR32(0x6e8) = info->cached_training->reg_6e8;</span><br><span>      } else</span><br><span>               set_6d_reg(info, 0x6e8, 2 * info->fsb_frequency, frequency_11(info), 0,</span><br><span>                      info->delay46_ps[1], 0,</span><br><span>@@ -3613,8 +3563,8 @@</span><br><span>        set_2d5x_reg(info, 0x2da8, 0x195, frequency_11(info), 1060, 775, 484,</span><br><span>                     480, 0);</span><br><span>        set_2d5x_reg(info, 0x2db0, 0x195, 0x78, 4183, 6023, 2217, 2048, 0);</span><br><span style="color: hsl(0, 100%, 40%);">-     write_mchbar32(0x2dbc, ((frequency_11(info) / 2) - 1) | 0xe00000);</span><br><span style="color: hsl(0, 100%, 40%);">-      write_mchbar32(0x2db8, ((info->fsb_frequency - 1) << 16) | 0x77);</span><br><span style="color: hsl(120, 100%, 40%);">+    MCHBAR32(0x2dbc) = ((frequency_11(info) / 2) - 1) | 0xe00000;</span><br><span style="color: hsl(120, 100%, 40%);">+ MCHBAR32(0x2db8) = ((info->fsb_frequency - 1) << 16) | 0x77;</span><br><span> }</span><br><span> </span><br><span> static u16 get_max_timing(struct raminfo *info, int channel)</span><br><span>@@ -3622,7 +3572,7 @@</span><br><span>       int slot, rank, lane;</span><br><span>        u16 ret = 0;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-        if ((read_mchbar8(0x2ca8) >> 2) < 1)</span><br><span style="color: hsl(120, 100%, 40%);">+ if ((MCHBAR8(0x2ca8) >> 2) < 1)</span><br><span>             return 384;</span><br><span> </span><br><span>      if (info->revision < 8)</span><br><span>@@ -3668,11 +3618,9 @@</span><br><span>                                         2 * info->cas_latency - 7 + 11);</span><br><span>                delay_d_ps += info->revision >= 8 ? 2758 : 4428;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-              write_mchbar32(0x140,</span><br><span style="color: hsl(0, 100%, 40%);">-                          (read_mchbar32(0x140) & 0xfaffffff) | 0x2000000);</span><br><span style="color: hsl(0, 100%, 40%);">-            write_mchbar32(0x138,</span><br><span style="color: hsl(0, 100%, 40%);">-                          (read_mchbar32(0x138) & 0xfaffffff) | 0x2000000);</span><br><span style="color: hsl(0, 100%, 40%);">-            if ((read_mchbar8(0x144) & 0x1f) > 0x13)</span><br><span style="color: hsl(120, 100%, 40%);">+               MCHBAR32_AND_OR(0x140, 0xfaffffff, 0x2000000);</span><br><span style="color: hsl(120, 100%, 40%);">+                MCHBAR32_AND_OR(0x138, 0xfaffffff, 0x2000000);</span><br><span style="color: hsl(120, 100%, 40%);">+                if ((MCHBAR8(0x144) & 0x1f) > 0x13)</span><br><span>                   delay_d_ps += 650;</span><br><span>           delay_c_ps = delay_d_ps + 1800;</span><br><span>              if (delay_c_ps <= delay_a_ps)</span><br><span>@@ -3718,21 +3666,21 @@</span><br><span>                   info->training.reg274265[channel][1] = 0;</span><br><span>                 else</span><br><span>                         info->training.reg274265[channel][1] =</span><br><span style="color: hsl(0, 100%, 40%);">-                           div_roundup(delay_d_ps + 7 * halfcycle_ps(info),</span><br><span style="color: hsl(0, 100%, 40%);">-                                    4 * halfcycle_ps(info)) - 6;</span><br><span style="color: hsl(0, 100%, 40%);">-            write_mchbar32((channel << 10) + 0x274,</span><br><span style="color: hsl(0, 100%, 40%);">-                          info->training.reg274265[channel][1]</span><br><span style="color: hsl(0, 100%, 40%);">-                         | (info->training.reg274265[channel][0] << 16));</span><br><span style="color: hsl(120, 100%, 40%);">+                              div_roundup(delay_d_ps + 7 * halfcycle_ps(info),</span><br><span style="color: hsl(120, 100%, 40%);">+                              4 * halfcycle_ps(info)) - 6;</span><br><span style="color: hsl(120, 100%, 40%);">+          MCHBAR32((channel << 10) + 0x274) =</span><br><span style="color: hsl(120, 100%, 40%);">+                     info->training.reg274265[channel][1] |</span><br><span style="color: hsl(120, 100%, 40%);">+                     (info->training.reg274265[channel][0] << 16);</span><br><span>               info->training.reg274265[channel][2] =</span><br><span style="color: hsl(0, 100%, 40%);">-                   div_roundup(delay_c_ps + 3 * fsbcycle_ps(info),</span><br><span style="color: hsl(0, 100%, 40%);">-                             4 * halfcycle_ps(info)) + 1;</span><br><span style="color: hsl(0, 100%, 40%);">-            write_mchbar16((channel << 10) + 0x265,</span><br><span style="color: hsl(0, 100%, 40%);">-                          info->training.reg274265[channel][2] << 8);</span><br><span style="color: hsl(120, 100%, 40%);">+                   div_roundup(delay_c_ps + 3 * fsbcycle_ps(info),</span><br><span style="color: hsl(120, 100%, 40%);">+                       4 * halfcycle_ps(info)) + 1;</span><br><span style="color: hsl(120, 100%, 40%);">+          MCHBAR16((channel << 10) + 0x265) =</span><br><span style="color: hsl(120, 100%, 40%);">+                     info->training.reg274265[channel][2] << 8;</span><br><span>  }</span><br><span>    if (info->training.reg2ca9_bit0)</span><br><span style="color: hsl(0, 100%, 40%);">-             write_mchbar8(0x2ca9, read_mchbar8(0x2ca9) | 1);</span><br><span style="color: hsl(120, 100%, 40%);">+              MCHBAR8_OR(0x2ca9, 1);</span><br><span>       else</span><br><span style="color: hsl(0, 100%, 40%);">-            write_mchbar8(0x2ca9, read_mchbar8(0x2ca9) & ~1);</span><br><span style="color: hsl(120, 100%, 40%);">+         MCHBAR8_AND(0x2ca9, ~1);</span><br><span> }</span><br><span> </span><br><span> static void restore_274265(struct raminfo *info)</span><br><span>@@ -3747,9 +3695,9 @@</span><br><span>                               info->cached_training->reg274265[channel][2] << 8);</span><br><span>       }</span><br><span>    if (info->cached_training->reg2ca9_bit0)</span><br><span style="color: hsl(0, 100%, 40%);">-          write_mchbar8(0x2ca9, read_mchbar8(0x2ca9) | 1);</span><br><span style="color: hsl(120, 100%, 40%);">+              MCHBAR8_OR(0x2ca9, 1);</span><br><span>       else</span><br><span style="color: hsl(0, 100%, 40%);">-            write_mchbar8(0x2ca9, read_mchbar8(0x2ca9) & ~1);</span><br><span style="color: hsl(120, 100%, 40%);">+         MCHBAR8_AND(0x2ca9, ~1);</span><br><span> }</span><br><span> </span><br><span> static void dmi_setup(void)</span><br><span>@@ -3758,7 +3706,7 @@</span><br><span>     write8(DEFAULT_DMIBAR + 0x254, 0x1);</span><br><span>         write16(DEFAULT_DMIBAR + 0x1b8, 0x18f2);</span><br><span>     read_mchbar16(0x48);</span><br><span style="color: hsl(0, 100%, 40%);">-    write_mchbar16(0x48, 0x2);</span><br><span style="color: hsl(120, 100%, 40%);">+    MCHBAR16(0x48) = 0x2;</span><br><span> </span><br><span>    write32(DEFAULT_DMIBAR + 0xd68, read32(DEFAULT_DMIBAR + 0xd68) | 0x08000000);</span><br><span> </span><br><span>@@ -3773,10 +3721,10 @@</span><br><span>  u16 ggc;</span><br><span>     u8 gfxsize;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">- x2ca8 = read_mchbar8(0x2ca8);</span><br><span style="color: hsl(120, 100%, 40%);">+ x2ca8 = MCHBAR8(0x2ca8);</span><br><span>     if ((x2ca8 & 1) || (x2ca8 == 8 && !s3resume)) {</span><br><span>          printk(BIOS_DEBUG, "soft reset detected, rebooting properly\n");</span><br><span style="color: hsl(0, 100%, 40%);">-              write_mchbar8(0x2ca8, 0);</span><br><span style="color: hsl(120, 100%, 40%);">+             MCHBAR8(0x2ca8) = 0;</span><br><span>                 outb(0x6, 0xcf9);</span><br><span>            halt();</span><br><span>      }</span><br><span>@@ -3789,11 +3737,11 @@</span><br><span> </span><br><span>      dmi_setup();</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-        write_mchbar16(0x1170, 0xa880);</span><br><span style="color: hsl(0, 100%, 40%);">- write_mchbar8(0x11c1, 0x1);</span><br><span style="color: hsl(0, 100%, 40%);">-     write_mchbar16(0x1170, 0xb880);</span><br><span style="color: hsl(120, 100%, 40%);">+       MCHBAR16(0x1170) = 0xa880;</span><br><span style="color: hsl(120, 100%, 40%);">+    MCHBAR8(0x11c1) = 0x1;</span><br><span style="color: hsl(120, 100%, 40%);">+        MCHBAR16(0x1170) = 0xb880;</span><br><span>   read_mchbar8(0x1210);</span><br><span style="color: hsl(0, 100%, 40%);">-   write_mchbar8(0x1210, 0x84);</span><br><span style="color: hsl(120, 100%, 40%);">+  MCHBAR8(0x1210) = 0x84;</span><br><span> </span><br><span>  if (get_option(&gfxsize, "gfx_uma_size") != CB_SUCCESS) {</span><br><span>              /* 0 for 32MB */</span><br><span>@@ -3808,12 +3756,12 @@</span><br><span>   deven = pci_read_config16(NORTHBRIDGE, D0F0_DEVEN);     // = 0x3</span><br><span> </span><br><span>         if (deven & 8) {</span><br><span style="color: hsl(0, 100%, 40%);">-            write_mchbar8(0x2c30, 0x20);</span><br><span style="color: hsl(120, 100%, 40%);">+          MCHBAR8(0x2c30) = 0x20;</span><br><span>              pci_read_config8(NORTHBRIDGE, 0x8);     // = 0x18</span><br><span style="color: hsl(0, 100%, 40%);">-               write_mchbar16(0x2c30, read_mchbar16(0x2c30) | 0x200);</span><br><span style="color: hsl(0, 100%, 40%);">-          write_mchbar16(0x2c32, 0x434);</span><br><span style="color: hsl(120, 100%, 40%);">+                MCHBAR16_OR(0x2c30, 0x200);</span><br><span style="color: hsl(120, 100%, 40%);">+           MCHBAR16(0x2c32) = 0x434;</span><br><span>            read_mchbar32(0x2c44);</span><br><span style="color: hsl(0, 100%, 40%);">-          write_mchbar32(0x2c44, 0x1053687);</span><br><span style="color: hsl(120, 100%, 40%);">+            MCHBAR32(0x2c44) = 0x1053687;</span><br><span>                pci_read_config8(GMA, 0x62);    // = 0x2</span><br><span>             pci_write_config8(GMA, 0x62, 0x2);</span><br><span>           read8(DEFAULT_RCBA + 0x2318);</span><br><span>@@ -3823,7 +3771,7 @@</span><br><span>        }</span><br><span> </span><br><span>        read_mchbar32(0x30);</span><br><span style="color: hsl(0, 100%, 40%);">-    write_mchbar32(0x30, 0x40);</span><br><span style="color: hsl(120, 100%, 40%);">+   MCHBAR32(0x30) = 0x40;</span><br><span> </span><br><span>   pci_write_config16(NORTHBRIDGE, D0F0_GGC, ggc);</span><br><span>      gav(read32(DEFAULT_RCBA + 0x3428));</span><br><span>@@ -3839,7 +3787,7 @@</span><br><span>  u16 deven;</span><br><span>   int cbmem_wasnot_inited;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-    x2ca8 = read_mchbar8(0x2ca8);</span><br><span style="color: hsl(120, 100%, 40%);">+ x2ca8 = MCHBAR8(0x2ca8);</span><br><span>     deven = pci_read_config16(NORTHBRIDGE, D0F0_DEVEN);</span><br><span> </span><br><span>      memset(&info, 0x5a, sizeof(info));</span><br><span>@@ -3977,7 +3925,7 @@</span><br><span>       /* after SPD  */</span><br><span>     timestamp_add_now(102);</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-     write_mchbar8(0x2ca8, read_mchbar8(0x2ca8) & 0xfc);</span><br><span style="color: hsl(120, 100%, 40%);">+       MCHBAR8_AND(0x2ca8, 0xfc);</span><br><span> </span><br><span>       collect_system_info(&info);</span><br><span>      calculate_timings(&info);</span><br><span>@@ -4013,82 +3961,81 @@</span><br><span>      compute_derived_timings(&info);</span><br><span> </span><br><span>      if (x2ca8 == 0) {</span><br><span style="color: hsl(0, 100%, 40%);">-               gav(read_mchbar8(0x164));</span><br><span style="color: hsl(0, 100%, 40%);">-               write_mchbar8(0x164, 0x26);</span><br><span style="color: hsl(0, 100%, 40%);">-             write_mchbar16(0x2c20, 0x10);</span><br><span style="color: hsl(120, 100%, 40%);">+         gav(MCHBAR8(0x164));</span><br><span style="color: hsl(120, 100%, 40%);">+          MCHBAR8(0x164) = 0x26;</span><br><span style="color: hsl(120, 100%, 40%);">+                MCHBAR16(0x2c20) = 0x10;</span><br><span>     }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-   write_mchbar32(0x18b4, read_mchbar32(0x18b4) | 0x210000);       /* OK */</span><br><span style="color: hsl(0, 100%, 40%);">-        write_mchbar32(0x1890, read_mchbar32(0x1890) | 0x2000000);      /* OK */</span><br><span style="color: hsl(0, 100%, 40%);">-        write_mchbar32(0x18b4, read_mchbar32(0x18b4) | 0x8000);</span><br><span style="color: hsl(120, 100%, 40%);">+       MCHBAR32_OR(0x18b4, 0x210000);</span><br><span style="color: hsl(120, 100%, 40%);">+        MCHBAR32_OR(0x1890, 0x2000000);</span><br><span style="color: hsl(120, 100%, 40%);">+       MCHBAR32_OR(0x18b4, 0x8000);</span><br><span> </span><br><span>     gav(pci_read_config32(PCI_DEV(0xff, 2, 1), 0x50));      // !!!!</span><br><span>      pci_write_config8(PCI_DEV(0xff, 2, 1), 0x54, 0x12);</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">- gav(read_mchbar16(0x2c10));     // !!!!</span><br><span style="color: hsl(0, 100%, 40%);">- write_mchbar16(0x2c10, 0x412);</span><br><span style="color: hsl(0, 100%, 40%);">-  gav(read_mchbar16(0x2c10));     // !!!!</span><br><span style="color: hsl(0, 100%, 40%);">- write_mchbar16(0x2c12, read_mchbar16(0x2c12) | 0x100);  /* OK */</span><br><span style="color: hsl(120, 100%, 40%);">+      gav(MCHBAR16(0x2c10));</span><br><span style="color: hsl(120, 100%, 40%);">+        MCHBAR16(0x2c10) = 0x412;</span><br><span style="color: hsl(120, 100%, 40%);">+     gav(MCHBAR16(0x2c10));</span><br><span style="color: hsl(120, 100%, 40%);">+        MCHBAR16_OR(0x2c12, 0x100);</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">- gav(read_mchbar8(0x2ca8));      // !!!!</span><br><span style="color: hsl(0, 100%, 40%);">- write_mchbar32(0x1804,</span><br><span style="color: hsl(0, 100%, 40%);">-                 (read_mchbar32(0x1804) & 0xfffffffc) | 0x8400080);</span><br><span style="color: hsl(120, 100%, 40%);">+ gav(MCHBAR8(0x2ca8));   // !!!!</span><br><span style="color: hsl(120, 100%, 40%);">+       MCHBAR32_AND_OR(0x1804, 0xfffffffc, 0x8400080);</span><br><span> </span><br><span>  pci_read_config32(PCI_DEV(0xff, 2, 1), 0x6c);   // !!!!</span><br><span>      pci_write_config32(PCI_DEV(0xff, 2, 1), 0x6c, 0x40a0a0);</span><br><span style="color: hsl(0, 100%, 40%);">-        gav(read_mchbar32(0x1c04));     // !!!!</span><br><span style="color: hsl(0, 100%, 40%);">- gav(read_mchbar32(0x1804));     // !!!!</span><br><span style="color: hsl(120, 100%, 40%);">+       gav(MCHBAR32(0x1c04));  // !!!!</span><br><span style="color: hsl(120, 100%, 40%);">+       gav(MCHBAR32(0x1804));  // !!!!</span><br><span> </span><br><span>  if (x2ca8 == 0) {</span><br><span style="color: hsl(0, 100%, 40%);">-               write_mchbar8(0x2ca8, read_mchbar8(0x2ca8) | 1);</span><br><span style="color: hsl(120, 100%, 40%);">+              MCHBAR8_OR(0x2ca8, 1);</span><br><span>       }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-   write_mchbar32(0x18d8, 0x120000);</span><br><span style="color: hsl(0, 100%, 40%);">-       write_mchbar32(0x18dc, 0x30a484a);</span><br><span style="color: hsl(120, 100%, 40%);">+    MCHBAR32(0x18d8) = 0x120000;</span><br><span style="color: hsl(120, 100%, 40%);">+  MCHBAR32(0x18dc) = 0x30a484a;</span><br><span>        pci_write_config32(PCI_DEV(0xff, 2, 1), 0xe0, 0x0);</span><br><span>  pci_write_config32(PCI_DEV(0xff, 2, 1), 0xf4, 0x9444a);</span><br><span style="color: hsl(0, 100%, 40%);">- write_mchbar32(0x18d8, 0x40000);</span><br><span style="color: hsl(0, 100%, 40%);">-        write_mchbar32(0x18dc, 0xb000000);</span><br><span style="color: hsl(120, 100%, 40%);">+    MCHBAR32(0x18d8) = 0x40000;</span><br><span style="color: hsl(120, 100%, 40%);">+   MCHBAR32(0x18dc) = 0xb000000;</span><br><span>        pci_write_config32(PCI_DEV(0xff, 2, 1), 0xe0, 0x60000);</span><br><span>      pci_write_config32(PCI_DEV(0xff, 2, 1), 0xf4, 0x0);</span><br><span style="color: hsl(0, 100%, 40%);">-     write_mchbar32(0x18d8, 0x180000);</span><br><span style="color: hsl(0, 100%, 40%);">-       write_mchbar32(0x18dc, 0xc0000142);</span><br><span style="color: hsl(120, 100%, 40%);">+   MCHBAR32(0x18d8) = 0x180000;</span><br><span style="color: hsl(120, 100%, 40%);">+  MCHBAR32(0x18dc) = 0xc0000142;</span><br><span>       pci_write_config32(PCI_DEV(0xff, 2, 1), 0xe0, 0x20000);</span><br><span>      pci_write_config32(PCI_DEV(0xff, 2, 1), 0xf4, 0x142);</span><br><span style="color: hsl(0, 100%, 40%);">-   write_mchbar32(0x18d8, 0x1e0000);</span><br><span style="color: hsl(120, 100%, 40%);">+     MCHBAR32(0x18d8) = 0x1e0000;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-        gav(read_mchbar32(0x18dc));     // !!!!</span><br><span style="color: hsl(0, 100%, 40%);">- write_mchbar32(0x18dc, 0x3);</span><br><span style="color: hsl(0, 100%, 40%);">-    gav(read_mchbar32(0x18dc));     // !!!!</span><br><span style="color: hsl(120, 100%, 40%);">+       gav(MCHBAR32(0x18dc));  // !!!!</span><br><span style="color: hsl(120, 100%, 40%);">+       MCHBAR32(0x18dc) = 0x3;</span><br><span style="color: hsl(120, 100%, 40%);">+       gav(MCHBAR32(0x18dc));  // !!!!</span><br><span> </span><br><span>  if (x2ca8 == 0) {</span><br><span style="color: hsl(0, 100%, 40%);">-               write_mchbar8(0x2ca8, read_mchbar8(0x2ca8) | 1);        // guess</span><br><span style="color: hsl(120, 100%, 40%);">+              MCHBAR8_OR(0x2ca8, 1);  // guess</span><br><span>     }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-   write_mchbar32(0x188c, 0x20bc09);</span><br><span style="color: hsl(120, 100%, 40%);">+     MCHBAR32(0x188c) = 0x20bc09;</span><br><span>         pci_write_config32(PCI_DEV(0xff, 2, 1), 0xd0, 0x40b0c09);</span><br><span style="color: hsl(0, 100%, 40%);">-       write_mchbar32(0x1a10, 0x4200010e);</span><br><span style="color: hsl(0, 100%, 40%);">-     write_mchbar32(0x18b8, read_mchbar32(0x18b8) | 0x200);</span><br><span style="color: hsl(0, 100%, 40%);">-  gav(read_mchbar32(0x1918));     // !!!!</span><br><span style="color: hsl(0, 100%, 40%);">- write_mchbar32(0x1918, 0x332);</span><br><span style="color: hsl(120, 100%, 40%);">+        MCHBAR32(0x1a10) = 0x4200010e;</span><br><span style="color: hsl(120, 100%, 40%);">+        MCHBAR32_OR(0x18b8, 0x200);</span><br><span style="color: hsl(120, 100%, 40%);">+   gav(MCHBAR32(0x1918));  // !!!!</span><br><span style="color: hsl(120, 100%, 40%);">+       MCHBAR32(0x1918) = 0x332;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-   gav(read_mchbar32(0x18b8));     // !!!!</span><br><span style="color: hsl(0, 100%, 40%);">- write_mchbar32(0x18b8, 0xe00);</span><br><span style="color: hsl(0, 100%, 40%);">-  gav(read_mchbar32(0x182c));     // !!!!</span><br><span style="color: hsl(0, 100%, 40%);">- write_mchbar32(0x182c, 0x10202);</span><br><span style="color: hsl(120, 100%, 40%);">+      gav(MCHBAR32(0x18b8));  // !!!!</span><br><span style="color: hsl(120, 100%, 40%);">+       MCHBAR32(0x18b8) = 0xe00;</span><br><span style="color: hsl(120, 100%, 40%);">+     gav(MCHBAR32(0x182c));  // !!!!</span><br><span style="color: hsl(120, 100%, 40%);">+       MCHBAR32(0x182c) = 0x10202;</span><br><span>  gav(pci_read_config32(PCI_DEV(0xff, 2, 1), 0x94));      // !!!!</span><br><span>      pci_write_config32(PCI_DEV(0xff, 2, 1), 0x94, 0x10202);</span><br><span style="color: hsl(0, 100%, 40%);">- write_mchbar32(0x1a1c, read_mchbar32(0x1a1c) & 0x8fffffff);</span><br><span style="color: hsl(0, 100%, 40%);">- write_mchbar32(0x1a70, read_mchbar32(0x1a70) | 0x100000);</span><br><span style="color: hsl(120, 100%, 40%);">+     MCHBAR32_AND(0x1a1c, 0x8fffffff);</span><br><span style="color: hsl(120, 100%, 40%);">+     MCHBAR32_OR(0x1a70, 0x100000);</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-      write_mchbar32(0x18b4, read_mchbar32(0x18b4) & 0xffff7fff);</span><br><span style="color: hsl(0, 100%, 40%);">- gav(read_mchbar32(0x1a68));     // !!!!</span><br><span style="color: hsl(0, 100%, 40%);">- write_mchbar32(0x1a68, 0x343800);</span><br><span style="color: hsl(0, 100%, 40%);">-       gav(read_mchbar32(0x1e68));     // !!!!</span><br><span style="color: hsl(0, 100%, 40%);">- gav(read_mchbar32(0x1a68));     // !!!!</span><br><span style="color: hsl(120, 100%, 40%);">+       MCHBAR32_AND(0x18b4, 0xffff7fff);</span><br><span style="color: hsl(120, 100%, 40%);">+     gav(MCHBAR32(0x1a68));  // !!!!</span><br><span style="color: hsl(120, 100%, 40%);">+       MCHBAR32(0x1a68) = 0x343800;</span><br><span style="color: hsl(120, 100%, 40%);">+  gav(MCHBAR32(0x1e68));  // !!!!</span><br><span style="color: hsl(120, 100%, 40%);">+       gav(MCHBAR32(0x1a68));  // !!!!</span><br><span> </span><br><span>  if (x2ca8 == 0) {</span><br><span style="color: hsl(0, 100%, 40%);">-               write_mchbar8(0x2ca8, read_mchbar8(0x2ca8) | 1);        // guess</span><br><span style="color: hsl(120, 100%, 40%);">+              MCHBAR8_OR(0x2ca8, 1);  // guess</span><br><span>     }</span><br><span> </span><br><span>        pci_read_config32(PCI_DEV(0xff, 2, 0), 0x048);  // !!!!</span><br><span>@@ -4098,22 +4045,22 @@</span><br><span>    pci_read_config32(PCI_DEV(0xff, 2, 0), 0x058);  // !!!!</span><br><span>      pci_read_config32(PCI_DEV (0xff, 0, 0), 0xd0);  // !!!!</span><br><span>      pci_write_config32(PCI_DEV (0xff, 0, 0), 0xd0, 0x180);</span><br><span style="color: hsl(0, 100%, 40%);">-  gav(read_mchbar32(0x1af0));     // !!!!</span><br><span style="color: hsl(0, 100%, 40%);">- gav(read_mchbar32(0x1af0));     // !!!!</span><br><span style="color: hsl(0, 100%, 40%);">- write_mchbar32(0x1af0, 0x1f020003);</span><br><span style="color: hsl(0, 100%, 40%);">-     gav(read_mchbar32(0x1af0));     // !!!!</span><br><span style="color: hsl(120, 100%, 40%);">+       gav(MCHBAR32(0x1af0));  // !!!!</span><br><span style="color: hsl(120, 100%, 40%);">+       gav(MCHBAR32(0x1af0));  // !!!!</span><br><span style="color: hsl(120, 100%, 40%);">+       MCHBAR32(0x1af0) = 0x1f020003;</span><br><span style="color: hsl(120, 100%, 40%);">+        gav(MCHBAR32(0x1af0));  // !!!!</span><br><span> </span><br><span>  if (x2ca8 == 0) {</span><br><span style="color: hsl(0, 100%, 40%);">-               write_mchbar8(0x2ca8, read_mchbar8(0x2ca8) | 1);        // guess</span><br><span style="color: hsl(120, 100%, 40%);">+              MCHBAR8_OR(0x2ca8, 1);  // guess</span><br><span>     }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-   gav(read_mchbar32(0x1890));     // !!!!</span><br><span style="color: hsl(0, 100%, 40%);">- write_mchbar32(0x1890, 0x80102);</span><br><span style="color: hsl(0, 100%, 40%);">-        gav(read_mchbar32(0x18b4));     // !!!!</span><br><span style="color: hsl(0, 100%, 40%);">- write_mchbar32(0x18b4, 0x216000);</span><br><span style="color: hsl(0, 100%, 40%);">-       write_mchbar32(0x18a4, 0x22222222);</span><br><span style="color: hsl(0, 100%, 40%);">-     write_mchbar32(0x18a8, 0x22222222);</span><br><span style="color: hsl(0, 100%, 40%);">-     write_mchbar32(0x18ac, 0x22222);</span><br><span style="color: hsl(120, 100%, 40%);">+      gav(MCHBAR32(0x1890));  // !!!!</span><br><span style="color: hsl(120, 100%, 40%);">+       MCHBAR32(0x1890) = 0x80102;</span><br><span style="color: hsl(120, 100%, 40%);">+   gav(MCHBAR32(0x18b4));  // !!!!</span><br><span style="color: hsl(120, 100%, 40%);">+       MCHBAR32(0x18b4) = 0x216000;</span><br><span style="color: hsl(120, 100%, 40%);">+  MCHBAR32(0x18a4) = 0x22222222;</span><br><span style="color: hsl(120, 100%, 40%);">+        MCHBAR32(0x18a8) = 0x22222222;</span><br><span style="color: hsl(120, 100%, 40%);">+        MCHBAR32(0x18ac) = 0x22222;</span><br><span> </span><br><span>      udelay(1000);</span><br><span> </span><br><span>@@ -4143,15 +4090,15 @@</span><br><span> </span><br><span>              if (!(deven & 8)) {</span><br><span>                      read_mchbar32(0x2cb0);</span><br><span style="color: hsl(0, 100%, 40%);">-                  write_mchbar32(0x2cb0, 0x40);</span><br><span style="color: hsl(120, 100%, 40%);">+                 MCHBAR32(0x2cb0) = 0x40;</span><br><span>             }</span><br><span> </span><br><span>                udelay(1000);</span><br><span> </span><br><span>            if (deven & 8) {</span><br><span style="color: hsl(0, 100%, 40%);">-                    write_mchbar32(0xff8, 0x1800 | read_mchbar32(0xff8));</span><br><span style="color: hsl(120, 100%, 40%);">+                 MCHBAR32_OR(0xff8, 0x1800);</span><br><span>                  read_mchbar32(0x2cb0);</span><br><span style="color: hsl(0, 100%, 40%);">-                  write_mchbar32(0x2cb0, 0x00);</span><br><span style="color: hsl(120, 100%, 40%);">+                 MCHBAR32(0x2cb0) = 0x00;</span><br><span>                     pci_read_config8(PCI_DEV (0, 0x2, 0x0), 0x4c);</span><br><span>                       pci_read_config8(PCI_DEV (0, 0x2, 0x0), 0x4c);</span><br><span>                       pci_read_config8(PCI_DEV (0, 0x2, 0x0), 0x4e);</span><br><span>@@ -4160,254 +4107,250 @@</span><br><span>                   read_mchbar8(0x1151);</span><br><span>                        read_mchbar8(0x1022);</span><br><span>                        read_mchbar8(0x16d0);</span><br><span style="color: hsl(0, 100%, 40%);">-                   write_mchbar32(0x1300, 0x60606060);</span><br><span style="color: hsl(0, 100%, 40%);">-                     write_mchbar32(0x1304, 0x60606060);</span><br><span style="color: hsl(0, 100%, 40%);">-                     write_mchbar32(0x1308, 0x78797a7b);</span><br><span style="color: hsl(0, 100%, 40%);">-                     write_mchbar32(0x130c, 0x7c7d7e7f);</span><br><span style="color: hsl(0, 100%, 40%);">-                     write_mchbar32(0x1310, 0x60606060);</span><br><span style="color: hsl(0, 100%, 40%);">-                     write_mchbar32(0x1314, 0x60606060);</span><br><span style="color: hsl(0, 100%, 40%);">-                     write_mchbar32(0x1318, 0x60606060);</span><br><span style="color: hsl(0, 100%, 40%);">-                     write_mchbar32(0x131c, 0x60606060);</span><br><span style="color: hsl(0, 100%, 40%);">-                     write_mchbar32(0x1320, 0x50515253);</span><br><span style="color: hsl(0, 100%, 40%);">-                     write_mchbar32(0x1324, 0x54555657);</span><br><span style="color: hsl(0, 100%, 40%);">-                     write_mchbar32(0x1328, 0x58595a5b);</span><br><span style="color: hsl(0, 100%, 40%);">-                     write_mchbar32(0x132c, 0x5c5d5e5f);</span><br><span style="color: hsl(0, 100%, 40%);">-                     write_mchbar32(0x1330, 0x40414243);</span><br><span style="color: hsl(0, 100%, 40%);">-                     write_mchbar32(0x1334, 0x44454647);</span><br><span style="color: hsl(0, 100%, 40%);">-                     write_mchbar32(0x1338, 0x48494a4b);</span><br><span style="color: hsl(0, 100%, 40%);">-                     write_mchbar32(0x133c, 0x4c4d4e4f);</span><br><span style="color: hsl(0, 100%, 40%);">-                     write_mchbar32(0x1340, 0x30313233);</span><br><span style="color: hsl(0, 100%, 40%);">-                     write_mchbar32(0x1344, 0x34353637);</span><br><span style="color: hsl(0, 100%, 40%);">-                     write_mchbar32(0x1348, 0x38393a3b);</span><br><span style="color: hsl(0, 100%, 40%);">-                     write_mchbar32(0x134c, 0x3c3d3e3f);</span><br><span style="color: hsl(0, 100%, 40%);">-                     write_mchbar32(0x1350, 0x20212223);</span><br><span style="color: hsl(0, 100%, 40%);">-                     write_mchbar32(0x1354, 0x24252627);</span><br><span style="color: hsl(0, 100%, 40%);">-                     write_mchbar32(0x1358, 0x28292a2b);</span><br><span style="color: hsl(0, 100%, 40%);">-                     write_mchbar32(0x135c, 0x2c2d2e2f);</span><br><span style="color: hsl(0, 100%, 40%);">-                     write_mchbar32(0x1360, 0x10111213);</span><br><span style="color: hsl(0, 100%, 40%);">-                     write_mchbar32(0x1364, 0x14151617);</span><br><span style="color: hsl(0, 100%, 40%);">-                     write_mchbar32(0x1368, 0x18191a1b);</span><br><span style="color: hsl(0, 100%, 40%);">-                     write_mchbar32(0x136c, 0x1c1d1e1f);</span><br><span style="color: hsl(0, 100%, 40%);">-                     write_mchbar32(0x1370, 0x10203);</span><br><span style="color: hsl(0, 100%, 40%);">-                        write_mchbar32(0x1374, 0x4050607);</span><br><span style="color: hsl(0, 100%, 40%);">-                      write_mchbar32(0x1378, 0x8090a0b);</span><br><span style="color: hsl(0, 100%, 40%);">-                      write_mchbar32(0x137c, 0xc0d0e0f);</span><br><span style="color: hsl(0, 100%, 40%);">-                      write_mchbar8(0x11cc, 0x4e);</span><br><span style="color: hsl(0, 100%, 40%);">-                    write_mchbar32(0x1110, 0x73970404);</span><br><span style="color: hsl(0, 100%, 40%);">-                     write_mchbar32(0x1114, 0x72960404);</span><br><span style="color: hsl(0, 100%, 40%);">-                     write_mchbar32(0x1118, 0x6f950404);</span><br><span style="color: hsl(0, 100%, 40%);">-                     write_mchbar32(0x111c, 0x6d940404);</span><br><span style="color: hsl(0, 100%, 40%);">-                     write_mchbar32(0x1120, 0x6a930404);</span><br><span style="color: hsl(0, 100%, 40%);">-                     write_mchbar32(0x1124, 0x68a41404);</span><br><span style="color: hsl(0, 100%, 40%);">-                     write_mchbar32(0x1128, 0x66a21404);</span><br><span style="color: hsl(0, 100%, 40%);">-                     write_mchbar32(0x112c, 0x63a01404);</span><br><span style="color: hsl(0, 100%, 40%);">-                     write_mchbar32(0x1130, 0x609e1404);</span><br><span style="color: hsl(0, 100%, 40%);">-                     write_mchbar32(0x1134, 0x5f9c1404);</span><br><span style="color: hsl(0, 100%, 40%);">-                     write_mchbar32(0x1138, 0x5c961404);</span><br><span style="color: hsl(0, 100%, 40%);">-                     write_mchbar32(0x113c, 0x58a02404);</span><br><span style="color: hsl(0, 100%, 40%);">-                     write_mchbar32(0x1140, 0x54942404);</span><br><span style="color: hsl(0, 100%, 40%);">-                     write_mchbar32(0x1190, 0x900080a);</span><br><span style="color: hsl(0, 100%, 40%);">-                      write_mchbar16(0x11c0, 0xc40b);</span><br><span style="color: hsl(0, 100%, 40%);">-                 write_mchbar16(0x11c2, 0x303);</span><br><span style="color: hsl(0, 100%, 40%);">-                  write_mchbar16(0x11c4, 0x301);</span><br><span style="color: hsl(120, 100%, 40%);">+                        MCHBAR32(0x1300) = 0x60606060;</span><br><span style="color: hsl(120, 100%, 40%);">+                        MCHBAR32(0x1304) = 0x60606060;</span><br><span style="color: hsl(120, 100%, 40%);">+                        MCHBAR32(0x1308) = 0x78797a7b;</span><br><span style="color: hsl(120, 100%, 40%);">+                        MCHBAR32(0x130c) = 0x7c7d7e7f;</span><br><span style="color: hsl(120, 100%, 40%);">+                        MCHBAR32(0x1310) = 0x60606060;</span><br><span style="color: hsl(120, 100%, 40%);">+                        MCHBAR32(0x1314) = 0x60606060;</span><br><span style="color: hsl(120, 100%, 40%);">+                        MCHBAR32(0x1318) = 0x60606060;</span><br><span style="color: hsl(120, 100%, 40%);">+                        MCHBAR32(0x131c) = 0x60606060;</span><br><span style="color: hsl(120, 100%, 40%);">+                        MCHBAR32(0x1320) = 0x50515253;</span><br><span style="color: hsl(120, 100%, 40%);">+                        MCHBAR32(0x1324) = 0x54555657;</span><br><span style="color: hsl(120, 100%, 40%);">+                        MCHBAR32(0x1328) = 0x58595a5b;</span><br><span style="color: hsl(120, 100%, 40%);">+                        MCHBAR32(0x132c) = 0x5c5d5e5f;</span><br><span style="color: hsl(120, 100%, 40%);">+                        MCHBAR32(0x1330) = 0x40414243;</span><br><span style="color: hsl(120, 100%, 40%);">+                        MCHBAR32(0x1334) = 0x44454647;</span><br><span style="color: hsl(120, 100%, 40%);">+                        MCHBAR32(0x1338) = 0x48494a4b;</span><br><span style="color: hsl(120, 100%, 40%);">+                        MCHBAR32(0x133c) = 0x4c4d4e4f;</span><br><span style="color: hsl(120, 100%, 40%);">+                        MCHBAR32(0x1340) = 0x30313233;</span><br><span style="color: hsl(120, 100%, 40%);">+                        MCHBAR32(0x1344) = 0x34353637;</span><br><span style="color: hsl(120, 100%, 40%);">+                        MCHBAR32(0x1348) = 0x38393a3b;</span><br><span style="color: hsl(120, 100%, 40%);">+                        MCHBAR32(0x134c) = 0x3c3d3e3f;</span><br><span style="color: hsl(120, 100%, 40%);">+                        MCHBAR32(0x1350) = 0x20212223;</span><br><span style="color: hsl(120, 100%, 40%);">+                        MCHBAR32(0x1354) = 0x24252627;</span><br><span style="color: hsl(120, 100%, 40%);">+                        MCHBAR32(0x1358) = 0x28292a2b;</span><br><span style="color: hsl(120, 100%, 40%);">+                        MCHBAR32(0x135c) = 0x2c2d2e2f;</span><br><span style="color: hsl(120, 100%, 40%);">+                        MCHBAR32(0x1360) = 0x10111213;</span><br><span style="color: hsl(120, 100%, 40%);">+                        MCHBAR32(0x1364) = 0x14151617;</span><br><span style="color: hsl(120, 100%, 40%);">+                        MCHBAR32(0x1368) = 0x18191a1b;</span><br><span style="color: hsl(120, 100%, 40%);">+                        MCHBAR32(0x136c) = 0x1c1d1e1f;</span><br><span style="color: hsl(120, 100%, 40%);">+                        MCHBAR32(0x1370) = 0x10203;</span><br><span style="color: hsl(120, 100%, 40%);">+                   MCHBAR32(0x1374) = 0x4050607;</span><br><span style="color: hsl(120, 100%, 40%);">+                 MCHBAR32(0x1378) = 0x8090a0b;</span><br><span style="color: hsl(120, 100%, 40%);">+                 MCHBAR32(0x137c) = 0xc0d0e0f;</span><br><span style="color: hsl(120, 100%, 40%);">+                 MCHBAR8(0x11cc) = 0x4e;</span><br><span style="color: hsl(120, 100%, 40%);">+                       MCHBAR32(0x1110) = 0x73970404;</span><br><span style="color: hsl(120, 100%, 40%);">+                        MCHBAR32(0x1114) = 0x72960404;</span><br><span style="color: hsl(120, 100%, 40%);">+                        MCHBAR32(0x1118) = 0x6f950404;</span><br><span style="color: hsl(120, 100%, 40%);">+                        MCHBAR32(0x111c) = 0x6d940404;</span><br><span style="color: hsl(120, 100%, 40%);">+                        MCHBAR32(0x1120) = 0x6a930404;</span><br><span style="color: hsl(120, 100%, 40%);">+                        MCHBAR32(0x1124) = 0x68a41404;</span><br><span style="color: hsl(120, 100%, 40%);">+                        MCHBAR32(0x1128) = 0x66a21404;</span><br><span style="color: hsl(120, 100%, 40%);">+                        MCHBAR32(0x112c) = 0x63a01404;</span><br><span style="color: hsl(120, 100%, 40%);">+                        MCHBAR32(0x1130) = 0x609e1404;</span><br><span style="color: hsl(120, 100%, 40%);">+                        MCHBAR32(0x1134) = 0x5f9c1404;</span><br><span style="color: hsl(120, 100%, 40%);">+                        MCHBAR32(0x1138) = 0x5c961404;</span><br><span style="color: hsl(120, 100%, 40%);">+                        MCHBAR32(0x113c) = 0x58a02404;</span><br><span style="color: hsl(120, 100%, 40%);">+                        MCHBAR32(0x1140) = 0x54942404;</span><br><span style="color: hsl(120, 100%, 40%);">+                        MCHBAR32(0x1190) = 0x900080a;</span><br><span style="color: hsl(120, 100%, 40%);">+                 MCHBAR16(0x11c0) = 0xc40b;</span><br><span style="color: hsl(120, 100%, 40%);">+                    MCHBAR16(0x11c2) = 0x303;</span><br><span style="color: hsl(120, 100%, 40%);">+                     MCHBAR16(0x11c4) = 0x301;</span><br><span>                    read_mchbar32(0x1190);</span><br><span style="color: hsl(0, 100%, 40%);">-                  write_mchbar32(0x1190, 0x8900080a);</span><br><span style="color: hsl(0, 100%, 40%);">-                     write_mchbar32(0x11b8, 0x70c3000);</span><br><span style="color: hsl(0, 100%, 40%);">-                      write_mchbar8(0x11ec, 0xa);</span><br><span style="color: hsl(0, 100%, 40%);">-                     write_mchbar16(0x1100, 0x800);</span><br><span style="color: hsl(120, 100%, 40%);">+                        MCHBAR32(0x1190) = 0x8900080a;</span><br><span style="color: hsl(120, 100%, 40%);">+                        MCHBAR32(0x11b8) = 0x70c3000;</span><br><span style="color: hsl(120, 100%, 40%);">+                 MCHBAR8(0x11ec) = 0xa;</span><br><span style="color: hsl(120, 100%, 40%);">+                        MCHBAR16(0x1100) = 0x800;</span><br><span>                    read_mchbar32(0x11bc);</span><br><span style="color: hsl(0, 100%, 40%);">-                  write_mchbar32(0x11bc, 0x1e84800);</span><br><span style="color: hsl(0, 100%, 40%);">-                      write_mchbar16(0x11ca, 0xfa);</span><br><span style="color: hsl(0, 100%, 40%);">-                   write_mchbar32(0x11e4, 0x4e20);</span><br><span style="color: hsl(0, 100%, 40%);">-                 write_mchbar8(0x11bc, 0xf);</span><br><span style="color: hsl(0, 100%, 40%);">-                     write_mchbar16(0x11da, 0x19);</span><br><span style="color: hsl(0, 100%, 40%);">-                   write_mchbar16(0x11ba, 0x470c);</span><br><span style="color: hsl(0, 100%, 40%);">-                 write_mchbar32(0x1680, 0xe6ffe4ff);</span><br><span style="color: hsl(0, 100%, 40%);">-                     write_mchbar32(0x1684, 0xdeffdaff);</span><br><span style="color: hsl(0, 100%, 40%);">-                     write_mchbar32(0x1688, 0xd4ffd0ff);</span><br><span style="color: hsl(0, 100%, 40%);">-                     write_mchbar32(0x168c, 0xccffc6ff);</span><br><span style="color: hsl(0, 100%, 40%);">-                     write_mchbar32(0x1690, 0xc0ffbeff);</span><br><span style="color: hsl(0, 100%, 40%);">-                     write_mchbar32(0x1694, 0xb8ffb0ff);</span><br><span style="color: hsl(0, 100%, 40%);">-                     write_mchbar32(0x1698, 0xa8ff0000);</span><br><span style="color: hsl(0, 100%, 40%);">-                     write_mchbar32(0x169c, 0xc00);</span><br><span style="color: hsl(0, 100%, 40%);">-                  write_mchbar32(0x1290, 0x5000000);</span><br><span style="color: hsl(120, 100%, 40%);">+                    MCHBAR32(0x11bc) = 0x1e84800;</span><br><span style="color: hsl(120, 100%, 40%);">+                 MCHBAR16(0x11ca) = 0xfa;</span><br><span style="color: hsl(120, 100%, 40%);">+                      MCHBAR32(0x11e4) = 0x4e20;</span><br><span style="color: hsl(120, 100%, 40%);">+                    MCHBAR8(0x11bc) = 0xf;</span><br><span style="color: hsl(120, 100%, 40%);">+                        MCHBAR16(0x11da) = 0x19;</span><br><span style="color: hsl(120, 100%, 40%);">+                      MCHBAR16(0x11ba) = 0x470c;</span><br><span style="color: hsl(120, 100%, 40%);">+                    MCHBAR32(0x1680) = 0xe6ffe4ff;</span><br><span style="color: hsl(120, 100%, 40%);">+                        MCHBAR32(0x1684) = 0xdeffdaff;</span><br><span style="color: hsl(120, 100%, 40%);">+                        MCHBAR32(0x1688) = 0xd4ffd0ff;</span><br><span style="color: hsl(120, 100%, 40%);">+                        MCHBAR32(0x168c) = 0xccffc6ff;</span><br><span style="color: hsl(120, 100%, 40%);">+                        MCHBAR32(0x1690) = 0xc0ffbeff;</span><br><span style="color: hsl(120, 100%, 40%);">+                        MCHBAR32(0x1694) = 0xb8ffb0ff;</span><br><span style="color: hsl(120, 100%, 40%);">+                        MCHBAR32(0x1698) = 0xa8ff0000;</span><br><span style="color: hsl(120, 100%, 40%);">+                        MCHBAR32(0x169c) = 0xc00;</span><br><span style="color: hsl(120, 100%, 40%);">+                     MCHBAR32(0x1290) = 0x5000000;</span><br><span>                }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-           write_mchbar32(0x124c, 0x15040d00);</span><br><span style="color: hsl(0, 100%, 40%);">-             write_mchbar32(0x1250, 0x7f0000);</span><br><span style="color: hsl(0, 100%, 40%);">-               write_mchbar32(0x1254, 0x1e220004);</span><br><span style="color: hsl(0, 100%, 40%);">-             write_mchbar32(0x1258, 0x4000004);</span><br><span style="color: hsl(0, 100%, 40%);">-              write_mchbar32(0x1278, 0x0);</span><br><span style="color: hsl(0, 100%, 40%);">-            write_mchbar32(0x125c, 0x0);</span><br><span style="color: hsl(0, 100%, 40%);">-            write_mchbar32(0x1260, 0x0);</span><br><span style="color: hsl(0, 100%, 40%);">-            write_mchbar32(0x1264, 0x0);</span><br><span style="color: hsl(0, 100%, 40%);">-            write_mchbar32(0x1268, 0x0);</span><br><span style="color: hsl(0, 100%, 40%);">-            write_mchbar32(0x126c, 0x0);</span><br><span style="color: hsl(0, 100%, 40%);">-            write_mchbar32(0x1270, 0x0);</span><br><span style="color: hsl(0, 100%, 40%);">-            write_mchbar32(0x1274, 0x0);</span><br><span style="color: hsl(120, 100%, 40%);">+          MCHBAR32(0x124c) = 0x15040d00;</span><br><span style="color: hsl(120, 100%, 40%);">+                MCHBAR32(0x1250) = 0x7f0000;</span><br><span style="color: hsl(120, 100%, 40%);">+          MCHBAR32(0x1254) = 0x1e220004;</span><br><span style="color: hsl(120, 100%, 40%);">+                MCHBAR32(0x1258) = 0x4000004;</span><br><span style="color: hsl(120, 100%, 40%);">+         MCHBAR32(0x1278) = 0x0;</span><br><span style="color: hsl(120, 100%, 40%);">+               MCHBAR32(0x125c) = 0x0;</span><br><span style="color: hsl(120, 100%, 40%);">+               MCHBAR32(0x1260) = 0x0;</span><br><span style="color: hsl(120, 100%, 40%);">+               MCHBAR32(0x1264) = 0x0;</span><br><span style="color: hsl(120, 100%, 40%);">+               MCHBAR32(0x1268) = 0x0;</span><br><span style="color: hsl(120, 100%, 40%);">+               MCHBAR32(0x126c) = 0x0;</span><br><span style="color: hsl(120, 100%, 40%);">+               MCHBAR32(0x1270) = 0x0;</span><br><span style="color: hsl(120, 100%, 40%);">+               MCHBAR32(0x1274) = 0x0;</span><br><span>      }</span><br><span> </span><br><span>        if ((deven & 8) && x2ca8 == 0) {</span><br><span style="color: hsl(0, 100%, 40%);">-            write_mchbar16(0x1214, 0x320);</span><br><span style="color: hsl(0, 100%, 40%);">-          write_mchbar32(0x1600, 0x40000000);</span><br><span style="color: hsl(120, 100%, 40%);">+           MCHBAR16(0x1214) = 0x320;</span><br><span style="color: hsl(120, 100%, 40%);">+             MCHBAR32(0x1600) = 0x40000000;</span><br><span>               read_mchbar32(0x11f4);</span><br><span style="color: hsl(0, 100%, 40%);">-          write_mchbar32(0x11f4, 0x10000000);</span><br><span style="color: hsl(120, 100%, 40%);">+           MCHBAR32(0x11f4) = 0x10000000;</span><br><span>               read_mchbar16(0x1230);</span><br><span style="color: hsl(0, 100%, 40%);">-          write_mchbar16(0x1230, 0x8000);</span><br><span style="color: hsl(0, 100%, 40%);">-         write_mchbar32(0x1400, 0x13040020);</span><br><span style="color: hsl(0, 100%, 40%);">-             write_mchbar32(0x1404, 0xe090120);</span><br><span style="color: hsl(0, 100%, 40%);">-              write_mchbar32(0x1408, 0x5120220);</span><br><span style="color: hsl(0, 100%, 40%);">-              write_mchbar32(0x140c, 0x5120330);</span><br><span style="color: hsl(0, 100%, 40%);">-              write_mchbar32(0x1410, 0xe090220);</span><br><span style="color: hsl(0, 100%, 40%);">-              write_mchbar32(0x1414, 0x1010001);</span><br><span style="color: hsl(0, 100%, 40%);">-              write_mchbar32(0x1418, 0x1110000);</span><br><span style="color: hsl(0, 100%, 40%);">-              write_mchbar32(0x141c, 0x9020020);</span><br><span style="color: hsl(0, 100%, 40%);">-              write_mchbar32(0x1420, 0xd090220);</span><br><span style="color: hsl(0, 100%, 40%);">-              write_mchbar32(0x1424, 0x2090220);</span><br><span style="color: hsl(0, 100%, 40%);">-              write_mchbar32(0x1428, 0x2090330);</span><br><span style="color: hsl(0, 100%, 40%);">-              write_mchbar32(0x142c, 0xd090220);</span><br><span style="color: hsl(0, 100%, 40%);">-              write_mchbar32(0x1430, 0x1010001);</span><br><span style="color: hsl(0, 100%, 40%);">-              write_mchbar32(0x1434, 0x1110000);</span><br><span style="color: hsl(0, 100%, 40%);">-              write_mchbar32(0x1438, 0x11040020);</span><br><span style="color: hsl(0, 100%, 40%);">-             write_mchbar32(0x143c, 0x4030220);</span><br><span style="color: hsl(0, 100%, 40%);">-              write_mchbar32(0x1440, 0x1060220);</span><br><span style="color: hsl(0, 100%, 40%);">-              write_mchbar32(0x1444, 0x1060330);</span><br><span style="color: hsl(0, 100%, 40%);">-              write_mchbar32(0x1448, 0x4030220);</span><br><span style="color: hsl(0, 100%, 40%);">-              write_mchbar32(0x144c, 0x1010001);</span><br><span style="color: hsl(0, 100%, 40%);">-              write_mchbar32(0x1450, 0x1110000);</span><br><span style="color: hsl(0, 100%, 40%);">-              write_mchbar32(0x1454, 0x4010020);</span><br><span style="color: hsl(0, 100%, 40%);">-              write_mchbar32(0x1458, 0xb090220);</span><br><span style="color: hsl(0, 100%, 40%);">-              write_mchbar32(0x145c, 0x1090220);</span><br><span style="color: hsl(0, 100%, 40%);">-              write_mchbar32(0x1460, 0x1090330);</span><br><span style="color: hsl(0, 100%, 40%);">-              write_mchbar32(0x1464, 0xb090220);</span><br><span style="color: hsl(0, 100%, 40%);">-              write_mchbar32(0x1468, 0x1010001);</span><br><span style="color: hsl(0, 100%, 40%);">-              write_mchbar32(0x146c, 0x1110000);</span><br><span style="color: hsl(0, 100%, 40%);">-              write_mchbar32(0x1470, 0xf040020);</span><br><span style="color: hsl(0, 100%, 40%);">-              write_mchbar32(0x1474, 0xa090220);</span><br><span style="color: hsl(0, 100%, 40%);">-              write_mchbar32(0x1478, 0x1120220);</span><br><span style="color: hsl(0, 100%, 40%);">-              write_mchbar32(0x147c, 0x1120330);</span><br><span style="color: hsl(0, 100%, 40%);">-              write_mchbar32(0x1480, 0xa090220);</span><br><span style="color: hsl(0, 100%, 40%);">-              write_mchbar32(0x1484, 0x1010001);</span><br><span style="color: hsl(0, 100%, 40%);">-              write_mchbar32(0x1488, 0x1110000);</span><br><span style="color: hsl(0, 100%, 40%);">-              write_mchbar32(0x148c, 0x7020020);</span><br><span style="color: hsl(0, 100%, 40%);">-              write_mchbar32(0x1490, 0x1010220);</span><br><span style="color: hsl(0, 100%, 40%);">-              write_mchbar32(0x1494, 0x10210);</span><br><span style="color: hsl(0, 100%, 40%);">-                write_mchbar32(0x1498, 0x10320);</span><br><span style="color: hsl(0, 100%, 40%);">-                write_mchbar32(0x149c, 0x1010220);</span><br><span style="color: hsl(0, 100%, 40%);">-              write_mchbar32(0x14a0, 0x1010001);</span><br><span style="color: hsl(0, 100%, 40%);">-              write_mchbar32(0x14a4, 0x1110000);</span><br><span style="color: hsl(0, 100%, 40%);">-              write_mchbar32(0x14a8, 0xd040020);</span><br><span style="color: hsl(0, 100%, 40%);">-              write_mchbar32(0x14ac, 0x8090220);</span><br><span style="color: hsl(0, 100%, 40%);">-              write_mchbar32(0x14b0, 0x1111310);</span><br><span style="color: hsl(0, 100%, 40%);">-              write_mchbar32(0x14b4, 0x1111420);</span><br><span style="color: hsl(0, 100%, 40%);">-              write_mchbar32(0x14b8, 0x8090220);</span><br><span style="color: hsl(0, 100%, 40%);">-              write_mchbar32(0x14bc, 0x1010001);</span><br><span style="color: hsl(0, 100%, 40%);">-              write_mchbar32(0x14c0, 0x1110000);</span><br><span style="color: hsl(0, 100%, 40%);">-              write_mchbar32(0x14c4, 0x3010020);</span><br><span style="color: hsl(0, 100%, 40%);">-              write_mchbar32(0x14c8, 0x7090220);</span><br><span style="color: hsl(0, 100%, 40%);">-              write_mchbar32(0x14cc, 0x1081310);</span><br><span style="color: hsl(0, 100%, 40%);">-              write_mchbar32(0x14d0, 0x1081420);</span><br><span style="color: hsl(0, 100%, 40%);">-              write_mchbar32(0x14d4, 0x7090220);</span><br><span style="color: hsl(0, 100%, 40%);">-              write_mchbar32(0x14d8, 0x1010001);</span><br><span style="color: hsl(0, 100%, 40%);">-              write_mchbar32(0x14dc, 0x1110000);</span><br><span style="color: hsl(0, 100%, 40%);">-              write_mchbar32(0x14e0, 0xb040020);</span><br><span style="color: hsl(0, 100%, 40%);">-              write_mchbar32(0x14e4, 0x2030220);</span><br><span style="color: hsl(0, 100%, 40%);">-              write_mchbar32(0x14e8, 0x1051310);</span><br><span style="color: hsl(0, 100%, 40%);">-              write_mchbar32(0x14ec, 0x1051420);</span><br><span style="color: hsl(0, 100%, 40%);">-              write_mchbar32(0x14f0, 0x2030220);</span><br><span style="color: hsl(0, 100%, 40%);">-              write_mchbar32(0x14f4, 0x1010001);</span><br><span style="color: hsl(0, 100%, 40%);">-              write_mchbar32(0x14f8, 0x1110000);</span><br><span style="color: hsl(0, 100%, 40%);">-              write_mchbar32(0x14fc, 0x5020020);</span><br><span style="color: hsl(0, 100%, 40%);">-              write_mchbar32(0x1500, 0x5090220);</span><br><span style="color: hsl(0, 100%, 40%);">-              write_mchbar32(0x1504, 0x2071310);</span><br><span style="color: hsl(0, 100%, 40%);">-              write_mchbar32(0x1508, 0x2071420);</span><br><span style="color: hsl(0, 100%, 40%);">-              write_mchbar32(0x150c, 0x5090220);</span><br><span style="color: hsl(0, 100%, 40%);">-              write_mchbar32(0x1510, 0x1010001);</span><br><span style="color: hsl(0, 100%, 40%);">-              write_mchbar32(0x1514, 0x1110000);</span><br><span style="color: hsl(0, 100%, 40%);">-              write_mchbar32(0x1518, 0x7040120);</span><br><span style="color: hsl(0, 100%, 40%);">-              write_mchbar32(0x151c, 0x2090220);</span><br><span style="color: hsl(0, 100%, 40%);">-              write_mchbar32(0x1520, 0x70b1210);</span><br><span style="color: hsl(0, 100%, 40%);">-              write_mchbar32(0x1524, 0x70b1310);</span><br><span style="color: hsl(0, 100%, 40%);">-              write_mchbar32(0x1528, 0x2090220);</span><br><span style="color: hsl(0, 100%, 40%);">-              write_mchbar32(0x152c, 0x1010001);</span><br><span style="color: hsl(0, 100%, 40%);">-              write_mchbar32(0x1530, 0x1110000);</span><br><span style="color: hsl(0, 100%, 40%);">-              write_mchbar32(0x1534, 0x1010110);</span><br><span style="color: hsl(0, 100%, 40%);">-              write_mchbar32(0x1538, 0x1081310);</span><br><span style="color: hsl(0, 100%, 40%);">-              write_mchbar32(0x153c, 0x5041200);</span><br><span style="color: hsl(0, 100%, 40%);">-              write_mchbar32(0x1540, 0x5041310);</span><br><span style="color: hsl(0, 100%, 40%);">-              write_mchbar32(0x1544, 0x1081310);</span><br><span style="color: hsl(0, 100%, 40%);">-              write_mchbar32(0x1548, 0x1010001);</span><br><span style="color: hsl(0, 100%, 40%);">-              write_mchbar32(0x154c, 0x1110000);</span><br><span style="color: hsl(0, 100%, 40%);">-              write_mchbar32(0x1550, 0x1040120);</span><br><span style="color: hsl(0, 100%, 40%);">-              write_mchbar32(0x1554, 0x4051210);</span><br><span style="color: hsl(0, 100%, 40%);">-              write_mchbar32(0x1558, 0xd051200);</span><br><span style="color: hsl(0, 100%, 40%);">-              write_mchbar32(0x155c, 0xd051200);</span><br><span style="color: hsl(0, 100%, 40%);">-              write_mchbar32(0x1560, 0x4051210);</span><br><span style="color: hsl(0, 100%, 40%);">-              write_mchbar32(0x1564, 0x1010001);</span><br><span style="color: hsl(0, 100%, 40%);">-              write_mchbar32(0x1568, 0x1110000);</span><br><span style="color: hsl(0, 100%, 40%);">-              write_mchbar16(0x1222, 0x220a);</span><br><span style="color: hsl(0, 100%, 40%);">-         write_mchbar16(0x123c, 0x1fc0);</span><br><span style="color: hsl(0, 100%, 40%);">-         write_mchbar16(0x1220, 0x1388);</span><br><span style="color: hsl(120, 100%, 40%);">+               MCHBAR16(0x1230) = 0x8000;</span><br><span style="color: hsl(120, 100%, 40%);">+            MCHBAR32(0x1400) = 0x13040020;</span><br><span style="color: hsl(120, 100%, 40%);">+                MCHBAR32(0x1404) = 0xe090120;</span><br><span style="color: hsl(120, 100%, 40%);">+         MCHBAR32(0x1408) = 0x5120220;</span><br><span style="color: hsl(120, 100%, 40%);">+         MCHBAR32(0x140c) = 0x5120330;</span><br><span style="color: hsl(120, 100%, 40%);">+         MCHBAR32(0x1410) = 0xe090220;</span><br><span style="color: hsl(120, 100%, 40%);">+         MCHBAR32(0x1414) = 0x1010001;</span><br><span style="color: hsl(120, 100%, 40%);">+         MCHBAR32(0x1418) = 0x1110000;</span><br><span style="color: hsl(120, 100%, 40%);">+         MCHBAR32(0x141c) = 0x9020020;</span><br><span style="color: hsl(120, 100%, 40%);">+         MCHBAR32(0x1420) = 0xd090220;</span><br><span style="color: hsl(120, 100%, 40%);">+         MCHBAR32(0x1424) = 0x2090220;</span><br><span style="color: hsl(120, 100%, 40%);">+         MCHBAR32(0x1428) = 0x2090330;</span><br><span style="color: hsl(120, 100%, 40%);">+         MCHBAR32(0x142c) = 0xd090220;</span><br><span style="color: hsl(120, 100%, 40%);">+         MCHBAR32(0x1430) = 0x1010001;</span><br><span style="color: hsl(120, 100%, 40%);">+         MCHBAR32(0x1434) = 0x1110000;</span><br><span style="color: hsl(120, 100%, 40%);">+         MCHBAR32(0x1438) = 0x11040020;</span><br><span style="color: hsl(120, 100%, 40%);">+                MCHBAR32(0x143c) = 0x4030220;</span><br><span style="color: hsl(120, 100%, 40%);">+         MCHBAR32(0x1440) = 0x1060220;</span><br><span style="color: hsl(120, 100%, 40%);">+         MCHBAR32(0x1444) = 0x1060330;</span><br><span style="color: hsl(120, 100%, 40%);">+         MCHBAR32(0x1448) = 0x4030220;</span><br><span style="color: hsl(120, 100%, 40%);">+         MCHBAR32(0x144c) = 0x1010001;</span><br><span style="color: hsl(120, 100%, 40%);">+         MCHBAR32(0x1450) = 0x1110000;</span><br><span style="color: hsl(120, 100%, 40%);">+         MCHBAR32(0x1454) = 0x4010020;</span><br><span style="color: hsl(120, 100%, 40%);">+         MCHBAR32(0x1458) = 0xb090220;</span><br><span style="color: hsl(120, 100%, 40%);">+         MCHBAR32(0x145c) = 0x1090220;</span><br><span style="color: hsl(120, 100%, 40%);">+         MCHBAR32(0x1460) = 0x1090330;</span><br><span style="color: hsl(120, 100%, 40%);">+         MCHBAR32(0x1464) = 0xb090220;</span><br><span style="color: hsl(120, 100%, 40%);">+         MCHBAR32(0x1468) = 0x1010001;</span><br><span style="color: hsl(120, 100%, 40%);">+         MCHBAR32(0x146c) = 0x1110000;</span><br><span style="color: hsl(120, 100%, 40%);">+         MCHBAR32(0x1470) = 0xf040020;</span><br><span style="color: hsl(120, 100%, 40%);">+         MCHBAR32(0x1474) = 0xa090220;</span><br><span style="color: hsl(120, 100%, 40%);">+         MCHBAR32(0x1478) = 0x1120220;</span><br><span style="color: hsl(120, 100%, 40%);">+         MCHBAR32(0x147c) = 0x1120330;</span><br><span style="color: hsl(120, 100%, 40%);">+         MCHBAR32(0x1480) = 0xa090220;</span><br><span style="color: hsl(120, 100%, 40%);">+         MCHBAR32(0x1484) = 0x1010001;</span><br><span style="color: hsl(120, 100%, 40%);">+         MCHBAR32(0x1488) = 0x1110000;</span><br><span style="color: hsl(120, 100%, 40%);">+         MCHBAR32(0x148c) = 0x7020020;</span><br><span style="color: hsl(120, 100%, 40%);">+         MCHBAR32(0x1490) = 0x1010220;</span><br><span style="color: hsl(120, 100%, 40%);">+         MCHBAR32(0x1494) = 0x10210;</span><br><span style="color: hsl(120, 100%, 40%);">+           MCHBAR32(0x1498) = 0x10320;</span><br><span style="color: hsl(120, 100%, 40%);">+           MCHBAR32(0x149c) = 0x1010220;</span><br><span style="color: hsl(120, 100%, 40%);">+         MCHBAR32(0x14a0) = 0x1010001;</span><br><span style="color: hsl(120, 100%, 40%);">+         MCHBAR32(0x14a4) = 0x1110000;</span><br><span style="color: hsl(120, 100%, 40%);">+         MCHBAR32(0x14a8) = 0xd040020;</span><br><span style="color: hsl(120, 100%, 40%);">+         MCHBAR32(0x14ac) = 0x8090220;</span><br><span style="color: hsl(120, 100%, 40%);">+         MCHBAR32(0x14b0) = 0x1111310;</span><br><span style="color: hsl(120, 100%, 40%);">+         MCHBAR32(0x14b4) = 0x1111420;</span><br><span style="color: hsl(120, 100%, 40%);">+         MCHBAR32(0x14b8) = 0x8090220;</span><br><span style="color: hsl(120, 100%, 40%);">+         MCHBAR32(0x14bc) = 0x1010001;</span><br><span style="color: hsl(120, 100%, 40%);">+         MCHBAR32(0x14c0) = 0x1110000;</span><br><span style="color: hsl(120, 100%, 40%);">+         MCHBAR32(0x14c4) = 0x3010020;</span><br><span style="color: hsl(120, 100%, 40%);">+         MCHBAR32(0x14c8) = 0x7090220;</span><br><span style="color: hsl(120, 100%, 40%);">+         MCHBAR32(0x14cc) = 0x1081310;</span><br><span style="color: hsl(120, 100%, 40%);">+         MCHBAR32(0x14d0) = 0x1081420;</span><br><span style="color: hsl(120, 100%, 40%);">+         MCHBAR32(0x14d4) = 0x7090220;</span><br><span style="color: hsl(120, 100%, 40%);">+         MCHBAR32(0x14d8) = 0x1010001;</span><br><span style="color: hsl(120, 100%, 40%);">+         MCHBAR32(0x14dc) = 0x1110000;</span><br><span style="color: hsl(120, 100%, 40%);">+         MCHBAR32(0x14e0) = 0xb040020;</span><br><span style="color: hsl(120, 100%, 40%);">+         MCHBAR32(0x14e4) = 0x2030220;</span><br><span style="color: hsl(120, 100%, 40%);">+         MCHBAR32(0x14e8) = 0x1051310;</span><br><span style="color: hsl(120, 100%, 40%);">+         MCHBAR32(0x14ec) = 0x1051420;</span><br><span style="color: hsl(120, 100%, 40%);">+         MCHBAR32(0x14f0) = 0x2030220;</span><br><span style="color: hsl(120, 100%, 40%);">+         MCHBAR32(0x14f4) = 0x1010001;</span><br><span style="color: hsl(120, 100%, 40%);">+         MCHBAR32(0x14f8) = 0x1110000;</span><br><span style="color: hsl(120, 100%, 40%);">+         MCHBAR32(0x14fc) = 0x5020020;</span><br><span style="color: hsl(120, 100%, 40%);">+         MCHBAR32(0x1500) = 0x5090220;</span><br><span style="color: hsl(120, 100%, 40%);">+         MCHBAR32(0x1504) = 0x2071310;</span><br><span style="color: hsl(120, 100%, 40%);">+         MCHBAR32(0x1508) = 0x2071420;</span><br><span style="color: hsl(120, 100%, 40%);">+         MCHBAR32(0x150c) = 0x5090220;</span><br><span style="color: hsl(120, 100%, 40%);">+         MCHBAR32(0x1510) = 0x1010001;</span><br><span style="color: hsl(120, 100%, 40%);">+         MCHBAR32(0x1514) = 0x1110000;</span><br><span style="color: hsl(120, 100%, 40%);">+         MCHBAR32(0x1518) = 0x7040120;</span><br><span style="color: hsl(120, 100%, 40%);">+         MCHBAR32(0x151c) = 0x2090220;</span><br><span style="color: hsl(120, 100%, 40%);">+         MCHBAR32(0x1520) = 0x70b1210;</span><br><span style="color: hsl(120, 100%, 40%);">+         MCHBAR32(0x1524) = 0x70b1310;</span><br><span style="color: hsl(120, 100%, 40%);">+         MCHBAR32(0x1528) = 0x2090220;</span><br><span style="color: hsl(120, 100%, 40%);">+         MCHBAR32(0x152c) = 0x1010001;</span><br><span style="color: hsl(120, 100%, 40%);">+         MCHBAR32(0x1530) = 0x1110000;</span><br><span style="color: hsl(120, 100%, 40%);">+         MCHBAR32(0x1534) = 0x1010110;</span><br><span style="color: hsl(120, 100%, 40%);">+         MCHBAR32(0x1538) = 0x1081310;</span><br><span style="color: hsl(120, 100%, 40%);">+         MCHBAR32(0x153c) = 0x5041200;</span><br><span style="color: hsl(120, 100%, 40%);">+         MCHBAR32(0x1540) = 0x5041310;</span><br><span style="color: hsl(120, 100%, 40%);">+         MCHBAR32(0x1544) = 0x1081310;</span><br><span style="color: hsl(120, 100%, 40%);">+         MCHBAR32(0x1548) = 0x1010001;</span><br><span style="color: hsl(120, 100%, 40%);">+         MCHBAR32(0x154c) = 0x1110000;</span><br><span style="color: hsl(120, 100%, 40%);">+         MCHBAR32(0x1550) = 0x1040120;</span><br><span style="color: hsl(120, 100%, 40%);">+         MCHBAR32(0x1554) = 0x4051210;</span><br><span style="color: hsl(120, 100%, 40%);">+         MCHBAR32(0x1558) = 0xd051200;</span><br><span style="color: hsl(120, 100%, 40%);">+         MCHBAR32(0x155c) = 0xd051200;</span><br><span style="color: hsl(120, 100%, 40%);">+         MCHBAR32(0x1560) = 0x4051210;</span><br><span style="color: hsl(120, 100%, 40%);">+         MCHBAR32(0x1564) = 0x1010001;</span><br><span style="color: hsl(120, 100%, 40%);">+         MCHBAR32(0x1568) = 0x1110000;</span><br><span style="color: hsl(120, 100%, 40%);">+         MCHBAR16(0x1222) = 0x220a;</span><br><span style="color: hsl(120, 100%, 40%);">+            MCHBAR16(0x123c) = 0x1fc0;</span><br><span style="color: hsl(120, 100%, 40%);">+            MCHBAR16(0x1220) = 0x1388;</span><br><span>   }</span><br><span> </span><br><span>        read_mchbar32(0x2c80);  // !!!!</span><br><span style="color: hsl(0, 100%, 40%);">- write_mchbar32(0x2c80, 0x1053688);</span><br><span style="color: hsl(120, 100%, 40%);">+    MCHBAR32(0x2c80) = 0x1053688;</span><br><span>        read_mchbar32(0x1c04);  // !!!!</span><br><span style="color: hsl(0, 100%, 40%);">- write_mchbar32(0x1804, 0x406080);</span><br><span style="color: hsl(120, 100%, 40%);">+     MCHBAR32(0x1804) = 0x406080;</span><br><span> </span><br><span>     read_mchbar8(0x2ca8);</span><br><span> </span><br><span>    if (x2ca8 == 0) {</span><br><span style="color: hsl(0, 100%, 40%);">-               write_mchbar8(0x2ca8, read_mchbar8(0x2ca8) & ~3);</span><br><span style="color: hsl(0, 100%, 40%);">-           write_mchbar8(0x2ca8, read_mchbar8(0x2ca8) + 4);</span><br><span style="color: hsl(0, 100%, 40%);">-                write_mchbar32(0x1af0, read_mchbar32(0x1af0) | 0x10);</span><br><span style="color: hsl(120, 100%, 40%);">+         MCHBAR8_AND(0x2ca8, ~3);</span><br><span style="color: hsl(120, 100%, 40%);">+              MCHBAR8(0x2ca8) = MCHBAR8(0x2ca8) + 4;  // "+" or  "|"?</span><br><span style="color: hsl(120, 100%, 40%);">+           MCHBAR32_OR(0x1af0, 0x10);</span><br><span>           halt();</span><br><span>      }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-   write_mchbar8(0x2ca8, read_mchbar8(0x2ca8));</span><br><span style="color: hsl(120, 100%, 40%);">+  MCHBAR8(0x2ca8) = MCHBAR8(0x2ca8);</span><br><span>   read_mchbar32(0x2c80);  // !!!!</span><br><span style="color: hsl(0, 100%, 40%);">- write_mchbar32(0x2c80, 0x53688);</span><br><span style="color: hsl(120, 100%, 40%);">+      MCHBAR32(0x2c80) = 0x53688;</span><br><span>  pci_write_config32(PCI_DEV (0xff, 0, 0), 0x60, 0x20220);</span><br><span>     read_mchbar16(0x2c20);  // !!!!</span><br><span>      read_mchbar16(0x2c10);  // !!!!</span><br><span>      read_mchbar16(0x2c00);  // !!!!</span><br><span style="color: hsl(0, 100%, 40%);">- write_mchbar16(0x2c00, 0x8c0);</span><br><span style="color: hsl(120, 100%, 40%);">+        MCHBAR16(0x2c00) = 0x8c0;</span><br><span>    udelay(1000);</span><br><span>        write_1d0(0, 0x33d, 0, 0);</span><br><span>   write_500(&info, 0, 0, 0xb61, 0, 0);</span><br><span>     write_500(&info, 1, 0, 0xb61, 0, 0);</span><br><span style="color: hsl(0, 100%, 40%);">-        write_mchbar32(0x1a30, 0x0);</span><br><span style="color: hsl(0, 100%, 40%);">-    write_mchbar32(0x1a34, 0x0);</span><br><span style="color: hsl(0, 100%, 40%);">-    write_mchbar16(0x614,</span><br><span style="color: hsl(0, 100%, 40%);">-                  0xb5b | (info.populated_ranks[1][0][0] *</span><br><span style="color: hsl(0, 100%, 40%);">-                         0x404) | (info.populated_ranks[0][0][0] *</span><br><span style="color: hsl(0, 100%, 40%);">-                                         0xa0));</span><br><span style="color: hsl(0, 100%, 40%);">-       write_mchbar16(0x616, 0x26a);</span><br><span style="color: hsl(0, 100%, 40%);">-   write_mchbar32(0x134, 0x856000);</span><br><span style="color: hsl(0, 100%, 40%);">-        write_mchbar32(0x160, 0x5ffffff);</span><br><span style="color: hsl(120, 100%, 40%);">+     MCHBAR32(0x1a30) = 0x0;</span><br><span style="color: hsl(120, 100%, 40%);">+       MCHBAR32(0x1a34) = 0x0;</span><br><span style="color: hsl(120, 100%, 40%);">+       MCHBAR16(0x614) = 0xb5b | (info.populated_ranks[1][0][0] * 0x404) |</span><br><span style="color: hsl(120, 100%, 40%);">+           (info.populated_ranks[0][0][0] * 0xa0);</span><br><span style="color: hsl(120, 100%, 40%);">+       MCHBAR16(0x616) = 0x26a;</span><br><span style="color: hsl(120, 100%, 40%);">+      MCHBAR32(0x134) = 0x856000;</span><br><span style="color: hsl(120, 100%, 40%);">+   MCHBAR32(0x160) = 0x5ffffff;</span><br><span>         read_mchbar32(0x114);   // !!!!</span><br><span style="color: hsl(0, 100%, 40%);">- write_mchbar32(0x114, 0xc2024440);</span><br><span style="color: hsl(120, 100%, 40%);">+    MCHBAR32(0x114) = 0xc2024440;</span><br><span>        read_mchbar32(0x118);   // !!!!</span><br><span style="color: hsl(0, 100%, 40%);">- write_mchbar32(0x118, 0x4);</span><br><span style="color: hsl(120, 100%, 40%);">+   MCHBAR32(0x118) = 0x4;</span><br><span>       for (channel = 0; channel < NUM_CHANNELS; channel++)</span><br><span style="color: hsl(0, 100%, 40%);">-         write_mchbar32(0x260 + (channel << 10),</span><br><span style="color: hsl(0, 100%, 40%);">-                          0x30809ff |</span><br><span style="color: hsl(0, 100%, 40%);">-                             ((info.</span><br><span style="color: hsl(0, 100%, 40%);">-                           populated_ranks_mask[channel] & 3) << 20));</span><br><span style="color: hsl(120, 100%, 40%);">+                MCHBAR32(0x260 + (channel << 10)) = 0x30809ff |</span><br><span style="color: hsl(120, 100%, 40%);">+                 ((info.populated_ranks_mask[channel] & 3) << 20);</span><br><span>  for (channel = 0; channel < NUM_CHANNELS; channel++) {</span><br><span style="color: hsl(0, 100%, 40%);">-               write_mchbar16(0x31c + (channel << 10), 0x101);</span><br><span style="color: hsl(120, 100%, 40%);">+         MCHBAR16(0x31c + (channel << 10)) = 0x101;</span><br><span>             write_mchbar16(0x360 + (channel << 10), 0x909);</span><br><span>                write_mchbar16(0x3a4 + (channel << 10), 0x101);</span><br><span style="color: hsl(0, 100%, 40%);">-           write_mchbar16(0x3e8 + (channel << 10), 0x101);</span><br><span style="color: hsl(0, 100%, 40%);">-           write_mchbar32(0x320 + (channel << 10), 0x29002900);</span><br><span style="color: hsl(0, 100%, 40%);">-              write_mchbar32(0x324 + (channel << 10), 0x0);</span><br><span style="color: hsl(0, 100%, 40%);">-             write_mchbar32(0x368 + (channel << 10), 0x32003200);</span><br><span style="color: hsl(0, 100%, 40%);">-              write_mchbar16(0x352 + (channel << 10), 0x505);</span><br><span style="color: hsl(0, 100%, 40%);">-           write_mchbar16(0x354 + (channel << 10), 0x3c3c);</span><br><span style="color: hsl(0, 100%, 40%);">-          write_mchbar16(0x356 + (channel << 10), 0x1040);</span><br><span style="color: hsl(0, 100%, 40%);">-          write_mchbar16(0x39a + (channel << 10), 0x73e4);</span><br><span style="color: hsl(0, 100%, 40%);">-          write_mchbar16(0x3de + (channel << 10), 0x77ed);</span><br><span style="color: hsl(0, 100%, 40%);">-          write_mchbar16(0x422 + (channel << 10), 0x1040);</span><br><span style="color: hsl(120, 100%, 40%);">+                MCHBAR16(0x3e8 + (channel << 10)) = 0x101;</span><br><span style="color: hsl(120, 100%, 40%);">+              MCHBAR32(0x320 + (channel << 10)) = 0x29002900;</span><br><span style="color: hsl(120, 100%, 40%);">+         MCHBAR32(0x324 + (channel << 10)) = 0x0;</span><br><span style="color: hsl(120, 100%, 40%);">+                MCHBAR32(0x368 + (channel << 10)) = 0x32003200;</span><br><span style="color: hsl(120, 100%, 40%);">+         MCHBAR16(0x352 + (channel << 10)) = 0x505;</span><br><span style="color: hsl(120, 100%, 40%);">+              MCHBAR16(0x354 + (channel << 10)) = 0x3c3c;</span><br><span style="color: hsl(120, 100%, 40%);">+             MCHBAR16(0x356 + (channel << 10)) = 0x1040;</span><br><span style="color: hsl(120, 100%, 40%);">+             MCHBAR16(0x39a + (channel << 10)) = 0x73e4;</span><br><span style="color: hsl(120, 100%, 40%);">+             MCHBAR16(0x3de + (channel << 10)) = 0x77ed;</span><br><span style="color: hsl(120, 100%, 40%);">+             MCHBAR16(0x422 + (channel << 10)) = 0x1040;</span><br><span>    }</span><br><span> </span><br><span>        write_1d0(0x4, 0x151, 4, 1);</span><br><span>@@ -4423,15 +4366,15 @@</span><br><span>                                                             [0][0]) << 0),</span><br><span>             0x1d1, 3, 1);</span><br><span>      for (channel = 0; channel < NUM_CHANNELS; channel++) {</span><br><span style="color: hsl(0, 100%, 40%);">-               write_mchbar16(0x38e + (channel << 10), 0x5f5f);</span><br><span style="color: hsl(0, 100%, 40%);">-          write_mchbar16(0x3d2 + (channel << 10), 0x5f5f);</span><br><span style="color: hsl(120, 100%, 40%);">+                MCHBAR16(0x38e + (channel << 10)) = 0x5f5f;</span><br><span style="color: hsl(120, 100%, 40%);">+             MCHBAR16(0x3d2 + (channel << 10)) = 0x5f5f;</span><br><span>    }</span><br><span> </span><br><span>        set_334(0);</span><br><span> </span><br><span>      program_base_timings(&info);</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-    write_mchbar8(0x5ff, read_mchbar8(0x5ff) | 0x80);       /* OK */</span><br><span style="color: hsl(120, 100%, 40%);">+      MCHBAR8_OR(0x5ff, 0x80);</span><br><span> </span><br><span>         write_1d0(0x2, 0x1d5, 2, 1);</span><br><span>         write_1d0(0x20, 0x166, 7, 1);</span><br><span>@@ -4481,20 +4424,21 @@</span><br><span>      }</span><br><span> </span><br><span>        read_mchbar32(0x1f4);   // !!!!</span><br><span style="color: hsl(0, 100%, 40%);">- write_mchbar32(0x1f4, 0x20000);</span><br><span style="color: hsl(0, 100%, 40%);">- write_mchbar32(0x1f0, 0x1d000200);</span><br><span style="color: hsl(120, 100%, 40%);">+    MCHBAR32(0x1f4) = 0x20000;</span><br><span style="color: hsl(120, 100%, 40%);">+    MCHBAR32(0x1f0) = 0x1d000200;</span><br><span>        read_mchbar8(0x1f0);    // !!!!</span><br><span style="color: hsl(0, 100%, 40%);">- write_mchbar8(0x1f0, 0x1);</span><br><span style="color: hsl(120, 100%, 40%);">+    MCHBAR8(0x1f0) = 0x1;</span><br><span>        read_mchbar8(0x1f0);    // !!!!</span><br><span> </span><br><span>  program_board_delay(&info);</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-     write_mchbar8(0x5ff, 0x0);      /* OK */</span><br><span style="color: hsl(0, 100%, 40%);">-        write_mchbar8(0x5ff, 0x80);     /* OK */</span><br><span style="color: hsl(0, 100%, 40%);">-        write_mchbar8(0x5f4, 0x1);      /* OK */</span><br><span style="color: hsl(120, 100%, 40%);">+      MCHBAR8(0x5ff) = 0x0;</span><br><span style="color: hsl(120, 100%, 40%);">+ MCHBAR8(0x5ff) = 0x80;</span><br><span style="color: hsl(120, 100%, 40%);">+        MCHBAR8(0x5f4) = 0x1;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-       write_mchbar32(0x130, read_mchbar32(0x130) & 0xfffffffd);   // | 2 when ?</span><br><span style="color: hsl(0, 100%, 40%);">-   while (read_mchbar32(0x130) & 1);</span><br><span style="color: hsl(120, 100%, 40%);">+ MCHBAR32_AND(0x130, 0xfffffffd);        // | 2 when ?</span><br><span style="color: hsl(120, 100%, 40%);">+ while (read_mchbar32(0x130) & 1)</span><br><span style="color: hsl(120, 100%, 40%);">+          ;</span><br><span>    gav(read_1d0(0x14b, 7));        // = 0x81023100</span><br><span>      write_1d0(0x30, 0x14b, 7, 1);</span><br><span>        read_1d0(0xd6, 6);      // = 0xfa008080 // !!!!</span><br><span>@@ -4513,12 +4457,12 @@</span><br><span>    read_1d0(0x300, 4);     // = 0x48088080 // !!!!</span><br><span>      write_1d0(0, 0x300, 6, 1);</span><br><span>   read_mchbar16(0x356);   // !!!!</span><br><span style="color: hsl(0, 100%, 40%);">- write_mchbar16(0x356, 0x1040);</span><br><span style="color: hsl(120, 100%, 40%);">+        MCHBAR16(0x356) = 0x1040;</span><br><span>    read_mchbar16(0x756);   // !!!!</span><br><span style="color: hsl(0, 100%, 40%);">- write_mchbar16(0x756, 0x1040);</span><br><span style="color: hsl(0, 100%, 40%);">-  write_mchbar32(0x140, read_mchbar32(0x140) & ~0x07000000);</span><br><span style="color: hsl(0, 100%, 40%);">-  write_mchbar32(0x138, read_mchbar32(0x138) & ~0x07000000);</span><br><span style="color: hsl(0, 100%, 40%);">-  write_mchbar32(0x130, 0x31111301);</span><br><span style="color: hsl(120, 100%, 40%);">+    MCHBAR16(0x756) = 0x1040;</span><br><span style="color: hsl(120, 100%, 40%);">+     MCHBAR32_AND(0x140, ~0x07000000);</span><br><span style="color: hsl(120, 100%, 40%);">+     MCHBAR32_AND(0x138, ~0x07000000);</span><br><span style="color: hsl(120, 100%, 40%);">+     MCHBAR32(0x130) = 0x31111301;</span><br><span>        /* Wait until REG130b0 is 1.  */</span><br><span>     while (read_mchbar32(0x130) & 1)</span><br><span>                 ;</span><br><span>@@ -4558,14 +4502,10 @@</span><br><span>          set_4cf(&info, channel,</span><br><span>                  info.populated_ranks[channel][0][0] ? 9 : 0);</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-       write_mchbar32(0x130,</span><br><span style="color: hsl(0, 100%, 40%);">-                  0x11111301 | (info.</span><br><span style="color: hsl(0, 100%, 40%);">-                                   populated_ranks[1][0][0] << 30) | (info.</span><br><span style="color: hsl(0, 100%, 40%);">-                                                                     populated_ranks</span><br><span style="color: hsl(0, 100%, 40%);">-                                                                 [0][0]</span><br><span style="color: hsl(0, 100%, 40%);">-                                                                  [0] <<</span><br><span style="color: hsl(0, 100%, 40%);">-                                                                    29));</span><br><span style="color: hsl(0, 100%, 40%);">-   while (read_mchbar8(0x130) & 1);    // !!!!</span><br><span style="color: hsl(120, 100%, 40%);">+       MCHBAR32(0x130) = 0x11111301 | (info.populated_ranks[1][0][0] << 30) |</span><br><span style="color: hsl(120, 100%, 40%);">+          (info.populated_ranks[0][0][0] << 29);</span><br><span style="color: hsl(120, 100%, 40%);">+  while (read_mchbar8(0x130) & 1)     // !!!!</span><br><span style="color: hsl(120, 100%, 40%);">+               ;</span><br><span>    read_1d0(0xa1, 6);      // = 0x1cf4054 // !!!!</span><br><span>       read_1d0(0x2f3, 6);     // = 0x10a4054 // !!!!</span><br><span>       read_1d0(0x21c, 6);     // = 0xafa00c0 // !!!!</span><br><span>@@ -4579,7 +4519,7 @@</span><br><span> </span><br><span>   set_334(1);</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">- write_mchbar8(0x1e8, 0x4);      /* OK */</span><br><span style="color: hsl(120, 100%, 40%);">+      MCHBAR8(0x1e8) = 0x4;</span><br><span> </span><br><span>    for (channel = 0; channel < NUM_CHANNELS; channel++) {</span><br><span>            write_500(&info, channel,</span><br><span>@@ -4587,25 +4527,26 @@</span><br><span>                        1);</span><br><span>                write_500(&info, channel, 0x3, 0x69b, 2, 1);</span><br><span>     }</span><br><span style="color: hsl(0, 100%, 40%);">-       write_mchbar32(0x2d0, (read_mchbar32(0x2d0) & 0xff2c01ff) | 0x200000);      /* OK */</span><br><span style="color: hsl(0, 100%, 40%);">-        write_mchbar16(0x6c0, 0x14a0);  /* OK */</span><br><span style="color: hsl(0, 100%, 40%);">-        write_mchbar32(0x6d0, (read_mchbar32(0x6d0) & 0xff0080ff) | 0x8000);        /* OK */</span><br><span style="color: hsl(0, 100%, 40%);">-        write_mchbar16(0x232, 0x8);</span><br><span style="color: hsl(0, 100%, 40%);">-     write_mchbar32(0x234, (read_mchbar32(0x234) & 0xfffbfffb) | 0x40004);       /* 0x40004 or 0 depending on ? */</span><br><span style="color: hsl(0, 100%, 40%);">-       write_mchbar32(0x34, (read_mchbar32(0x34) & 0xfffffffd) | 5);       /* OK */</span><br><span style="color: hsl(0, 100%, 40%);">-        write_mchbar32(0x128, 0x2150d05);</span><br><span style="color: hsl(0, 100%, 40%);">-       write_mchbar8(0x12c, 0x1f);     /* OK */</span><br><span style="color: hsl(0, 100%, 40%);">-        write_mchbar8(0x12d, 0x56);     /* OK */</span><br><span style="color: hsl(0, 100%, 40%);">-        write_mchbar8(0x12e, 0x31);</span><br><span style="color: hsl(0, 100%, 40%);">-     write_mchbar8(0x12f, 0x0);      /* OK */</span><br><span style="color: hsl(0, 100%, 40%);">-        write_mchbar8(0x271, 0x2);      /* OK */</span><br><span style="color: hsl(0, 100%, 40%);">-        write_mchbar8(0x671, 0x2);      /* OK */</span><br><span style="color: hsl(0, 100%, 40%);">-        write_mchbar8(0x1e8, 0x4);      /* OK */</span><br><span style="color: hsl(120, 100%, 40%);">+      MCHBAR32_AND_OR(0x2d0, 0xff2c01ff, 0x200000);</span><br><span style="color: hsl(120, 100%, 40%);">+ MCHBAR16(0x6c0) = 0x14a0;</span><br><span style="color: hsl(120, 100%, 40%);">+     MCHBAR32_AND_OR(0x6d0, 0xff0080ff, 0x8000);</span><br><span style="color: hsl(120, 100%, 40%);">+   MCHBAR16(0x232) = 0x8;</span><br><span style="color: hsl(120, 100%, 40%);">+        /* 0x40004 or 0 depending on ? */</span><br><span style="color: hsl(120, 100%, 40%);">+     MCHBAR32_AND_OR(0x234, 0xfffbfffb, 0x40004);</span><br><span style="color: hsl(120, 100%, 40%);">+  MCHBAR32_AND_OR(0x34, 0xfffffffd, 5);</span><br><span style="color: hsl(120, 100%, 40%);">+ MCHBAR32(0x128) = 0x2150d05;</span><br><span style="color: hsl(120, 100%, 40%);">+  MCHBAR8(0x12c) = 0x1f;</span><br><span style="color: hsl(120, 100%, 40%);">+        MCHBAR8(0x12d) = 0x56;</span><br><span style="color: hsl(120, 100%, 40%);">+        MCHBAR8(0x12e) = 0x31;</span><br><span style="color: hsl(120, 100%, 40%);">+        MCHBAR8(0x12f) = 0x0;</span><br><span style="color: hsl(120, 100%, 40%);">+ MCHBAR8(0x271) = 0x2;</span><br><span style="color: hsl(120, 100%, 40%);">+ MCHBAR8(0x671) = 0x2;</span><br><span style="color: hsl(120, 100%, 40%);">+ MCHBAR8(0x1e8) = 0x4;</span><br><span>        for (channel = 0; channel < NUM_CHANNELS; channel++)</span><br><span style="color: hsl(0, 100%, 40%);">-         write_mchbar32(0x294 + (channel << 10),</span><br><span style="color: hsl(0, 100%, 40%);">-                          (info.populated_ranks_mask[channel] & 3) << 16);</span><br><span style="color: hsl(0, 100%, 40%);">-       write_mchbar32(0x134, (read_mchbar32(0x134) & 0xfc01ffff) | 0x10000);       /* OK */</span><br><span style="color: hsl(0, 100%, 40%);">-        write_mchbar32(0x134, (read_mchbar32(0x134) & 0xfc85ffff) | 0x850000);      /* OK */</span><br><span style="color: hsl(120, 100%, 40%);">+              MCHBAR32(0x294 + (channel << 10)) =</span><br><span style="color: hsl(120, 100%, 40%);">+                     (info.populated_ranks_mask[channel] & 3) << 16;</span><br><span style="color: hsl(120, 100%, 40%);">+     MCHBAR32_AND_OR(0x134, 0xfc01ffff, 0x10000);</span><br><span style="color: hsl(120, 100%, 40%);">+  MCHBAR32_AND_OR(0x134, 0xfc85ffff, 0x850000);</span><br><span>        for (channel = 0; channel < NUM_CHANNELS; channel++)</span><br><span>              write_mchbar32(0x260 + (channel << 10),</span><br><span>                               (read_mchbar32(0x260 + (channel << 10)) &</span><br><span>@@ -4627,39 +4568,31 @@</span><br><span>                                         totalrank++;</span><br><span>                                 }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-   write_mchbar8(0x12c, 0x9f);</span><br><span style="color: hsl(120, 100%, 40%);">+   MCHBAR8(0x12c) = 0x9f;</span><br><span> </span><br><span>   read_mchbar8(0x271);    // 2 // !!!!</span><br><span style="color: hsl(0, 100%, 40%);">-    write_mchbar8(0x271, 0xe);</span><br><span style="color: hsl(120, 100%, 40%);">+    MCHBAR8(0x271) = 0xe;</span><br><span>        read_mchbar8(0x671);    // !!!!</span><br><span style="color: hsl(0, 100%, 40%);">- write_mchbar8(0x671, 0xe);</span><br><span style="color: hsl(120, 100%, 40%);">+    MCHBAR8(0x671) = 0xe;</span><br><span> </span><br><span>    if (!s3resume) {</span><br><span>             for (channel = 0; channel < NUM_CHANNELS; channel++) {</span><br><span style="color: hsl(0, 100%, 40%);">-                       write_mchbar32(0x294 + (channel << 10),</span><br><span style="color: hsl(0, 100%, 40%);">-                                  (info.</span><br><span style="color: hsl(0, 100%, 40%);">-                                   populated_ranks_mask[channel] & 3) <<</span><br><span style="color: hsl(0, 100%, 40%);">-                                16);</span><br><span style="color: hsl(0, 100%, 40%);">-                     write_mchbar16(0x298 + (channel << 10),</span><br><span style="color: hsl(0, 100%, 40%);">-                                  (info.</span><br><span style="color: hsl(0, 100%, 40%);">-                                   populated_ranks[channel][0][0]) | (info.</span><br><span style="color: hsl(0, 100%, 40%);">-                                                                           populated_ranks</span><br><span style="color: hsl(0, 100%, 40%);">-                                                                         [channel]</span><br><span style="color: hsl(0, 100%, 40%);">-                                                                       [0]</span><br><span style="color: hsl(0, 100%, 40%);">-                                                                     [1]</span><br><span style="color: hsl(0, 100%, 40%);">-                                                                     <<</span><br><span style="color: hsl(0, 100%, 40%);">-                                                                        5));</span><br><span style="color: hsl(0, 100%, 40%);">-                 write_mchbar32(0x29c + (channel << 10), 0x77a);</span><br><span style="color: hsl(120, 100%, 40%);">+                 MCHBAR32(0x294 + (channel << 10)) =</span><br><span style="color: hsl(120, 100%, 40%);">+                             (info.populated_ranks_mask[channel] & 3) << 16;</span><br><span style="color: hsl(120, 100%, 40%);">+                     MCHBAR16(0x298 + (channel << 10)) =</span><br><span style="color: hsl(120, 100%, 40%);">+                             info.populated_ranks[channel][0][0] |</span><br><span style="color: hsl(120, 100%, 40%);">+                         (info.populated_ranks[channel][0][1] << 5);</span><br><span style="color: hsl(120, 100%, 40%);">+                     MCHBAR32(0x29c + (channel << 10)) = 0x77a;</span><br><span>             }</span><br><span>            read_mchbar32(0x2c0);   /// !!!</span><br><span style="color: hsl(0, 100%, 40%);">-         write_mchbar32(0x2c0, 0x6009cc00);</span><br><span style="color: hsl(120, 100%, 40%);">+            MCHBAR32(0x2c0) = 0x6009cc00;</span><br><span> </span><br><span>            {</span><br><span>                    u8 a, b;</span><br><span style="color: hsl(0, 100%, 40%);">-                        a = read_mchbar8(0x243);        // !!!!</span><br><span style="color: hsl(0, 100%, 40%);">-                 b = read_mchbar8(0x643);        // !!!!</span><br><span style="color: hsl(0, 100%, 40%);">-                 write_mchbar8(0x243, a | 2);</span><br><span style="color: hsl(0, 100%, 40%);">-                    write_mchbar8(0x643, b | 2);</span><br><span style="color: hsl(120, 100%, 40%);">+                  a = MCHBAR8(0x243);</span><br><span style="color: hsl(120, 100%, 40%);">+                   b = MCHBAR8(0x643);</span><br><span style="color: hsl(120, 100%, 40%);">+                   MCHBAR8(0x243) = a | 2;</span><br><span style="color: hsl(120, 100%, 40%);">+                       MCHBAR8(0x643) = b | 2;</span><br><span>              }</span><br><span> </span><br><span>                write_1d0(7, 0x19b, 3, 1);</span><br><span>@@ -4668,8 +4601,8 @@</span><br><span>           write_1d0(4, 0x1cc, 4, 1);</span><br><span>           read_1d0(0x151, 4);     // = 0x408c6d74 // !!!!</span><br><span>              write_1d0(4, 0x151, 4, 1);</span><br><span style="color: hsl(0, 100%, 40%);">-              write_mchbar32(0x584, 0xfffff);</span><br><span style="color: hsl(0, 100%, 40%);">-         write_mchbar32(0x984, 0xfffff);</span><br><span style="color: hsl(120, 100%, 40%);">+               MCHBAR32(0x584) = 0xfffff;</span><br><span style="color: hsl(120, 100%, 40%);">+            MCHBAR32(0x984) = 0xfffff;</span><br><span> </span><br><span>               for (channel = 0; channel < NUM_CHANNELS; channel++)</span><br><span>                      for (slot = 0; slot < NUM_SLOTS; slot++)</span><br><span>@@ -4681,40 +4614,32 @@</span><br><span>                                                            channel, slot,</span><br><span>                                                       rank);</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-          write_mchbar8(0x243, 0x1);</span><br><span style="color: hsl(0, 100%, 40%);">-              write_mchbar8(0x643, 0x1);</span><br><span style="color: hsl(120, 100%, 40%);">+            MCHBAR8(0x243) = 0x1;</span><br><span style="color: hsl(120, 100%, 40%);">+         MCHBAR8(0x643) = 0x1;</span><br><span>        }</span><br><span> </span><br><span>        /* was == 1 but is common */</span><br><span>         pci_write_config16(NORTHBRIDGE, 0xc8, 3);</span><br><span>    write_26c(0, 0x820);</span><br><span>         write_26c(1, 0x820);</span><br><span style="color: hsl(0, 100%, 40%);">-    write_mchbar32(0x130, read_mchbar32(0x130) | 2);</span><br><span style="color: hsl(120, 100%, 40%);">+      MCHBAR32_OR(0x130, 2);</span><br><span>       /* end */</span><br><span> </span><br><span>        if (s3resume) {</span><br><span>              for (channel = 0; channel < NUM_CHANNELS; channel++) {</span><br><span style="color: hsl(0, 100%, 40%);">-                       write_mchbar32(0x294 + (channel << 10),</span><br><span style="color: hsl(0, 100%, 40%);">-                                  (info.</span><br><span style="color: hsl(0, 100%, 40%);">-                                   populated_ranks_mask[channel] & 3) <<</span><br><span style="color: hsl(0, 100%, 40%);">-                                16);</span><br><span style="color: hsl(0, 100%, 40%);">-                     write_mchbar16(0x298 + (channel << 10),</span><br><span style="color: hsl(0, 100%, 40%);">-                                  (info.</span><br><span style="color: hsl(0, 100%, 40%);">-                                   populated_ranks[channel][0][0]) | (info.</span><br><span style="color: hsl(0, 100%, 40%);">-                                                                           populated_ranks</span><br><span style="color: hsl(0, 100%, 40%);">-                                                                         [channel]</span><br><span style="color: hsl(0, 100%, 40%);">-                                                                       [0]</span><br><span style="color: hsl(0, 100%, 40%);">-                                                                     [1]</span><br><span style="color: hsl(0, 100%, 40%);">-                                                                     <<</span><br><span style="color: hsl(0, 100%, 40%);">-                                                                        5));</span><br><span style="color: hsl(0, 100%, 40%);">-                 write_mchbar32(0x29c + (channel << 10), 0x77a);</span><br><span style="color: hsl(120, 100%, 40%);">+                 MCHBAR32(0x294 + (channel << 10)) =</span><br><span style="color: hsl(120, 100%, 40%);">+                             (info.populated_ranks_mask[channel] & 3) << 16;</span><br><span style="color: hsl(120, 100%, 40%);">+                     MCHBAR16(0x298 + (channel << 10)) =</span><br><span style="color: hsl(120, 100%, 40%);">+                             info.populated_ranks[channel][0][0] |</span><br><span style="color: hsl(120, 100%, 40%);">+                         (info.populated_ranks[channel][0][1] << 5);</span><br><span style="color: hsl(120, 100%, 40%);">+                     MCHBAR32(0x29c + (channel << 10)) = 0x77a;</span><br><span>             }</span><br><span>            read_mchbar32(0x2c0);   /// !!!</span><br><span style="color: hsl(0, 100%, 40%);">-         write_mchbar32(0x2c0, 0x6009cc00);</span><br><span style="color: hsl(120, 100%, 40%);">+            MCHBAR32(0x2c0) = 0x6009cc00;</span><br><span>        }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-   write_mchbar32(0xfa4, read_mchbar32(0xfa4) & ~0x01000002);</span><br><span style="color: hsl(0, 100%, 40%);">-  write_mchbar32(0xfb0, 0x2000e019);</span><br><span style="color: hsl(120, 100%, 40%);">+    MCHBAR32_AND(0xfa4, ~0x01000002);</span><br><span style="color: hsl(120, 100%, 40%);">+     MCHBAR32(0xfb0) = 0x2000e019;</span><br><span> </span><br><span>    /* Before training. */</span><br><span>       timestamp_add_now(103);</span><br><span>@@ -4731,33 +4656,33 @@</span><br><span>    program_total_memory_map(&info);</span><br><span> </span><br><span>     if (info.non_interleaved_part_mb != 0 && info.interleaved_part_mb != 0)</span><br><span style="color: hsl(0, 100%, 40%);">-         write_mchbar8(0x111, 0x20 | (0 << 2) | (1 << 6) | (0 << 7));</span><br><span style="color: hsl(120, 100%, 40%);">+                MCHBAR8(0x111) = 0x20 | (0 << 2) | (1 << 6) | (0 << 7);</span><br><span>    else if (have_match_ranks(&info, 0, 4) && have_match_ranks(&info, 1, 4))</span><br><span style="color: hsl(0, 100%, 40%);">-                write_mchbar8(0x111, 0x20 | (3 << 2) | (0 << 6) | (1 << 7));</span><br><span style="color: hsl(120, 100%, 40%);">+                MCHBAR8(0x111) = 0x20 | (3 << 2) | (0 << 6) | (1 << 7);</span><br><span>    else if (have_match_ranks(&info, 0, 2) && have_match_ranks(&info, 1, 2))</span><br><span style="color: hsl(0, 100%, 40%);">-                write_mchbar8(0x111, 0x20 | (3 << 2) | (0 << 6) | (0 << 7));</span><br><span style="color: hsl(120, 100%, 40%);">+                MCHBAR8(0x111) = 0x20 | (3 << 2) | (0 << 6) | (0 << 7);</span><br><span>    else</span><br><span style="color: hsl(0, 100%, 40%);">-            write_mchbar8(0x111, 0x20 | (3 << 2) | (1 << 6) | (0 << 7));</span><br><span style="color: hsl(120, 100%, 40%);">+                MCHBAR8(0x111) = 0x20 | (3 << 2) | (1 << 6) | (0 << 7);</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-   write_mchbar32(0xfac, read_mchbar32(0xfac) & ~0x80000000);  // OK</span><br><span style="color: hsl(0, 100%, 40%);">-   write_mchbar32(0xfb4, 0x4800);  // OK</span><br><span style="color: hsl(0, 100%, 40%);">-   write_mchbar32(0xfb8, (info.revision < 8) ? 0x20 : 0x0);     // OK</span><br><span style="color: hsl(0, 100%, 40%);">-   write_mchbar32(0xe94, 0x7ffff); // OK</span><br><span style="color: hsl(0, 100%, 40%);">-   write_mchbar32(0xfc0, 0x80002040);      // OK</span><br><span style="color: hsl(0, 100%, 40%);">-   write_mchbar32(0xfc4, 0x701246);        // OK</span><br><span style="color: hsl(0, 100%, 40%);">-   write_mchbar8(0xfc8, read_mchbar8(0xfc8) & ~0x70);  // OK</span><br><span style="color: hsl(0, 100%, 40%);">-   write_mchbar32(0xe5c, 0x1000000 | read_mchbar32(0xe5c));        // OK</span><br><span style="color: hsl(0, 100%, 40%);">-   write_mchbar32(0x1a70, (read_mchbar32(0x1a70) | 0x00200000) & ~0x00100000); // OK</span><br><span style="color: hsl(0, 100%, 40%);">-   write_mchbar32(0x50, 0x700b0);  // OK</span><br><span style="color: hsl(0, 100%, 40%);">-   write_mchbar32(0x3c, 0x10);     // OK</span><br><span style="color: hsl(0, 100%, 40%);">-   write_mchbar8(0x1aa8, (read_mchbar8(0x1aa8) & ~0x35) | 0xa);        // OK</span><br><span style="color: hsl(0, 100%, 40%);">-   write_mchbar8(0xff4, read_mchbar8(0xff4) | 0x2);        // OK</span><br><span style="color: hsl(0, 100%, 40%);">-   write_mchbar32(0xff8, (read_mchbar32(0xff8) & ~0xe008) | 0x1020);   // OK</span><br><span style="color: hsl(120, 100%, 40%);">+ MCHBAR32_AND(0xfac, ~0x80000000);</span><br><span style="color: hsl(120, 100%, 40%);">+     MCHBAR32(0xfb4) = 0x4800;</span><br><span style="color: hsl(120, 100%, 40%);">+     MCHBAR32(0xfb8) = (info.revision < 8) ? 0x20 : 0x0;</span><br><span style="color: hsl(120, 100%, 40%);">+        MCHBAR32(0xe94) = 0x7ffff;</span><br><span style="color: hsl(120, 100%, 40%);">+    MCHBAR32(0xfc0) = 0x80002040;</span><br><span style="color: hsl(120, 100%, 40%);">+ MCHBAR32(0xfc4) = 0x701246;</span><br><span style="color: hsl(120, 100%, 40%);">+   MCHBAR8_AND(0xfc8, ~0x70);</span><br><span style="color: hsl(120, 100%, 40%);">+    MCHBAR32_OR(0xe5c, 0x1000000);</span><br><span style="color: hsl(120, 100%, 40%);">+        MCHBAR32_AND_OR(0x1a70, ~0x00100000, 0x00200000);</span><br><span style="color: hsl(120, 100%, 40%);">+     MCHBAR32(0x50) = 0x700b0;</span><br><span style="color: hsl(120, 100%, 40%);">+     MCHBAR32(0x3c) = 0x10;</span><br><span style="color: hsl(120, 100%, 40%);">+        MCHBAR8(0x1aa8) = (MCHBAR8(0x1aa8) & ~0x35) | 0xa;</span><br><span style="color: hsl(120, 100%, 40%);">+        MCHBAR8_OR(0xff4, 0x2);</span><br><span style="color: hsl(120, 100%, 40%);">+       MCHBAR32_AND_OR(0xff8, ~0xe008, 0x1020);</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-    write_mchbar32(0xd00, IOMMU_BASE2 | 1);</span><br><span style="color: hsl(0, 100%, 40%);">- write_mchbar32(0xd40, IOMMU_BASE1 | 1);</span><br><span style="color: hsl(0, 100%, 40%);">- write_mchbar32(0xdc0, IOMMU_BASE4 | 1);</span><br><span> #if 1</span><br><span style="color: hsl(120, 100%, 40%);">+      MCHBAR32(0xd00) = IOMMU_BASE2 | 1;</span><br><span style="color: hsl(120, 100%, 40%);">+    MCHBAR32(0xd40) = IOMMU_BASE1 | 1;</span><br><span style="color: hsl(120, 100%, 40%);">+    MCHBAR32(0xdc0) = IOMMU_BASE4 | 1;</span><br><span> </span><br><span>       write32p(IOMMU_BASE1 | 0xffc, 0x80000000);</span><br><span>   write32p(IOMMU_BASE2 | 0xffc, 0xc0000000);</span><br><span>@@ -4766,10 +4691,12 @@</span><br><span> #else</span><br><span>        {</span><br><span>            u32 eax;</span><br><span style="color: hsl(0, 100%, 40%);">-                eax = read32p(0xffc + (read_mchbar32(0xd00) & ~1)) | 0x08000000;    // = 0xe911714b// OK</span><br><span style="color: hsl(0, 100%, 40%);">-            write32p(0xffc + (read_mchbar32(0xd00) & ~1), eax); // OK</span><br><span style="color: hsl(0, 100%, 40%);">-           eax = read32p(0xffc + (read_mchbar32(0xdc0) & ~1)) | 0x40000000;    // = 0xe911714b// OK</span><br><span style="color: hsl(0, 100%, 40%);">-            write32p(0xffc + (read_mchbar32(0xdc0) & ~1), eax); // OK</span><br><span style="color: hsl(120, 100%, 40%);">+         // = 0xe911714b</span><br><span style="color: hsl(120, 100%, 40%);">+               eax = read32p(0xffc + (MCHBAR32(0xd00) & ~1)) | 0x08000000;</span><br><span style="color: hsl(120, 100%, 40%);">+               write32p(0xffc + (MCHBAR32(0xd00) & ~1), eax);</span><br><span style="color: hsl(120, 100%, 40%);">+            // = 0xe911714b</span><br><span style="color: hsl(120, 100%, 40%);">+               eax = read32p(0xffc + (MCHBAR32(0xdc0) & ~1)) | 0x40000000;</span><br><span style="color: hsl(120, 100%, 40%);">+               write32p(0xffc + (MCHBAR32(0xdc0) & ~1), eax);</span><br><span>   }</span><br><span> #endif</span><br><span> </span><br><span>@@ -4777,28 +4704,28 @@</span><br><span>            u32 eax;</span><br><span> </span><br><span>                 eax = info.fsb_frequency / 9;</span><br><span style="color: hsl(0, 100%, 40%);">-           write_mchbar32(0xfcc, (read_mchbar32(0xfcc) & 0xfffc0000) | (eax * 0x280) | (eax * 0x5000) | eax | 0x40000);        // OK</span><br><span style="color: hsl(0, 100%, 40%);">-           write_mchbar32(0x20, 0x33001);  //OK</span><br><span style="color: hsl(120, 100%, 40%);">+          MCHBAR32_AND_OR(0xfcc, 0xfffc0000,</span><br><span style="color: hsl(120, 100%, 40%);">+                    (eax * 0x280) | (eax * 0x5000) | eax | 0x40000);</span><br><span style="color: hsl(120, 100%, 40%);">+              MCHBAR32(0x20) = 0x33001;</span><br><span>    }</span><br><span> </span><br><span>        for (channel = 0; channel < NUM_CHANNELS; channel++) {</span><br><span style="color: hsl(0, 100%, 40%);">-               write_mchbar32(0x220 + (channel << 10), read_mchbar32(0x220 + (channel << 10)) & ~0x7770);      //OK</span><br><span style="color: hsl(120, 100%, 40%);">+          MCHBAR32_AND(0x220 + (channel << 10), ~0x7770);</span><br><span>                if (info.max_slots_used_in_channel == 1)</span><br><span style="color: hsl(0, 100%, 40%);">-                        write_mchbar16(0x237 + (channel << 10), (read_mchbar16(0x237 + (channel << 10)) | 0x0201)); //OK</span><br><span style="color: hsl(120, 100%, 40%);">+                  MCHBAR16_OR(0x237 + (channel << 10), 0x0201);</span><br><span>          else</span><br><span style="color: hsl(0, 100%, 40%);">-                    write_mchbar16(0x237 + (channel << 10), (read_mchbar16(0x237 + (channel << 10)) & ~0x0201));    //OK</span><br><span style="color: hsl(120, 100%, 40%);">+                  MCHBAR16_AND(0x237 + (channel << 10), ~0x0201);</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-               write_mchbar8(0x241 + (channel << 10), read_mchbar8(0x241 + (channel << 10)) | 1);  // OK</span><br><span style="color: hsl(120, 100%, 40%);">+         MCHBAR8_OR(0x241 + (channel << 10), 1);</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-               if (info.clock_speed_index <= 1</span><br><span style="color: hsl(0, 100%, 40%);">-                  && (info.silicon_revision == 2</span><br><span style="color: hsl(120, 100%, 40%);">+            if (info.clock_speed_index <= 1 && (info.silicon_revision == 2</span><br><span>                    || info.silicon_revision == 3))</span><br><span style="color: hsl(0, 100%, 40%);">-                 write_mchbar32(0x248 + (channel << 10), (read_mchbar32(0x248 + (channel << 10)) | 0x00102000));     // OK</span><br><span style="color: hsl(120, 100%, 40%);">+                 MCHBAR32_OR(0x248 + (channel << 10), 0x00102000);</span><br><span>              else</span><br><span style="color: hsl(0, 100%, 40%);">-                    write_mchbar32(0x248 + (channel << 10), (read_mchbar32(0x248 + (channel << 10)) & ~0x00102000));        // OK</span><br><span style="color: hsl(120, 100%, 40%);">+                 MCHBAR32_AND(0x248 + (channel << 10), ~0x00102000);</span><br><span>    }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-   write_mchbar32(0x115, read_mchbar32(0x115) | 0x1000000);        // OK</span><br><span style="color: hsl(120, 100%, 40%);">+ MCHBAR32_OR(0x115, 0x1000000);</span><br><span> </span><br><span>   {</span><br><span>            u8 al;</span><br><span>@@ -4806,13 +4733,14 @@</span><br><span>             if (!(info.silicon_revision == 0 || info.silicon_revision == 1))</span><br><span>                     al += 2;</span><br><span>             al |= ((1 << (info.max_slots_used_in_channel - 1)) - 1) << 4;</span><br><span style="color: hsl(0, 100%, 40%);">-               write_mchbar32(0x210, (al << 16) | 0x20); // OK</span><br><span style="color: hsl(120, 100%, 40%);">+         MCHBAR32(0x210) = (al << 16) | 0x20;</span><br><span>   }</span><br><span> </span><br><span>        for (channel = 0; channel < NUM_CHANNELS; channel++) {</span><br><span style="color: hsl(0, 100%, 40%);">-               write_mchbar32(0x288 + (channel << 10), 0x70605040);      // OK</span><br><span style="color: hsl(0, 100%, 40%);">-           write_mchbar32(0x28c + (channel << 10), 0xfffec080);      // OK</span><br><span style="color: hsl(0, 100%, 40%);">-           write_mchbar32(0x290 + (channel << 10), 0x282091c | ((info.max_slots_used_in_channel - 1) << 0x16));        // OK</span><br><span style="color: hsl(120, 100%, 40%);">+         MCHBAR32(0x288 + (channel << 10)) = 0x70605040;</span><br><span style="color: hsl(120, 100%, 40%);">+         MCHBAR32(0x28c + (channel << 10)) = 0xfffec080;</span><br><span style="color: hsl(120, 100%, 40%);">+         MCHBAR32(0x290 + (channel << 10)) = 0x282091c |</span><br><span style="color: hsl(120, 100%, 40%);">+                 ((info.max_slots_used_in_channel - 1) << 0x16);</span><br><span>        }</span><br><span>    u32 reg1c;</span><br><span>   pci_read_config32(NORTHBRIDGE, 0x40);   // = DEFAULT_EPBAR | 0x001 // OK</span><br><span>@@ -4821,47 +4749,47 @@</span><br><span>   write32p(DEFAULT_EPBAR | 0x01c, reg1c); // OK</span><br><span>        read_mchbar8(0xe08);    // = 0x0</span><br><span>     pci_read_config32(NORTHBRIDGE, 0xe4);   // = 0x316126</span><br><span style="color: hsl(0, 100%, 40%);">-   write_mchbar8(0x1210, read_mchbar8(0x1210) | 2);        // OK</span><br><span style="color: hsl(0, 100%, 40%);">-   write_mchbar32(0x1200, 0x8800440);      // OK</span><br><span style="color: hsl(0, 100%, 40%);">-   write_mchbar32(0x1204, 0x53ff0453);     // OK</span><br><span style="color: hsl(0, 100%, 40%);">-   write_mchbar32(0x1208, 0x19002043);     // OK</span><br><span style="color: hsl(0, 100%, 40%);">-   write_mchbar16(0x1214, 0x320);  // OK</span><br><span style="color: hsl(120, 100%, 40%);">+ MCHBAR8_OR(0x1210, 2);</span><br><span style="color: hsl(120, 100%, 40%);">+        MCHBAR32(0x1200) = 0x8800440;</span><br><span style="color: hsl(120, 100%, 40%);">+ MCHBAR32(0x1204) = 0x53ff0453;</span><br><span style="color: hsl(120, 100%, 40%);">+        MCHBAR32(0x1208) = 0x19002043;</span><br><span style="color: hsl(120, 100%, 40%);">+        MCHBAR16(0x1214) = 0x320;</span><br><span> </span><br><span>        if (info.revision == 0x10 || info.revision == 0x11) {</span><br><span style="color: hsl(0, 100%, 40%);">-           write_mchbar16(0x1214, 0x220);  // OK</span><br><span style="color: hsl(0, 100%, 40%);">-           write_mchbar8(0x1210, read_mchbar8(0x1210) | 0x40);     // OK</span><br><span style="color: hsl(120, 100%, 40%);">+         MCHBAR16(0x1214) = 0x220;</span><br><span style="color: hsl(120, 100%, 40%);">+             MCHBAR8_OR(0x1210, 0x40);</span><br><span>    }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-   write_mchbar8(0x1214, read_mchbar8(0x1214) | 0x4);      // OK</span><br><span style="color: hsl(0, 100%, 40%);">-   write_mchbar8(0x120c, 0x1);     // OK</span><br><span style="color: hsl(0, 100%, 40%);">-   write_mchbar8(0x1218, 0x3);     // OK</span><br><span style="color: hsl(0, 100%, 40%);">-   write_mchbar8(0x121a, 0x3);     // OK</span><br><span style="color: hsl(0, 100%, 40%);">-   write_mchbar8(0x121c, 0x3);     // OK</span><br><span style="color: hsl(0, 100%, 40%);">-   write_mchbar16(0xc14, 0x0);     // OK</span><br><span style="color: hsl(0, 100%, 40%);">-   write_mchbar16(0xc20, 0x0);     // OK</span><br><span style="color: hsl(0, 100%, 40%);">-   write_mchbar32(0x1c, 0x0);      // OK</span><br><span style="color: hsl(120, 100%, 40%);">+ MCHBAR8_OR(0x1214, 0x4);</span><br><span style="color: hsl(120, 100%, 40%);">+      MCHBAR8(0x120c) = 0x1;</span><br><span style="color: hsl(120, 100%, 40%);">+        MCHBAR8(0x1218) = 0x3;</span><br><span style="color: hsl(120, 100%, 40%);">+        MCHBAR8(0x121a) = 0x3;</span><br><span style="color: hsl(120, 100%, 40%);">+        MCHBAR8(0x121c) = 0x3;</span><br><span style="color: hsl(120, 100%, 40%);">+        MCHBAR16(0xc14) = 0x0;</span><br><span style="color: hsl(120, 100%, 40%);">+        MCHBAR16(0xc20) = 0x0;</span><br><span style="color: hsl(120, 100%, 40%);">+        MCHBAR32(0x1c) = 0x0;</span><br><span> </span><br><span>    /* revision dependent here.  */</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-     write_mchbar16(0x1230, read_mchbar16(0x1230) | 0x1f07); // OK</span><br><span style="color: hsl(120, 100%, 40%);">+ MCHBAR16_OR(0x1230, 0x1f07);</span><br><span> </span><br><span>     if (info.uma_enabled)</span><br><span style="color: hsl(0, 100%, 40%);">-           write_mchbar32(0x11f4, read_mchbar32(0x11f4) | 0x10000000);     // OK</span><br><span style="color: hsl(120, 100%, 40%);">+         MCHBAR32_OR(0x11f4, 0x10000000);</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-    write_mchbar16(0x1230, read_mchbar16(0x1230) | 0x8000); // OK</span><br><span style="color: hsl(0, 100%, 40%);">-   write_mchbar8(0x1214, read_mchbar8(0x1214) | 1);        // OK</span><br><span style="color: hsl(120, 100%, 40%);">+ MCHBAR16_OR(0x1230, 0x8000);</span><br><span style="color: hsl(120, 100%, 40%);">+  MCHBAR8_OR(0x1214, 1);</span><br><span> </span><br><span>   u8 bl, ebpb;</span><br><span>         u16 reg_1020;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-       reg_1020 = read_mchbar32(0x1020);       // = 0x6c733c  // OK</span><br><span style="color: hsl(0, 100%, 40%);">-    write_mchbar8(0x1070, 0x1);     // OK</span><br><span style="color: hsl(120, 100%, 40%);">+ reg_1020 = MCHBAR32(0x1020);    // = 0x6c733c  // OK</span><br><span style="color: hsl(120, 100%, 40%);">+  MCHBAR8(0x1070) = 0x1;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-      write_mchbar32(0x1000, 0x100);  // OK</span><br><span style="color: hsl(0, 100%, 40%);">-   write_mchbar8(0x1007, 0x0);     // OK</span><br><span style="color: hsl(120, 100%, 40%);">+ MCHBAR32(0x1000) = 0x100;</span><br><span style="color: hsl(120, 100%, 40%);">+     MCHBAR8(0x1007) = 0x0;</span><br><span> </span><br><span>   if (reg_1020 != 0) {</span><br><span style="color: hsl(0, 100%, 40%);">-            write_mchbar16(0x1018, 0x0);    // OK</span><br><span style="color: hsl(120, 100%, 40%);">+         MCHBAR16(0x1018) = 0x0;</span><br><span>              bl = reg_1020 >> 8;</span><br><span>            ebpb = reg_1020 & 0xff;</span><br><span>  } else {</span><br><span>@@ -4871,40 +4799,43 @@</span><br><span> </span><br><span>       rdmsr(0x1a2);</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-       write_mchbar32(0x1014, 0xffffffff);     // OK</span><br><span style="color: hsl(120, 100%, 40%);">+ MCHBAR32(0x1014) = 0xffffffff;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-      write_mchbar32(0x1010, ((((ebpb + 0x7d) << 7) / bl) & 0xff) * (! !reg_1020)); // OK</span><br><span style="color: hsl(120, 100%, 40%);">+ MCHBAR32(0x1010) = ((((ebpb + 0x7d) << 7) / bl) & 0xff) * (!!reg_1020);</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-   write_mchbar8(0x101c, 0xb8);    // OK</span><br><span style="color: hsl(120, 100%, 40%);">+ MCHBAR8(0x101c) = 0xb8;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-     write_mchbar8(0x123e, (read_mchbar8(0x123e) & 0xf) | 0x60); // OK</span><br><span style="color: hsl(120, 100%, 40%);">+ MCHBAR8(0x123e) = (MCHBAR8(0x123e) & 0xf) | 0x60;</span><br><span>        if (reg_1020 != 0) {</span><br><span style="color: hsl(0, 100%, 40%);">-            write_mchbar32(0x123c, (read_mchbar32(0x123c) & ~0x00900000) | 0x600000);   // OK</span><br><span style="color: hsl(0, 100%, 40%);">-           write_mchbar8(0x101c, 0xb8);    // OK</span><br><span style="color: hsl(120, 100%, 40%);">+         MCHBAR32_AND_OR(0x123c, ~0x00900000, 0x600000);</span><br><span style="color: hsl(120, 100%, 40%);">+               MCHBAR8(0x101c) = 0xb8;</span><br><span>      }</span><br><span> </span><br><span>        setup_heci_uma(&info);</span><br><span> </span><br><span>       if (info.uma_enabled) {</span><br><span>              u16 ax;</span><br><span style="color: hsl(0, 100%, 40%);">-         write_mchbar32(0x11b0, read_mchbar32(0x11b0) | 0x4000); // OK</span><br><span style="color: hsl(0, 100%, 40%);">-           write_mchbar32(0x11b4, read_mchbar32(0x11b4) | 0x4000); // OK</span><br><span style="color: hsl(0, 100%, 40%);">-           write_mchbar16(0x1190, read_mchbar16(0x1190) | 0x4000); // OK</span><br><span style="color: hsl(120, 100%, 40%);">+         MCHBAR32_OR(0x11b0, 0x4000);</span><br><span style="color: hsl(120, 100%, 40%);">+          MCHBAR32_OR(0x11b4, 0x4000);</span><br><span style="color: hsl(120, 100%, 40%);">+          MCHBAR16_OR(0x1190, 0x4000);</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-                ax = read_mchbar16(0x1190) & 0xf00; // = 0x480a  // OK</span><br><span style="color: hsl(0, 100%, 40%);">-              write_mchbar16(0x1170, ax | (read_mchbar16(0x1170) & 0x107f) | 0x4080);     // OK</span><br><span style="color: hsl(0, 100%, 40%);">-           write_mchbar16(0x1170, read_mchbar16(0x1170) | 0x1000); // OK</span><br><span style="color: hsl(120, 100%, 40%);">+         ax = MCHBAR16(0x1190) & 0xf00;      // = 0x480a  // OK</span><br><span style="color: hsl(120, 100%, 40%);">+            MCHBAR16(0x1170) = ax | (MCHBAR16(0x1170) & 0x107f) | 0x4080;</span><br><span style="color: hsl(120, 100%, 40%);">+             MCHBAR16_OR(0x1170, 0x1000);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span>               udelay(1000);</span><br><span> </span><br><span>            u16 ecx;</span><br><span style="color: hsl(0, 100%, 40%);">-                for (ecx = 0xffff; ecx && (read_mchbar16(0x1170) & 0x1000); ecx--); // OK</span><br><span style="color: hsl(0, 100%, 40%);">-           write_mchbar16(0x1190, read_mchbar16(0x1190) & ~0x4000);    // OK</span><br><span style="color: hsl(120, 100%, 40%);">+         for (ecx = 0xffff; ecx && (read_mchbar16(0x1170) & 0x1000);</span><br><span style="color: hsl(120, 100%, 40%);">+                       ecx--)  // OK</span><br><span style="color: hsl(120, 100%, 40%);">+                 ;</span><br><span style="color: hsl(120, 100%, 40%);">+             MCHBAR16_AND(0x1190, ~0x4000);</span><br><span>       }</span><br><span> </span><br><span>        pci_write_config8(SOUTHBRIDGE, GEN_PMCON_2,</span><br><span>                pci_read_config8(SOUTHBRIDGE, GEN_PMCON_2) & ~0x80);</span><br><span>       udelay(10000);</span><br><span style="color: hsl(0, 100%, 40%);">-  write_mchbar16(0x2ca8, 0x8);</span><br><span style="color: hsl(120, 100%, 40%);">+  MCHBAR16(0x2ca8) = 0x8;</span><br><span> </span><br><span>  udelay(1000);</span><br><span>        dump_timings(&info);</span><br><span></span><br></pre><p>To view, visit <a href="https://review.coreboot.org/27707">change 27707</a>. To unsubscribe, or for help writing mail filters, visit <a href="https://review.coreboot.org/settings">settings</a>.</p><div itemscope itemtype="http://schema.org/EmailMessage"><div itemscope itemprop="action" itemtype="http://schema.org/ViewAction"><link itemprop="url" href="https://review.coreboot.org/27707"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: coreboot </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-MessageType: newchange </div>
<div style="display:none"> Gerrit-Change-Id: I15e09320e72cffb8a2617eca0cfe40780f74bece </div>
<div style="display:none"> Gerrit-Change-Number: 27707 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: Felix Held <felix-coreboot@felixheld.de> </div>