123456789101112131415161718192021222324252627282930 |
- --- fis.orig/fis.c 2010-05-12 11:09:22.000000000 -0700
- +++ fis/fis.c 2010-05-12 11:05:45.000000000 -0700
- @@ -401,9 +401,24 @@
- dir_t dir;
- load_dir(fd,offset,&size,swap_endianness,&dir);
- fprintf(stdout,"Name FLASH addr Mem addr Length Entry point Checksum\n");
- - FOR_EACH_DIR_ENTRY(dir,i) {
- - dump_desc(stdout,get(i));
- - }
- + uint32_t last_addr = 0;
- + bool image_found;
- + do {
- + uint32_t lowest_addr = 0xffffffff;
- + iter_t index;
- + image_found = false;
- + FOR_EACH_DIR_ENTRY(dir,i) {
- + const struct fis_image_desc *d = get(i);
- + if ((d->flash_base >= last_addr) && (d->flash_base < lowest_addr)) {
- + lowest_addr = d->flash_base;
- + image_found = true;
- + index = i;
- + }
- + }
- + if (image_found)
- + dump_desc(stdout,get(index));
- + last_addr = lowest_addr + 1;
- + } while (image_found == true);
- }
-
-
|