<p>Patrick Rudolph has uploaded this change for <strong>review</strong>.</p><p><a href="https://review.coreboot.org/23776">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">[Not-for-merge]soc/cavium: Do raminit<br><br>Fixes to get raminit running, it still fails at writeleveling.<br>* Load devicetree from CBFS<br>* Load SPD<br>* Fix BDK reference clock<br><br>Change-Id: Ic1d4dbca51758268a8d71aa4cfacebaad717d668<br>Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com><br>---<br>M src/soc/cavium/cn81xx/sdram.c<br>M src/soc/cavium/common/bdk/libdram/libdram-config-load.c<br>M src/soc/cavium/common/include/soc/bdk/libbdk-hal/bdk-clock.h<br>3 files changed, 22 insertions(+), 7 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">git pull ssh://review.coreboot.org:29418/coreboot refs/changes/76/23776/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/src/soc/cavium/cn81xx/sdram.c b/src/soc/cavium/cn81xx/sdram.c</span><br><span>index 7466cdd..5e654d3 100644</span><br><span>--- a/src/soc/cavium/cn81xx/sdram.c</span><br><span>+++ b/src/soc/cavium/cn81xx/sdram.c</span><br><span>@@ -23,6 +23,7 @@</span><br><span> //#include <soc/soc.h></span><br><span> //#include <timer.h></span><br><span> //#include <types.h></span><br><span style="color: hsl(120, 100%, 40%);">+#include <cbfs.h></span><br><span> </span><br><span> #include <soc/bdk/libbdk-arch/bdk-warn.h></span><br><span> #include <soc/bdk/libbdk-arch/bdk-csrs-rst.h></span><br><span>@@ -123,6 +124,10 @@</span><br><span> //    BDK_TRACE(INIT, "Initializing DRAM on node %d\n", node);</span><br><span>     printk(BIOS_DEBUG, "Initializing DRAM\n");</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+    bdk_config_set_fdt(cbfs_boot_map_with_leak(</span><br><span style="color: hsl(120, 100%, 40%);">+           "sff8104.dtb",</span><br><span style="color: hsl(120, 100%, 40%);">+              CBFS_TYPE_RAW, NULL));</span><br><span> //    int mbytes = bdk_dram_config(node, override_for_speed);</span><br><span>      /* FIXME: second arg is actually a desired frequency if set (the</span><br><span>      * function usually obtains frequency via the config). That might</span><br><span>diff --git a/src/soc/cavium/common/bdk/libdram/libdram-config-load.c b/src/soc/cavium/common/bdk/libdram/libdram-config-load.c</span><br><span>index 9e001b2..a16ee86 100644</span><br><span>--- a/src/soc/cavium/common/bdk/libdram/libdram-config-load.c</span><br><span>+++ b/src/soc/cavium/common/bdk/libdram/libdram-config-load.c</span><br><span>@@ -43,6 +43,8 @@</span><br><span> #include <string.h></span><br><span> #include <libbdk-arch/bdk-model.h></span><br><span> #include <libbdk-hal/bdk-config.h></span><br><span style="color: hsl(120, 100%, 40%);">+#include <soc/twsi.h></span><br><span style="color: hsl(120, 100%, 40%);">+#include <device/i2c_simple.h></span><br><span> </span><br><span> /**</span><br><span>  * Load a "odt_*rank_config" structure</span><br><span>@@ -165,12 +167,20 @@</span><br><span>             }</span><br><span>             else</span><br><span>             {</span><br><span style="color: hsl(0, 100%, 40%);">-                 /*</span><br><span style="color: hsl(0, 100%, 40%);">-               * FIXME(dhendrix): The EVM has a DIMM, so we're OK skipping</span><br><span style="color: hsl(0, 100%, 40%);">-                 * this codepath for now. Long term we should make it get</span><br><span style="color: hsl(0, 100%, 40%);">-                * SPD data via CBFS.</span><br><span style="color: hsl(0, 100%, 40%);">-                    */</span><br><span style="color: hsl(0, 100%, 40%);">-             die("SPD address is unknown and I don't know how to fetch an SPD blob!");</span><br><span style="color: hsl(120, 100%, 40%);">+           /* FIXME: Hardcode one DIMM for now */</span><br><span style="color: hsl(120, 100%, 40%);">+                if (dimm > 0 || lmc > 0)</span><br><span style="color: hsl(120, 100%, 40%);">+                        continue;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+           static u8 spd[256];</span><br><span style="color: hsl(120, 100%, 40%);">+           struct i2c_msg msg;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+         /* Read SPD from bus 1, device 0x50 */</span><br><span style="color: hsl(120, 100%, 40%);">+                cfg->config[0].dimm_config_table[0].spd_ptr = spd;</span><br><span style="color: hsl(120, 100%, 40%);">+         msg.buf = spd;</span><br><span style="color: hsl(120, 100%, 40%);">+                msg.len = sizeof(spd);</span><br><span style="color: hsl(120, 100%, 40%);">+                msg.slave = 0x50;</span><br><span style="color: hsl(120, 100%, 40%);">+             msg.flags = I2C_M_RD;</span><br><span style="color: hsl(120, 100%, 40%);">+         i2c_transfer(1, &msg, 1);</span><br><span> #if 0</span><br><span>                 int spd_size;</span><br><span>                 const void *spd_data = bdk_config_get_blob(&spd_size, BDK_CONFIG_DDR_SPD_DATA, dimm, lmc, node);</span><br><span>diff --git a/src/soc/cavium/common/include/soc/bdk/libbdk-hal/bdk-clock.h b/src/soc/cavium/common/include/soc/bdk/libbdk-hal/bdk-clock.h</span><br><span>index 9a22fde..4be069d 100644</span><br><span>--- a/src/soc/cavium/common/include/soc/bdk/libbdk-hal/bdk-clock.h</span><br><span>+++ b/src/soc/cavium/common/include/soc/bdk/libbdk-hal/bdk-clock.h</span><br><span>@@ -57,7 +57,7 @@</span><br><span>  * @{</span><br><span>  */</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-#define BDK_GTI_RATE 100000000ull</span><br><span style="color: hsl(120, 100%, 40%);">+#define BDK_GTI_RATE 1000000ull</span><br><span> </span><br><span> /**</span><br><span>  * Enumeration of different Clocks.</span><br><span></span><br></pre><p>To view, visit <a href="https://review.coreboot.org/23776">change 23776</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/23776"/><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: Ic1d4dbca51758268a8d71aa4cfacebaad717d668 </div>
<div style="display:none"> Gerrit-Change-Number: 23776 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: Patrick Rudolph <patrick.rudolph@9elements.com> </div>