fix protection behavior
This commit is contained in:
parent
7b0ead520d
commit
cbe201fe6b
|
@ -96,18 +96,10 @@ static int dsp5680xx_flash_protect_check(struct flash_bank *bank){
|
|||
static int dsp5680xx_flash_protect(struct flash_bank *bank, int set, int first, int last){
|
||||
// This applies security to flash module after next reset, it does not actually apply protection (protection refers to undesired access from the core)
|
||||
int retval;
|
||||
if(set){
|
||||
if(set)
|
||||
retval = dsp5680xx_f_lock(bank->target);
|
||||
if(retval == ERROR_OK){
|
||||
for(int i = first;i<last;i++)
|
||||
bank->sectors[i].is_protected = 1;
|
||||
}
|
||||
}else{
|
||||
else
|
||||
retval = dsp5680xx_f_unlock(bank->target);
|
||||
if(retval == ERROR_OK)
|
||||
for(int i = first;i<last;i++)
|
||||
bank->sectors[i].is_protected = 0;
|
||||
}
|
||||
return retval;
|
||||
}
|
||||
|
||||
|
@ -140,10 +132,13 @@ static int dsp5680xx_flash_write(struct flash_bank *bank, uint8_t *buffer, uint3
|
|||
return ERROR_FAIL;
|
||||
}
|
||||
retval = dsp5680xx_f_wr(bank->target, buffer, bank->base + offset/2, count);
|
||||
if(retval == ERROR_OK)
|
||||
bank->sectors[0].is_erased = 0;
|
||||
else
|
||||
bank->sectors[0].is_erased = -1;
|
||||
uint32_t addr_word;
|
||||
for(addr_word = bank->base + offset/2;addr_word<count/2;addr_word+=(HFM_SECTOR_SIZE/2)){
|
||||
if(retval == ERROR_OK)
|
||||
bank->sectors[addr_word/(HFM_SECTOR_SIZE/2)].is_erased = 0;
|
||||
else
|
||||
bank->sectors[addr_word/(HFM_SECTOR_SIZE/2)].is_erased = -1;
|
||||
}
|
||||
return retval;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue