aboutsummaryrefslogtreecommitdiff
path: root/src/flash
diff options
context:
space:
mode:
Diffstat (limited to 'src/flash')
-rw-r--r--src/flash/nor/at91sam4l.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/src/flash/nor/at91sam4l.c b/src/flash/nor/at91sam4l.c
index 9f1319b6..0139f61c 100644
--- a/src/flash/nor/at91sam4l.c
+++ b/src/flash/nor/at91sam4l.c
@@ -499,6 +499,8 @@ static int sam4l_write_page(struct sam4l_info *chip, struct target *target,
{
int res;
+ LOG_DEBUG("sam4l_write_page address=%08" PRIx32, address);
+
/* Clear the page buffer before we write to it */
res = sam4l_flash_command(target, SAM4L_FCMD_CPB, -1);
if (res != ERROR_OK) {
@@ -535,6 +537,8 @@ static int sam4l_write_page_partial(struct sam4l_info *chip,
if (!pg)
return ERROR_FAIL;
+ LOG_DEBUG("sam4l_write_page_partial address=%08" PRIx32 " nb=%08" PRIx32, address, nb);
+
assert(page_offset + nb < chip->page_size);
assert((address % chip->page_size) == 0);
@@ -563,6 +567,8 @@ static int sam4l_write(struct flash_bank *bank, const uint8_t *buffer,
uint32_t nb = 0;
struct sam4l_info *chip = (struct sam4l_info *)bank->driver_priv;
+ LOG_DEBUG("sam4l_write offset=%08" PRIx32 " count=%08" PRIx32, offset, count);
+
if (bank->target->state != TARGET_HALTED) {
LOG_ERROR("Target not halted");
@@ -605,14 +611,14 @@ static int sam4l_write(struct flash_bank *bank, const uint8_t *buffer,
for (int i = 0; i < np; i++) {
if (count >= chip->page_size) {
res = sam4l_write_page(chip, bank->target,
- bank->base + (i * chip->page_size),
+ bank->base + offset,
buffer + (i * chip->page_size));
/* Advance one page */
offset += chip->page_size;
count -= chip->page_size;
} else {
res = sam4l_write_page_partial(chip, bank,
- bank->base + (i * chip->page_size),
+ bank->base + offset,
buffer + (i * chip->page_size), 0, count);
/* We're done after this. */
offset += count;