<p>Patrick Georgi has uploaded this change for <strong>review</strong>.</p><p><a href="https://review.coreboot.org/20470">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">util/cbfstool: strip unused data at the end of Tianocore FVs<br><br>There's no need to compress endless streaks of 0xff.<br>It compresses to basically nothing, but it still takes time to process.<br><br>Change-Id: I6f128eca10bd56f5a0eb1302903de4a4c78aa568<br>Signed-off-by: Patrick Georgi <pgeorgi@google.com><br>---<br>M util/cbfstool/cbfs-mkpayload.c<br>1 file changed, 12 insertions(+), 6 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">git pull ssh://review.coreboot.org:29418/coreboot refs/changes/70/20470/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">diff --git a/util/cbfstool/cbfs-mkpayload.c b/util/cbfstool/cbfs-mkpayload.c<br>index fd2c4ca..87d3406 100644<br>--- a/util/cbfstool/cbfs-mkpayload.c<br>+++ b/util/cbfstool/cbfs-mkpayload.c<br>@@ -382,7 +382,13 @@<br>               return -1;<br>    }<br> <br>- if (buffer_create(output, (sizeof(segs) + input->size),<br>+   uint32_t end = input->size;<br>+       while (--end != 0) {<br>+         if (((uint8_t *)input->data)[end] != 0xff)<br>+                        break;<br>+       }<br>+<br>+ if (buffer_create(output, (sizeof(segs) + end),<br>                         input->name) != 0)<br>               return -1;<br> <br>@@ -393,19 +399,19 @@<br>  /* Prepare code segment */<br>    segs[0].type = PAYLOAD_SEGMENT_CODE;<br>  segs[0].load_addr = loadaddress;<br>-     segs[0].mem_len = input->size;<br>+    segs[0].mem_len = end;<br>        segs[0].offset = doffset;<br> <br>- if (!compress(input->data, input->size, output->data + doffset, &len) &&<br>-            (unsigned int)len < input->size) {<br>+ if (!compress(input->data, end, output->data + doffset, &len) &&<br>+       (unsigned int)len < end) {<br>             segs[0].compression = algo;<br>           segs[0].len = len;<br>    } else {<br>              WARN("Compression failed or would make the data bigger "<br>                 "- disabled.\n");<br>              segs[0].compression = 0;<br>-             segs[0].len = input->size;<br>-                memcpy(output->data + doffset, input->data, input->size);<br>+           segs[0].len = end;<br>+           memcpy(output->data + doffset, input->data, end);<br>       }<br> <br>  /* prepare entry point segment */<br></pre><p>To view, visit <a href="https://review.coreboot.org/20470">change 20470</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/20470"/><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: I6f128eca10bd56f5a0eb1302903de4a4c78aa568 </div>
<div style="display:none"> Gerrit-Change-Number: 20470 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: Patrick Georgi <pgeorgi@google.com> </div>