comparison packages/redboot/current/src/flash.c @ 1823:ecd76f498508

* cdl/redboot.cdl (CYGBLD_REDBOOT_MIN_IMAGE_SIZE): Correct the description to match what the option is actually used for. * src/flash.c (find_free, fis_free, fis_find_free): Don't ignore an extra CYGBLD_REDBOOT_MIN_IMAGE_SIZE amount from the start. This fixes the case where nothing uses the start of flash.
author asl
date Tue, 09 Nov 2004 18:59:14 +0000
parents 0031b615f51c
children 83b190379205
comparison
equal deleted inserted replaced
1822:b9ae2f90a53e 1823:ecd76f498508
562 int i, idx; 562 int i, idx;
563 int num_chunks = 1; 563 int num_chunks = 1;
564 564
565 // Do not search the area reserved for pre-RedBoot systems: 565 // Do not search the area reserved for pre-RedBoot systems:
566 fis_ptr = (CYG_ADDRESS *)((CYG_ADDRESS)flash_start + 566 fis_ptr = (CYG_ADDRESS *)((CYG_ADDRESS)flash_start +
567 CYGNUM_REDBOOT_FLASH_RESERVED_BASE + 567 CYGNUM_REDBOOT_FLASH_RESERVED_BASE);
568 CYGBLD_REDBOOT_MIN_IMAGE_SIZE);
569 fis_end = (CYG_ADDRESS *)flash_end; 568 fis_end = (CYG_ADDRESS *)flash_end;
570 chunks[num_chunks-1].start = (CYG_ADDRESS)fis_ptr; 569 chunks[num_chunks-1].start = (CYG_ADDRESS)fis_ptr;
571 chunks[num_chunks-1].end = (CYG_ADDRESS)fis_end; 570 chunks[num_chunks-1].end = (CYG_ADDRESS)fis_end;
572 fis_read_directory(); 571 fis_read_directory();
573 img = (struct fis_image_desc *) fis_work_block; 572 img = (struct fis_image_desc *) fis_work_block;
618 unsigned long *area_start; 617 unsigned long *area_start;
619 void *err_addr; 618 void *err_addr;
620 619
621 // Do not search the area reserved for pre-RedBoot systems: 620 // Do not search the area reserved for pre-RedBoot systems:
622 fis_ptr = (unsigned long *)((CYG_ADDRESS)flash_start + 621 fis_ptr = (unsigned long *)((CYG_ADDRESS)flash_start +
623 CYGNUM_REDBOOT_FLASH_RESERVED_BASE + 622 CYGNUM_REDBOOT_FLASH_RESERVED_BASE);
624 CYGBLD_REDBOOT_MIN_IMAGE_SIZE);
625 fis_end = (unsigned long *)(CYG_ADDRESS)flash_end; 623 fis_end = (unsigned long *)(CYG_ADDRESS)flash_end;
626 area_start = fis_ptr; 624 area_start = fis_ptr;
627 while (fis_ptr < fis_end) { 625 while (fis_ptr < fis_end) {
628 flash_read(fis_ptr, &flash_data, sizeof(unsigned long), (void **)&err_addr); 626 flash_read(fis_ptr, &flash_data, sizeof(unsigned long), (void **)&err_addr);
629 if (flash_data != (unsigned long)0xFFFFFFFF) { 627 if (flash_data != (unsigned long)0xFFFFFFFF) {
670 unsigned long *area_start; 668 unsigned long *area_start;
671 void *err_addr; 669 void *err_addr;
672 670
673 // Do not search the area reserved for pre-RedBoot systems: 671 // Do not search the area reserved for pre-RedBoot systems:
674 fis_ptr = (unsigned long *)((CYG_ADDRESS)flash_start + 672 fis_ptr = (unsigned long *)((CYG_ADDRESS)flash_start +
675 CYGNUM_REDBOOT_FLASH_RESERVED_BASE + 673 CYGNUM_REDBOOT_FLASH_RESERVED_BASE);
676 CYGBLD_REDBOOT_MIN_IMAGE_SIZE);
677 fis_end = (unsigned long *)(CYG_ADDRESS)flash_end; 674 fis_end = (unsigned long *)(CYG_ADDRESS)flash_end;
678 area_start = fis_ptr; 675 area_start = fis_ptr;
679 while (fis_ptr < fis_end) { 676 while (fis_ptr < fis_end) {
680 flash_read(fis_ptr, &flash_data, sizeof(unsigned long), (void **)&err_addr); 677 flash_read(fis_ptr, &flash_data, sizeof(unsigned long), (void **)&err_addr);
681 if (flash_data != (unsigned long)0xFFFFFFFF) { 678 if (flash_data != (unsigned long)0xFFFFFFFF) {