diff --git a/ChangeLog b/ChangeLog index 4c71b926..cf6d8158 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2013-09-07 Joerg Wunsch + + * jtag3.c (jtag3_write_byte): Do not attempt to start the paged + algorithm for EEPROM when being connected through debugWIRE. + 2013-09-06 Joerg Wunsch Extend the single-byte algorithm to all devices, both flash and diff --git a/jtag3.c b/jtag3.c index 738abc2c..aa91741c 100644 --- a/jtag3.c +++ b/jtag3.c @@ -1575,8 +1575,12 @@ static int jtag3_write_byte(PROGRAMMER * pgm, AVRPART * p, AVRMEM * mem, if (pgm->flag & PGM_FL_IS_DW) unsupp = 1; } else if (strcmp(mem->desc, "eeprom") == 0) { - cache_ptr = PDATA(pgm)->eeprom_pagecache; - pagesize = PDATA(pgm)->eeprom_pagesize; + if (pgm->flag & PGM_FL_IS_DW) { + cmd[3] = MTYPE_EEPROM; + } else { + cache_ptr = PDATA(pgm)->eeprom_pagecache; + pagesize = PDATA(pgm)->eeprom_pagesize; + } PDATA(pgm)->eeprom_pageaddr = (unsigned long)-1L; } else if (strcmp(mem->desc, "lfuse") == 0) { cmd[3] = MTYPE_FUSE_BITS; @@ -1639,7 +1643,7 @@ static int jtag3_write_byte(PROGRAMMER * pgm, AVRPART * p, AVRMEM * mem, } /* non-paged writes go here */ - if (jtag3_program_enable(pgm) < 0) + if (!(pgm->flag & PGM_FL_IS_DW) && jtag3_program_enable(pgm) < 0) return -1; u32_to_b4(cmd + 8, 1);