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
parent
3e516d961a
commit
3bb78bfd97
15
flattree.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
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…
Reference in New Issue