From 5279d55b9e3e13c64476dbfabbee69af00285f37 Mon Sep 17 00:00:00 2001 From: joerg_wunsch Date: Mon, 11 Jan 2010 16:04:29 +0000 Subject: [PATCH] After erasing an Xmega part, do *not* reinitialize the world, as a subsequent programming operation will fail (for unknown reasons). Actually, this was really only required for ancient AVRs, but doesn't hurt on mega and tiny devices. git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk/avrdude@904 81a1dc3b-b13d-400b-aceb-764788c761c2 --- ChangeLog | 8 ++++++-- jtagmkII.c | 3 ++- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index 1c5c317b..7b64eb15 100644 --- a/ChangeLog +++ b/ChangeLog @@ -4,8 +4,12 @@ * jtagmkII_private.h: Add CMND_XMEGA_ERASE as well as the various XMEGA_ERASE_* definitions (from updated appnote AVR067) - * jtagmkII.c (jtagmkII_chip_erase): Correctly implement - Xmega chip erase based on CMND_XMEGA_ERASE. + * jtagmkII.c (jtagmkII_chip_erase): Correctly implement Xmega chip + erase based on CMND_XMEGA_ERASE. After erasing an Xmega part, do + *not* reinitialize the world, as a subsequent programming + operation will fail (for unknown reasons). Actually, this was + really only required for ancient AVRs, but doesn't hurt on mega + and tiny devices. * jtagmkII.c (jtagmkII_pre_write): Remove, this turned out to be just a chip erase. * jtagmkII.c (jtagmkII_program_disable): Don't try reading diff --git a/jtagmkII.c b/jtagmkII.c index 95cababc..c66852f2 100644 --- a/jtagmkII.c +++ b/jtagmkII.c @@ -907,7 +907,8 @@ static int jtagmkII_chip_erase(PROGRAMMER * pgm, AVRPART * p) return -1; } - pgm->initialize(pgm, p); + if (!(p->flags & AVRPART_HAS_PDI)) + pgm->initialize(pgm, p); return 0; }