<p>Patrick Rudolph has uploaded this change for <strong>review</strong>.</p><p><a href="https://review.coreboot.org/27448">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">bdk: Use Kconfig options instead of getenv()<br><br>* Use Kconfig options instead of unusable getenv<br>* Select CAVIUM_BDK_DDR_TUNE_HW_OFFSETS on CN81XX<br>* Fix Coverity CID 1393976 (DEADCODE)<br><br>Tested on Cavium's cn8100_sff_evb.<br><br>Change-Id: Ia16c0161b0e9cf5d06418e46556c0fb45532a5b1<br>Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com><br>---<br>M src/soc/cavium/cn81xx/Kconfig<br>M src/vendorcode/cavium/Kconfig<br>M src/vendorcode/cavium/bdk/libdram/libdram.c<br>3 files changed, 26 insertions(+), 18 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">git pull ssh://review.coreboot.org:29418/coreboot refs/changes/48/27448/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/src/soc/cavium/cn81xx/Kconfig b/src/soc/cavium/cn81xx/Kconfig</span><br><span>index ca8fbd0..9cc7b48 100644</span><br><span>--- a/src/soc/cavium/cn81xx/Kconfig</span><br><span>+++ b/src/soc/cavium/cn81xx/Kconfig</span><br><span>@@ -11,6 +11,7 @@</span><br><span>    select HAVE_MONOTONIC_TIMER</span><br><span>  select UART_OVERRIDE_REFCLK</span><br><span>  select SOC_CAVIUM_COMMON</span><br><span style="color: hsl(120, 100%, 40%);">+      select CAVIUM_BDK_DDR_TUNE_HW_OFFSETS</span><br><span> </span><br><span> if SOC_CAVIUM_CN81XX</span><br><span> </span><br><span>diff --git a/src/vendorcode/cavium/Kconfig b/src/vendorcode/cavium/Kconfig</span><br><span>index 8037762..37d22c3 100644</span><br><span>--- a/src/vendorcode/cavium/Kconfig</span><br><span>+++ b/src/vendorcode/cavium/Kconfig</span><br><span>@@ -65,6 +65,27 @@</span><br><span>  depends on CAVIUM_BDK</span><br><span>        help</span><br><span>           Build Cavium's BDK with verbose PHY code.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+config CAVIUM_BDK_DDR_TUNE_HW_OFFSETS</span><br><span style="color: hsl(120, 100%, 40%);">+      bool "Hardware assisted DLL read offset tuning"</span><br><span style="color: hsl(120, 100%, 40%);">+     default n</span><br><span style="color: hsl(120, 100%, 40%);">+     depends on CAVIUM_BDK</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+       help</span><br><span style="color: hsl(120, 100%, 40%);">+    Automatically tune the data byte DLL read offsets.</span><br><span style="color: hsl(120, 100%, 40%);">+    Always done by default, but allow use of HW-assist.</span><br><span style="color: hsl(120, 100%, 40%);">+   NOTE: HW-assist will also tune the ECC byte</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+config CAVIUM_BDK_DDR_TUNE_WRITE_OFFSETS</span><br><span style="color: hsl(120, 100%, 40%);">+     bool "Automatically tune thw data byte DLL write offsets"</span><br><span style="color: hsl(120, 100%, 40%);">+   default n</span><br><span style="color: hsl(120, 100%, 40%);">+     depends on CAVIUM_BDK</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+config CAVIUM_BDK_DDR_TUNE_ECC_ENABLE</span><br><span style="color: hsl(120, 100%, 40%);">+        bool "Automatically tune the ECC byte DLL read offsets"</span><br><span style="color: hsl(120, 100%, 40%);">+     default n</span><br><span style="color: hsl(120, 100%, 40%);">+     depends on CAVIUM_BDK</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> endmenu</span><br><span> </span><br><span> endif</span><br><span>diff --git a/src/vendorcode/cavium/bdk/libdram/libdram.c b/src/vendorcode/cavium/bdk/libdram/libdram.c</span><br><span>index 551ba24..bebd520 100644</span><br><span>--- a/src/vendorcode/cavium/bdk/libdram/libdram.c</span><br><span>+++ b/src/vendorcode/cavium/bdk/libdram/libdram.c</span><br><span>@@ -149,23 +149,16 @@</span><br><span> static int bdk_libdram_tune_node(int node)</span><br><span> {</span><br><span>     int errs, tot_errs;</span><br><span style="color: hsl(0, 100%, 40%);">-    int do_dllro_hw = 0; // default to NO</span><br><span style="color: hsl(0, 100%, 40%);">-    int do_dllwo = 0; // default to NO</span><br><span style="color: hsl(0, 100%, 40%);">-    int do_eccdll = 0; // default to NO</span><br><span style="color: hsl(0, 100%, 40%);">-    const char *str;</span><br><span style="color: hsl(120, 100%, 40%);">+    int do_dllro_hw = IS_ENABLED(CONFIG_CAVIUM_BDK_DDR_TUNE_HW_OFFSETS);</span><br><span style="color: hsl(120, 100%, 40%);">+    int do_dllwo = IS_ENABLED(CONFIG_CAVIUM_BDK_DDR_TUNE_WRITE_OFFSETS);</span><br><span style="color: hsl(120, 100%, 40%);">+    int do_eccdll = IS_ENABLED(CONFIG_CAVIUM_BDK_DDR_TUNE_ECC_ENABLE);</span><br><span>     BDK_CSR_INIT(lmc_config, node, BDK_LMCX_CONFIG(0)); // FIXME: probe LMC0</span><br><span>     do_eccdll = (lmc_config.s.ecc_ena != 0); // change to ON if ECC enabled</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-    // FIXME!!! make 81xx always use HW-assist tuning</span><br><span style="color: hsl(0, 100%, 40%);">-    if (CAVIUM_IS_MODEL(CAVIUM_CN81XX))</span><br><span style="color: hsl(0, 100%, 40%);">-        do_dllro_hw = 1;</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span>     // Automatically tune the data byte DLL read offsets</span><br><span>     // always done by default, but allow use of HW-assist</span><br><span>     // NOTE: HW-assist will also tune the ECC byte </span><br><span style="color: hsl(0, 100%, 40%);">-    str = getenv("ddr_tune_hw_offsets");</span><br><span style="color: hsl(0, 100%, 40%);">-    if (str)</span><br><span style="color: hsl(0, 100%, 40%);">-        do_dllro_hw = !!strtoul(str, NULL, 0);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span>     BDK_TRACE(DRAM, "N%d: Starting DLL Read Offset Tuning for LMCs\n", node);</span><br><span>     if (!do_dllro_hw || (lmc_config.s.mode32b != 0)) {</span><br><span>         errs = perform_dll_offset_tuning(node, 2, /* tune */1); </span><br><span>@@ -179,10 +172,6 @@</span><br><span>     // disabled by default for now, does not seem to be needed?</span><br><span>     // Automatically tune the data byte DLL write offsets</span><br><span>     // allow override of default setting</span><br><span style="color: hsl(0, 100%, 40%);">-    str = getenv("ddr_tune_write_offsets");</span><br><span style="color: hsl(0, 100%, 40%);">-    str = NULL;</span><br><span style="color: hsl(0, 100%, 40%);">-    if (str)</span><br><span style="color: hsl(0, 100%, 40%);">-        do_dllwo = !!strtoul(str, NULL, 0);</span><br><span>     if (do_dllwo) {</span><br><span>         BDK_TRACE(DRAM, "N%d: Starting DLL Write Offset Tuning for LMCs\n", node);</span><br><span>         errs = perform_dll_offset_tuning(node, /* write */1, /* tune */1);</span><br><span>@@ -195,9 +184,6 @@</span><br><span>     // Automatically tune the ECC byte DLL read offsets</span><br><span>     // FIXME? allow override of the filtering</span><br><span>     // FIXME? allow programmatic override, not via envvar? </span><br><span style="color: hsl(0, 100%, 40%);">-    str = getenv("ddr_tune_ecc_enable");</span><br><span style="color: hsl(0, 100%, 40%);">-    if (str)</span><br><span style="color: hsl(0, 100%, 40%);">-        do_eccdll = !!strtoul(str, NULL, 10);</span><br><span>     if (do_eccdll && !do_dllro_hw && (lmc_config.s.mode32b == 0)) { // do not do HW-assist twice for ECC</span><br><span>         BDK_TRACE(DRAM, "N%d: Starting ECC DLL Read Offset Tuning for LMCs\n", node);</span><br><span>         errs = perform_HW_dll_offset_tuning(node, 2, 8/* ECC bytelane */); </span><br><span></span><br></pre><p>To view, visit <a href="https://review.coreboot.org/27448">change 27448</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/27448"/><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: Ia16c0161b0e9cf5d06418e46556c0fb45532a5b1 </div>
<div style="display:none"> Gerrit-Change-Number: 27448 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: Patrick Rudolph <patrick.rudolph@9elements.com> </div>