<p>Arthur Heymans has uploaded this change for <strong>review</strong>.</p><p><a href="https://review.coreboot.org/20979">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">[UNTESTED] nb/intel/x4x/raminit: Move dummy reads after JEDEC init<br><br>Vendor only does dummy reads and right after JEDEC init is finished<br>and dram init was marked as finished.<br><br>Change-Id: I8069f9c08ad5e5268ddbe3711d58bc42522f938c<br>Signed-off-by: Arthur Heymans <arthur@aheymans.xyz><br>---<br>M src/northbridge/intel/x4x/raminit_ddr2.c<br>1 file changed, 13 insertions(+), 22 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">git pull ssh://review.coreboot.org:29418/coreboot refs/changes/79/20979/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">diff --git a/src/northbridge/intel/x4x/raminit_ddr2.c b/src/northbridge/intel/x4x/raminit_ddr2.c<br>index bc012d2..8ec2c79 100644<br>--- a/src/northbridge/intel/x4x/raminit_ddr2.c<br>+++ b/src/northbridge/intel/x4x/raminit_ddr2.c<br>@@ -2008,6 +2008,19 @@<br>          MCHBAR32(0x400*ch + 0x268) = (MCHBAR32(0x400*ch + 0x268) & ~0xc0000000) | 0xc0000000;<br>     }<br> <br>+ // Dummy reads<br>+       if (s->boot_path == BOOT_PATH_NORMAL) {<br>+           volatile u32 data;<br>+           FOR_EACH_POPULATED_RANK(s->dimms, ch, r) {<br>+                        for (bank = 0; bank < 4; bank++) {<br>+                                data = read32((u32 *)((ch << 29)<br>+                                       | (r * 0x08000000) | (0x800000)<br>+                                      | (bank << 12)));<br>+                      }<br>+            }<br>+    }<br>+    printk(BIOS_DEBUG, "Done dummy reads\n");<br>+<br>        // Receive enable<br>     sdram_program_receive_enable(s);<br>      printk(BIOS_DEBUG, "Done rcven\n");<br>@@ -2022,28 +2035,6 @@<br>         MCHBAR8(0x5dc) = MCHBAR8(0x5dc) | 0x80;<br>       MCHBAR8(0x5dc) = MCHBAR8(0x5dc) & ~0x80;<br>  MCHBAR8(0x5dc) = MCHBAR8(0x5dc) | 0x80;<br>-<br>-   // Dummy writes / reads<br>-      if (s->boot_path == BOOT_PATH_NORMAL) {<br>-           volatile u32 data;<br>-           FOR_EACH_POPULATED_RANK(s->dimms, ch, r) {<br>-                        for (bank = 0; bank < 4; bank++) {<br>-                                reg32 = (ch << 29) | (r*0x8000000) |<br>-                                   (bank << 12);<br>-                          write32((u32 *)reg32, 0xffffffff);<br>-                           data = read32((u32 *)reg32);<br>-                         printk(BIOS_DEBUG, "Wrote ones,");<br>-                         printk(BIOS_DEBUG, "  Read: [0x%08x]=0x%08x\n",<br>-                                    reg32, data);<br>-                                write32((u32 *)reg32, 0x00000000);<br>-                           data = read32((u32 *)reg32);<br>-                         printk(BIOS_DEBUG, "Wrote zeros,");<br>-                                printk(BIOS_DEBUG, " Read: [0x%08x]=0x%08x\n",<br>-                                     reg32, data);<br>-                        }<br>-            }<br>-    }<br>-    printk(BIOS_DEBUG, "Done dummy reads\n");<br> <br>        // XXX tRD<br> <br></pre><p>To view, visit <a href="https://review.coreboot.org/20979">change 20979</a>. To unsubscribe, 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/20979"/><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: I8069f9c08ad5e5268ddbe3711d58bc42522f938c </div>
<div style="display:none"> Gerrit-Change-Number: 20979 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: Arthur Heymans <arthur@aheymans.xyz> </div>