From 8817de52d1b9354a0275343c3e0820ac516a7637 Mon Sep 17 00:00:00 2001 From: Kevin Gillespie Date: Thu, 20 Dec 2018 09:44:38 -0600 Subject: [PATCH] Making sure algorithm runs and pads with 0xFF. Change-Id: I188af7676395993d4800549b511af77f9c5086b1 --- src/flash/nor/max32xxx.c | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/src/flash/nor/max32xxx.c b/src/flash/nor/max32xxx.c index c8dac2c5..f5ed30ea 100644 --- a/src/flash/nor/max32xxx.c +++ b/src/flash/nor/max32xxx.c @@ -397,10 +397,6 @@ static int max32xxx_write_block(struct flash_bank *bank, const uint8_t *buffer, /* power of two, and multiple of word size */ static const unsigned buf_min = 128; - /* for small buffers it's faster not to download an algorithm */ - if (wcount * 4 < buf_min) - return ERROR_TARGET_RESOURCE_NOT_AVAILABLE; - LOG_DEBUG("(bank=%p buffer=%p offset=%08" PRIx32 " wcount=%08" PRIx32 "", bank, buffer, offset, wcount); @@ -518,13 +514,19 @@ static int max32xxx_write(struct flash_bank *bank, const uint8_t *buffer, /* 128-bit align the words_remaining */ words_remaining = remaining / 4; - words_remaining -= words_remaining % 4; + + /* Algorithm will pad with 0xFF */ + // words_remaining -= words_remaining % 4; retval = max32xxx_write_block(bank, buffer, offset, words_remaining); if (retval != ERROR_OK) { - if (retval == ERROR_TARGET_RESOURCE_NOT_AVAILABLE) + if (retval == ERROR_TARGET_RESOURCE_NOT_AVAILABLE) { + if(info->options & OPTIONS_ENC) { + LOG_ERROR("Must use algorithm in working area for encryption"); + return ERROR_FLASH_OPERATION_FAILED; + } LOG_DEBUG("writing flash word-at-a-time"); - else { + } else { max32xxx_flash_op_post(bank); return ERROR_FLASH_OPERATION_FAILED; } -- GitLab