First implementation of ATxmega support. By now, only the

PDI mode of the STK600 is supported.  Single-byte EEPROM
(and flash) updates do not work yet.
* avr.c: "boot" memory is a candidate memory region for paged
operations, besides "flash" and "eeprom".
* avrdude.conf.in: add ATxmega128A1 and ATxmega128A1revD
* avrpart.h: add the AVRPART_HAS_PDI flag (used to distinguish
ATxmega parts from classic AVRs), the nvm_base part field, and
the offset field for a memory region.
* config_gram.y: add "has_pdi", "nvm_base", and "offset"
* lexer.l: (Ditto.)
* main.c: disable auto_erase for ATxmega parts
* stk500v2.c: implement the XPROG functionality, and divert to
this for ATxmega parts
* avrdude.1: Document the changes.


git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@777 81a1dc3b-b13d-400b-aceb-764788c761c2
This commit is contained in:
Joerg Wunsch
2008-07-26 22:53:40 +00:00
parent 130eda2439
commit 8ae6321da2
11 changed files with 769 additions and 21 deletions

View File

@@ -12512,3 +12512,151 @@ part
"0 0 0 0 0 0 0 0 o o o o o o o o";
;
;
#------------------------------------------------------------
# ATxmega128A1 rev. D (engineering samples)
#------------------------------------------------------------
part
id = "x128a1d";
desc = "ATXMEGA128A1REVD";
signature = 0x1E 0x97 0x41;
has_jtag = yes;
has_pdi = yes;
nvm_base = 0x01C0;
memory "eeprom"
page_size = 32;
size = 2048;
;
memory "flash"
size = 0x20000;
page_size = 512;
;
memory "boot"
size = 0x2000;
page_size = 512;
;
# signature is actually in IO address space
memory "signature"
size = 3;
offset = 0x90;
;
memory "fuse0"
size = 1;
offset = 0x20;
;
memory "fuse1"
size = 1;
offset = 0x21;
;
memory "fuse2"
size = 1;
offset = 0x22;
;
memory "fuse4"
size = 1;
offset = 0x24;
;
memory "fuse5"
size = 1;
offset = 0x25;
;
memory "lockbits"
size = 1;
offset = 0x27;
;
memory "calibration"
size = 512;
offset = 0x200;
;
memory "usersig"
size = 512;
;
;
#------------------------------------------------------------
# ATxmega128A1
#------------------------------------------------------------
part
id = "x128a1";
desc = "ATXMEGA128A1";
signature = 0x1E 0x97 0x4C;
has_jtag = yes;
has_pdi = yes;
nvm_base = 0x01C0;
memory "eeprom"
page_size = 32;
size = 2048;
;
memory "flash"
size = 0x20000;
page_size = 512;
;
memory "boot"
size = 0x2000;
page_size = 512;
;
# signature is actually in IO address space
memory "signature"
size = 3;
offset = 0x90;
;
memory "fuse0"
size = 1;
offset = 0x20;
;
memory "fuse1"
size = 1;
offset = 0x21;
;
memory "fuse2"
size = 1;
offset = 0x22;
;
memory "fuse4"
size = 1;
offset = 0x24;
;
memory "fuse5"
size = 1;
offset = 0x25;
;
memory "lockbits"
size = 1;
offset = 0x27;
;
memory "calibration"
size = 512;
;
memory "usersig"
size = 512;
offset = 0x200;
;
;