Mercurial > nand-ecoscentric
changeset 2211:acfe2ec52590
Fix build problems on systems without FLASH locking
| author | gthomas |
|---|---|
| date | Tue, 23 May 2006 11:56:45 +0000 |
| parents | 7f47e5d2fe20 |
| children | 990ca86dc9d4 |
| files | packages/redboot/current/ChangeLog packages/redboot/current/src/flash.c |
| diffstat | 2 files changed, 14 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/packages/redboot/current/ChangeLog +++ b/packages/redboot/current/ChangeLog @@ -1,3 +1,8 @@ +2006-05-23 Gary Thomas <gary@mlbassoc.com> + + * src/flash.c (fis_update_directory): Fix problems building on systems + with no FLASH locking. + 2006-04-19 Alexander Neundorf <alexander.neundorf@jenoptik.com> * src/flash.c, src/main.c, src/fconfig.c: * include/fis.h, include/redboot.h:
--- a/packages/redboot/current/src/flash.c +++ b/packages/redboot/current/src/flash.c @@ -295,12 +295,14 @@ fis_update_directory(int autolock, int e { void* err_addr=0; +#ifdef CYGHWR_IO_FLASH_BLOCK_LOCKING #ifdef CYGSEM_REDBOOT_FLASH_LOCK_SPECIAL // Ensure [quietly] that the directory is unlocked before trying to update and locked again afterwards int do_autolock=1; #else int do_autolock=autolock; #endif +#endif #ifdef CYGOPT_REDBOOT_REDUNDANT_FIS @@ -330,8 +332,10 @@ fis_update_directory(int autolock, int e flash_program(tmp_fis_addr, img->u.valid_info.valid_flag, sizeof(img->u.valid_info.valid_flag), (void **)&err_addr); } +#ifdef CYGHWR_IO_FLASH_BLOCK_LOCKING if (do_autolock) flash_lock((void *)fis_addr, fisdir_size, (void **)&err_addr); +#endif #else // CYGOPT_REDBOOT_REDUNDANT_FIS int blk_size = fisdir_size; @@ -343,8 +347,10 @@ fis_update_directory(int autolock, int e conf_endian_fixup((char *)fis_work_block+fisdir_size); blk_size += cfg_size; #endif +#ifdef CYGHWR_IO_FLASH_BLOCK_LOCKING if (do_autolock) - flash_unlock((void *)fis_addr, blk_size, (void **)&err_addr); + flash_unlock((void *)fis_addr, blk_size, (void **)&err_addr); +#endif if ((stat = flash_erase(fis_addr, blk_size, (void **)&err_addr)) != 0) { diag_printf("Error erasing FIS directory at %p: %s\n", err_addr, flash_errmsg(stat)); @@ -356,8 +362,10 @@ fis_update_directory(int autolock, int e } } fis_endian_fixup(fis_work_block); +#ifdef CYGHWR_IO_FLASH_BLOCK_LOCKING if (do_autolock) flash_lock((void *)fis_addr, blk_size, (void **)&err_addr); +#endif #endif // CYGOPT_REDBOOT_REDUNDANT_FIS
