From 9e56293d62f3e1c421fe0e0b58fa3adbeb26a754 Mon Sep 17 00:00:00 2001
From: dhoerl <dhoerl@81a1dc3b-b13d-400b-aceb-764788c761c2>
Date: Sat, 10 Oct 2009 20:03:51 +0000
Subject: [PATCH] avr32

git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk/avrdude@848 81a1dc3b-b13d-400b-aceb-764788c761c2
---
 avrdude.conf.in | 140 +++++++++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 139 insertions(+), 1 deletion(-)

diff --git a/avrdude.conf.in b/avrdude.conf.in
index 3f415a70..822b58f7 100644
--- a/avrdude.conf.in
+++ b/avrdude.conf.in
@@ -18,7 +18,7 @@
 #       type     = par | stk500 | stk500v2 | stk500pp | stk500hvsp | stk500generic |
 #                  stk600 | stk600pp | stk600hvsp |
 #                  avr910 | butterfly | usbasp |
-#                  jtagmki | jtagmkii | jtagmkii_isp | jtagmkii_dw |
+#                  jtagmki | jtagmkii | jtagmkii_isp | jtagmkii_dw | jtagmkII_avr32 |
 #                  dragon_dw | dragon_jtag | dragon_isp | dragon_pp |
 #                  dragon_hvsp | arduino; # programmer type
 #       baudrate = <num> ;                          # baudrate for avr910-programmer
@@ -97,6 +97,7 @@
 #       spmcr            = <num> ;                # mem addr of SPMC[S]R reg.
 #       eecr             = <num> ;                # mem addr of EECR reg.
 #                                                 # (only when != 0x3c)
+#       is_avr32         = <yes/no> ;             # AVR32 part
 #
 #       memory <memtype>
 #           paged           = <yes/no> ;          # yes / no
@@ -510,6 +511,13 @@ programmer
   type  = jtagmkii_dw;
 ;
 
+# JTAG ICE mkII in AVR32 mode
+programmer
+  id    = "jtagmkII_avr32";
+  desc  = "Atmel JTAG ICE mkII im AVR32 mode";
+  baudrate = 115200; 
+  type  = jtagmkii_avr32;
+;
 # AVR Dragon in JTAG mode
 programmer
   id    = "dragon_jtag";
@@ -15029,3 +15037,133 @@ part
     ;
 ;
 
+
+#------------------------------------------------------------
+# AVR32UC3A0512
+#------------------------------------------------------------
+
+part
+    id		= "ucr2";
+    desc	= "32UC3A0512";
+    signature	= 0xED 0xC0 0x3F;
+    has_jtag	= yes;
+    is_avr32    = yes;
+
+    memory "flash"
+        paged           = yes;
+        page_size       = 512;               # bytes
+        num_pages       = 1024 ;             # numeric
+        size		= 0x00080000;
+        offset		= 0x80000000;
+        readsize	= 512;
+    ;
+;
+
+
+
+#   part
+#       id               = <id> ;                 # quoted string
+#       desc             = <description> ;        # quoted string
+#       has_jtag         = <yes/no> ;             # part has JTAG i/f
+#       has_debugwire    = <yes/no> ;             # part has debugWire i/f
+#       devicecode       = <num> ;            # deprecated, use stk500_devcode
+#       stk500_devcode   = <num> ;                # numeric
+#       avr910_devcode   = <num> ;                # numeric
+#       signature        = <num> <num> <num> ;    # signature bytes
+#       chip_erase_delay = <num> ;                # micro-seconds
+#       reset            = dedicated | io;
+#       retry_pulse      = reset | sck;
+#       pgm_enable       = <instruction format> ;
+#       chip_erase       = <instruction format> ;
+#       chip_erase_delay = <num> ;                # chip erase delay (us)
+#       # STK500 parameters (parallel programming IO lines)
+#       pagel            = <num> ;                # pin name in hex, i.e., 0xD7
+#       bs2              = <num> ;                # pin name in hex, i.e., 0xA0
+#       serial           = <yes/no> ;             # can use serial downloading
+#       parallel         = <yes/no/pseudo>;       # can use par. programming
+#       # STK500v2 parameters, to be taken from Atmel's XML files
+#       timeout          = <num> ;
+#       stabdelay        = <num> ;
+#       cmdexedelay      = <num> ;
+#       synchloops       = <num> ;
+#       bytedelay        = <num> ;
+#       pollvalue        = <num> ;
+#       pollindex        = <num> ;
+#       predelay         = <num> ;
+#       postdelay        = <num> ;
+#       pollmethod       = <num> ;
+#       mode             = <num> ;
+#       delay            = <num> ;
+#       blocksize        = <num> ;
+#       readsize         = <num> ;
+#       hvspcmdexedelay  = <num> ;
+#       # STK500v2 HV programming parameters, from XML
+#       pp_controlstack  = <num>, <num>, ...;   # PP only
+#       hvsp_controlstack = <num>, <num>, ...;  # HVSP only
+#       hventerstabdelay = <num>;
+#       progmodedelay    = <num>;               # PP only
+#       latchcycles      = <num>;
+#       togglevtg        = <num>;
+#       poweroffdelay    = <num>;
+#       resetdelayms     = <num>;
+#       resetdelayus     = <num>;
+#       hvleavestabdelay = <num>;
+#       resetdelay       = <num>;
+#       synchcycles      = <num>;               # HVSP only
+#       chiperasepulsewidth = <num>;            # PP only
+#       chiperasepolltimeout = <num>;
+#       chiperasetime    = <num>;               # HVSP only
+#       programfusepulsewidth = <num>;          # PP only
+#       programfusepolltimeout = <num>;
+#       programlockpulsewidth = <num>;          # PP only
+#       programlockpolltimeout = <num>;
+#       # JTAG ICE mkII parameters, also from XML files
+#       allowfullpagebitstream = <yes/no> ;
+#       enablepageprogramming = <yes/no> ;
+#       idr              = <num> ;                # IO addr of IDR (OCD) reg.
+#       rampz            = <num> ;                # IO addr of RAMPZ reg.
+#       spmcr            = <num> ;                # mem addr of SPMC[S]R reg.
+#       eecr             = <num> ;                # mem addr of EECR reg.
+#                                                 # (only when != 0x3c)
+#
+#       memory <memtype>
+#           paged           = <yes/no> ;          # yes / no
+#           size            = <num> ;             # bytes
+#           page_size       = <num> ;             # bytes
+#           num_pages       = <num> ;             # numeric
+#           min_write_delay = <num> ;             # micro-seconds
+#           max_write_delay = <num> ;             # micro-seconds
+#           readback_p1     = <num> ;             # byte value
+#           readback_p2     = <num> ;             # byte value
+#           pwroff_after_write = <yes/no> ;       # yes / no
+#           read            = <instruction format> ;
+#           write           = <instruction format> ;
+#           read_lo         = <instruction format> ;
+#           read_hi         = <instruction format> ;
+#           write_lo        = <instruction format> ;
+#           write_hi        = <instruction format> ;
+#           loadpage_lo     = <instruction format> ;
+#           loadpage_hi     = <instruction format> ;
+#           writepage       = <instruction format> ;
+#         ;
+#     ;
+
+
+#   <flash_read_delay time="1000" to_rev="8"/>
+#   <avr_reset domains="5"/>
+#   <core_name>STILETTO</core_name>
+#   <flashc id="I7503" name="FLASHC" revision="2.0.0" address="0xFFFE1400" page_size="512" pages_pr_region="64" flash_size="524288">
+#       <fuses gp_hi_offset="0xC" gp_lo_offset="0x10"/>
+#   </flashc>
+#   <pm address="0xFFFF0C00"/>
+#   <memory>
+#       <block name="EBI_CS0" type="EXT_SRAM" address="0xC0000000" size="0x01000000"/>
+#       <block name="EBI_CS1" type="EXT_SRAM" address="0xD0000000" size="0x08000000"/>
+#       <block name="EBI_CS2" type="EXT_SRAM" address="0xC8000000" size="0x01000000"/>
+#       <block name="EBI_CS3" type="EXT_SRAM" address="0xCC000000" size="0x01000000"/>
+#       <block name="FLASH" type="FLASH" address="0x80000000" size="0x00080000"/>
+#       <block name="SRAM" type="INT_SRAM" address="0x00000000" size="0x00010000"/>
+#       <block name="USBB_SLAVE" type="INT_SRAM" address="0xE0000000" size="0x00800000"/>
+#   </memory>
+
+