|
|
|
@ -29,6 +29,32 @@ int default_flash_is_erased(struct flash_dev *dev, uint32_t addr) |
|
|
|
|
return 1; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
size_t default_flash_copy(struct flash_dev *dev, uint32_t dst, uint32_t src, |
|
|
|
|
size_t len) |
|
|
|
|
{ |
|
|
|
|
uint8_t data[32]; |
|
|
|
|
size_t nbytes, ret = 0; |
|
|
|
|
|
|
|
|
|
while (len) { |
|
|
|
|
nbytes = min(sizeof data, len); |
|
|
|
|
|
|
|
|
|
if (flash_read(dev, src, data, nbytes) == 0) |
|
|
|
|
return -1; |
|
|
|
|
|
|
|
|
|
if (flash_write(dev, dst, data, nbytes) == 0) |
|
|
|
|
return -1; |
|
|
|
|
|
|
|
|
|
dst += nbytes; |
|
|
|
|
src += nbytes; |
|
|
|
|
len -= nbytes; |
|
|
|
|
ret += nbytes; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
return ret; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void flash_release(struct flash_dev *dev) |
|
|
|
|
{ |
|
|
|
|
if (!dev) |
|
|
|
|