fix protection behavior

This commit is contained in:
Rodrigo L. Rosa 2011-06-10 12:23:52 -07:00 committed by Øyvind Harboe
parent 7b0ead520d
commit cbe201fe6b
1 changed files with 9 additions and 14 deletions

View File

@ -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;
}