--- fis.orig/fis.c	2010-05-12 10:22:10.000000000 -0700
+++ fis/fis.c	2010-05-12 10:19:24.000000000 -0700
@@ -142,8 +142,8 @@
 
 static void dump_desc(FILE* f, const struct fis_image_desc* d)
 {
-  fprintf(f,"%16s: flash addr = 0x%08x, mem addr = 0x%08x, size = 0x%08x, checksum = 0x%08x\n",
-             d->name, d->flash_base, d->mem_base, d->size, d->file_cksum);
+  fprintf(f,"%-16s  0x%08x  0x%08x  0x%08x  0x%08x  0x%08x\n",
+             d->name, d->flash_base, d->mem_base, d->size, d->entry_point, d->file_cksum);
   for (unsigned int i=0; i<(sizeof(d->skips)/4); ++i) {
     if (d->skips[i]==0x736b6970 || d->skips[i]==0x70696b73) { // "skip"
       uint32_t offset = d->skips[i+1];
@@ -400,6 +400,7 @@
   CHECK(fd=open(device,O_RDONLY),-1);
   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));
   }
