Skip to content

Commit 6f76cef

Browse files
committed
Bad block read progress is not sent during read/write commands
1 parent 269cbd1 commit 6f76cef

File tree

1 file changed

+15
-6
lines changed

1 file changed

+15
-6
lines changed

firmware/programmer/nand_programmer.c

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -370,7 +370,7 @@ static int np_read_bad_block_info_from_page(np_prog_t *prog, uint32_t block,
370370
return 0;
371371
}
372372

373-
static int _np_cmd_read_bad_blocks(np_prog_t *prog)
373+
static int _np_cmd_read_bad_blocks(np_prog_t *prog, bool send_progress)
374374
{
375375
int ret;
376376
bool is_bad;
@@ -388,7 +388,10 @@ static int _np_cmd_read_bad_blocks(np_prog_t *prog)
388388
for (block = 0; block < block_num; block++)
389389
{
390390
page = block * page_num;
391-
np_send_progress(page);
391+
392+
if (send_progress)
393+
np_send_progress(page);
394+
392395
if ((ret = np_read_bad_block_info_from_page(prog, block, page,
393396
&is_bad)))
394397
{
@@ -476,8 +479,11 @@ static int _np_cmd_nand_erase(np_prog_t *prog)
476479
total_size = prog->chip_info.total_size;
477480
}
478481

479-
if (skip_bb && !prog->bb_is_read && (ret = _np_cmd_read_bad_blocks(prog)))
482+
if (skip_bb && !prog->bb_is_read && (ret = _np_cmd_read_bad_blocks(prog,
483+
false)))
484+
{
480485
return ret;
486+
}
481487

482488
if (addr % block_size)
483489
{
@@ -630,7 +636,7 @@ static int np_cmd_nand_write_start(np_prog_t *prog)
630636

631637
prog->skip_bb = write_start_cmd->flags.skip_bb;
632638
if (prog->skip_bb && !prog->bb_is_read &&
633-
(ret = _np_cmd_read_bad_blocks(prog)))
639+
(ret = _np_cmd_read_bad_blocks(prog, false)))
634640
{
635641
return ret;
636642
}
@@ -934,8 +940,11 @@ static int _np_cmd_nand_read(np_prog_t *prog)
934940
return NP_ERR_LEN_NOT_ALIGN;
935941
}
936942

937-
if (skip_bb && !prog->bb_is_read && (ret = _np_cmd_read_bad_blocks(prog)))
943+
if (skip_bb && !prog->bb_is_read && (ret = _np_cmd_read_bad_blocks(prog,
944+
false)))
945+
{
938946
return ret;
947+
}
939948

940949
page.page = addr / page_size;
941950
page.offset = 0;
@@ -1088,7 +1097,7 @@ int np_cmd_read_bad_blocks(np_prog_t *prog)
10881097

10891098
led_rd_set(true);
10901099
nand_bad_block_table_init();
1091-
ret = _np_cmd_read_bad_blocks(prog);
1100+
ret = _np_cmd_read_bad_blocks(prog, true);
10921101
led_rd_set(false);
10931102

10941103
if (ret || (ret = np_send_bad_blocks(prog)))

0 commit comments

Comments
 (0)