<p>Marshall Dawson has uploaded this change for <strong>review</strong>.</p><p><a href="https://review.coreboot.org/23517">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">lib/stage_cache: Add debug messages for failures<br><br>Communicate additional status to the console when the save and load<br>functions do not function as expected.  The most likely scenario for<br>an error is when using a cache that is external to cbmem, and restricted<br>in size.<br><br>Change-Id: Ic9a709c11152b3b9cb40abfc204151f9636b5a4c<br>Signed-off-by: Marshall Dawson <marshalldawson3rd@gmail.com><br>---<br>M src/lib/cbmem_stage_cache.c<br>M src/lib/ext_stage_cache.c<br>2 files changed, 32 insertions(+), 8 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">git pull ssh://review.coreboot.org:29418/coreboot refs/changes/17/23517/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/src/lib/cbmem_stage_cache.c b/src/lib/cbmem_stage_cache.c</span><br><span>index 2947972..cc4832f 100644</span><br><span>--- a/src/lib/cbmem_stage_cache.c</span><br><span>+++ b/src/lib/cbmem_stage_cache.c</span><br><span>@@ -25,15 +25,21 @@</span><br><span>     void *c;</span><br><span> </span><br><span>         meta = cbmem_add(CBMEM_ID_STAGEx_META + stage_id, sizeof(*meta));</span><br><span style="color: hsl(0, 100%, 40%);">-       if (meta == NULL)</span><br><span style="color: hsl(120, 100%, 40%);">+     if (meta == NULL) {</span><br><span style="color: hsl(120, 100%, 40%);">+           printk(BIOS_ERR, "Error: Can't add %x metadata to cbmem\n",</span><br><span style="color: hsl(120, 100%, 40%);">+                             CBMEM_ID_STAGEx_META + stage_id);</span><br><span>            return;</span><br><span style="color: hsl(120, 100%, 40%);">+       }</span><br><span>    meta->load_addr = (uintptr_t)prog_start(stage);</span><br><span>   meta->entry_addr = (uintptr_t)prog_entry(stage);</span><br><span>  meta->arg = (uintptr_t)prog_entry_arg(stage);</span><br><span> </span><br><span>         c = cbmem_add(CBMEM_ID_STAGEx_CACHE + stage_id, prog_size(stage));</span><br><span style="color: hsl(0, 100%, 40%);">-      if (c == NULL)</span><br><span style="color: hsl(120, 100%, 40%);">+        if (c == NULL) {</span><br><span style="color: hsl(120, 100%, 40%);">+              printk(BIOS_ERR, "Error: Can't add stage_cache %x to cbmem\n",</span><br><span style="color: hsl(120, 100%, 40%);">+                          CBMEM_ID_STAGEx_CACHE + stage_id);</span><br><span>           return;</span><br><span style="color: hsl(120, 100%, 40%);">+       }</span><br><span> </span><br><span>        memcpy(c, prog_start(stage), prog_size(stage));</span><br><span> }</span><br><span>@@ -49,13 +55,19 @@</span><br><span>   prog_set_entry(stage, NULL, NULL);</span><br><span> </span><br><span>       meta = cbmem_find(CBMEM_ID_STAGEx_META + stage_id);</span><br><span style="color: hsl(0, 100%, 40%);">-     if (meta == NULL)</span><br><span style="color: hsl(120, 100%, 40%);">+     if (meta == NULL) {</span><br><span style="color: hsl(120, 100%, 40%);">+           printk(BIOS_ERR, "Error: Can't find %x metadata in cbmem\n",</span><br><span style="color: hsl(120, 100%, 40%);">+                            CBMEM_ID_STAGEx_META + stage_id);</span><br><span>            return;</span><br><span style="color: hsl(120, 100%, 40%);">+       }</span><br><span> </span><br><span>        e = cbmem_entry_find(CBMEM_ID_STAGEx_CACHE + stage_id);</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-     if (e == NULL)</span><br><span style="color: hsl(120, 100%, 40%);">+        if (e == NULL) {</span><br><span style="color: hsl(120, 100%, 40%);">+              printk(BIOS_ERR, "Error: Can't find stage_cache %x in cbmem\n",</span><br><span style="color: hsl(120, 100%, 40%);">+                         CBMEM_ID_STAGEx_CACHE + stage_id);</span><br><span>           return;</span><br><span style="color: hsl(120, 100%, 40%);">+       }</span><br><span> </span><br><span>        c = cbmem_entry_start(e);</span><br><span>    size = cbmem_entry_size(e);</span><br><span>diff --git a/src/lib/ext_stage_cache.c b/src/lib/ext_stage_cache.c</span><br><span>index 2a99188..cea9f52 100644</span><br><span>--- a/src/lib/ext_stage_cache.c</span><br><span>+++ b/src/lib/ext_stage_cache.c</span><br><span>@@ -68,8 +68,11 @@</span><br><span>    imd = imd_get();</span><br><span>     e = imd_entry_add(imd, CBMEM_ID_STAGEx_META + stage_id, sizeof(*meta));</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-     if (e == NULL)</span><br><span style="color: hsl(120, 100%, 40%);">+        if (e == NULL) {</span><br><span style="color: hsl(120, 100%, 40%);">+              printk(BIOS_DEBUG, "Error: Can't add %x metadata to imd\n",</span><br><span style="color: hsl(120, 100%, 40%);">+                             CBMEM_ID_STAGEx_META + stage_id);</span><br><span>            return;</span><br><span style="color: hsl(120, 100%, 40%);">+       }</span><br><span> </span><br><span>        meta = imd_entry_at(imd, e);</span><br><span> </span><br><span>@@ -79,8 +82,11 @@</span><br><span>        e = imd_entry_add(imd, CBMEM_ID_STAGEx_CACHE + stage_id,</span><br><span>                             prog_size(stage));</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-  if (e == NULL)</span><br><span style="color: hsl(120, 100%, 40%);">+        if (e == NULL) {</span><br><span style="color: hsl(120, 100%, 40%);">+              printk(BIOS_DEBUG, "Error: Can't add stage_cache %x to imd\n",</span><br><span style="color: hsl(120, 100%, 40%);">+                          CBMEM_ID_STAGEx_CACHE + stage_id);</span><br><span>           return;</span><br><span style="color: hsl(120, 100%, 40%);">+       }</span><br><span> </span><br><span>        c = imd_entry_at(imd, e);</span><br><span> </span><br><span>@@ -97,15 +103,21 @@</span><br><span> </span><br><span>     imd = imd_get();</span><br><span>     e = imd_entry_find(imd, CBMEM_ID_STAGEx_META + stage_id);</span><br><span style="color: hsl(0, 100%, 40%);">-       if (e == NULL)</span><br><span style="color: hsl(120, 100%, 40%);">+        if (e == NULL) {</span><br><span style="color: hsl(120, 100%, 40%);">+              printk(BIOS_DEBUG, "Error: Can't find %x metadata in imd\n",</span><br><span style="color: hsl(120, 100%, 40%);">+                            CBMEM_ID_STAGEx_META + stage_id);</span><br><span>            return;</span><br><span style="color: hsl(120, 100%, 40%);">+       }</span><br><span> </span><br><span>        meta = imd_entry_at(imd, e);</span><br><span> </span><br><span>     e = imd_entry_find(imd, CBMEM_ID_STAGEx_CACHE + stage_id);</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-  if (e == NULL)</span><br><span style="color: hsl(120, 100%, 40%);">+        if (e == NULL) {</span><br><span style="color: hsl(120, 100%, 40%);">+              printk(BIOS_DEBUG, "Error: Can't find stage_cache %x in imd\n",</span><br><span style="color: hsl(120, 100%, 40%);">+                         CBMEM_ID_STAGEx_CACHE + stage_id);</span><br><span>           return;</span><br><span style="color: hsl(120, 100%, 40%);">+       }</span><br><span> </span><br><span>        c = imd_entry_at(imd, e);</span><br><span>    size = imd_entry_size(imd, e);</span><br><span></span><br></pre><p>To view, visit <a href="https://review.coreboot.org/23517">change 23517</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/23517"/><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: Ic9a709c11152b3b9cb40abfc204151f9636b5a4c </div>
<div style="display:none"> Gerrit-Change-Number: 23517 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: Marshall Dawson <marshalldawson3rd@gmail.com> </div>