/*
- * Copyright (C) 2011-2014 Lothar Waßmann <LW@KARO-electronics.de>
+ * Copyright (C) 2011-2016 Lothar Waßmann <LW@KARO-electronics.de>
*
* See file CREDITS for list of people who contributed to this
* project.
nand_erase_options_t erase_opts = { 0, };
size_t actual;
size_t prg_length = max_len - skip * mtd->erasesize;
- int prg_start = (start_block + skip) * mtd->erasesize;
+ int prg_start = start_block * mtd->erasesize;
- erase_opts.offset = start_block * mtd->erasesize;
+ erase_opts.offset = (start_block - skip) * mtd->erasesize;
erase_opts.length = max_len;
erase_opts.quiet = 1;
if (doit) {
actual = size;
ret = nand_write_skip_bad(mtd, prg_start, &actual, NULL,
- prg_length, addr, WITH_DROP_FFS);
+ prg_length, addr, 0);
if (ret) {
printf("Failed to program flash: %d\n", ret);
return ret;
printf("Programming redundant U-Boot image to block %lu @ %08llx\n",
fw2_start_block, (u64)fw2_start_block * mtd->erasesize);
- ret = tx28_prog_uboot(addr, fw2_start_block, fw2_skip, fw_num_blocks,
+ ret = tx28_prog_uboot(addr, fw2_start_block, fw2_skip, size,
max_len2);
out:
free(buf);