Browse Source

dtc: Remove header information dumping

Currently, when used in -Idtb mode, dtc will dump information about
the input blob's header fields to stderr.  This is kind of ugly, and
can get in the way of dtc's real output.

This patch, therefore, removes this.  So that there's still a way of
getting this information for debugging purposes, it places something
similar to the removed code into ftdump, replacing the couple of
header fields it currently prints with a complete header dump.

Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
main
David Gibson 17 years ago committed by Jon Loeliger
parent
commit
3bb78bfd97
  1. 15
      flattree.c
  2. 32
      ftdump.c

15
flattree.c

@ -898,15 +898,6 @@ struct boot_info *dt_from_blob(FILE *f)
off_mem_rsvmap = be32_to_cpu(fdt->off_mem_rsvmap); off_mem_rsvmap = be32_to_cpu(fdt->off_mem_rsvmap);
version = be32_to_cpu(fdt->version); version = be32_to_cpu(fdt->version);


fprintf(stderr, "\tmagic:\t\t\t0x%x\n", magic);
fprintf(stderr, "\ttotalsize:\t\t%d\n", totalsize);
fprintf(stderr, "\toff_dt_struct:\t\t0x%x\n", off_dt);
fprintf(stderr, "\toff_dt_strings:\t\t0x%x\n", off_str);
fprintf(stderr, "\toff_mem_rsvmap:\t\t0x%x\n", off_mem_rsvmap);
fprintf(stderr, "\tversion:\t\t0x%x\n", version );
fprintf(stderr, "\tlast_comp_version:\t0x%x\n",
be32_to_cpu(fdt->last_comp_version));

if (off_mem_rsvmap >= totalsize) if (off_mem_rsvmap >= totalsize)
die("Mem Reserve structure offset exceeds total size\n"); die("Mem Reserve structure offset exceeds total size\n");


@ -916,21 +907,15 @@ struct boot_info *dt_from_blob(FILE *f)
if (off_str > totalsize) if (off_str > totalsize)
die("String table offset exceeds total size\n"); die("String table offset exceeds total size\n");


if (version >= 2)
fprintf(stderr, "\tboot_cpuid_phys:\t0x%x\n",
be32_to_cpu(fdt->boot_cpuid_phys));

size_str = -1; size_str = -1;
if (version >= 3) { if (version >= 3) {
size_str = be32_to_cpu(fdt->size_dt_strings); size_str = be32_to_cpu(fdt->size_dt_strings);
fprintf(stderr, "\tsize_dt_strings:\t%d\n", size_str);
if (off_str+size_str > totalsize) if (off_str+size_str > totalsize)
die("String table extends past total size\n"); die("String table extends past total size\n");
} }


if (version >= 17) { if (version >= 17) {
size_dt = be32_to_cpu(fdt->size_dt_struct); size_dt = be32_to_cpu(fdt->size_dt_struct);
fprintf(stderr, "\tsize_dt_struct:\t\t%d\n", size_dt);
if (off_dt+size_dt > totalsize) if (off_dt+size_dt > totalsize)
die("Structure block extends past total size\n"); die("Structure block extends past total size\n");
} }

32
ftdump.c

@ -81,11 +81,13 @@ static void print_data(const void *data, int len)
static void dump_blob(void *blob) static void dump_blob(void *blob)
{ {
struct fdt_header *bph = blob; struct fdt_header *bph = blob;
uint32_t off_mem_rsvmap = be32_to_cpu(bph->off_mem_rsvmap);
uint32_t off_dt = be32_to_cpu(bph->off_dt_struct);
uint32_t off_str = be32_to_cpu(bph->off_dt_strings);
struct fdt_reserve_entry *p_rsvmap = struct fdt_reserve_entry *p_rsvmap =
(struct fdt_reserve_entry *)(blob (struct fdt_reserve_entry *)(blob + off_mem_rsvmap);
+ be32_to_cpu(bph->off_mem_rsvmap)); char *p_struct = blob + off_dt;
char *p_struct = blob + be32_to_cpu(bph->off_dt_struct); char *p_strings = blob + off_str;
char *p_strings = blob + be32_to_cpu(bph->off_dt_strings);
uint32_t version = be32_to_cpu(bph->version); uint32_t version = be32_to_cpu(bph->version);
uint32_t totalsize = be32_to_cpu(bph->totalsize); uint32_t totalsize = be32_to_cpu(bph->totalsize);
uint32_t tag; uint32_t tag;
@ -98,8 +100,26 @@ static void dump_blob(void *blob)
depth = 0; depth = 0;
shift = 4; shift = 4;


printf("// Version 0x%x tree\n", version); printf("// magic:\t\t0x%x\n", be32_to_cpu(bph->magic));
printf("// Totalsize 0x%x(%d)\n", totalsize, totalsize); printf("// totalsize:\t\t0x%x (%d)\n", totalsize, totalsize);
printf("// off_dt_struct:\t0x%x\n", off_dt);
printf("// off_dt_strings:\t0x%x\n", off_str);
printf("// off_mem_rsvmap:\t0x%x\n", off_mem_rsvmap);
printf("// version:\t\t%d\n", version);
printf("// last_comp_version:\t%d\n",
be32_to_cpu(bph->last_comp_version));
if (version >= 2)
printf("// boot_cpuid_phys:\t0x%x\n",
be32_to_cpu(bph->boot_cpuid_phys));

if (version >= 3)
printf("// size_dt_strings:\t0x%x\n",
be32_to_cpu(bph->size_dt_strings));
if (version >= 17)
printf("// size_dt_struct:\t0x%x\n",
be32_to_cpu(bph->size_dt_struct));
printf("\n");

for (i = 0; ; i++) { for (i = 0; ; i++) {
addr = be64_to_cpu(p_rsvmap[i].address); addr = be64_to_cpu(p_rsvmap[i].address);
size = be64_to_cpu(p_rsvmap[i].size); size = be64_to_cpu(p_rsvmap[i].size);

Loading…
Cancel
Save