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 }