<p>Nico Huber has uploaded this change for <strong>review</strong>.</p><p><a href="https://review.coreboot.org/26988">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">[WIP] bootmem: Ensure payload doesn't conflict with ramstage<br><br>Change-Id: I5459fe81a57609e6c766992fd7b29b985507146b<br>Signed-off-by: Nico Huber <nico.h@gmx.de><br>---<br>M src/lib/bootmem.c<br>1 file changed, 14 insertions(+), 1 deletion(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">git pull ssh://review.coreboot.org:29418/coreboot refs/changes/88/26988/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/src/lib/bootmem.c b/src/lib/bootmem.c</span><br><span>index 07391a5..f66feb4 100644</span><br><span>--- a/src/lib/bootmem.c</span><br><span>+++ b/src/lib/bootmem.c</span><br><span>@@ -20,6 +20,7 @@</span><br><span> #include <cbmem.h></span><br><span> #include <device/resource.h></span><br><span> #include <stdlib.h></span><br><span style="color: hsl(120, 100%, 40%);">+#include <program_loading.h></span><br><span> </span><br><span> static int initialized;</span><br><span> static struct memranges bootmem;</span><br><span>@@ -124,10 +125,18 @@</span><br><span> </span><br><span> int bootmem_region_targets_usable_ram(uint64_t start, uint64_t size)</span><br><span> {</span><br><span style="color: hsl(120, 100%, 40%);">+   struct memranges bootmem_tmp, *bm = &bootmem;</span><br><span>    const struct range_entry *r;</span><br><span>         uint64_t end = start + size;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-        memranges_each_entry(r, &bootmem) {</span><br><span style="color: hsl(120, 100%, 40%);">+       if (!arch_supports_bounce_buffer()) {</span><br><span style="color: hsl(120, 100%, 40%);">+         memranges_clone(&bootmem_tmp, bm);</span><br><span style="color: hsl(120, 100%, 40%);">+                bm = &bootmem_tmp;</span><br><span style="color: hsl(120, 100%, 40%);">+                memranges_insert(bm, (uintptr_t)_stack, _stack_size, LB_MEM_RESERVED);</span><br><span style="color: hsl(120, 100%, 40%);">+                memranges_insert(bm, (uintptr_t)_program, _program_size, LB_MEM_RESERVED);</span><br><span style="color: hsl(120, 100%, 40%);">+    }</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+   memranges_each_entry(r, bm) {</span><br><span>                /* All further bootmem entries are beyond this range. */</span><br><span>             if (end <= range_entry_base(r))</span><br><span>                   break;</span><br><span>@@ -137,6 +146,10 @@</span><br><span>                                return 1;</span><br><span>            }</span><br><span>    }</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+   if (bm == &bootmem_tmp)</span><br><span style="color: hsl(120, 100%, 40%);">+           memranges_teardown(bm);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span>    return 0;</span><br><span> }</span><br><span> </span><br><span></span><br></pre><p>To view, visit <a href="https://review.coreboot.org/26988">change 26988</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/26988"/><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: I5459fe81a57609e6c766992fd7b29b985507146b </div>
<div style="display:none"> Gerrit-Change-Number: 26988 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: Nico Huber <nico.h@gmx.de> </div>