Deleted Added
full compact
129a130,137
> #define ASM_EMIT_BELONG(f, fmt, ...) \
> { \
> fprintf((f), "\t.byte\t((" fmt ") >> 24) & 0xff\n", __VA_ARGS__); \
> fprintf((f), "\t.byte\t((" fmt ") >> 16) & 0xff\n", __VA_ARGS__); \
> fprintf((f), "\t.byte\t((" fmt ") >> 8) & 0xff\n", __VA_ARGS__); \
> fprintf((f), "\t.byte\t(" fmt ") & 0xff\n", __VA_ARGS__); \
> }
>
134c142,144
< fprintf(f, "\t.long\t0x%x\n", val);
---
> fprintf(f, "\t.byte 0x%02x; .byte 0x%02x; .byte 0x%02x; .byte 0x%02x\n",
> (val >> 24) & 0xff, (val >> 16) & 0xff,
> (val >> 8) & 0xff, val & 0xff);
159c169
< fprintf(f, "\t.balign\t%d\n", a);
---
> fprintf(f, "\t.balign\t%d, 0\n", a);
172,173c182
< fprintf(f, "\t.long\t0x%x\n",
< fdt32_to_cpu(*((uint32_t *)(d.val+off))));
---
> asm_emit_cell(e, fdt32_to_cpu(*((uint32_t *)(d.val+off))));
193c202,203
< fprintf(f, "\t.long\tFDT_BEGIN_NODE\n");
---
> fprintf(f, "\t/* FDT_BEGIN_NODE */\n");
> asm_emit_cell(e, FDT_BEGIN_NODE);
200c210,211
< fprintf(f, "\t.long\tFDT_END_NODE\n");
---
> fprintf(f, "\t/* FDT_END_NODE */\n");
> asm_emit_cell(e, FDT_END_NODE);
215c226,227
< fprintf(f, "\t.long\tFDT_PROP\n");
---
> fprintf(f, "\t/* FDT_PROP */\n");
> asm_emit_cell(e, FDT_PROP);
416c428,434
< fwrite(blob.val, blob.len, 1, f);
---
> if (fwrite(blob.val, blob.len, 1, f) != 1) {
> if (ferror(f))
> die("Error writing device tree blob: %s\n",
> strerror(errno));
> else
> die("Short write on device tree blob\n");
> }
418,420d435
< if (ferror(f))
< die("Error writing device tree blob: %s\n", strerror(errno));
<
458,463d472
< fprintf(f, "#define FDT_MAGIC 0x%x\n", FDT_MAGIC);
< fprintf(f, "#define FDT_BEGIN_NODE 0x%x\n", FDT_BEGIN_NODE);
< fprintf(f, "#define FDT_END_NODE 0x%x\n", FDT_END_NODE);
< fprintf(f, "#define FDT_PROP 0x%x\n", FDT_PROP);
< fprintf(f, "#define FDT_END 0x%x\n", FDT_END);
< fprintf(f, "\n");
467,468c476,482
< fprintf(f, "\t.long\tFDT_MAGIC\t\t\t\t/* magic */\n");
< fprintf(f, "\t.long\t_%s_blob_abs_end - _%s_blob_start\t/* totalsize */\n",
---
> fprintf(f, "\t/* magic */\n");
> asm_emit_cell(f, FDT_MAGIC);
> fprintf(f, "\t/* totalsize */\n");
> ASM_EMIT_BELONG(f, "_%s_blob_abs_end - _%s_blob_start",
> symprefix, symprefix);
> fprintf(f, "\t/* off_dt_struct */\n");
> ASM_EMIT_BELONG(f, "_%s_struct_start - _%s_blob_start",
470c484,485
< fprintf(f, "\t.long\t_%s_struct_start - _%s_blob_start\t/* off_dt_struct */\n",
---
> fprintf(f, "\t/* off_dt_strings */\n");
> ASM_EMIT_BELONG(f, "_%s_strings_start - _%s_blob_start",
472c487,488
< fprintf(f, "\t.long\t_%s_strings_start - _%s_blob_start\t/* off_dt_strings */\n",
---
> fprintf(f, "\t/* off_mem_rsvmap */\n");
> ASM_EMIT_BELONG(f, "_%s_reserve_map - _%s_blob_start",
474,478c490,493
< fprintf(f, "\t.long\t_%s_reserve_map - _%s_blob_start\t/* off_dt_strings */\n",
< symprefix, symprefix);
< fprintf(f, "\t.long\t%d\t\t\t\t\t/* version */\n", vi->version);
< fprintf(f, "\t.long\t%d\t\t\t\t\t/* last_comp_version */\n",
< vi->last_comp_version);
---
> fprintf(f, "\t/* version */\n");
> asm_emit_cell(f, vi->version);
> fprintf(f, "\t/* last_comp_version */\n");
> asm_emit_cell(f, vi->last_comp_version);
480,482c495,498
< if (vi->flags & FTF_BOOTCPUID)
< fprintf(f, "\t.long\t%i\t\t\t\t\t/* boot_cpuid_phys */\n",
< bi->boot_cpuid_phys);
---
> if (vi->flags & FTF_BOOTCPUID) {
> fprintf(f, "\t/* boot_cpuid_phys */\n");
> asm_emit_cell(f, bi->boot_cpuid_phys);
> }
484,486c500,504
< if (vi->flags & FTF_STRTABSIZE)
< fprintf(f, "\t.long\t_%s_strings_end - _%s_strings_start\t/* size_dt_strings */\n",
< symprefix, symprefix);
---
> if (vi->flags & FTF_STRTABSIZE) {
> fprintf(f, "\t/* size_dt_strings */\n");
> ASM_EMIT_BELONG(f, "_%s_strings_end - _%s_strings_start",
> symprefix, symprefix);
> }
488,489c506,508
< if (vi->flags & FTF_STRUCTSIZE)
< fprintf(f, "\t.long\t_%s_struct_end - _%s_struct_start\t/* size_dt_struct */\n",
---
> if (vi->flags & FTF_STRUCTSIZE) {
> fprintf(f, "\t/* size_dt_struct */\n");
> ASM_EMIT_BELONG(f, "_%s_struct_end - _%s_struct_start",
490a510
> }
512,517c532,536
< fprintf(f, "\t.long\t0x%08x, 0x%08x\n",
< (unsigned int)(re->re.address >> 32),
< (unsigned int)(re->re.address & 0xffffffff));
< fprintf(f, "\t.long\t0x%08x, 0x%08x\n",
< (unsigned int)(re->re.size >> 32),
< (unsigned int)(re->re.size & 0xffffffff));
---
> ASM_EMIT_BELONG(f, "0x%08x", (unsigned int)(re->re.address >> 32));
> ASM_EMIT_BELONG(f, "0x%08x",
> (unsigned int)(re->re.address & 0xffffffff));
> ASM_EMIT_BELONG(f, "0x%08x", (unsigned int)(re->re.size >> 32));
> ASM_EMIT_BELONG(f, "0x%08x", (unsigned int)(re->re.size & 0xffffffff));
527c546,548
< fprintf(f, "\t.long\tFDT_END\n");
---
>
> fprintf(f, "\t/* FDT_END */\n");
> asm_emit_cell(f, FDT_END);
604c625
< str = strdup(inb->ptr);
---
> str = xstrdup(inb->ptr);
646c667
< return strdup(inb->base + offset);
---
> return xstrdup(inb->base + offset);
713c734
< return strdup(cpath + plen);
---
> return xstrdup(cpath + plen);