fis: sort output of fis list
This sorts the output of 'fis list' using the flash_base address similar to the output from RedBoot. Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com> Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
This commit is contained in:
parent
e8b320a708
commit
5256c77b46
30
package/fis/fis-004-sorted_list.patch
Normal file
30
package/fis/fis-004-sorted_list.patch
Normal file
@ -0,0 +1,30 @@
|
||||
--- 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);
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user