diff --git a/src/updi_nvm_v0.c b/src/updi_nvm_v0.c index 7e048477..f3f1be64 100644 --- a/src/updi_nvm_v0.c +++ b/src/updi_nvm_v0.c @@ -284,9 +284,9 @@ int updi_nvm_write_user_row_V0(const PROGRAMMER *pgm, const AVRPART *p, uint32_t int updi_nvm_write_boot_row_V0(const PROGRAMMER *pgm, const AVRPART *p, uint32_t address, unsigned char *buffer, uint16_t size) { /* - Perform write operation as if it was regular flash memory, but ensure page erase/page write command + Perform write operation as if it was regular flash memory */ - return nvm_write_V0(pgm, p, address, buffer, size, USE_WORD_ACCESS, UPDI_V0_NVMCTRL_CTRLA_ERASE_WRITE_PAGE); + return nvm_write_V0(pgm, p, address, buffer, size, USE_WORD_ACCESS, USE_DEFAULT_COMMAND); } int updi_nvm_write_eeprom_V0(const PROGRAMMER *pgm, const AVRPART *p, uint32_t address, unsigned char *buffer, uint16_t size) { diff --git a/src/updi_nvm_v2.c b/src/updi_nvm_v2.c index c6670916..ebf5382b 100644 --- a/src/updi_nvm_v2.c +++ b/src/updi_nvm_v2.c @@ -284,13 +284,9 @@ int updi_nvm_write_user_row_V2(const PROGRAMMER *pgm, const AVRPART *p, uint32_t int updi_nvm_write_boot_row_V2(const PROGRAMMER *pgm, const AVRPART *p, uint32_t address, unsigned char *buffer, uint16_t size) { /* - Perform write operation as if it was regular flash memory, but perform erase operation first + Perform write operation as if it was regular flash memory */ - if (updi_nvm_erase_flash_page_V2(pgm, p, address) <0) { - pmsg_error("Flash page erase failed for bootrow\n"); - return -1; - } - return updi_nvm_write_flash_V2(pgm, p, address, buffer, size); + return nvm_write_V2(pgm, p, address, buffer, size, USE_WORD_ACCESS); } int updi_nvm_write_eeprom_V2(const PROGRAMMER *pgm, const AVRPART *p, uint32_t address, unsigned char *buffer, uint16_t size) { diff --git a/src/updi_nvm_v3.c b/src/updi_nvm_v3.c index 99989ddd..73c62bc3 100644 --- a/src/updi_nvm_v3.c +++ b/src/updi_nvm_v3.c @@ -299,9 +299,9 @@ int updi_nvm_write_user_row_V3(const PROGRAMMER *pgm, const AVRPART *p, uint32_t int updi_nvm_write_boot_row_V3(const PROGRAMMER *pgm, const AVRPART *p, uint32_t address, unsigned char *buffer, uint16_t size) { /* - Perform the operation as the regular flash write, but with page erase/page write command + Perform the operation as the regular flash write */ - return nvm_write_V3(pgm, p, address, buffer, size, USE_WORD_ACCESS, UPDI_V3_NVMCTRL_CTRLA_FLASH_PAGE_ERASE_WRITE); + return nvm_write_V3(pgm, p, address, buffer, size, USE_WORD_ACCESS, USE_DEFAULT_COMMAND); } int updi_nvm_write_eeprom_V3(const PROGRAMMER *pgm, const AVRPART *p, uint32_t address, unsigned char *buffer, uint16_t size) { diff --git a/src/updi_nvm_v4.c b/src/updi_nvm_v4.c index 5d3b0cd6..0773983a 100644 --- a/src/updi_nvm_v4.c +++ b/src/updi_nvm_v4.c @@ -285,13 +285,9 @@ int updi_nvm_write_user_row_V4(const PROGRAMMER *pgm, const AVRPART *p, uint32_t int updi_nvm_write_boot_row_V4(const PROGRAMMER *pgm, const AVRPART *p, uint32_t address, unsigned char *buffer, uint16_t size) { /* - Write it as a regular flash page, but perform page erase first + Write it as a regular flash page */ - if (updi_nvm_erase_flash_page_V4(pgm, p, address) <0) { - pmsg_error("Flash page erase failed for bootrow\n"); - return -1; - } - return updi_nvm_write_flash_V4(pgm, p, address, buffer, size); + return nvm_write_V4(pgm, p, address, buffer, size, USE_WORD_ACCESS); } int updi_nvm_write_eeprom_V4(const PROGRAMMER *pgm, const AVRPART *p, uint32_t address, unsigned char *buffer, uint16_t size) { diff --git a/src/updi_nvm_v5.c b/src/updi_nvm_v5.c index bc11708e..a337678c 100644 --- a/src/updi_nvm_v5.c +++ b/src/updi_nvm_v5.c @@ -300,9 +300,9 @@ int updi_nvm_write_user_row_V5(const PROGRAMMER *pgm, const AVRPART *p, uint32_t int updi_nvm_write_boot_row_V5(const PROGRAMMER *pgm, const AVRPART *p, uint32_t address, unsigned char *buffer, uint16_t size) { /* - Perform the operation as the regular flash write, but with page erase/page write command + Perform the operation as the regular flash write */ - return nvm_write_V5(pgm, p, address, buffer, size, USE_WORD_ACCESS, UPDI_V5_NVMCTRL_CTRLA_FLASH_PAGE_ERASE_WRITE); + return nvm_write_V5(pgm, p, address, buffer, size, USE_WORD_ACCESS, USE_DEFAULT_COMMAND); } int updi_nvm_write_eeprom_V5(const PROGRAMMER *pgm, const AVRPART *p, uint32_t address, unsigned char *buffer, uint16_t size) {