X-Git-Url: https://review.openocd.org/gitweb?a=blobdiff_plain;f=src%2Fflash%2Fnor%2Fat91sam7.c;h=03f771c87e2a9a483c8d523f9c3d6d54e5ab8f08;hb=5be455a710c57bbbbd49c2d671b42098db7be5dc;hp=0d81f06239c67988169aaa4edc51c7581bebbc8f;hpb=d0e763ac7ef6aa17b17bd00ccdfbccfb4eacda69;p=openocd.git diff --git a/src/flash/nor/at91sam7.c b/src/flash/nor/at91sam7.c index 0d81f06239..03f771c87e 100644 --- a/src/flash/nor/at91sam7.c +++ b/src/flash/nor/at91sam7.c @@ -371,10 +371,9 @@ static int at91sam7_read_part_info(struct flash_bank *bank) if (at91sam7_info->cidr != 0) { /* flash already configured, update clock and check for protected sectors */ - struct flash_bank *fb = bank; - struct flash_bank *t_bank = bank; - - while (t_bank) { + for (struct flash_bank *t_bank = bank; t_bank; t_bank = t_bank->next) { + if (t_bank->target != target) + continue; /* re-calculate master clock frequency */ at91sam7_read_clock_info(t_bank); @@ -383,9 +382,6 @@ static int at91sam7_read_part_info(struct flash_bank *bank) /* check protect state */ at91sam7_protect_check(t_bank); - - t_bank = fb->next; - fb = t_bank; } return ERROR_OK; @@ -400,9 +396,10 @@ static int at91sam7_read_part_info(struct flash_bank *bank) if (at91sam7_info->flash_autodetection == 0) { /* banks and sectors are already created, based on data from input file */ - struct flash_bank *fb = bank; - struct flash_bank *t_bank = bank; - while (t_bank) { + for (struct flash_bank *t_bank = bank; t_bank; t_bank = t_bank->next) { + if (t_bank->target != target) + continue; + at91sam7_info = t_bank->driver_priv; at91sam7_info->cidr = cidr; @@ -423,9 +420,6 @@ static int at91sam7_read_part_info(struct flash_bank *bank) /* check protect state */ at91sam7_protect_check(t_bank); - - t_bank = fb->next; - fb = t_bank; } return ERROR_OK; @@ -667,7 +661,7 @@ static int at91sam7_erase_check(struct flash_bank *bank) retval = target_blank_check_memory(target, bank->base + bank->sectors[nSector].offset, bank->sectors[nSector].size, - &blank); + &blank, bank->erased_value); if (retval != ERROR_OK) { fast_check = 0; break;