Mercurial > flash_v2
comparison packages/redboot/current/src/flash.c @ 1492:8b3549abe4ac
* cdl/redboot.cdl: Bring CYGNUM_REDBOOT_LOAD_ZLIB_BUFFER under
CYGBLD_BUILD_REDBOOT_WITH_ZLIB. Add CYGPRI_REDBOOT_ZLIB_FLASH to
control whether decompression can be used with flash images.
* src/flash.c: Use CYGPRI_REDBOOT_ZLIB_FLASH instead of
CYGPKG_COMPRESS_ZLIB.
* src/load.c: Use CYGBLD_BUILD_REDBOOT_WITH_ZLIB in place of
CYGPKG_COMPRESS_ZLIB.
* src/main.c: only set fis_zlib_common_buffer if
CYGPRI_REDBOOT_ZLIB_FLASH.
| author | jlarmour |
|---|---|
| date | Wed, 11 Feb 2004 13:40:53 +0000 |
| parents | bce4d2e47e78 |
| children | c4355f101bf6 |
comparison
equal
deleted
inserted
replaced
| 1491:ab4a708d689e | 1492:8b3549abe4ac |
|---|---|
| 96 fis_delete, | 96 fis_delete, |
| 97 FIS_cmds | 97 FIS_cmds |
| 98 ); | 98 ); |
| 99 | 99 |
| 100 static char fis_load_usage[] = | 100 static char fis_load_usage[] = |
| 101 #ifdef CYGPKG_COMPRESS_ZLIB | 101 #ifdef CYGPRI_REDBOOT_ZLIB_FLASH |
| 102 "[-d] " | 102 "[-d] " |
| 103 #endif | 103 #endif |
| 104 "[-b <memory_load_address>] [-c] name"; | 104 "[-b <memory_load_address>] [-c] name"; |
| 105 | 105 |
| 106 local_cmd_entry("load", | 106 local_cmd_entry("load", |
| 984 struct option_info opts[3]; | 984 struct option_info opts[3]; |
| 985 #ifdef CYGPKG_REDBOOT_FIS_CRC_CHECK | 985 #ifdef CYGPKG_REDBOOT_FIS_CRC_CHECK |
| 986 unsigned long cksum; | 986 unsigned long cksum; |
| 987 #endif | 987 #endif |
| 988 int num_options; | 988 int num_options; |
| 989 #ifdef CYGPKG_COMPRESS_ZLIB | 989 #ifdef CYGPRI_REDBOOT_ZLIB_FLASH |
| 990 bool decompress = false; | 990 bool decompress = false; |
| 991 #endif | 991 #endif |
| 992 void *err_addr; | 992 void *err_addr; |
| 993 | 993 |
| 994 init_opts(&opts[0], 'b', true, OPTION_ARG_TYPE_NUM, | 994 init_opts(&opts[0], 'b', true, OPTION_ARG_TYPE_NUM, |
| 995 (void **)&mem_addr, (bool *)&mem_addr_set, "memory [load] base address"); | 995 (void **)&mem_addr, (bool *)&mem_addr_set, "memory [load] base address"); |
| 996 init_opts(&opts[1], 'c', false, OPTION_ARG_TYPE_FLG, | 996 init_opts(&opts[1], 'c', false, OPTION_ARG_TYPE_FLG, |
| 997 (void **)&show_cksum, (bool *)0, "display checksum"); | 997 (void **)&show_cksum, (bool *)0, "display checksum"); |
| 998 num_options = 2; | 998 num_options = 2; |
| 999 #ifdef CYGPKG_COMPRESS_ZLIB | 999 #ifdef CYGPRI_REDBOOT_ZLIB_FLASH |
| 1000 init_opts(&opts[num_options], 'd', false, OPTION_ARG_TYPE_FLG, | 1000 init_opts(&opts[num_options], 'd', false, OPTION_ARG_TYPE_FLG, |
| 1001 (void **)&decompress, 0, "decompress"); | 1001 (void **)&decompress, 0, "decompress"); |
| 1002 num_options++; | 1002 num_options++; |
| 1003 #endif | 1003 #endif |
| 1004 | 1004 |
| 1019 if (!valid_address((void *)mem_addr)) { | 1019 if (!valid_address((void *)mem_addr)) { |
| 1020 diag_printf("Not a loadable image - try using -b ADDRESS option\n"); | 1020 diag_printf("Not a loadable image - try using -b ADDRESS option\n"); |
| 1021 return; | 1021 return; |
| 1022 } | 1022 } |
| 1023 #endif | 1023 #endif |
| 1024 #ifdef CYGPKG_COMPRESS_ZLIB | 1024 #ifdef CYGPRI_REDBOOT_ZLIB_FLASH |
| 1025 if (decompress) { | 1025 if (decompress) { |
| 1026 int err; | 1026 int err; |
| 1027 _pipe_t fis_load_pipe; | 1027 _pipe_t fis_load_pipe; |
| 1028 _pipe_t* p = &fis_load_pipe; | 1028 _pipe_t* p = &fis_load_pipe; |
| 1029 p->out_buf = (unsigned char*) mem_addr; | 1029 p->out_buf = (unsigned char*) mem_addr; |
| 1328 flash_end = (void *)((CYG_ADDRESS)flash_end - 1); | 1328 flash_end = (void *)((CYG_ADDRESS)flash_end - 1); |
| 1329 flash_get_block_info(&flash_block_size, &flash_num_blocks); | 1329 flash_get_block_info(&flash_block_size, &flash_num_blocks); |
| 1330 #ifdef CYGOPT_REDBOOT_FIS | 1330 #ifdef CYGOPT_REDBOOT_FIS |
| 1331 fisdir_size = CYGNUM_REDBOOT_FIS_DIRECTORY_ENTRY_COUNT * CYGNUM_REDBOOT_FIS_DIRECTORY_ENTRY_SIZE; | 1331 fisdir_size = CYGNUM_REDBOOT_FIS_DIRECTORY_ENTRY_COUNT * CYGNUM_REDBOOT_FIS_DIRECTORY_ENTRY_SIZE; |
| 1332 fisdir_size = ((fisdir_size + flash_block_size - 1) / flash_block_size) * flash_block_size; | 1332 fisdir_size = ((fisdir_size + flash_block_size - 1) / flash_block_size) * flash_block_size; |
| 1333 # ifdef CYGOPT_REDBOOT_FIS_ZLIB_COMMON_BUFFER | 1333 # if defined(CYGPRI_REDBOOT_ZLIB_FLASH) && defined(CYGOPT_REDBOOT_FIS_ZLIB_COMMON_BUFFER) |
| 1334 fis_work_block = fis_zlib_common_buffer; | 1334 fis_work_block = fis_zlib_common_buffer; |
| 1335 if(CYGNUM_REDBOOT_FIS_ZLIB_COMMON_BUFFER_SIZE < fisdir_size) { | 1335 if(CYGNUM_REDBOOT_FIS_ZLIB_COMMON_BUFFER_SIZE < fisdir_size) { |
| 1336 diag_printf("FLASH: common buffer too small\n"); | 1336 diag_printf("FLASH: common buffer too small\n"); |
| 1337 return false; | 1337 return false; |
| 1338 } | 1338 } |
