Fix padding options

"Add an option to pad the blob that is generated" broke the padding
support.  We were updating the fdt header after writing it.

Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
This commit is contained in:
Kumar Gala 2007-12-04 17:36:08 -06:00 committed by Jon Loeliger
parent c048102f5b
commit 80c72a81cf

View file

@ -399,6 +399,12 @@ void dt_to_blob(FILE *f, struct boot_info *bi, int version,
if (padsize > 0) if (padsize > 0)
padlen = padsize; padlen = padsize;
if (padlen > 0) {
int tsize = be32_to_cpu(fdt.totalsize);
tsize += padlen;
fdt.totalsize = cpu_to_be32(tsize);
}
/* /*
* Assemble the blob: start with the header, add with alignment * Assemble the blob: start with the header, add with alignment
* the reserve buffer, add the reserve map terminating zeroes, * the reserve buffer, add the reserve map terminating zeroes,
@ -414,12 +420,8 @@ void dt_to_blob(FILE *f, struct boot_info *bi, int version,
/* /*
* If the user asked for more space than is used, pad out the blob. * If the user asked for more space than is used, pad out the blob.
*/ */
if (padlen > 0) { if (padlen > 0)
int tsize = be32_to_cpu(fdt.totalsize);
tsize += padlen;
blob = data_append_zeroes(blob, padlen); blob = data_append_zeroes(blob, padlen);
fdt.totalsize = cpu_to_be32(tsize);
}
fwrite(blob.val, blob.len, 1, f); fwrite(blob.val, blob.len, 1, f);