[packages/crossavr-binutils] - synchronized patches with official AVR toolchain 3.4.1.830

kosmo kosmo at pld-linux.org
Fri Jan 18 22:07:49 CET 2013


commit fbe885ec910a853fb522137a5f563b68b4c59077
Author: Piotr Ziecik <kosmo at angel.net.pl>
Date:   Fri Jan 18 22:06:39 2013 +0100

    - synchronized patches with official AVR toolchain 3.4.1.830

 400-binutils-xmega.patch                        |  29 +-
 407-binutils-atxmega64_128_192_256a3u.patch     |  14 +-
 411-binutils-attiny80.patch                     |  34 --
 412-binutils-atxmega128a4u.patch                |   2 +-
 413-binutils-atxmega64d4.patch                  |   2 +-
 414-binutils-atmega164pa_168pa_32a_64a.patch    |   6 +-
 415-binutils-atxmega64_128_b3.patch             |  22 +-
 416-binutils-atxmega64b1.patch                  |  18 +-
 417-binutils-atmega_8a_128a_1284.patch          |   4 +-
 418-binutils-atxmega64a4u.patch                 |  18 +-
 419-binutils-atxmega128d4.patch                 |  18 +-
 420-binutils-atmxt336s.patch                    |   2 +-
 421-binutils-atxmega16c4_32c4_128c3_256c3.patch |  22 +-
 422-binutils-atxmega384d3.patch                 |   2 +-
 423-binutils-atmega48hvf.patch                  |   2 +-
 424-binutils-atmega26hvg.patch                  |   2 +-
 425-binutils-atmxt224_224e.patch                |   2 +-
 426-binutils-atxmega192c3.patch                 |  16 +-
 427-binutils-atmxt112sl.patch                   |   2 +-
 428-binutils-atxmega64c3.patch                  |  20 +-
 429-binutils-ata6285_6286.patch                 |   2 +-
 430-binutils-attiny828.patch                    |  24 +-
 431-binutils-ata5790_5790N_5795.patch           |   2 +-
 432-binutils-ata5272_5505.patch                 |   6 +-
 433-binutils-atmxt540s.patch                    |  50 +++
 434-binutils-ata5831.patch                      | 463 ++++++++++++++++++++++++
 435-binutils-attiny841.patch                    |  34 ++
 436-binutils-atxmega32_16_8e5.patch             |  38 ++
 500-binutils-bug13789.patch                     |  80 ++--
 501-binutils-modify-usb-xmega-isa.patch         |  10 +-
 503-binutils-avrtc193-tiny.patch                |  46 ++-
 504-binutils-avrtc530-backported.patch          |  24 ++
 505-binutils-avrtc446.patch                     |  40 ++
 crossavr-binutils.spec                          |  79 ++--
 34 files changed, 894 insertions(+), 241 deletions(-)
---
diff --git a/crossavr-binutils.spec b/crossavr-binutils.spec
index 36fe6d7..adbe48a 100644
--- a/crossavr-binutils.spec
+++ b/crossavr-binutils.spec
@@ -6,9 +6,9 @@ Summary(pt_BR.UTF-8):	Utilitários para desenvolvimento de binários da GNU - AV
 Summary(tr.UTF-8):	GNU geliştirme araçları - AVR binutils
 Name:		crossavr-binutils
 Version:	2.22
-Release:	1
+Release:	2
 Epoch:		1
-# Patches 1xx are taken form Atmel official AVR8-GNU toolchain version 3.4.0.633
+# Patches 1xx are taken form Atmel official AVR8-GNU toolchain version 3.4.1.830
 Patch100:	300-binutils-avr-size.patch
 Patch101:	301-binutils-avr-coff.patch
 Patch102:	302-binutils-as-dwarf.patch
@@ -28,32 +28,37 @@ Patch115:	407-binutils-atxmega64_128_192_256a3u.patch
 Patch116:	408-binutils-atmegarfr2_a2.patch
 Patch117:	409-binutils-atmega165pa.patch
 Patch118:	410-binutils-atxmega384c3.patch
-Patch119:	411-binutils-attiny80.patch
-Patch120:	412-binutils-atxmega128a4u.patch
-Patch121:	413-binutils-atxmega64d4.patch
-Patch122:	414-binutils-atmega164pa_168pa_32a_64a.patch
-Patch123:	415-binutils-atxmega64_128_b3.patch
-Patch124:	416-binutils-atxmega64b1.patch
-Patch125:	417-binutils-atmega_8a_128a_1284.patch
-Patch126:	418-binutils-atxmega64a4u.patch
-Patch127:	419-binutils-atxmega128d4.patch
-Patch128:	420-binutils-atmxt336s.patch
-Patch129:	421-binutils-atxmega16c4_32c4_128c3_256c3.patch
-Patch130:	422-binutils-atxmega384d3.patch
-Patch131:	423-binutils-atmega48hvf.patch
-Patch132:	424-binutils-atmega26hvg.patch
-Patch133:	425-binutils-atmxt224_224e.patch
-Patch134:	426-binutils-atxmega192c3.patch
-Patch135:	427-binutils-atmxt112sl.patch
-Patch136:	428-binutils-atxmega64c3.patch
-Patch137:	429-binutils-ata6285_6286.patch
-Patch138:	430-binutils-attiny828.patch
-Patch139:	431-binutils-ata5790_5790N_5795.patch
-Patch140:	432-binutils-ata5272_5505.patch
-Patch141:	500-binutils-bug13789.patch
-Patch142:	501-binutils-modify-usb-xmega-isa.patch
-Patch143:	502-binutils-add-config-section-tiny.patch
-Patch144:	503-binutils-avrtc193-tiny.patch
+Patch119:	412-binutils-atxmega128a4u.patch
+Patch120:	413-binutils-atxmega64d4.patch
+Patch121:	414-binutils-atmega164pa_168pa_32a_64a.patch
+Patch122:	415-binutils-atxmega64_128_b3.patch
+Patch123:	416-binutils-atxmega64b1.patch
+Patch124:	417-binutils-atmega_8a_128a_1284.patch
+Patch125:	418-binutils-atxmega64a4u.patch
+Patch126:	419-binutils-atxmega128d4.patch
+Patch127:	420-binutils-atmxt336s.patch
+Patch128:	421-binutils-atxmega16c4_32c4_128c3_256c3.patch
+Patch129:	422-binutils-atxmega384d3.patch
+Patch130:	423-binutils-atmega48hvf.patch
+Patch131:	424-binutils-atmega26hvg.patch
+Patch132:	425-binutils-atmxt224_224e.patch
+Patch133:	426-binutils-atxmega192c3.patch
+Patch134:	427-binutils-atmxt112sl.patch
+Patch135:	428-binutils-atxmega64c3.patch
+Patch136:	429-binutils-ata6285_6286.patch
+Patch137:	430-binutils-attiny828.patch
+Patch138:	431-binutils-ata5790_5790N_5795.patch
+Patch139:	432-binutils-ata5272_5505.patch
+Patch140:	433-binutils-atmxt540s.patch
+Patch141:	434-binutils-ata5831.patch
+Patch142:	435-binutils-attiny841.patch
+Patch143:	436-binutils-atxmega32_16_8e5.patch
+Patch144:	500-binutils-bug13789.patch
+Patch145:	501-binutils-modify-usb-xmega-isa.patch
+Patch146:	502-binutils-add-config-section-tiny.patch
+Patch147:	503-binutils-avrtc193-tiny.patch
+Patch148:	504-binutils-avrtc530-backported.patch
+Patch149:	505-binutils-avrtc446.patch
 License:	GPL
 Group:		Development/Tools
 Source0:	ftp://ftp.gnu.org/gnu/binutils/binutils-%{version}.tar.bz2
@@ -146,9 +151,25 @@ Ten pakiet zawiera wersję skrośną generującą kod dla Atmel AVR.
 %patch142 -p0
 %patch143 -p0
 %patch144 -p0
+%patch145 -p0
+%patch146 -p0
+%patch147 -p0
+%patch148 -p0
+%patch149 -p0
+
+# Remove hacks for specific autoconf version.
+echo > config/override.m4
 
 %build
-cp /usr/share/automake/config.sub .
+%{__aclocal}
+%{__autoconf}
+for subdir in bfd binutils ld; do
+	cd $subdir
+	%{__aclocal} -I.. -I../bfd -I../config
+	%{__automake}
+	%{__autoconf}
+	cd -
+done
 
 # ldscripts won't be generated properly if SHELL is not bash...
 CFLAGS="%{rpmcflags}" \
diff --git a/400-binutils-xmega.patch b/400-binutils-xmega.patch
index 8f72370..8c86b7a 100644
--- a/400-binutils-xmega.patch
+++ b/400-binutils-xmega.patch
@@ -1,6 +1,6 @@
 diff -Naurp binutils/size.c binutils/size.c
---- binutils/size.c	2011-12-16 12:43:06.000000000 +0530
-+++ binutils/size.c	2011-12-16 12:43:50.000000000 +0530
+--- binutils/size.c	2012-05-24 11:34:25.000000000 +0530
++++ binutils/size.c	2012-05-24 11:34:53.000000000 +0530
 @@ -121,6 +121,7 @@ avr_device_t avr[] =
  {
  	{"atxmega256a3",  AVR264K, AVR16K, AVR4K},
@@ -18,8 +18,17 @@ diff -Naurp binutils/size.c binutils/size.c
  
  	{"at43usb320",    AVR128K, 608UL,  0UL},
 diff -Naurp gas/config/tc-avr.c gas/config/tc-avr.c
---- gas/config/tc-avr.c	2011-12-16 12:43:06.000000000 +0530
-+++ gas/config/tc-avr.c	2011-12-16 12:43:50.000000000 +0530
+--- gas/config/tc-avr.c	2012-05-24 11:34:25.000000000 +0530
++++ gas/config/tc-avr.c	2012-05-24 11:39:23.000000000 +0530
+@@ -265,7 +265,7 @@ static struct mcu_type_s mcu_types[] =
+   {"atxmega64a1", AVR_ISA_XMEGA,  bfd_mach_avrxmega5},
+   {"atxmega64a1u",AVR_ISA_XMEGA,  bfd_mach_avrxmega5},
+   {"atxmega128a3", AVR_ISA_XMEGA, bfd_mach_avrxmega6},
+-  {"atxmega128b1", AVR_ISA_XMEGA, bfd_mach_avrxmega6},
++  {"atxmega128b1", AVR_ISA_XMEGAU, bfd_mach_avrxmega6},
+   {"atxmega128d3", AVR_ISA_XMEGA, bfd_mach_avrxmega6},
+   {"atxmega192a3", AVR_ISA_XMEGA, bfd_mach_avrxmega6},
+   {"atxmega192d3", AVR_ISA_XMEGA, bfd_mach_avrxmega6},
 @@ -453,6 +453,7 @@ md_show_usage (FILE *stream)
  	"                   avr5  - enhanced AVR core with up to 64K program memory\n"
  	"                   avr51 - enhanced AVR core with up to 128K program memory\n"
@@ -29,8 +38,8 @@ diff -Naurp gas/config/tc-avr.c gas/config/tc-avr.c
  	"                   avrxmega4 - XMEGA, > 64K, <= 128K FLASH, <= 64K RAM\n"
  	"                   avrxmega5 - XMEGA, > 64K, <= 128K FLASH, > 64K RAM\n"
 diff -Naurp gas/doc/c-avr.texi gas/doc/c-avr.texi
---- gas/doc/c-avr.texi	2011-03-24 22:33:03.000000000 +0530
-+++ gas/doc/c-avr.texi	2011-12-16 12:43:50.000000000 +0530
+--- gas/doc/c-avr.texi	2012-05-24 11:12:14.000000000 +0530
++++ gas/doc/c-avr.texi	2012-05-24 11:34:53.000000000 +0530
 @@ -103,7 +103,7 @@ atxmega64a1u).
  Instruction set avrxmega6 is for the XMEGA AVR core with up to 256K program
  memory space and less than 64K data space (MCU types: atxmega128a3,
@@ -41,8 +50,8 @@ diff -Naurp gas/doc/c-avr.texi gas/doc/c-avr.texi
  Instruction set avrxmega7 is for the XMEGA AVR core with up to 256K program
  memory space and greater than 64K data space (MCU types: atxmega128a1,
 diff -Naurp ld/Makefile.am ld/Makefile.am
---- ld/Makefile.am	2011-07-23 01:52:37.000000000 +0530
-+++ ld/Makefile.am	2011-12-16 12:43:50.000000000 +0530
+--- ld/Makefile.am	2012-05-24 11:12:14.000000000 +0530
++++ ld/Makefile.am	2012-05-24 11:34:53.000000000 +0530
 @@ -163,13 +163,13 @@ ALL_EMULATION_SOURCES = \
  	eavr5.c \
  	eavr51.c \
@@ -65,8 +74,8 @@ diff -Naurp ld/Makefile.am ld/Makefile.am
  	ecoff_sparc.c \
  	ecrisaout.c \
 diff -Naurp ld/Makefile.in ld/Makefile.in
---- ld/Makefile.in	2011-07-23 01:52:37.000000000 +0530
-+++ ld/Makefile.in	2011-12-16 12:43:50.000000000 +0530
+--- ld/Makefile.in	2012-05-24 11:12:14.000000000 +0530
++++ ld/Makefile.in	2012-05-24 11:34:53.000000000 +0530
 @@ -469,13 +469,13 @@ ALL_EMULATION_SOURCES = \
  	eavr5.c \
  	eavr51.c \
diff --git a/407-binutils-atxmega64_128_192_256a3u.patch b/407-binutils-atxmega64_128_192_256a3u.patch
index ec062de..6937975 100644
--- a/407-binutils-atxmega64_128_192_256a3u.patch
+++ b/407-binutils-atxmega64_128_192_256a3u.patch
@@ -1,6 +1,6 @@
 diff -Naurp binutils/size.c binutils/size.c
---- binutils/size.c	2011-12-22 12:10:12.000000000 +0530
-+++ binutils/size.c	2011-12-22 12:10:24.000000000 +0530
+--- binutils/size.c	2012-05-24 11:59:06.000000000 +0530
++++ binutils/size.c	2012-05-24 11:58:37.000000000 +0530
 @@ -120,6 +120,7 @@ typedef struct
  avr_device_t avr[] =
  {
@@ -32,8 +32,8 @@ diff -Naurp binutils/size.c binutils/size.c
  
  	{"at90can64",     AVR64K,  AVR4K,  AVR2K},
 diff -Naurp gas/config/tc-avr.c gas/config/tc-avr.c
---- gas/config/tc-avr.c	2011-12-22 12:10:12.000000000 +0530
-+++ gas/config/tc-avr.c	2011-12-22 12:11:34.000000000 +0530
+--- gas/config/tc-avr.c	2012-05-24 11:59:06.000000000 +0530
++++ gas/config/tc-avr.c	2012-05-24 12:22:35.000000000 +0530
 @@ -267,15 +267,19 @@ static struct mcu_type_s mcu_types[] =
    {"atxmega32d4", AVR_ISA_XMEGA,  bfd_mach_avrxmega2},
    {"atxmega32x1", AVR_ISA_XMEGA,  bfd_mach_avrxmega2},
@@ -44,7 +44,7 @@ diff -Naurp gas/config/tc-avr.c gas/config/tc-avr.c
    {"atxmega64a1u",AVR_ISA_XMEGA,  bfd_mach_avrxmega5},
    {"atxmega128a3", AVR_ISA_XMEGA, bfd_mach_avrxmega6},
 +  {"atxmega128a3u",AVR_ISA_XMEGAU, bfd_mach_avrxmega6},
-   {"atxmega128b1", AVR_ISA_XMEGA, bfd_mach_avrxmega6},
+   {"atxmega128b1", AVR_ISA_XMEGAU, bfd_mach_avrxmega6},
    {"atxmega128d3", AVR_ISA_XMEGA, bfd_mach_avrxmega6},
    {"atxmega192a3", AVR_ISA_XMEGA, bfd_mach_avrxmega6},
 +  {"atxmega192a3u",AVR_ISA_XMEGAU, bfd_mach_avrxmega6},
@@ -55,8 +55,8 @@ diff -Naurp gas/config/tc-avr.c gas/config/tc-avr.c
    {"atxmega256a3bu",AVR_ISA_XMEGA,bfd_mach_avrxmega6},
    {"atxmega256d3", AVR_ISA_XMEGA, bfd_mach_avrxmega6},
 diff -Naurp gas/doc/c-avr.texi gas/doc/c-avr.texi
---- gas/doc/c-avr.texi	2011-12-22 12:10:12.000000000 +0530
-+++ gas/doc/c-avr.texi	2011-12-22 12:10:24.000000000 +0530
+--- gas/doc/c-avr.texi	2012-05-24 11:59:06.000000000 +0530
++++ gas/doc/c-avr.texi	2012-05-24 11:58:37.000000000 +0530
 @@ -94,16 +94,16 @@ Instruction set avrxmega3 is for the XME
  memory space and greater than 64K data space (MCU types: none).
  
diff --git a/411-binutils-attiny80.patch b/411-binutils-attiny80.patch
deleted file mode 100644
index ae80368..0000000
--- a/411-binutils-attiny80.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-diff -Naurp binutils/size.c binutils/size.c
---- binutils/size.c	2011-12-16 15:29:27.000000000 +0530
-+++ binutils/size.c	2011-12-16 15:32:13.000000000 +0530
-@@ -317,6 +317,7 @@ avr_device_t avr[] =
- 	{"attiny461",     AVR4K,   AVR256, AVR256},
- 	{"attiny461a",    AVR4K,   AVR256, AVR256},
- 	{"attiny48",      AVR4K,   AVR256, AVR64},
-+	{"attiny80",      AVR8K,   AVR512, AVR256},
- 
- 	{"at86rf401",     AVR2K,   224UL,  AVR128},
- 	{"at90s2313",     AVR2K,   AVR128, AVR128},
-diff -Naurp gas/config/tc-avr.c gas/config/tc-avr.c
---- gas/config/tc-avr.c	2011-12-16 15:29:27.000000000 +0530
-+++ gas/config/tc-avr.c	2011-12-16 15:32:13.000000000 +0530
-@@ -132,6 +132,7 @@ static struct mcu_type_s mcu_types[] =
-   {"attiny43u",  AVR_ISA_AVR25,   bfd_mach_avr25},
-   {"attiny48",   AVR_ISA_AVR25,   bfd_mach_avr25},
-   {"attiny88",   AVR_ISA_AVR25,   bfd_mach_avr25},
-+  {"attiny80",   AVR_ISA_AVR25,   bfd_mach_avr25}, 
-   {"at86rf401",  AVR_ISA_RF401,   bfd_mach_avr25},
-   {"ata6289",    AVR_ISA_AVR25,   bfd_mach_avr25},
-   {"at43usb355", AVR_ISA_AVR3,    bfd_mach_avr3},
-diff -Naurp gas/doc/c-avr.texi gas/doc/c-avr.texi
---- gas/doc/c-avr.texi	2011-12-16 15:29:27.000000000 +0530
-+++ gas/doc/c-avr.texi	2011-12-16 15:32:13.000000000 +0530
-@@ -46,7 +46,7 @@ space plus the MOVW instruction (MCU typ
- attiny2313a, attiny24, attiny24a, attiny4313, attiny44, attiny44a, attiny84,
- attiny84a, attiny25, attiny45, attiny85, attiny261, attiny261a, attiny461,
- attiny461a, attiny861, attiny861a, attiny87, attiny43u, attiny48, attiny88,
--at86rf401, ata6289).
-+attiny80, at86rf401, ata6289).
- 
- Instruction set avr3 is for the classic AVR core with up to 128K program
- memory space (MCU types: at43usb355, at76c711).
diff --git a/412-binutils-atxmega128a4u.patch b/412-binutils-atxmega128a4u.patch
index 54f474e..2cc4bb7 100644
--- a/412-binutils-atxmega128a4u.patch
+++ b/412-binutils-atxmega128a4u.patch
@@ -12,7 +12,7 @@ diff -Naurp binutils/size.c binutils/size.c
 diff -Naurp gas/config/tc-avr.c gas/config/tc-avr.c
 --- gas/config/tc-avr.c	2011-12-22 12:22:14.000000000 +0530
 +++ gas/config/tc-avr.c	2011-12-22 12:23:13.000000000 +0530
-@@ -294,6 +294,7 @@ static struct mcu_type_s mcu_types[] =
+@@ -293,6 +293,7 @@ static struct mcu_type_s mcu_types[] =
    {"atxmega384c3", AVR_ISA_XMEGAU, bfd_mach_avrxmega6},
    {"atxmega128a1", AVR_ISA_XMEGA, bfd_mach_avrxmega7},
    {"atxmega128a1u", AVR_ISA_XMEGA, bfd_mach_avrxmega7},
diff --git a/413-binutils-atxmega64d4.patch b/413-binutils-atxmega64d4.patch
index ea0e162..c9972a3 100644
--- a/413-binutils-atxmega64d4.patch
+++ b/413-binutils-atxmega64d4.patch
@@ -14,7 +14,7 @@ diff -Naurp binutils/size.c binutils/size.c
 diff -Naurp gas/config/tc-avr.c gas/config/tc-avr.c
 --- gas/config/tc-avr.c	2011-12-22 12:27:41.000000000 +0530
 +++ gas/config/tc-avr.c	2011-12-22 12:28:09.000000000 +0530
-@@ -277,6 +277,7 @@ static struct mcu_type_s mcu_types[] =
+@@ -276,6 +276,7 @@ static struct mcu_type_s mcu_types[] =
    {"atxmega64a3", AVR_ISA_XMEGA,  bfd_mach_avrxmega4},
    {"atxmega64a3u",AVR_ISA_XMEGAU,  bfd_mach_avrxmega4},
    {"atxmega64d3", AVR_ISA_XMEGA,  bfd_mach_avrxmega4},
diff --git a/414-binutils-atmega164pa_168pa_32a_64a.patch b/414-binutils-atmega164pa_168pa_32a_64a.patch
index f9d7ecb..f695b88 100644
--- a/414-binutils-atmega164pa_168pa_32a_64a.patch
+++ b/414-binutils-atmega164pa_168pa_32a_64a.patch
@@ -36,7 +36,7 @@ diff -Naurp binutils/size.c binutils/size.c
 diff -Naurp gas/config/tc-avr.c gas/config/tc-avr.c
 --- gas/config/tc-avr.c	2011-12-16 15:36:12.000000000 +0530
 +++ gas/config/tc-avr.c	2011-12-16 15:38:01.000000000 +0530
-@@ -172,6 +172,7 @@ static struct mcu_type_s mcu_types[] =
+@@ -171,6 +171,7 @@ static struct mcu_type_s mcu_types[] =
    {"atmega163",  AVR_ISA_M161,    bfd_mach_avr5},
    {"atmega164a", AVR_ISA_AVR5,    bfd_mach_avr5},
    {"atmega164p", AVR_ISA_AVR5,    bfd_mach_avr5},
@@ -44,7 +44,7 @@ diff -Naurp gas/config/tc-avr.c gas/config/tc-avr.c
    {"atmega165",  AVR_ISA_AVR5,    bfd_mach_avr5},
    {"atmega165a", AVR_ISA_AVR5,    bfd_mach_avr5},
    {"atmega165p", AVR_ISA_AVR5,    bfd_mach_avr5},
-@@ -179,11 +180,13 @@ static struct mcu_type_s mcu_types[] =
+@@ -178,11 +179,13 @@ static struct mcu_type_s mcu_types[] =
    {"atmega168",  AVR_ISA_AVR5,    bfd_mach_avr5},
    {"atmega168a", AVR_ISA_AVR5,    bfd_mach_avr5},
    {"atmega168p", AVR_ISA_AVR5,    bfd_mach_avr5},
@@ -58,7 +58,7 @@ diff -Naurp gas/config/tc-avr.c gas/config/tc-avr.c
    {"atmega323",  AVR_ISA_AVR5,    bfd_mach_avr5},
    {"atmega324a", AVR_ISA_AVR5,    bfd_mach_avr5},
    {"atmega324p", AVR_ISA_AVR5,    bfd_mach_avr5},
-@@ -210,6 +213,7 @@ static struct mcu_type_s mcu_types[] =
+@@ -209,6 +212,7 @@ static struct mcu_type_s mcu_types[] =
    {"atmega64rfa2", AVR_ISA_AVR5,  bfd_mach_avr5},
    {"atmega64rfr2", AVR_ISA_AVR5,  bfd_mach_avr5},
    {"atmega64",   AVR_ISA_AVR5,    bfd_mach_avr5},
diff --git a/415-binutils-atxmega64_128_b3.patch b/415-binutils-atxmega64_128_b3.patch
index 93db106..cf7ff99 100644
--- a/415-binutils-atxmega64_128_b3.patch
+++ b/415-binutils-atxmega64_128_b3.patch
@@ -1,6 +1,6 @@
 diff -Naurp binutils/size.c binutils/size.c
---- binutils/size.c	2011-12-22 12:30:35.000000000 +0530
-+++ binutils/size.c	2011-12-22 12:30:49.000000000 +0530
+--- binutils/size.c	2012-05-24 12:35:24.000000000 +0530
++++ binutils/size.c	2012-05-24 12:34:25.000000000 +0530
 @@ -147,6 +147,7 @@ avr_device_t avr[] =
  	{"atxmega128a3",  AVR136K, AVR8K,  AVR2K},
  	{"atxmega128a3u", AVR136K, AVR8K,  AVR2K},
@@ -18,27 +18,27 @@ diff -Naurp binutils/size.c binutils/size.c
  	{"atxmega64d4",   AVR68K,  AVR4K,  AVR2K},
  
 diff -Naurp gas/config/tc-avr.c gas/config/tc-avr.c
---- gas/config/tc-avr.c	2011-12-22 12:30:35.000000000 +0530
-+++ gas/config/tc-avr.c	2011-12-22 12:31:58.000000000 +0530
-@@ -280,6 +280,7 @@ static struct mcu_type_s mcu_types[] =
+--- gas/config/tc-avr.c	2012-05-24 12:35:24.000000000 +0530
++++ gas/config/tc-avr.c	2012-05-24 13:33:13.000000000 +0530
+@@ -279,6 +279,7 @@ static struct mcu_type_s mcu_types[] =
    {"atxmega32x1", AVR_ISA_XMEGA,  bfd_mach_avrxmega2},
    {"atxmega64a3", AVR_ISA_XMEGA,  bfd_mach_avrxmega4},
    {"atxmega64a3u",AVR_ISA_XMEGAU,  bfd_mach_avrxmega4},
-+  {"atxmega64b3", AVR_ISA_XMEGA,  bfd_mach_avrxmega4},
++  {"atxmega64b3", AVR_ISA_XMEGAU,  bfd_mach_avrxmega4},
    {"atxmega64d3", AVR_ISA_XMEGA,  bfd_mach_avrxmega4},
    {"atxmega64d4", AVR_ISA_XMEGA,  bfd_mach_avrxmega4},
    {"atxmega64a1", AVR_ISA_XMEGA,  bfd_mach_avrxmega5},
-@@ -287,6 +288,7 @@ static struct mcu_type_s mcu_types[] =
+@@ -286,6 +287,7 @@ static struct mcu_type_s mcu_types[] =
    {"atxmega128a3", AVR_ISA_XMEGA, bfd_mach_avrxmega6},
    {"atxmega128a3u",AVR_ISA_XMEGAU, bfd_mach_avrxmega6},
-   {"atxmega128b1", AVR_ISA_XMEGA, bfd_mach_avrxmega6},
-+  {"atxmega128b3", AVR_ISA_XMEGA, bfd_mach_avrxmega6},
+   {"atxmega128b1", AVR_ISA_XMEGAU, bfd_mach_avrxmega6},
++  {"atxmega128b3", AVR_ISA_XMEGAU, bfd_mach_avrxmega6},
    {"atxmega128d3", AVR_ISA_XMEGA, bfd_mach_avrxmega6},
    {"atxmega192a3", AVR_ISA_XMEGA, bfd_mach_avrxmega6},
    {"atxmega192a3u",AVR_ISA_XMEGAU, bfd_mach_avrxmega6},
 diff -Naurp gas/doc/c-avr.texi gas/doc/c-avr.texi
---- gas/doc/c-avr.texi	2011-12-22 12:30:35.000000000 +0530
-+++ gas/doc/c-avr.texi	2011-12-22 12:30:49.000000000 +0530
+--- gas/doc/c-avr.texi	2012-05-24 12:35:24.000000000 +0530
++++ gas/doc/c-avr.texi	2012-05-24 12:34:25.000000000 +0530
 @@ -95,7 +95,7 @@ memory space and greater than 64K data s
  
  Instruction set avrxmega4 is for the XMEGA AVR core with up to 64K program
diff --git a/416-binutils-atxmega64b1.patch b/416-binutils-atxmega64b1.patch
index 09ee9ec..251ae87 100644
--- a/416-binutils-atxmega64b1.patch
+++ b/416-binutils-atxmega64b1.patch
@@ -1,6 +1,6 @@
 diff -Naurp binutils/size.c binutils/size.c
---- binutils/size.c	2011-12-22 12:33:22.000000000 +0530
-+++ binutils/size.c	2011-12-22 12:33:37.000000000 +0530
+--- binutils/size.c	2012-05-24 13:36:19.000000000 +0530
++++ binutils/size.c	2012-05-24 13:36:30.000000000 +0530
 @@ -165,6 +165,7 @@ avr_device_t avr[] =
  	{"atxmega64a1u",  AVR68K,  AVR4K,  AVR2K},
  	{"atxmega64a3",   AVR68K,  AVR4K,  AVR2K},
@@ -10,19 +10,19 @@ diff -Naurp binutils/size.c binutils/size.c
  	{"atxmega64d3",   AVR68K,  AVR4K,  AVR2K},
  	{"atxmega64d4",   AVR68K,  AVR4K,  AVR2K},
 diff -Naurp gas/config/tc-avr.c gas/config/tc-avr.c
---- gas/config/tc-avr.c	2011-12-22 12:33:22.000000000 +0530
-+++ gas/config/tc-avr.c	2011-12-22 12:34:22.000000000 +0530
-@@ -280,6 +280,7 @@ static struct mcu_type_s mcu_types[] =
+--- gas/config/tc-avr.c	2012-05-24 13:36:19.000000000 +0530
++++ gas/config/tc-avr.c	2012-05-24 13:37:46.000000000 +0530
+@@ -279,6 +279,7 @@ static struct mcu_type_s mcu_types[] =
    {"atxmega32x1", AVR_ISA_XMEGA,  bfd_mach_avrxmega2},
    {"atxmega64a3", AVR_ISA_XMEGA,  bfd_mach_avrxmega4},
    {"atxmega64a3u",AVR_ISA_XMEGAU,  bfd_mach_avrxmega4},
-+  {"atxmega64b1", AVR_ISA_XMEGA,  bfd_mach_avrxmega4},
-   {"atxmega64b3", AVR_ISA_XMEGA,  bfd_mach_avrxmega4},
++  {"atxmega64b1", AVR_ISA_XMEGAU,  bfd_mach_avrxmega4},
+   {"atxmega64b3", AVR_ISA_XMEGAU,  bfd_mach_avrxmega4},
    {"atxmega64d3", AVR_ISA_XMEGA,  bfd_mach_avrxmega4},
    {"atxmega64d4", AVR_ISA_XMEGA,  bfd_mach_avrxmega4},
 diff -Naurp gas/doc/c-avr.texi gas/doc/c-avr.texi
---- gas/doc/c-avr.texi	2011-12-22 12:33:22.000000000 +0530
-+++ gas/doc/c-avr.texi	2011-12-22 12:33:37.000000000 +0530
+--- gas/doc/c-avr.texi	2012-05-24 13:36:19.000000000 +0530
++++ gas/doc/c-avr.texi	2012-05-24 13:36:30.000000000 +0530
 @@ -95,7 +95,7 @@ memory space and greater than 64K data s
  
  Instruction set avrxmega4 is for the XMEGA AVR core with up to 64K program
diff --git a/417-binutils-atmega_8a_128a_1284.patch b/417-binutils-atmega_8a_128a_1284.patch
index 6699131..4260b3c 100644
--- a/417-binutils-atmega_8a_128a_1284.patch
+++ b/417-binutils-atmega_8a_128a_1284.patch
@@ -23,7 +23,7 @@ diff -Naurp binutils/size.c binutils/size.c
 diff -Naurp gas/config/tc-avr.c gas/config/tc-avr.c
 --- gas/config/tc-avr.c	2011-12-16 15:50:12.000000000 +0530
 +++ gas/config/tc-avr.c	2011-12-16 15:51:32.000000000 +0530
-@@ -147,6 +147,7 @@ static struct mcu_type_s mcu_types[] =
+@@ -146,6 +146,7 @@ static struct mcu_type_s mcu_types[] =
    {"atmega32u2", AVR_ISA_AVR35,   bfd_mach_avr35},
    {"attiny1634", AVR_ISA_AVR35,   bfd_mach_avr35},
    {"atmega8",    AVR_ISA_M8,      bfd_mach_avr4},
@@ -31,7 +31,7 @@ diff -Naurp gas/config/tc-avr.c gas/config/tc-avr.c
    {"atmega48",   AVR_ISA_AVR4,    bfd_mach_avr4},
    {"atmega48a",  AVR_ISA_AVR4,    bfd_mach_avr4},
    {"atmega48pa", AVR_ISA_AVR4,    bfd_mach_avr4},
-@@ -257,8 +258,10 @@ static struct mcu_type_s mcu_types[] =
+@@ -256,8 +257,10 @@ static struct mcu_type_s mcu_types[] =
    {"at94k",      AVR_ISA_94K,     bfd_mach_avr5},
    {"m3000",      AVR_ISA_AVR5,    bfd_mach_avr5},
    {"atmega128",  AVR_ISA_AVR51,   bfd_mach_avr51},
diff --git a/418-binutils-atxmega64a4u.patch b/418-binutils-atxmega64a4u.patch
index 8ba4a13..08dd483 100644
--- a/418-binutils-atxmega64a4u.patch
+++ b/418-binutils-atxmega64a4u.patch
@@ -1,6 +1,6 @@
 diff -Naurp binutils/size.c binutils/size.c
---- binutils/size.c	2011-12-22 12:36:03.000000000 +0530
-+++ binutils/size.c	2011-12-22 12:36:08.000000000 +0530
+--- binutils/size.c	2012-05-24 13:45:31.000000000 +0530
++++ binutils/size.c	2012-05-24 13:39:53.000000000 +0530
 @@ -167,6 +167,7 @@ avr_device_t avr[] =
  	{"atxmega64a1u",  AVR68K,  AVR4K,  AVR2K},
  	{"atxmega64a3",   AVR68K,  AVR4K,  AVR2K},
@@ -10,19 +10,19 @@ diff -Naurp binutils/size.c binutils/size.c
  	{"atxmega64b3",   AVR68K,  AVR4K,  AVR2K},
  	{"atxmega64d3",   AVR68K,  AVR4K,  AVR2K},
 diff -Naurp gas/config/tc-avr.c gas/config/tc-avr.c
---- gas/config/tc-avr.c	2011-12-22 12:36:03.000000000 +0530
-+++ gas/config/tc-avr.c	2011-12-22 12:36:51.000000000 +0530
-@@ -283,6 +283,7 @@ static struct mcu_type_s mcu_types[] =
+--- gas/config/tc-avr.c	2012-05-24 13:45:31.000000000 +0530
++++ gas/config/tc-avr.c	2012-05-24 13:42:34.000000000 +0530
+@@ -282,6 +282,7 @@ static struct mcu_type_s mcu_types[] =
    {"atxmega32x1", AVR_ISA_XMEGA,  bfd_mach_avrxmega2},
    {"atxmega64a3", AVR_ISA_XMEGA,  bfd_mach_avrxmega4},
    {"atxmega64a3u",AVR_ISA_XMEGAU,  bfd_mach_avrxmega4},
 +  {"atxmega64a4u",AVR_ISA_XMEGAU,  bfd_mach_avrxmega4},
-   {"atxmega64b1", AVR_ISA_XMEGA,  bfd_mach_avrxmega4},
-   {"atxmega64b3", AVR_ISA_XMEGA,  bfd_mach_avrxmega4},
+   {"atxmega64b1", AVR_ISA_XMEGAU,  bfd_mach_avrxmega4},
+   {"atxmega64b3", AVR_ISA_XMEGAU,  bfd_mach_avrxmega4},
    {"atxmega64d3", AVR_ISA_XMEGA,  bfd_mach_avrxmega4},
 diff -Naurp gas/doc/c-avr.texi gas/doc/c-avr.texi
---- gas/doc/c-avr.texi	2011-12-22 12:36:03.000000000 +0530
-+++ gas/doc/c-avr.texi	2011-12-22 12:36:08.000000000 +0530
+--- gas/doc/c-avr.texi	2012-05-24 13:45:31.000000000 +0530
++++ gas/doc/c-avr.texi	2012-05-24 13:39:53.000000000 +0530
 @@ -95,7 +95,7 @@ memory space and greater than 64K data s
  
  Instruction set avrxmega4 is for the XMEGA AVR core with up to 64K program
diff --git a/419-binutils-atxmega128d4.patch b/419-binutils-atxmega128d4.patch
index 2ba7043..e4357c9 100644
--- a/419-binutils-atxmega128d4.patch
+++ b/419-binutils-atxmega128d4.patch
@@ -1,6 +1,6 @@
 diff -Naurp binutils/size.c binutils/size.c
---- binutils/size.c	2011-12-22 12:38:05.000000000 +0530
-+++ binutils/size.c	2011-12-22 12:38:14.000000000 +0530
+--- binutils/size.c	2012-05-24 13:56:07.000000000 +0530
++++ binutils/size.c	2012-05-24 13:55:34.000000000 +0530
 @@ -149,6 +149,7 @@ avr_device_t avr[] =
  	{"atxmega128b1",  AVR136K, AVR8K,  AVR2K},
  	{"atxmega128b3",  AVR136K, AVR8K,  AVR2K},
@@ -10,19 +10,19 @@ diff -Naurp binutils/size.c binutils/size.c
  	{"at43usb320",    AVR128K, 608UL,  0UL},
  	{"at90can128",    AVR128K, AVR4K,  AVR4K},
 diff -Naurp gas/config/tc-avr.c gas/config/tc-avr.c
---- gas/config/tc-avr.c	2011-12-22 12:38:05.000000000 +0530
-+++ gas/config/tc-avr.c	2011-12-22 12:38:14.000000000 +0530
-@@ -295,6 +295,7 @@ static struct mcu_type_s mcu_types[] =
-   {"atxmega128b1", AVR_ISA_XMEGA, bfd_mach_avrxmega6},
-   {"atxmega128b3", AVR_ISA_XMEGA, bfd_mach_avrxmega6},
+--- gas/config/tc-avr.c	2012-05-24 13:56:07.000000000 +0530
++++ gas/config/tc-avr.c	2012-05-24 13:55:34.000000000 +0530
+@@ -294,6 +294,7 @@ static struct mcu_type_s mcu_types[] =
+   {"atxmega128b1", AVR_ISA_XMEGAU, bfd_mach_avrxmega6},
+   {"atxmega128b3", AVR_ISA_XMEGAU, bfd_mach_avrxmega6},
    {"atxmega128d3", AVR_ISA_XMEGA, bfd_mach_avrxmega6},
 +  {"atxmega128d4", AVR_ISA_XMEGA, bfd_mach_avrxmega6},
    {"atxmega192a3", AVR_ISA_XMEGA, bfd_mach_avrxmega6},
    {"atxmega192a3u",AVR_ISA_XMEGAU, bfd_mach_avrxmega6},
    {"atxmega192d3", AVR_ISA_XMEGA, bfd_mach_avrxmega6},
 diff -Naurp gas/doc/c-avr.texi gas/doc/c-avr.texi
---- gas/doc/c-avr.texi	2011-12-22 12:38:05.000000000 +0530
-+++ gas/doc/c-avr.texi	2011-12-22 12:38:14.000000000 +0530
+--- gas/doc/c-avr.texi	2012-05-24 13:56:07.000000000 +0530
++++ gas/doc/c-avr.texi	2012-05-24 13:55:34.000000000 +0530
 @@ -103,7 +103,7 @@ atxmega64a1u).
  
  Instruction set avrxmega6 is for the XMEGA AVR core with up to 256K program
diff --git a/420-binutils-atmxt336s.patch b/420-binutils-atmxt336s.patch
index 21abb68..dfa6176 100644
--- a/420-binutils-atmxt336s.patch
+++ b/420-binutils-atmxt336s.patch
@@ -28,7 +28,7 @@ diff -Naurp binutils/size.c binutils/size.c
 diff -Naurp gas/config/tc-avr.c gas/config/tc-avr.c
 --- gas/config/tc-avr.c	2011-12-22 12:39:06.000000000 +0530
 +++ gas/config/tc-avr.c	2011-12-22 12:39:15.000000000 +0530
-@@ -273,6 +273,7 @@ static struct mcu_type_s mcu_types[] =
+@@ -272,6 +272,7 @@ static struct mcu_type_s mcu_types[] =
    {"atmega2561", AVR_ISA_AVR6,    bfd_mach_avr6},
    {"atmega256rfa2", AVR_ISA_AVR6, bfd_mach_avr6},
    {"atmega256rfr2", AVR_ISA_AVR6, bfd_mach_avr6},
diff --git a/421-binutils-atxmega16c4_32c4_128c3_256c3.patch b/421-binutils-atxmega16c4_32c4_128c3_256c3.patch
index da36513..519511b 100644
--- a/421-binutils-atxmega16c4_32c4_128c3_256c3.patch
+++ b/421-binutils-atxmega16c4_32c4_128c3_256c3.patch
@@ -1,6 +1,6 @@
 diff -Naurp binutils/size.c binutils/size.c
---- binutils/size.c	2011-12-22 12:40:00.000000000 +0530
-+++ binutils/size.c	2011-12-22 12:40:10.000000000 +0530
+--- binutils/size.c	2012-05-24 13:51:13.000000000 +0530
++++ binutils/size.c	2012-05-24 13:48:23.000000000 +0530
 @@ -131,6 +131,7 @@ avr_device_t avr[] =
  	{"atxmega256a3u", AVR264K, AVR16K, AVR4K},
  	{"atxmega256a3b", AVR264K, AVR16K, AVR4K},
@@ -34,9 +34,9 @@ diff -Naurp binutils/size.c binutils/size.c
  
  	{"at76c711",      AVR16K,  AVR2K,  0UL},
 diff -Naurp gas/config/tc-avr.c gas/config/tc-avr.c
---- gas/config/tc-avr.c	2011-12-22 12:40:00.000000000 +0530
-+++ gas/config/tc-avr.c	2011-12-22 12:44:21.000000000 +0530
-@@ -276,10 +276,12 @@ static struct mcu_type_s mcu_types[] =
+--- gas/config/tc-avr.c	2012-05-24 13:51:13.000000000 +0530
++++ gas/config/tc-avr.c	2012-05-24 13:49:35.000000000 +0530
+@@ -275,10 +275,12 @@ static struct mcu_type_s mcu_types[] =
    {"atmxt336s",   AVR_ISA_XMEGA,  bfd_mach_avrxmega2},
    {"atxmega16a4", AVR_ISA_XMEGA,  bfd_mach_avrxmega2},
    {"atxmega16a4u",AVR_ISA_XMEGAU,  bfd_mach_avrxmega2},
@@ -49,15 +49,15 @@ diff -Naurp gas/config/tc-avr.c gas/config/tc-avr.c
    {"atxmega32d4", AVR_ISA_XMEGA,  bfd_mach_avrxmega2},
    {"atxmega32x1", AVR_ISA_XMEGA,  bfd_mach_avrxmega2},
    {"atxmega64a3", AVR_ISA_XMEGA,  bfd_mach_avrxmega4},
-@@ -295,6 +297,7 @@ static struct mcu_type_s mcu_types[] =
+@@ -294,6 +296,7 @@ static struct mcu_type_s mcu_types[] =
    {"atxmega128a3u",AVR_ISA_XMEGAU, bfd_mach_avrxmega6},
-   {"atxmega128b1", AVR_ISA_XMEGA, bfd_mach_avrxmega6},
-   {"atxmega128b3", AVR_ISA_XMEGA, bfd_mach_avrxmega6},
+   {"atxmega128b1", AVR_ISA_XMEGAU, bfd_mach_avrxmega6},
+   {"atxmega128b3", AVR_ISA_XMEGAU, bfd_mach_avrxmega6},
 +  {"atxmega128c3", AVR_ISA_XMEGAU, bfd_mach_avrxmega6},
    {"atxmega128d3", AVR_ISA_XMEGA, bfd_mach_avrxmega6},
    {"atxmega128d4", AVR_ISA_XMEGA, bfd_mach_avrxmega6},
    {"atxmega192a3", AVR_ISA_XMEGA, bfd_mach_avrxmega6},
-@@ -304,6 +307,7 @@ static struct mcu_type_s mcu_types[] =
+@@ -303,6 +306,7 @@ static struct mcu_type_s mcu_types[] =
    {"atxmega256a3u",AVR_ISA_XMEGAU, bfd_mach_avrxmega6},
    {"atxmega256a3b",AVR_ISA_XMEGA, bfd_mach_avrxmega6},
    {"atxmega256a3bu",AVR_ISA_XMEGA,bfd_mach_avrxmega6},
@@ -66,8 +66,8 @@ diff -Naurp gas/config/tc-avr.c gas/config/tc-avr.c
    {"atxmega384c3", AVR_ISA_XMEGAU, bfd_mach_avrxmega6},
    {"atxmega128a1", AVR_ISA_XMEGA, bfd_mach_avrxmega7},
 diff -Naurp gas/doc/c-avr.texi gas/doc/c-avr.texi
---- gas/doc/c-avr.texi	2011-12-22 12:40:00.000000000 +0530
-+++ gas/doc/c-avr.texi	2011-12-22 12:40:10.000000000 +0530
+--- gas/doc/c-avr.texi	2012-05-24 13:51:13.000000000 +0530
++++ gas/doc/c-avr.texi	2012-05-24 13:48:23.000000000 +0530
 @@ -87,8 +87,9 @@ Instruction set avr6 is for the enhanced
  atmega2560, atmega2561, atmega256rfa2, atmega256rfr2).
  
diff --git a/422-binutils-atxmega384d3.patch b/422-binutils-atxmega384d3.patch
index 6c0d049..94a0c4f 100644
--- a/422-binutils-atxmega384d3.patch
+++ b/422-binutils-atxmega384d3.patch
@@ -21,7 +21,7 @@ diff -Naurp binutils/size.c binutils/size.c
 diff -Naurp gas/config/tc-avr.c gas/config/tc-avr.c
 --- gas/config/tc-avr.c	2011-12-22 12:45:34.000000000 +0530
 +++ gas/config/tc-avr.c	2011-12-22 12:46:09.000000000 +0530
-@@ -310,6 +310,7 @@ static struct mcu_type_s mcu_types[] =
+@@ -309,6 +309,7 @@ static struct mcu_type_s mcu_types[] =
    {"atxmega256c3", AVR_ISA_XMEGAU, bfd_mach_avrxmega6},
    {"atxmega256d3", AVR_ISA_XMEGA, bfd_mach_avrxmega6},
    {"atxmega384c3", AVR_ISA_XMEGAU, bfd_mach_avrxmega6},
diff --git a/423-binutils-atmega48hvf.patch b/423-binutils-atmega48hvf.patch
index 9328887..3352879 100644
--- a/423-binutils-atmega48hvf.patch
+++ b/423-binutils-atmega48hvf.patch
@@ -20,7 +20,7 @@ diff -Naurp binutils/size.c binutils/size.c
 diff -Naurp gas/config/tc-avr.c gas/config/tc-avr.c
 --- gas/config/tc-avr.c	2011-12-16 16:16:32.000000000 +0530
 +++ gas/config/tc-avr.c	2011-12-16 16:22:02.000000000 +0530
-@@ -238,6 +238,7 @@ static struct mcu_type_s mcu_types[] =
+@@ -237,6 +237,7 @@ static struct mcu_type_s mcu_types[] =
    {"atmega16hvbrevb",AVR_ISA_AVR5,bfd_mach_avr5},
    {"atmega32hvb",AVR_ISA_AVR5,    bfd_mach_avr5},
    {"atmega32hvbrevb",AVR_ISA_AVR5,bfd_mach_avr5},
diff --git a/424-binutils-atmega26hvg.patch b/424-binutils-atmega26hvg.patch
index fa61f9a..5bffc8f 100644
--- a/424-binutils-atmega26hvg.patch
+++ b/424-binutils-atmega26hvg.patch
@@ -21,7 +21,7 @@ diff -Naurp binutils/size.c binutils/size.c
 diff -Naurp gas/config/tc-avr.c gas/config/tc-avr.c
 --- gas/config/tc-avr.c	2011-12-22 12:53:39.000000000 +0530
 +++ gas/config/tc-avr.c	2011-12-22 12:53:45.000000000 +0530
-@@ -236,6 +236,7 @@ static struct mcu_type_s mcu_types[] =
+@@ -235,6 +235,7 @@ static struct mcu_type_s mcu_types[] =
    {"atmega16hva2",AVR_ISA_AVR5,    bfd_mach_avr5},
    {"atmega16hvb",AVR_ISA_AVR5,    bfd_mach_avr5},
    {"atmega16hvbrevb",AVR_ISA_AVR5,bfd_mach_avr5},
diff --git a/425-binutils-atmxt224_224e.patch b/425-binutils-atmxt224_224e.patch
index 9c74659..435a34d 100644
--- a/425-binutils-atmxt224_224e.patch
+++ b/425-binutils-atmxt224_224e.patch
@@ -21,7 +21,7 @@ diff -Naurp binutils/size.c binutils/size.c
 diff -Naurp gas/config/tc-avr.c gas/config/tc-avr.c
 --- gas/config/tc-avr.c	2012-02-10 20:48:10.000000000 +0530
 +++ gas/config/tc-avr.c	2012-02-10 20:49:19.000000000 +0530
-@@ -275,6 +275,8 @@ static struct mcu_type_s mcu_types[] =
+@@ -274,6 +274,8 @@ static struct mcu_type_s mcu_types[] =
    {"atmega2561", AVR_ISA_AVR6,    bfd_mach_avr6},
    {"atmega256rfa2", AVR_ISA_AVR6, bfd_mach_avr6},
    {"atmega256rfr2", AVR_ISA_AVR6, bfd_mach_avr6},
diff --git a/426-binutils-atxmega192c3.patch b/426-binutils-atxmega192c3.patch
index 7cca678..ed93d18 100644
--- a/426-binutils-atxmega192c3.patch
+++ b/426-binutils-atxmega192c3.patch
@@ -1,6 +1,6 @@
 diff -Naurp binutils/size.c binutils/size.c
---- binutils/size.c	2012-02-10 20:56:48.000000000 +0530
-+++ binutils/size.c	2012-02-10 20:57:23.000000000 +0530
+--- binutils/size.c	2012-05-24 13:59:33.000000000 +0530
++++ binutils/size.c	2012-05-24 13:59:02.000000000 +0530
 @@ -145,6 +145,7 @@ avr_device_t avr[] =
  
  	{"atxmega192a3",  AVR200K, AVR16K, AVR2K},
@@ -10,19 +10,19 @@ diff -Naurp binutils/size.c binutils/size.c
  
  	{"atmega128rfa2", AVR128K, AVR16K, AVR4K},
 diff -Naurp gas/config/tc-avr.c gas/config/tc-avr.c
---- gas/config/tc-avr.c	2012-02-10 20:56:48.000000000 +0530
-+++ gas/config/tc-avr.c	2012-02-10 21:01:00.000000000 +0530
-@@ -306,6 +306,7 @@ static struct mcu_type_s mcu_types[] =
+--- gas/config/tc-avr.c	2012-05-24 13:59:33.000000000 +0530
++++ gas/config/tc-avr.c	2012-05-24 14:00:01.000000000 +0530
+@@ -305,6 +305,7 @@ static struct mcu_type_s mcu_types[] =
    {"atxmega128d4", AVR_ISA_XMEGA, bfd_mach_avrxmega6},
    {"atxmega192a3", AVR_ISA_XMEGA, bfd_mach_avrxmega6},
    {"atxmega192a3u",AVR_ISA_XMEGAU, bfd_mach_avrxmega6},
-+  {"atxmega192c3", AVR_ISA_XMEGA, bfd_mach_avrxmega6},
++  {"atxmega192c3", AVR_ISA_XMEGAU, bfd_mach_avrxmega6},
    {"atxmega192d3", AVR_ISA_XMEGA, bfd_mach_avrxmega6},
    {"atxmega256a3", AVR_ISA_XMEGA, bfd_mach_avrxmega6},
    {"atxmega256a3u",AVR_ISA_XMEGAU, bfd_mach_avrxmega6},
 diff -Naurp gas/doc/c-avr.texi gas/doc/c-avr.texi
---- gas/doc/c-avr.texi	2012-02-10 20:56:48.000000000 +0530
-+++ gas/doc/c-avr.texi	2012-02-10 20:59:05.000000000 +0530
+--- gas/doc/c-avr.texi	2012-05-24 13:59:33.000000000 +0530
++++ gas/doc/c-avr.texi	2012-05-24 13:59:02.000000000 +0530
 @@ -105,7 +105,7 @@ atxmega64a1u).
  Instruction set avrxmega6 is for the XMEGA AVR core with up to 256K program
  memory space and less than 64K data space (MCU types: atxmega128a3, atxmega128a3u,
diff --git a/427-binutils-atmxt112sl.patch b/427-binutils-atmxt112sl.patch
index ca0dfcd..44be7a0 100644
--- a/427-binutils-atmxt112sl.patch
+++ b/427-binutils-atmxt112sl.patch
@@ -13,7 +13,7 @@ diff -Naurp binutils/size.c binutils/size.c
 diff -Naurp gas/config/tc-avr.c gas/config/tc-avr.c
 --- gas/config/tc-avr.c	2012-02-10 21:04:14.000000000 +0530
 +++ gas/config/tc-avr.c	2012-02-10 21:04:48.000000000 +0530
-@@ -275,6 +275,7 @@ static struct mcu_type_s mcu_types[] =
+@@ -274,6 +274,7 @@ static struct mcu_type_s mcu_types[] =
    {"atmega2561", AVR_ISA_AVR6,    bfd_mach_avr6},
    {"atmega256rfa2", AVR_ISA_AVR6, bfd_mach_avr6},
    {"atmega256rfr2", AVR_ISA_AVR6, bfd_mach_avr6},
diff --git a/428-binutils-atxmega64c3.patch b/428-binutils-atxmega64c3.patch
index 18cd1af..83788d3 100644
--- a/428-binutils-atxmega64c3.patch
+++ b/428-binutils-atxmega64c3.patch
@@ -1,6 +1,6 @@
 diff -Naurp binutils/size.c binutils/size.c
---- binutils/size.c	2012-02-10 21:10:36.000000000 +0530
-+++ binutils/size.c	2012-02-10 21:11:04.000000000 +0530
+--- binutils/size.c	2012-05-24 14:09:02.000000000 +0530
++++ binutils/size.c	2012-05-24 14:06:13.000000000 +0530
 @@ -182,6 +182,7 @@ avr_device_t avr[] =
  	{"atxmega64a4u",  AVR68K,  AVR4K,  AVR2K},
  	{"atxmega64b1",   AVR68K,  AVR4K,  AVR2K},
@@ -10,19 +10,19 @@ diff -Naurp binutils/size.c binutils/size.c
  	{"atxmega64d4",   AVR68K,  AVR4K,  AVR2K},
  
 diff -Naurp gas/config/tc-avr.c gas/config/tc-avr.c
---- gas/config/tc-avr.c	2012-02-10 21:10:36.000000000 +0530
-+++ gas/config/tc-avr.c	2012-02-10 21:11:04.000000000 +0530
-@@ -294,6 +294,7 @@ static struct mcu_type_s mcu_types[] =
+--- gas/config/tc-avr.c	2012-05-24 14:09:02.000000000 +0530
++++ gas/config/tc-avr.c	2012-05-24 14:07:22.000000000 +0530
+@@ -293,6 +293,7 @@ static struct mcu_type_s mcu_types[] =
    {"atxmega64a4u",AVR_ISA_XMEGAU,  bfd_mach_avrxmega4},
-   {"atxmega64b1", AVR_ISA_XMEGA,  bfd_mach_avrxmega4},
-   {"atxmega64b3", AVR_ISA_XMEGA,  bfd_mach_avrxmega4},
-+  {"atxmega64c3", AVR_ISA_XMEGA,  bfd_mach_avrxmega4},
+   {"atxmega64b1", AVR_ISA_XMEGAU,  bfd_mach_avrxmega4},
+   {"atxmega64b3", AVR_ISA_XMEGAU,  bfd_mach_avrxmega4},
++  {"atxmega64c3", AVR_ISA_XMEGAU,  bfd_mach_avrxmega4},
    {"atxmega64d3", AVR_ISA_XMEGA,  bfd_mach_avrxmega4},
    {"atxmega64d4", AVR_ISA_XMEGA,  bfd_mach_avrxmega4},
    {"atxmega64a1", AVR_ISA_XMEGA,  bfd_mach_avrxmega5},
 diff -Naurp gas/doc/c-avr.texi gas/doc/c-avr.texi
---- gas/doc/c-avr.texi	2012-02-10 21:10:36.000000000 +0530
-+++ gas/doc/c-avr.texi	2012-02-10 21:11:04.000000000 +0530
+--- gas/doc/c-avr.texi	2012-05-24 14:09:02.000000000 +0530
++++ gas/doc/c-avr.texi	2012-05-24 14:06:13.000000000 +0530
 @@ -96,7 +96,7 @@ memory space and greater than 64K data s
  
  Instruction set avrxmega4 is for the XMEGA AVR core with up to 64K program
diff --git a/429-binutils-ata6285_6286.patch b/429-binutils-ata6285_6286.patch
index 1bc67ba..3235ada 100644
--- a/429-binutils-ata6285_6286.patch
+++ b/429-binutils-ata6285_6286.patch
@@ -13,7 +13,7 @@ diff -Naurp binutils/size.c binutils/size.c
 diff -Naurp gas/config/tc-avr.c gas/config/tc-avr.c
 --- gas/config/tc-avr.c	2012-02-15 13:57:09.000000000 +0530
 +++ gas/config/tc-avr.c	2012-02-17 11:06:57.000000000 +0530
-@@ -148,6 +148,8 @@ static struct mcu_type_s mcu_types[] =
+@@ -147,6 +147,8 @@ static struct mcu_type_s mcu_types[] =
    {"attiny1634", AVR_ISA_AVR35,   bfd_mach_avr35},
    {"atmega8",    AVR_ISA_M8,      bfd_mach_avr4},
    {"atmega8a",   AVR_ISA_M8,      bfd_mach_avr4},
diff --git a/430-binutils-attiny828.patch b/430-binutils-attiny828.patch
index c7d443b..de8cd1d 100644
--- a/430-binutils-attiny828.patch
+++ b/430-binutils-attiny828.patch
@@ -1,34 +1,34 @@
 diff -Naurp binutils/size.c binutils/size.c
---- binutils/size.c	2012-02-23 15:24:08.000000000 +0530
-+++ binutils/size.c	2012-02-23 15:27:09.000000000 +0530
-@@ -357,6 +357,7 @@ avr_device_t avr[] =
+--- binutils/size.c	2012-05-30 18:16:01.000000000 +0530
++++ binutils/size.c	2012-05-30 18:16:01.000000000 +0530
+@@ -356,6 +356,7 @@ avr_device_t avr[] =
+ 	{"attiny461",     AVR4K,   AVR256, AVR256},
  	{"attiny461a",    AVR4K,   AVR256, AVR256},
  	{"attiny48",      AVR4K,   AVR256, AVR64},
- 	{"attiny80",      AVR8K,   AVR512, AVR256},
 +	{"attiny828",     AVR8K,   AVR512, AVR256},
  
  	{"at86rf401",     AVR2K,   224UL,  AVR128},
  	{"at90s2313",     AVR2K,   AVR128, AVR128},
 diff -Naurp gas/config/tc-avr.c gas/config/tc-avr.c
---- gas/config/tc-avr.c	2012-02-23 15:24:08.000000000 +0530
-+++ gas/config/tc-avr.c	2012-02-23 15:26:16.000000000 +0530
-@@ -133,6 +133,7 @@ static struct mcu_type_s mcu_types[] =
+--- gas/config/tc-avr.c	2012-05-30 18:16:01.000000000 +0530
++++ gas/config/tc-avr.c	2012-05-30 18:16:01.000000000 +0530
+@@ -132,6 +132,7 @@ static struct mcu_type_s mcu_types[] =
+   {"attiny43u",  AVR_ISA_AVR25,   bfd_mach_avr25},
    {"attiny48",   AVR_ISA_AVR25,   bfd_mach_avr25},
    {"attiny88",   AVR_ISA_AVR25,   bfd_mach_avr25},
-   {"attiny80",   AVR_ISA_AVR25,   bfd_mach_avr25}, 
 +  {"attiny828",  AVR_ISA_AVR25,   bfd_mach_avr25}, 
    {"at86rf401",  AVR_ISA_RF401,   bfd_mach_avr25},
    {"ata6289",    AVR_ISA_AVR25,   bfd_mach_avr25},
    {"at43usb355", AVR_ISA_AVR3,    bfd_mach_avr3},
 diff -Naurp gas/doc/c-avr.texi gas/doc/c-avr.texi
---- gas/doc/c-avr.texi	2012-02-23 15:24:08.000000000 +0530
-+++ gas/doc/c-avr.texi	2012-02-23 15:27:30.000000000 +0530
+--- gas/doc/c-avr.texi	2012-05-30 18:16:01.000000000 +0530
++++ gas/doc/c-avr.texi	2012-05-30 18:16:01.000000000 +0530
 @@ -46,7 +46,7 @@ space plus the MOVW instruction (MCU typ
  attiny2313a, attiny24, attiny24a, attiny4313, attiny44, attiny44a, attiny84,
  attiny84a, attiny25, attiny45, attiny85, attiny261, attiny261a, attiny461,
  attiny461a, attiny861, attiny861a, attiny87, attiny43u, attiny48, attiny88,
--attiny80, at86rf401, ata6289).
-+attiny80, attiny828, at86rf401, ata6289).
+-at86rf401, ata6289).
++attiny828, at86rf401, ata6289).
  
  Instruction set avr3 is for the classic AVR core with up to 128K program
  memory space (MCU types: at43usb355, at76c711).
diff --git a/431-binutils-ata5790_5790N_5795.patch b/431-binutils-ata5790_5790N_5795.patch
index 794a4c8..755253e 100644
--- a/431-binutils-ata5790_5790N_5795.patch
+++ b/431-binutils-ata5790_5790N_5795.patch
@@ -22,7 +22,7 @@ diff -Naurp binutils/size.c binutils/size.c
 diff -Naurp gas/config/tc-avr.c gas/config/tc-avr.c
 --- gas/config/tc-avr.c	2012-02-27 11:45:17.000000000 +0530
 +++ gas/config/tc-avr.c	2012-02-27 11:46:30.000000000 +0530
-@@ -169,6 +169,9 @@ static struct mcu_type_s mcu_types[] =
+@@ -168,6 +168,9 @@ static struct mcu_type_s mcu_types[] =
    {"at90pwm3b",  AVR_ISA_AVR4,    bfd_mach_avr4},
    {"at90pwm81",  AVR_ISA_AVR4,    bfd_mach_avr4},
    {"at90pwm161", AVR_ISA_AVR5,    bfd_mach_avr5},
diff --git a/432-binutils-ata5272_5505.patch b/432-binutils-ata5272_5505.patch
index 015a830..0b42dae 100644
--- a/432-binutils-ata5272_5505.patch
+++ b/432-binutils-ata5272_5505.patch
@@ -24,7 +24,7 @@ diff -Naurp gas/config/tc-avr.c gas/config/tc-avr.c
    {"attiny13",   AVR_ISA_AVR25,   bfd_mach_avr25},
    {"attiny13a",  AVR_ISA_AVR25,   bfd_mach_avr25},
    {"attiny2313", AVR_ISA_AVR25,   bfd_mach_avr25},
-@@ -143,6 +144,7 @@ static struct mcu_type_s mcu_types[] =
+@@ -142,6 +143,7 @@ static struct mcu_type_s mcu_types[] =
    {"attiny167",  AVR_ISA_AVR35,   bfd_mach_avr35},
    {"at90usb82",  AVR_ISA_AVR35,   bfd_mach_avr35},
    {"at90usb162", AVR_ISA_AVR35,   bfd_mach_avr35},
@@ -39,8 +39,8 @@ diff -Naurp gas/doc/c-avr.texi gas/doc/c-avr.texi
  attiny2313a, attiny24, attiny24a, attiny4313, attiny44, attiny44a, attiny84,
  attiny84a, attiny25, attiny45, attiny85, attiny261, attiny261a, attiny461,
  attiny461a, attiny861, attiny861a, attiny87, attiny43u, attiny48, attiny88,
--attiny80, attiny828, at86rf401, ata6289).
-+attiny80, attiny828, at86rf401, ata6289, ata5272).
+-attiny828, at86rf401, ata6289).
++attiny828, at86rf401, ata6289, ata5272).
  
  Instruction set avr3 is for the classic AVR core with up to 128K program
  memory space (MCU types: at43usb355, at76c711).
diff --git a/433-binutils-atmxt540s.patch b/433-binutils-atmxt540s.patch
new file mode 100644
index 0000000..d231b3b
--- /dev/null
+++ b/433-binutils-atmxt540s.patch
@@ -0,0 +1,50 @@
+diff -Naurp binutils/size.c binutils/size.c
+--- binutils/size.c	2012-06-28 16:09:08.000000000 +0530
++++ binutils/size.c	2012-06-28 16:13:56.000000000 +0530
+@@ -97,6 +97,7 @@ static int return_code = 0;
+ #define AVR4K 4096UL
+ #define AVR8K 8192UL
+ #define AVR9K 9216UL
++#define AVR10K 10240UL
+ #define AVR14K 14336UL
+ #define AVR16K 16384UL
+ #define AVR20K 20480UL
+@@ -152,6 +153,9 @@ avr_device_t avr[] =
+ 	{"atmega128rfa2", AVR128K, AVR16K, AVR4K},
+ 	{"atmega128rfr2", AVR128K, AVR16K, AVR4K},
+ 
++	{"atmxt540s",     AVR136K, AVR10K, 0UL},
++	{"atmxt540sreva",AVR136K, AVR10K, 0UL},
++
+ 	{"atxmega128a1",  AVR136K, AVR8K,  AVR2K},
+ 	{"atxmega128a1u", AVR136K, AVR8K,  AVR2K},
+ 	{"atxmega128a4u", AVR136K, AVR8K,  AVR2K},
+diff -Naurp gas/config/tc-avr.c gas/config/tc-avr.c
+--- gas/config/tc-avr.c	2012-06-28 16:09:08.000000000 +0530
++++ gas/config/tc-avr.c	2012-06-28 16:15:11.000000000 +0530
+@@ -313,6 +313,8 @@ static struct mcu_type_s mcu_types[] =
+   {"atxmega128c3", AVR_ISA_XMEGAU, bfd_mach_avrxmega6},
+   {"atxmega128d3", AVR_ISA_XMEGA, bfd_mach_avrxmega6},
+   {"atxmega128d4", AVR_ISA_XMEGA, bfd_mach_avrxmega6},
++  {"atmxt540s",    AVR_ISA_XMEGA, bfd_mach_avrxmega6},
++  {"atmxt540sreva", AVR_ISA_XMEGA, bfd_mach_avrxmega6},
+   {"atxmega192a3", AVR_ISA_XMEGA, bfd_mach_avrxmega6},
+   {"atxmega192a3u",AVR_ISA_XMEGAU, bfd_mach_avrxmega6},
+   {"atxmega192c3", AVR_ISA_XMEGAU, bfd_mach_avrxmega6},
+diff -Naurp gas/doc/c-avr.texi gas/doc/c-avr.texi
+--- gas/doc/c-avr.texi	2012-06-28 16:09:08.000000000 +0530
++++ gas/doc/c-avr.texi	2012-06-28 16:16:53.000000000 +0530
+@@ -105,9 +105,10 @@ atxmega64a1u).
+ 
+ Instruction set avrxmega6 is for the XMEGA AVR core with up to 256K program
+ memory space and less than 64K data space (MCU types: atxmega128a3, atxmega128a3u,
+-atxmega128c3, atxmega128d3, atxmega128d4, atxmega192a3, atxmega192a3u, atxmega128b1,
+-atxmega128b3, atxmega192c3, atxmega192d3, atxmega256a3, atxmega256a3u, atxmega256a3b, atxmega256a3bu,
+-atxmega256c3, atxmega256d3, atxmega384c3, atxmega384d3).
++atxmega128c3, atxmega128d3, atxmega128d4, atmxt540s, atmxt540sreva, atxmega192a3,
++atxmega192a3u, atxmega128b1, atxmega128b3, atxmega192c3, atxmega192d3, atxmega256a3,
++atxmega256a3u, atxmega256a3b, atxmega256a3bu, atxmega256c3, atxmega256d3, atxmega384c3,
++atxmega384d3).
+ 
+ Instruction set avrxmega7 is for the XMEGA AVR core with greater than 64K program
+ memory space and greater than 64K data space (MCU types: atxmega128a1,
diff --git a/434-binutils-ata5831.patch b/434-binutils-ata5831.patch
new file mode 100644
index 0000000..2816532
--- /dev/null
+++ b/434-binutils-ata5831.patch
@@ -0,0 +1,463 @@
+diff -Naurp bfd/archures.c bfd/archures.c
+--- bfd/archures.c	2012-07-03 11:35:37.000000000 +0530
++++ bfd/archures.c	2012-07-03 11:38:04.000000000 +0530
+@@ -381,6 +381,7 @@ DESCRIPTION
+ .#define bfd_mach_avr5		5
+ .#define bfd_mach_avr51		51
+ .#define bfd_mach_avr6		6
++.#define bfd_mach_avr7		7
+ .#define bfd_mach_avrxmega1 101
+ .#define bfd_mach_avrxmega2 102
+ .#define bfd_mach_avrxmega3 103
+diff -Naurp bfd/cpu-avr.c bfd/cpu-avr.c
+--- bfd/cpu-avr.c	2012-07-03 11:35:37.000000000 +0530
++++ bfd/cpu-avr.c	2012-07-03 11:38:04.000000000 +0530
+@@ -134,27 +134,30 @@ static const bfd_arch_info_type arch_inf
+ 
+   /* 3-Byte PC.  */
+   N (22, bfd_mach_avr6, "avr:6", FALSE, & arch_info_struct[10]),
++
++  /* 20K flash. starts at 0x8000 */
++  N (16, bfd_mach_avr7, "avr:7", FALSE, & arch_info_struct[11]),
+   
+   /* Xmega 1 */
+-  N (24, bfd_mach_avrxmega1, "avr:101", FALSE, & arch_info_struct[11]),
++  N (24, bfd_mach_avrxmega1, "avr:101", FALSE, & arch_info_struct[12]),
+ 
+   /* Xmega 2 */
+-  N (24, bfd_mach_avrxmega2, "avr:102", FALSE, & arch_info_struct[12]),
++  N (24, bfd_mach_avrxmega2, "avr:102", FALSE, & arch_info_struct[13]),
+   
+   /* Xmega 3 */
+-  N (24, bfd_mach_avrxmega3, "avr:103", FALSE, & arch_info_struct[13]),
++  N (24, bfd_mach_avrxmega3, "avr:103", FALSE, & arch_info_struct[14]),
+   
+   /* Xmega 4 */
+-  N (24, bfd_mach_avrxmega4, "avr:104", FALSE, & arch_info_struct[14]),
++  N (24, bfd_mach_avrxmega4, "avr:104", FALSE, & arch_info_struct[15]),
+   
+   /* Xmega 5 */
+-  N (24, bfd_mach_avrxmega5, "avr:105", FALSE, & arch_info_struct[15]),
++  N (24, bfd_mach_avrxmega5, "avr:105", FALSE, & arch_info_struct[16]),
+   
+   /* Xmega 6 */
+-  N (24, bfd_mach_avrxmega6, "avr:106", FALSE, & arch_info_struct[16]),
++  N (24, bfd_mach_avrxmega6, "avr:106", FALSE, & arch_info_struct[17]),
+   
+   /* Xmega 7 */
+-  N (24, bfd_mach_avrxmega7, "avr:107", FALSE, & arch_info_struct[17]),
++  N (24, bfd_mach_avrxmega7, "avr:107", FALSE, & arch_info_struct[18]),
+   
+   /* attiny 10 */
+   N (16, bfd_mach_avrtiny10, "avr:201", FALSE, NULL)
+diff -Naurp bfd/elf32-avr.c bfd/elf32-avr.c
+--- bfd/elf32-avr.c	2012-07-03 11:35:37.000000000 +0530
++++ bfd/elf32-avr.c	2012-07-03 11:38:04.000000000 +0530
+@@ -1299,6 +1299,10 @@ bfd_elf_avr_final_write_processing (bfd 
+       val = E_AVR_MACH_AVR6;
+       break;
+ 
++    case bfd_mach_avr7:
++      val = E_AVR_MACH_AVR7;
++      break;
++
+     case bfd_mach_avrxmega1:
+       val = E_AVR_MACH_XMEGA1;
+       break;
+@@ -1393,6 +1397,10 @@ elf32_avr_object_p (bfd *abfd)
+ 	  e_set = bfd_mach_avr6;
+ 	  break;
+ 
++	case E_AVR_MACH_AVR7:
++	  e_set = bfd_mach_avr7;
++	  break;
++
+ 	case E_AVR_MACH_XMEGA1:
+ 	  e_set = bfd_mach_avrxmega1;
+ 	  break;
+diff -Naurp binutils/size.c binutils/size.c
+--- binutils/size.c	2012-07-03 11:36:50.000000000 +0530
++++ binutils/size.c	2012-07-03 11:38:04.000000000 +0530
+@@ -283,6 +283,8 @@ avr_device_t avr[] =
+ 	{"atxmega16c4",   AVR20K,  AVR2K,  AVR1K},
+ 	{"atxmega16d4",   AVR20K,  AVR2K,  AVR1K},
+ 
++	{"ata5831",       AVR20K,  AVR1K,  AVR1K},
++
+ 	{"at76c711",      AVR16K,  AVR2K,  0UL},
+ 	{"at90pwm161",    AVR16K,  AVR1K,  AVR512},
+ 	{"at90pwm216",    AVR16K,  AVR1K,  AVR512},
+diff -Naurp gas/config/tc-avr.c gas/config/tc-avr.c
+--- gas/config/tc-avr.c	2012-07-03 11:36:50.000000000 +0530
++++ gas/config/tc-avr.c	2012-07-03 11:38:04.000000000 +0530
+@@ -83,6 +83,7 @@ static struct mcu_type_s mcu_types[] =
+   {"avr5",       AVR_ISA_AVR51,   bfd_mach_avr5},
+   {"avr51",      AVR_ISA_AVR51,   bfd_mach_avr51},
+   {"avr6",       AVR_ISA_AVR6,    bfd_mach_avr6},
++  {"avr7",       AVR_ISA_AVR7,    bfd_mach_avr7},
+   {"avrxmega1",  AVR_ISA_XMEGA,   bfd_mach_avrxmega1},
+   {"avrxmega2",  AVR_ISA_XMEGA,   bfd_mach_avrxmega2},
+   {"avrxmega3",  AVR_ISA_XMEGA,   bfd_mach_avrxmega3},
+@@ -282,6 +283,7 @@ static struct mcu_type_s mcu_types[] =
+   {"atmega2561", AVR_ISA_AVR6,    bfd_mach_avr6},
+   {"atmega256rfa2", AVR_ISA_AVR6, bfd_mach_avr6},
+   {"atmega256rfr2", AVR_ISA_AVR6, bfd_mach_avr6},
++  {"ata5831",    AVR_ISA_AVR7, bfd_mach_avr7},
+   {"atmxt112sl",  AVR_ISA_XMEGA,  bfd_mach_avrxmega2},
+   {"atmxt224",    AVR_ISA_XMEGA,  bfd_mach_avrxmega2},
+   {"atmxt224e",   AVR_ISA_XMEGA,  bfd_mach_avrxmega2},
+@@ -514,6 +516,8 @@ md_show_usage (FILE *stream)
+ 	"                   avr5  - enhanced AVR core with up to 64K program memory\n"
+ 	"                   avr51 - enhanced AVR core with up to 128K program memory\n"
+ 	"                   avr6  - enhanced AVR core with up to 256K program memory\n"
++	"                   avr7  - enhanced AVR core with up to 20K program memory\n"
++	"                           flash starting address is not zero\n"
+ 	"                   avrxmega2 - XMEGA, > 8K, < 64K FLASH, < 64K RAM\n"
+ 	"                   avrxmega3 - XMEGA, > 8K, <= 64K FLASH, > 64K RAM\n"
+ 	"                   avrxmega4 - XMEGA, > 64K, <= 128K FLASH, <= 64K RAM\n"
+diff -Naurp gas/doc/c-avr.texi gas/doc/c-avr.texi
+--- gas/doc/c-avr.texi	2012-07-03 11:36:50.000000000 +0530
++++ gas/doc/c-avr.texi	2012-07-03 11:38:04.000000000 +0530
+@@ -87,6 +87,9 @@ atmega128rfa1, atmega128rfa2, atmega128r
+ Instruction set avr6 is for the enhanced AVR core with a 3-byte PC (MCU types:
+ atmega2560, atmega2561, atmega256rfa2, atmega256rfr2).
+ 
++Instruction set avr7 is for the enhanced AVR core with 20K flash which starts
++from 0x8000 (MCU types: ata5831)
++
+ Instruction set avrxmega2 is for the XMEGA AVR core with 8K to 64K program
+ memory space and less than 64K data space (MCU types: atxmega16a4, atxmega16a4u, atxmega16c4,
+ atxmega16d4, atxmega16x1, atxmega32a4, atxmega32a4u, ,atxmega32c4, atxmega32d4,
+diff -Naurp include/elf/avr.h include/elf/avr.h
+--- include/elf/avr.h	2012-07-03 11:35:37.000000000 +0530
++++ include/elf/avr.h	2012-07-03 11:38:04.000000000 +0530
+@@ -40,6 +40,7 @@
+ #define E_AVR_MACH_AVR5 5
+ #define E_AVR_MACH_AVR51 51
+ #define E_AVR_MACH_AVR6 6 
++#define E_AVR_MACH_AVR7 7 
+ #define E_AVR_MACH_XMEGA1 101
+ #define E_AVR_MACH_XMEGA2 102
+ #define E_AVR_MACH_XMEGA3 103
+diff -Naurp include/opcode/avr.h include/opcode/avr.h
+--- include/opcode/avr.h	2012-07-03 11:35:37.000000000 +0530
++++ include/opcode/avr.h	2012-07-03 11:38:04.000000000 +0530
+@@ -72,6 +72,8 @@
+                         AVR_ISA_ELPM | AVR_ISA_ELPMX | AVR_ISA_SPM | \
+                         AVR_ISA_BRK | AVR_ISA_EIND | AVR_ISA_MOVW)
+ 
++#define AVR_ISA_AVR7   (AVR_ISA_M8 | AVR_ISA_MEGA | AVR_ISA_BRK )
++
+ #define AVR_ISA_AVRTINY10 (AVR_ISA_1200 | AVR_ISA_BRK | AVR_ISA_SRAM)
+ 
+ #define REGISTER_P(x) ((x) == 'r'		\
+diff -Naurp ld/configure.tgt ld/configure.tgt
+--- ld/configure.tgt	2012-07-03 11:35:37.000000000 +0530
++++ ld/configure.tgt	2012-07-03 11:38:04.000000000 +0530
+@@ -98,7 +98,7 @@ arm*-*-uclinux*)	targ_emul=armelf_linux
+ arm-*-vxworks)		targ_emul=armelf_vxworks ;;
+ arm*-*-conix*)		targ_emul=armelf ;;
+ avr-*-*)		targ_emul=avr2
+-			targ_extra_emuls="avr1 avr25 avr3 avr31 avr35 avr4 avr5 avr51 avr6 avrxmega1 avrxmega2 avrxmega3 avrxmega4 avrxmega5 avrxmega6 avrxmega7 avrtiny10"
++			targ_extra_emuls="avr1 avr25 avr3 avr31 avr35 avr4 avr5 avr51 avr6 avr7 avrxmega1 avrxmega2 avrxmega3 avrxmega4 avrxmega5 avrxmega6 avrxmega7 avrtiny10"
+ 			;;
+ bfin-*-elf)		targ_emul=elf32bfin;
+ 			targ_extra_emuls="elf32bfinfd"
+diff -Naurp ld/emulparams/avr7.sh ld/emulparams/avr7.sh
+--- ld/emulparams/avr7.sh	1970-01-01 05:30:00.000000000 +0530
++++ ld/emulparams/avr7.sh	2012-07-03 11:38:04.000000000 +0530
+@@ -0,0 +1,13 @@
++ARCH=avr:7
++MACHINE=
++SCRIPT_NAME=avr7
++OUTPUT_FORMAT="elf32-avr"
++MAXPAGESIZE=1
++EMBEDDED=yes
++TEMPLATE_NAME=elf32
++
++TEXT_ORIGIN=0x8000
++TEXT_LENGTH=20K
++DATA_ORIGIN=0x800200
++DATA_LENGTH=0x400
++EXTRA_EM_FILE=avrelf
+diff -Naurp ld/Makefile.am ld/Makefile.am
+--- ld/Makefile.am	2012-07-03 11:35:37.000000000 +0530
++++ ld/Makefile.am	2012-07-03 11:38:04.000000000 +0530
+@@ -163,6 +163,7 @@ ALL_EMULATION_SOURCES = \
+ 	eavr5.c \
+ 	eavr51.c \
+ 	eavr6.c \
++	eavr7.c \
+ 	eavrxmega1.c \
+ 	eavrxmega2.c \
+ 	eavrxmega3.c \
+@@ -791,6 +792,10 @@ eavr6.c: $(srcdir)/emulparams/avr6.sh $(
+   $(ELF_DEPS) $(srcdir)/scripttempl/avr.sc \
+   ${GEN_DEPENDS}
+ 	${GENSCRIPTS} avr6 "$(tdir_avr2)"
++eavr7.c: $(srcdir)/emulparams/avr7.sh $(srcdir)/emultempl/avrelf.em \
++  $(ELF_DEPS) $(srcdir)/scripttempl/avr7.sc \
++  ${GEN_DEPENDS}
++	${GENSCRIPTS} avr7 "$(tdir_avr2)"
+ eavrxmega1.c: $(srcdir)/emulparams/avrxmega1.sh \
+   $(srcdir)/emultempl/avrelf.em $(ELF_DEPS) $(srcdir)/scripttempl/avr.sc \
+   ${GEN_DEPENDS}
+diff -Naurp ld/scripttempl/avr7.sc ld/scripttempl/avr7.sc
+--- ld/scripttempl/avr7.sc	1970-01-01 05:30:00.000000000 +0530
++++ ld/scripttempl/avr7.sc	2012-07-03 11:38:04.000000000 +0530
+@@ -0,0 +1,255 @@
++cat <<EOF
++OUTPUT_FORMAT("${OUTPUT_FORMAT}","${OUTPUT_FORMAT}","${OUTPUT_FORMAT}")
++OUTPUT_ARCH(${ARCH})
++
++MEMORY
++{
++  text   (rx)   : ORIGIN = $TEXT_ORIGIN, LENGTH = $TEXT_LENGTH
++  data   (rw!x) : ORIGIN = $DATA_ORIGIN, LENGTH = $DATA_LENGTH
++  eeprom (rw!x) : ORIGIN = 0x810000, LENGTH = 1K
++  fuse      (rw!x) : ORIGIN = 0x820000, LENGTH = 1K
++  lock      (rw!x) : ORIGIN = 0x830000, LENGTH = 1K
++  signature (rw!x) : ORIGIN = 0x840000, LENGTH = 1K
++}
++
++SECTIONS
++{
++  /* Read-only sections, merged into text segment: */
++  ${TEXT_DYNAMIC+${DYNAMIC}}
++  .hash        ${RELOCATING-0} : { *(.hash)		}
++  .dynsym      ${RELOCATING-0} : { *(.dynsym)		}
++  .dynstr      ${RELOCATING-0} : { *(.dynstr)		}
++  .gnu.version ${RELOCATING-0} : { *(.gnu.version)	}
++  .gnu.version_d ${RELOCATING-0} : { *(.gnu.version_d)	}
++  .gnu.version_r ${RELOCATING-0} : { *(.gnu.version_r)	}
++
++  .rel.init    ${RELOCATING-0} : { *(.rel.init)		}
++  .rela.init   ${RELOCATING-0} : { *(.rela.init)	}
++  .rel.text    ${RELOCATING-0} :
++    {
++      *(.rel.text)
++      ${RELOCATING+*(.rel.text.*)}
++      ${RELOCATING+*(.rel.gnu.linkonce.t*)}
++    }
++  .rela.text   ${RELOCATING-0} :
++    {
++      *(.rela.text)
++      ${RELOCATING+*(.rela.text.*)}
++      ${RELOCATING+*(.rela.gnu.linkonce.t*)}
++    }
++  .rel.fini    ${RELOCATING-0} : { *(.rel.fini)		}
++  .rela.fini   ${RELOCATING-0} : { *(.rela.fini)	}
++  .rel.rodata  ${RELOCATING-0} :
++    {
++      *(.rel.rodata)
++      ${RELOCATING+*(.rel.rodata.*)}
++      ${RELOCATING+*(.rel.gnu.linkonce.r*)}
++    }
++  .rela.rodata ${RELOCATING-0} :
++    {
++      *(.rela.rodata)
++      ${RELOCATING+*(.rela.rodata.*)}
++      ${RELOCATING+*(.rela.gnu.linkonce.r*)}
++    }
++  .rel.data    ${RELOCATING-0} :
++    {
++      *(.rel.data)
++      ${RELOCATING+*(.rel.data.*)}
++      ${RELOCATING+*(.rel.gnu.linkonce.d*)}
++    }
++  .rela.data   ${RELOCATING-0} :
++    {
++      *(.rela.data)
++      ${RELOCATING+*(.rela.data.*)}
++      ${RELOCATING+*(.rela.gnu.linkonce.d*)}
++    }
++  .rel.ctors   ${RELOCATING-0} : { *(.rel.ctors)	}
++  .rela.ctors  ${RELOCATING-0} : { *(.rela.ctors)	}
++  .rel.dtors   ${RELOCATING-0} : { *(.rel.dtors)	}
++  .rela.dtors  ${RELOCATING-0} : { *(.rela.dtors)	}
++  .rel.got     ${RELOCATING-0} : { *(.rel.got)		}
++  .rela.got    ${RELOCATING-0} : { *(.rela.got)		}
++  .rel.bss     ${RELOCATING-0} : { *(.rel.bss)		}
++  .rela.bss    ${RELOCATING-0} : { *(.rela.bss)		}
++  .rel.plt     ${RELOCATING-0} : { *(.rel.plt)		}
++  .rela.plt    ${RELOCATING-0} : { *(.rela.plt)		}
++
++  /* Internal text space or external memory.  */
++  .text ${RELOCATING-0} :
++  {
++    *(.vectors)
++    KEEP(*(.vectors))
++
++    /* For data that needs to reside in the lower 64k of progmem.  */
++    *(.progmem.gcc*)
++    *(.progmem*)
++    ${RELOCATING+. = ALIGN(2);}
++
++    ${CONSTRUCTING+ __trampolines_start = . ; }
++    /* The jump trampolines for the 16-bit limited relocs will reside here.  */
++    *(.trampolines)
++    *(.trampolines*)
++    ${CONSTRUCTING+ __trampolines_end = . ; }
++
++    /* For future tablejump instruction arrays for 3 byte pc devices.
++       We don't relax jump/call instructions within these sections.  */
++    *(.jumptables) 
++    *(.jumptables*) 
++
++    /* For code that needs to reside in the lower 128k progmem.  */
++    *(.lowtext)
++    *(.lowtext*)
++
++    ${CONSTRUCTING+ __ctors_start = . ; }
++    ${CONSTRUCTING+ *(.ctors) }
++    ${CONSTRUCTING+ __ctors_end = . ; }
++    ${CONSTRUCTING+ __dtors_start = . ; }
++    ${CONSTRUCTING+ *(.dtors) }
++    ${CONSTRUCTING+ __dtors_end = . ; }
++    KEEP(SORT(*)(.ctors))
++    KEEP(SORT(*)(.dtors))
++
++    /* From this point on, we don't bother about wether the insns are
++       below or above the 16 bits boundary.  */
++    *(.init0)  /* Start here after reset.  */
++    KEEP (*(.init0))
++    *(.init1)
++    KEEP (*(.init1))
++    *(.init2)  /* Clear __zero_reg__, set up stack pointer.  */
++    KEEP (*(.init2))
++    *(.init3)
++    KEEP (*(.init3))
++    *(.init4)  /* Initialize data and BSS.  */
++    KEEP (*(.init4))
++    *(.init5)
++    KEEP (*(.init5))
++    *(.init6)  /* C++ constructors.  */
++    KEEP (*(.init6))
++    *(.init7)
++    KEEP (*(.init7))
++    *(.init8)
++    KEEP (*(.init8))
++    *(.init9)  /* Call main().  */
++    KEEP (*(.init9))
++    *(.text)
++    ${RELOCATING+. = ALIGN(2);}
++    *(.text.*)
++    ${RELOCATING+. = ALIGN(2);}
++    *(.fini9)  /* _exit() starts here.  */
++    KEEP (*(.fini9))
++    *(.fini8)
++    KEEP (*(.fini8))
++    *(.fini7)
++    KEEP (*(.fini7))
++    *(.fini6)  /* C++ destructors.  */
++    KEEP (*(.fini6))
++    *(.fini5)
++    KEEP (*(.fini5))
++    *(.fini4)
++    KEEP (*(.fini4))
++    *(.fini3)
++    KEEP (*(.fini3))
++    *(.fini2)
++    KEEP (*(.fini2))
++    *(.fini1)
++    KEEP (*(.fini1))
++    *(.fini0)  /* Infinite loop after program termination.  */
++    KEEP (*(.fini0))
++    ${RELOCATING+ _etext = . ; }
++  } ${RELOCATING+ > text}
++
++  .data	${RELOCATING-0} : ${RELOCATING+AT (ADDR (.text) + SIZEOF (.text))}
++  {
++    ${RELOCATING+ PROVIDE (__data_start = .) ; }
++    *(.data)
++    *(.data*)
++    *(.rodata)  /* We need to include .rodata here if gcc is used */
++    *(.rodata*) /* with -fdata-sections.  */
++    *(.gnu.linkonce.d*)
++    ${RELOCATING+. = ALIGN(2);}
++    ${RELOCATING+ _edata = . ; }
++    ${RELOCATING+ PROVIDE (__data_end = .) ; }
++  } ${RELOCATING+ > data}
++
++  .bss ${RELOCATING-0} :${RELOCATING+ AT (ADDR (.bss))}
++  {
++    ${RELOCATING+ PROVIDE (__bss_start = .) ; }
++    *(.bss)
++    *(.bss*)
++    *(COMMON)
++    ${RELOCATING+ PROVIDE (__bss_end = .) ; }
++  } ${RELOCATING+ > data}
++
++  ${RELOCATING+ __data_load_start = LOADADDR(.data); }
++  ${RELOCATING+ __data_load_end = __data_load_start + SIZEOF(.data); }
++
++  /* Global data not cleared after reset.  */
++  .noinit ${RELOCATING-0}:
++  {
++    ${RELOCATING+ PROVIDE (__noinit_start = .) ; }
++    *(.noinit*)
++    ${RELOCATING+ PROVIDE (__noinit_end = .) ; }
++    ${RELOCATING+ _end = . ;  }
++    ${RELOCATING+ PROVIDE (__heap_start = .) ; }
++  } ${RELOCATING+ > data}
++
++  .eeprom ${RELOCATING-0}:
++  {
++    *(.eeprom*)
++    ${RELOCATING+ __eeprom_end = . ; }
++  } ${RELOCATING+ > eeprom}
++
++  .fuse ${RELOCATING-0}:
++  {
++    KEEP(*(.fuse))
++    KEEP(*(.lfuse))
++    KEEP(*(.hfuse))
++    KEEP(*(.efuse))
++  } ${RELOCATING+ > fuse}
++
++  .lock ${RELOCATING-0}:
++  {
++    KEEP(*(.lock*))
++  } ${RELOCATING+ > lock}
++
++  .signature ${RELOCATING-0}:
++  {
++    KEEP(*(.signature*))
++  } ${RELOCATING+ > signature}
++
++  /* Stabs debugging sections.  */
++  .stab 0 : { *(.stab) }
++  .stabstr 0 : { *(.stabstr) }
++  .stab.excl 0 : { *(.stab.excl) }
++  .stab.exclstr 0 : { *(.stab.exclstr) }
++  .stab.index 0 : { *(.stab.index) }
++  .stab.indexstr 0 : { *(.stab.indexstr) }
++  .comment 0 : { *(.comment) }
++ 
++  /* DWARF debug sections.
++     Symbols in the DWARF debugging sections are relative to the beginning
++     of the section so we begin them at 0.  */
++
++  /* DWARF 1 */
++  .debug          0 : { *(.debug) }
++  .line           0 : { *(.line) }
++
++  /* GNU DWARF 1 extensions */
++  .debug_srcinfo  0 : { *(.debug_srcinfo) }
++  .debug_sfnames  0 : { *(.debug_sfnames) }
++
++  /* DWARF 1.1 and DWARF 2 */
++  .debug_aranges  0 : { *(.debug_aranges) }
++  .debug_pubnames 0 : { *(.debug_pubnames) }
++
++  /* DWARF 2 */
++  .debug_info     0 : { *(.debug_info) *(.gnu.linkonce.wi.*) }
++  .debug_abbrev   0 : { *(.debug_abbrev) }
++  .debug_line     0 : { *(.debug_line) }
++  .debug_frame    0 : { *(.debug_frame) }
++  .debug_str      0 : { *(.debug_str) }
++  .debug_loc      0 : { *(.debug_loc) }
++  .debug_macinfo  0 : { *(.debug_macinfo) }
++}
++EOF
++
diff --git a/435-binutils-attiny841.patch b/435-binutils-attiny841.patch
new file mode 100644
index 0000000..93e12c7
--- /dev/null
+++ b/435-binutils-attiny841.patch
@@ -0,0 +1,34 @@
+diff -Naurp binutils/size.c binutils/size.c
+--- binutils/size.c	2012-07-16 17:08:19.000000000 +0530
++++ binutils/size.c	2012-07-16 17:07:34.000000000 +0530
+@@ -346,6 +346,7 @@ avr_device_t avr[] =
+ 	{"atmega8u2",     AVR8K,   AVR512, AVR512},
+ 	{"attiny84",      AVR8K,   AVR512, AVR512},
+ 	{"attiny84a",     AVR8K,   AVR512, AVR512},
++	{"attiny841",	  AVR8K,   AVR512, AVR512},	
+ 	{"attiny85",      AVR8K,   AVR512, AVR512},
+ 	{"attiny861",     AVR8K,   AVR512, AVR512},
+ 	{"attiny861a",    AVR8K,   AVR512, AVR512},
+diff -Naurp gas/config/tc-avr.c gas/config/tc-avr.c
+--- gas/config/tc-avr.c	2012-07-16 17:08:19.000000000 +0530
++++ gas/config/tc-avr.c	2012-07-16 17:07:34.000000000 +0530
+@@ -124,6 +124,7 @@ static struct mcu_type_s mcu_types[] =
+   {"attiny25",   AVR_ISA_AVR25,   bfd_mach_avr25},
+   {"attiny45",   AVR_ISA_AVR25,   bfd_mach_avr25},
+   {"attiny85",   AVR_ISA_AVR25,   bfd_mach_avr25},
++  {"attiny841",  AVR_ISA_AVR25,   bfd_mach_avr25},
+   {"attiny261",  AVR_ISA_AVR25,   bfd_mach_avr25},
+   {"attiny261a", AVR_ISA_AVR25,   bfd_mach_avr25},
+   {"attiny461",  AVR_ISA_AVR25,   bfd_mach_avr25},
+diff -Naurp gas/doc/c-avr.texi gas/doc/c-avr.texi
+--- gas/doc/c-avr.texi	2012-07-16 17:08:19.000000000 +0530
++++ gas/doc/c-avr.texi	2012-07-16 17:07:34.000000000 +0530
+@@ -46,7 +46,7 @@ space plus the MOVW instruction (MCU typ
+ attiny2313a, attiny24, attiny24a, attiny4313, attiny44, attiny44a, attiny84,
+ attiny84a, attiny25, attiny45, attiny85, attiny261, attiny261a, attiny461,
+ attiny461a, attiny861, attiny861a, attiny87, attiny43u, attiny48, attiny88,
+-attiny828, at86rf401, ata6289, ata5272).
++attiny828, attiny841, at86rf401, ata6289, ata5272).
+ 
+ Instruction set avr3 is for the classic AVR core with up to 128K program
+ memory space (MCU types: at43usb355, at76c711).
diff --git a/436-binutils-atxmega32_16_8e5.patch b/436-binutils-atxmega32_16_8e5.patch
new file mode 100644
index 0000000..7866b58
--- /dev/null
+++ b/436-binutils-atxmega32_16_8e5.patch
@@ -0,0 +1,38 @@
+diff -Naurp binutils/size.c binutils/size.c
+--- binutils/size.c	2012-10-16 17:02:14.000000000 +0530
++++ binutils/size.c	2012-10-16 17:01:47.000000000 +0530
+@@ -239,6 +239,9 @@ avr_device_t avr[] =
+ 	{"atxmega32a4u",  AVR36K,  AVR4K,  AVR1K},
+ 	{"atxmega32c4",   AVR36K,  AVR4K,  AVR1K},
+ 	{"atxmega32d4",   AVR36K,  AVR4K,  AVR1K},
++	{"atxmega32e5",   AVR36K,  AVR4K,  AVR1K},
++	{"atxmega16e5",   AVR20K,  AVR2K,  AVR512},
++	{"atxmega8e5",	  AVR10K,  AVR1K,  AVR512},
+ 
+ 	{"at90can32",     AVR32K,  AVR2K,  AVR1K},
+ 	{"at94k",         AVR32K,  AVR4K,  0UL},
+diff -Naurp gas/config/tc-avr.c gas/config/tc-avr.c
+--- gas/config/tc-avr.c	2012-10-16 17:02:14.000000000 +0530
++++ gas/config/tc-avr.c	2012-10-16 17:01:47.000000000 +0530
+@@ -298,6 +298,9 @@ static struct mcu_type_s mcu_types[] =
+   {"atxmega32a4u",AVR_ISA_XMEGAU,  bfd_mach_avrxmega2},
+   {"atxmega32c4", AVR_ISA_XMEGAU,  bfd_mach_avrxmega2},
+   {"atxmega32d4", AVR_ISA_XMEGA,  bfd_mach_avrxmega2},
++  {"atxmega32e5", AVR_ISA_XMEGA,  bfd_mach_avrxmega2},
++  {"atxmega16e5", AVR_ISA_XMEGA,  bfd_mach_avrxmega2},
++  {"atxmega8e5",  AVR_ISA_XMEGA,  bfd_mach_avrxmega2},
+   {"atxmega32x1", AVR_ISA_XMEGA,  bfd_mach_avrxmega2},
+   {"atxmega64a3", AVR_ISA_XMEGA,  bfd_mach_avrxmega4},
+   {"atxmega64a3u",AVR_ISA_XMEGAU,  bfd_mach_avrxmega4},
+diff -Naurp gas/doc/c-avr.texi gas/doc/c-avr.texi
+--- gas/doc/c-avr.texi	2012-10-16 17:02:14.000000000 +0530
++++ gas/doc/c-avr.texi	2012-10-16 17:01:47.000000000 +0530
+@@ -92,7 +92,7 @@ from 0x8000 (MCU types: ata5831)
+ 
+ Instruction set avrxmega2 is for the XMEGA AVR core with 8K to 64K program
+ memory space and less than 64K data space (MCU types: atxmega16a4, atxmega16a4u, atxmega16c4,
+-atxmega16d4, atxmega16x1, atxmega32a4, atxmega32a4u, ,atxmega32c4, atxmega32d4,
++atxmega16d4, atxmega16x1, atxmega32a4, atxmega32a4u, atxmega32c4, atxmega32d4, atxmega32e5, atxmega16e5, atxmega8e5,
+ atxmega32x1, atmxt224, atmxt224e, atmxt336s, atmxt112sl).
+ 
+ Instruction set avrxmega3 is for the XMEGA AVR core with 8K to 64K program
diff --git a/500-binutils-bug13789.patch b/500-binutils-bug13789.patch
index 29a34f5..20d51a9 100644
--- a/500-binutils-bug13789.patch
+++ b/500-binutils-bug13789.patch
@@ -1,15 +1,15 @@
 diff -Naurp bfd/archures.c bfd/archures.c
---- bfd/archures.c	2011-11-29 15:45:57.000000000 +0530
-+++ bfd/archures.c	2011-11-29 17:31:00.000000000 +0530
-@@ -381,6 +381,7 @@ DESCRIPTION
- .#define bfd_mach_avr5		5
+--- bfd/archures.c	2012-07-16 17:08:19.000000000 +0530
++++ bfd/archures.c	2012-07-16 17:12:57.000000000 +0530
+@@ -382,6 +382,7 @@ DESCRIPTION
  .#define bfd_mach_avr51		51
  .#define bfd_mach_avr6		6
-+.#define bfd_mach_avrtiny10 100 
+ .#define bfd_mach_avr7		7
++.#define bfd_mach_avrtiny10 100
  .#define bfd_mach_avrxmega1 101
  .#define bfd_mach_avrxmega2 102
  .#define bfd_mach_avrxmega3 103
-@@ -388,7 +389,6 @@ DESCRIPTION
+@@ -389,7 +390,6 @@ DESCRIPTION
  .#define bfd_mach_avrxmega5 105
  .#define bfd_mach_avrxmega6 106
  .#define bfd_mach_avrxmega7 107
@@ -18,8 +18,8 @@ diff -Naurp bfd/archures.c bfd/archures.c
  .#define bfd_mach_bfin          1
  .  bfd_arch_cr16,       {* National Semiconductor CompactRISC (ie CR16). *}
 diff -Naurp bfd/bfd-in2.h bfd/bfd-in2.h
---- bfd/bfd-in2.h	2011-11-29 15:45:57.000000000 +0530
-+++ bfd/bfd-in2.h	2011-11-29 17:31:00.000000000 +0530
+--- bfd/bfd-in2.h	2012-07-16 17:08:19.000000000 +0530
++++ bfd/bfd-in2.h	2012-07-16 17:12:57.000000000 +0530
 @@ -2088,6 +2088,7 @@ enum bfd_architecture
  #define bfd_mach_avr5          5
  #define bfd_mach_avr51         51
@@ -37,41 +37,41 @@ diff -Naurp bfd/bfd-in2.h bfd/bfd-in2.h
  #define bfd_mach_bfin          1
    bfd_arch_cr16,       /* National Semiconductor CompactRISC (ie CR16). */
 diff -Naurp bfd/cpu-avr.c bfd/cpu-avr.c
---- bfd/cpu-avr.c	2011-11-29 15:45:57.000000000 +0530
-+++ bfd/cpu-avr.c	2011-11-29 17:31:00.000000000 +0530
-@@ -135,29 +135,29 @@ static const bfd_arch_info_type arch_inf
-   /* 3-Byte PC.  */
-   N (22, bfd_mach_avr6, "avr:6", FALSE, & arch_info_struct[10]),
+--- bfd/cpu-avr.c	2012-07-16 17:08:19.000000000 +0530
++++ bfd/cpu-avr.c	2012-07-16 17:12:57.000000000 +0530
+@@ -138,29 +138,29 @@ static const bfd_arch_info_type arch_inf
+   /* 20K flash. starts at 0x8000 */
+   N (16, bfd_mach_avr7, "avr:7", FALSE, & arch_info_struct[11]),
    
 +  /* attiny 10 */
-+  N (16, bfd_mach_avrtiny10, "avr:100", FALSE, & arch_info_struct[11]),
-+  
++  N (16, bfd_mach_avrtiny10, "avr:100", FALSE, & arch_info_struct[12]),
++
    /* Xmega 1 */
--  N (24, bfd_mach_avrxmega1, "avr:101", FALSE, & arch_info_struct[11]),
-+  N (24, bfd_mach_avrxmega1, "avr:101", FALSE, & arch_info_struct[12]),
+-  N (24, bfd_mach_avrxmega1, "avr:101", FALSE, & arch_info_struct[12]),
++  N (24, bfd_mach_avrxmega1, "avr:101", FALSE, & arch_info_struct[13]),
  
    /* Xmega 2 */
--  N (24, bfd_mach_avrxmega2, "avr:102", FALSE, & arch_info_struct[12]),
-+  N (24, bfd_mach_avrxmega2, "avr:102", FALSE, & arch_info_struct[13]),
+-  N (24, bfd_mach_avrxmega2, "avr:102", FALSE, & arch_info_struct[13]),
++  N (24, bfd_mach_avrxmega2, "avr:102", FALSE, & arch_info_struct[14]),
    
    /* Xmega 3 */
--  N (24, bfd_mach_avrxmega3, "avr:103", FALSE, & arch_info_struct[13]),
-+  N (24, bfd_mach_avrxmega3, "avr:103", FALSE, & arch_info_struct[14]),
+-  N (24, bfd_mach_avrxmega3, "avr:103", FALSE, & arch_info_struct[14]),
++  N (24, bfd_mach_avrxmega3, "avr:103", FALSE, & arch_info_struct[15]),
    
    /* Xmega 4 */
--  N (24, bfd_mach_avrxmega4, "avr:104", FALSE, & arch_info_struct[14]),
-+  N (24, bfd_mach_avrxmega4, "avr:104", FALSE, & arch_info_struct[15]),
+-  N (24, bfd_mach_avrxmega4, "avr:104", FALSE, & arch_info_struct[15]),
++  N (24, bfd_mach_avrxmega4, "avr:104", FALSE, & arch_info_struct[16]),
    
    /* Xmega 5 */
--  N (24, bfd_mach_avrxmega5, "avr:105", FALSE, & arch_info_struct[15]),
-+  N (24, bfd_mach_avrxmega5, "avr:105", FALSE, & arch_info_struct[16]),
+-  N (24, bfd_mach_avrxmega5, "avr:105", FALSE, & arch_info_struct[16]),
++  N (24, bfd_mach_avrxmega5, "avr:105", FALSE, & arch_info_struct[17]),
    
    /* Xmega 6 */
--  N (24, bfd_mach_avrxmega6, "avr:106", FALSE, & arch_info_struct[16]),
-+  N (24, bfd_mach_avrxmega6, "avr:106", FALSE, & arch_info_struct[17]),
+-  N (24, bfd_mach_avrxmega6, "avr:106", FALSE, & arch_info_struct[17]),
++  N (24, bfd_mach_avrxmega6, "avr:106", FALSE, & arch_info_struct[18]),
    
    /* Xmega 7 */
--  N (24, bfd_mach_avrxmega7, "avr:107", FALSE, & arch_info_struct[17]),
+-  N (24, bfd_mach_avrxmega7, "avr:107", FALSE, & arch_info_struct[18]),
 -  
 -  /* attiny 10 */
 -  N (16, bfd_mach_avrtiny10, "avr:201", FALSE, NULL)
@@ -80,17 +80,19 @@ diff -Naurp bfd/cpu-avr.c bfd/cpu-avr.c
  };
  
 diff -Naurp include/elf/avr.h include/elf/avr.h
---- include/elf/avr.h	2011-11-29 15:45:58.000000000 +0530
-+++ include/elf/avr.h	2011-11-29 17:31:00.000000000 +0530
-@@ -40,6 +40,7 @@
+--- include/elf/avr.h	2012-07-16 17:08:19.000000000 +0530
++++ include/elf/avr.h	2012-07-16 17:12:57.000000000 +0530
+@@ -40,7 +40,8 @@
  #define E_AVR_MACH_AVR5 5
  #define E_AVR_MACH_AVR51 51
  #define E_AVR_MACH_AVR6 6 
-+#define E_AVR_MACH_AVRTINY10 100
+-#define E_AVR_MACH_AVR7 7 
++#define E_AVR_MACH_AVR7 7
++#define E_AVR_MACH_AVRTINY10 100 
  #define E_AVR_MACH_XMEGA1 101
  #define E_AVR_MACH_XMEGA2 102
  #define E_AVR_MACH_XMEGA3 103
-@@ -47,7 +48,6 @@
+@@ -48,7 +49,6 @@
  #define E_AVR_MACH_XMEGA5 105
  #define E_AVR_MACH_XMEGA6 106
  #define E_AVR_MACH_XMEGA7 107
@@ -99,8 +101,8 @@ diff -Naurp include/elf/avr.h include/elf/avr.h
  /* Relocations.  */
  START_RELOC_NUMBERS (elf_avr_reloc_type)
 diff -Naurp ld/emulparams/avrtiny10.sh ld/emulparams/avrtiny10.sh
---- ld/emulparams/avrtiny10.sh	2011-11-29 15:45:58.000000000 +0530
-+++ ld/emulparams/avrtiny10.sh	2011-11-29 17:31:00.000000000 +0530
+--- ld/emulparams/avrtiny10.sh	2012-07-16 17:08:19.000000000 +0530
++++ ld/emulparams/avrtiny10.sh	2012-07-16 17:12:57.000000000 +0530
 @@ -1,12 +1,13 @@
 -ARCH=avr:201
 +ARCH=avr:100
@@ -120,9 +122,9 @@ diff -Naurp ld/emulparams/avrtiny10.sh ld/emulparams/avrtiny10.sh
 +DATA_LENGTH=0x100
  EXTRA_EM_FILE=avrelf
 diff -Naurp ld/Makefile.am ld/Makefile.am
---- ld/Makefile.am	2011-11-29 15:45:58.000000000 +0530
-+++ ld/Makefile.am	2011-11-29 17:31:00.000000000 +0530
-@@ -820,7 +820,7 @@ eavrxmega7.c: $(srcdir)/emulparams/avrxm
+--- ld/Makefile.am	2012-07-16 17:08:19.000000000 +0530
++++ ld/Makefile.am	2012-07-16 17:12:57.000000000 +0530
+@@ -825,7 +825,7 @@ eavrxmega7.c: $(srcdir)/emulparams/avrxm
    ${GEN_DEPENDS}
  	${GENSCRIPTS} avrxmega7 "$(tdir_avr2)"
  eavrtiny10.c: $(srcdir)/emulparams/avrtiny10.sh \
@@ -133,7 +135,7 @@ diff -Naurp ld/Makefile.am ld/Makefile.am
  ecoff_i860.c: $(srcdir)/emulparams/coff_i860.sh \
 diff -Naurp ld/scripttempl/avrtiny10.sc ld/scripttempl/avrtiny10.sc
 --- ld/scripttempl/avrtiny10.sc	1970-01-01 05:30:00.000000000 +0530
-+++ ld/scripttempl/avrtiny10.sc	2011-11-29 17:31:00.000000000 +0530
++++ ld/scripttempl/avrtiny10.sc	2012-07-16 17:12:57.000000000 +0530
 @@ -0,0 +1,240 @@
 +cat <<EOF
 +OUTPUT_FORMAT("${OUTPUT_FORMAT}","${OUTPUT_FORMAT}","${OUTPUT_FORMAT}")
diff --git a/501-binutils-modify-usb-xmega-isa.patch b/501-binutils-modify-usb-xmega-isa.patch
index bd88d99..2f02310 100644
--- a/501-binutils-modify-usb-xmega-isa.patch
+++ b/501-binutils-modify-usb-xmega-isa.patch
@@ -1,7 +1,7 @@
 diff -Naurp gas/config/tc-avr.c gas/config/tc-avr.c
---- gas/config/tc-avr.c	2012-03-30 19:35:59.000000000 +0530
-+++ gas/config/tc-avr.c	2012-03-30 19:36:31.000000000 +0530
-@@ -306,7 +306,7 @@ static struct mcu_type_s mcu_types[] =
+--- gas/config/tc-avr.c	2012-07-16 17:11:12.000000000 +0530
++++ gas/config/tc-avr.c	2012-07-16 17:29:16.000000000 +0530
+@@ -311,7 +311,7 @@ static struct mcu_type_s mcu_types[] =
    {"atxmega64d3", AVR_ISA_XMEGA,  bfd_mach_avrxmega4},
    {"atxmega64d4", AVR_ISA_XMEGA,  bfd_mach_avrxmega4},
    {"atxmega64a1", AVR_ISA_XMEGA,  bfd_mach_avrxmega5},
@@ -9,8 +9,8 @@ diff -Naurp gas/config/tc-avr.c gas/config/tc-avr.c
 +  {"atxmega64a1u",AVR_ISA_XMEGAU,  bfd_mach_avrxmega5},
    {"atxmega128a3", AVR_ISA_XMEGA, bfd_mach_avrxmega6},
    {"atxmega128a3u",AVR_ISA_XMEGAU, bfd_mach_avrxmega6},
-   {"atxmega128b1", AVR_ISA_XMEGA, bfd_mach_avrxmega6},
-@@ -321,13 +321,13 @@ static struct mcu_type_s mcu_types[] =
+   {"atxmega128b1", AVR_ISA_XMEGAU, bfd_mach_avrxmega6},
+@@ -328,13 +328,13 @@ static struct mcu_type_s mcu_types[] =
    {"atxmega256a3", AVR_ISA_XMEGA, bfd_mach_avrxmega6},
    {"atxmega256a3u",AVR_ISA_XMEGAU, bfd_mach_avrxmega6},
    {"atxmega256a3b",AVR_ISA_XMEGA, bfd_mach_avrxmega6},
diff --git a/503-binutils-avrtc193-tiny.patch b/503-binutils-avrtc193-tiny.patch
index 7c9661a..b42cf3c 100644
--- a/503-binutils-avrtc193-tiny.patch
+++ b/503-binutils-avrtc193-tiny.patch
@@ -1,5 +1,6 @@
---- bfd/elf32-avr.c	2012-04-19 14:45:03.000000000 +0530
-+++ bfd/elf32-avr.c	2012-04-19 12:04:04.000000000 +0530
+diff -Naurp bfd/elf32-avr.c bfd/elf32-avr.c
+--- bfd/elf32-avr.c	2012-07-20 18:32:17.000000000 +0530
++++ bfd/elf32-avr.c	2012-07-20 18:31:38.000000000 +0530
 @@ -516,6 +516,21 @@ static reloc_howto_type elf_avr_howto_ta
  	 0x000000ff,		/* src_mask */
  	 0x000000ff,		/* dst_mask */
@@ -50,8 +51,9 @@
      case R_AVR_16_PM:
        use_stubs = (!htab->no_stubs);
        contents += rel->r_offset;
+diff -Naurp bfd/reloc.c bfd/reloc.c
 --- bfd/reloc.c	2011-07-24 19:50:06.000000000 +0530
-+++ bfd/reloc.c	2012-04-19 14:40:17.000000000 +0530
++++ bfd/reloc.c	2012-07-20 18:31:38.000000000 +0530
 @@ -4314,6 +4314,11 @@ ENUM
  ENUMDOC
    This is a 6 bit reloc for the AVR that stores offset for adiw/sbiw
@@ -64,9 +66,10 @@
  
  ENUM
    BFD_RELOC_RX_NEG8
---- gas/config/tc-avr.c	2012-04-19 14:45:03.000000000 +0530
-+++ gas/config/tc-avr.c	2012-04-19 12:04:04.000000000 +0530
-@@ -870,17 +870,12 @@ avr_operand (struct avr_opcodes_s *opcod
+diff -Naurp gas/config/tc-avr.c gas/config/tc-avr.c
+--- gas/config/tc-avr.c	2012-07-20 18:33:14.000000000 +0530
++++ gas/config/tc-avr.c	2012-07-20 18:31:38.000000000 +0530
+@@ -879,17 +879,12 @@ avr_operand (struct avr_opcodes_s *opcod
  	  op_mask = avr_get_constant (str, 31);
  	  str = input_line_pointer;
  	}
@@ -90,7 +93,7 @@
  
        if (op_mask <= 31)
  	{
-@@ -1020,6 +1015,12 @@ avr_operand (struct avr_opcodes_s *opcod
+@@ -1029,6 +1024,12 @@ avr_operand (struct avr_opcodes_s *opcod
  		   &op_expr, FALSE, BFD_RELOC_16);
        break;
  
@@ -103,13 +106,13 @@
      case 'M':
        {
  	bfd_reloc_code_real_type r_type;
-@@ -1328,6 +1329,16 @@ md_apply_fix (fixS *fixP, valueT * valP,
+@@ -1337,6 +1338,16 @@ md_apply_fix (fixS *fixP, valueT * valP,
  	  bfd_putl16 ((bfd_vma) insn | LDI_IMMEDIATE (value), where);
  	  break;
  
 +        case BFD_RELOC_AVR_7_LDS16:
 +          if ((value < 0x40) || (value > 0xBF))
-+            as_bad_where (fixP->fx_file, fixP->fx_line,
++            as_warn_where (fixP->fx_file, fixP->fx_line,
 +                          _("operand out of range: 0x%lx"), (unsigned long)value);   
 +          insn |= value & 0xF;
 +          insn |= (value & 0x30) << 5;
@@ -120,7 +123,7 @@
  	case BFD_RELOC_AVR_6:
  	  if ((value > 63) || (value < 0))
  	    as_bad_where (fixP->fx_file, fixP->fx_line,
-@@ -1513,7 +1524,18 @@ md_assemble (char *str)
+@@ -1522,7 +1533,18 @@ md_assemble (char *str)
    if (!op[0])
      as_bad (_("can't find opcode "));
  
@@ -140,9 +143,10 @@
  
    if (opcode == NULL)
      {
---- include/elf/avr.h	2012-04-19 14:45:03.000000000 +0530
-+++ include/elf/avr.h	2012-04-19 12:04:04.000000000 +0530
-@@ -78,6 +78,7 @@ START_RELOC_NUMBERS (elf_avr_reloc_type)
+diff -Naurp include/elf/avr.h include/elf/avr.h
+--- include/elf/avr.h	2012-07-20 18:33:00.000000000 +0530
++++ include/elf/avr.h	2012-07-20 18:31:38.000000000 +0530
+@@ -79,6 +79,7 @@ START_RELOC_NUMBERS (elf_avr_reloc_type)
       RELOC_NUMBER (R_AVR_LO8_LDI_GS,	       24)
       RELOC_NUMBER (R_AVR_HI8_LDI_GS,	       25)
       RELOC_NUMBER (R_AVR_8, 		       26)
@@ -150,8 +154,9 @@
  END_RELOC_NUMBERS (R_AVR_max)
  
  #endif /* _ELF_AVR_H */
---- include/opcode/avr.h	2012-04-19 14:45:03.000000000 +0530
-+++ include/opcode/avr.h	2012-04-19 12:04:04.000000000 +0530
+diff -Naurp include/opcode/avr.h include/opcode/avr.h
+--- include/opcode/avr.h	2012-07-20 18:32:17.000000000 +0530
++++ include/opcode/avr.h	2012-07-20 18:31:38.000000000 +0530
 @@ -22,6 +22,7 @@
  #define AVR_ISA_LPM   0x0002 /* device has LPM */
  #define AVR_ISA_LPMX  0x0004 /* device has LPM Rd,Z[+] */
@@ -160,16 +165,16 @@
  #define AVR_ISA_MEGA  0x0020 /* device has >8K program memory (JMP and CALL
  				supported, no 8K wrap on RJMP and RCALL) */
  #define AVR_ISA_MUL   0x0040 /* device has new core (MUL, FMUL, ...) */
-@@ -72,7 +73,7 @@
-                         AVR_ISA_ELPM | AVR_ISA_ELPMX | AVR_ISA_SPM | \
-                         AVR_ISA_BRK | AVR_ISA_EIND | AVR_ISA_MOVW)
+@@ -74,7 +75,7 @@
+ 
+ #define AVR_ISA_AVR7   (AVR_ISA_M8 | AVR_ISA_MEGA | AVR_ISA_BRK )
  
 -#define AVR_ISA_AVRTINY10 (AVR_ISA_1200 | AVR_ISA_BRK | AVR_ISA_SRAM)
 +#define AVR_ISA_AVRTINY10 (AVR_ISA_1200 | AVR_ISA_BRK | AVR_ISA_SRAM | AVR_ISA_TINY)
  
  #define REGISTER_P(x) ((x) == 'r'		\
  		       || (x) == 'd'		\
-@@ -279,6 +280,8 @@ AVR_INSN (fmulsu,"a,a","000000111ddd1rrr
+@@ -281,6 +282,8 @@ AVR_INSN (fmulsu,"a,a","000000111ddd1rrr
  
  AVR_INSN (sts,  "i,r", "1001001ddddd0000", 2, AVR_ISA_SRAM, 0x9200)
  AVR_INSN (lds,  "r,i", "1001000ddddd0000", 2, AVR_ISA_SRAM, 0x9000)
@@ -178,8 +183,9 @@
  
  AVR_INSN (xch,  "z,r", "1001001rrrrr0100", 1, AVR_ISA_XMEGAU, 0x9204)
  AVR_INSN (las,  "z,r", "1001001rrrrr0101", 1, AVR_ISA_XMEGAU, 0x9205)
+diff -Naurp opcodes/avr-dis.c opcodes/avr-dis.c
 --- opcodes/avr-dis.c	2011-07-01 21:41:27.000000000 +0530
-+++ opcodes/avr-dis.c	2012-04-19 12:04:04.000000000 +0530
++++ opcodes/avr-dis.c	2012-07-20 18:31:38.000000000 +0530
 @@ -187,7 +187,15 @@ avr_operand (unsigned int insn, unsigned
      case 'i':
        sprintf (buf, "0x%04X", insn2);
diff --git a/504-binutils-avrtc530-backported.patch b/504-binutils-avrtc530-backported.patch
new file mode 100644
index 0000000..138c5a4
--- /dev/null
+++ b/504-binutils-avrtc530-backported.patch
@@ -0,0 +1,24 @@
+diff -Naurp ld/scripttempl/avr.sc ld/scripttempl/avr.sc
+--- ld/scripttempl/avr.sc	2011-03-22 01:37:42.000000000 +0530
++++ ld/scripttempl/avr.sc	2012-07-24 12:13:29.000000000 +0530
+@@ -161,7 +161,10 @@ SECTIONS
+   .data	${RELOCATING-0} : ${RELOCATING+AT (ADDR (.text) + SIZEOF (.text))}
+   {
+     ${RELOCATING+ PROVIDE (__data_start = .) ; }
+-    *(.data)
++    /* --gc-sections will delete empty .data. This leads to wrong start
++       addresses for subsequent sections because -Tdata= from the command
++       line will have no effect, see PR13697.  Thus, keep .data  */
++    KEEP (*(.data))
+     *(.data*)
+     *(.rodata)  /* We need to include .rodata here if gcc is used */
+     *(.rodata*) /* with -fdata-sections.  */
+@@ -195,7 +198,7 @@ SECTIONS
+ 
+   .eeprom ${RELOCATING-0}:
+   {
+-    *(.eeprom*)
++    KEEP(*(.eeprom*))
+     ${RELOCATING+ __eeprom_end = . ; }
+   } ${RELOCATING+ > eeprom}
+ 
diff --git a/505-binutils-avrtc446.patch b/505-binutils-avrtc446.patch
new file mode 100644
index 0000000..2f74476
--- /dev/null
+++ b/505-binutils-avrtc446.patch
@@ -0,0 +1,40 @@
+diff -Naurp gas/config/tc-avr.c gas/config/tc-avr.c
+--- gas/config/tc-avr.c	2012-10-25 12:02:42.000000000 +0530
++++ gas/config/tc-avr.c	2012-10-25 12:41:44.000000000 +0530
+@@ -137,7 +137,6 @@ static struct mcu_type_s mcu_types[] =
+   {"attiny88",   AVR_ISA_AVR25,   bfd_mach_avr25},
+   {"attiny828",  AVR_ISA_AVR25,   bfd_mach_avr25}, 
+   {"at86rf401",  AVR_ISA_RF401,   bfd_mach_avr25},
+-  {"ata6289",    AVR_ISA_AVR25,   bfd_mach_avr25},
+   {"at43usb355", AVR_ISA_AVR3,    bfd_mach_avr3},
+   {"at76c711",   AVR_ISA_AVR3,    bfd_mach_avr3},
+   {"atmega103",  AVR_ISA_AVR31,   bfd_mach_avr31},
+@@ -154,6 +153,7 @@ static struct mcu_type_s mcu_types[] =
+   {"atmega8a",   AVR_ISA_M8,      bfd_mach_avr4},
+   {"ata6285",    AVR_ISA_AVR4,    bfd_mach_avr4},
+   {"ata6286",    AVR_ISA_AVR4,    bfd_mach_avr4},
++  {"ata6289",    AVR_ISA_AVR4,    bfd_mach_avr4},
+   {"atmega48",   AVR_ISA_AVR4,    bfd_mach_avr4},
+   {"atmega48a",  AVR_ISA_AVR4,    bfd_mach_avr4},
+   {"atmega48pa", AVR_ISA_AVR4,    bfd_mach_avr4},
+diff -Naurp gas/doc/c-avr.texi gas/doc/c-avr.texi
+--- gas/doc/c-avr.texi	2012-10-25 12:02:42.000000000 +0530
++++ gas/doc/c-avr.texi	2012-10-25 13:04:59.000000000 +0530
+@@ -46,7 +46,7 @@ space plus the MOVW instruction (MCU typ
+ attiny2313a, attiny24, attiny24a, attiny4313, attiny44, attiny44a, attiny84,
+ attiny84a, attiny25, attiny45, attiny85, attiny261, attiny261a, attiny461,
+ attiny461a, attiny861, attiny861a, attiny87, attiny43u, attiny48, attiny88,
+-attiny828, attiny841, at86rf401, ata6289, ata5272).
++attiny828, attiny841, at86rf401, ata5272).
+ 
+ Instruction set avr3 is for the classic AVR core with up to 128K program
+ memory space (MCU types: at43usb355, at76c711).
+@@ -61,7 +61,7 @@ atmega8u2, atmega16u2, atmega32u2, ata55
+ Instruction set avr4 is for the enhanced AVR core with up to 8K program
+ memory space (MCU types: atmega48, atmega48a, atmega48pa, atmega48p, atmega8, atmega8a
+ atmega88, atmega88a, atmega88p, atmega88pa, atmega8515, atmega8535, atmega8hva,
+-at90pwm1, at90pwm2, at90pwm2b, at90pwm3, at90pwm3b, at90pwm81, ata6285, ata6286).
++at90pwm1, at90pwm2, at90pwm2b, at90pwm3, at90pwm3b, at90pwm81, ata6285, ata6286, ata6289).
+ 
+ Instruction set avr5 is for the enhanced AVR core with up to 128K program
+ memory space (MCU types: at90pwm161, atmega16, atmega16a, atmega161, atmega162,
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/crossavr-binutils.git/commitdiff/fbe885ec910a853fb522137a5f563b68b4c59077



More information about the pld-cvs-commit mailing list