summaryrefslogtreecommitdiffstats
path: root/patches/binutils-2.20.1a/atmel/0007-Add-remove-support-for-devices.patch
diff options
context:
space:
mode:
Diffstat (limited to 'patches/binutils-2.20.1a/atmel/0007-Add-remove-support-for-devices.patch')
-rw-r--r--patches/binutils-2.20.1a/atmel/0007-Add-remove-support-for-devices.patch253
1 files changed, 253 insertions, 0 deletions
diff --git a/patches/binutils-2.20.1a/atmel/0007-Add-remove-support-for-devices.patch b/patches/binutils-2.20.1a/atmel/0007-Add-remove-support-for-devices.patch
new file mode 100644
index 0000000..b4a915f
--- /dev/null
+++ b/patches/binutils-2.20.1a/atmel/0007-Add-remove-support-for-devices.patch
@@ -0,0 +1,253 @@
+From 29bc673719635293f6dd8fee0a16d7ed1630fb67 Mon Sep 17 00:00:00 2001
+From: Stephan Linz <linz@li-pro.net>
+Date: Mon, 18 Apr 2011 23:19:07 +0200
+Subject: [PATCH 7/9] Add/remove support for devices
+
+Add support for a bunch of new AVR devices, and removes support
+for some listed devices as well: atmega8m1, atmega8c1, atmega16c1,
+atmega4hvd, atmega8hvd, attiny327, m3000f, m3000s, m3001b.
+
+Quote by Eric Weddington (2010-04-08):
+http://old.nabble.com/-PATCH%2C-AVR--Add-remove-support-for-devices-td28172078.html
+
+Original ATMEL patch from:
+http://distribute.atmel.no/tools/opensource/avr-gcc/binutils-2.20.1/51-binutils-2.20.1-new-devices.patch
+
+Signed-off-by: Stephan Linz <linz@li-pro.net>
+---
+ binutils/size.c | 3 ---
+ gas/config/tc-avr.c | 43 ++++++++++++++++++++++++++++++++++---------
+ gas/doc/c-avr.texi | 40 +++++++++++++++++++++++-----------------
+ 3 files changed, 57 insertions(+), 29 deletions(-)
+
+diff --git a/binutils/size.c b/binutils/size.c
+index cd1635a..a6c8e6c 100644
+--- a/binutils/size.c
++++ b/binutils/size.c
+@@ -208,7 +208,6 @@ avr_device_t avr[] =
+ {"atmega32c1", AVR32K, AVR2K, AVR1K},
+ {"atmega32hvb", AVR32K, AVR2K, AVR1K},
+ {"atmega32m1", AVR32K, AVR2K, AVR1K},
+- {"attiny327", AVR32K, AVR2K, AVR1K},
+ {"atmega32u2", AVR32K, AVR2K, AVR1K},
+ {"atmega32u4", AVR32K, 2560UL, AVR1K},
+ {"atmega32u6", AVR32K, 2560UL, AVR1K},
+@@ -268,7 +267,6 @@ avr_device_t avr[] =
+ {"atmega88pa", AVR8K, AVR1K, AVR512},
+ {"atmega8hva", AVR8K, 768UL, AVR256},
+ {"atmega8u2", AVR8K, AVR512, AVR512},
+- {"atmega8hvd", AVR8K, AVR512, AVR256},
+ {"attiny84", AVR8K, AVR512, AVR512},
+ {"attiny84a", AVR8K, AVR512, AVR512},
+ {"attiny85", AVR8K, AVR512, AVR512},
+@@ -283,7 +281,6 @@ avr_device_t avr[] =
+ {"atmega48", AVR4K, AVR512, AVR256},
+ {"atmega48a", AVR4K, AVR512, AVR256},
+ {"atmega48p", AVR4K, AVR512, AVR256},
+- {"atmega4hvd", AVR4K, AVR512, AVR256},
+ {"attiny4313", AVR4K, AVR256, AVR256},
+ {"attiny43u", AVR4K, AVR256, AVR64},
+ {"attiny44", AVR4K, AVR256, AVR256},
+diff --git a/gas/config/tc-avr.c b/gas/config/tc-avr.c
+index 184b028..90918df 100644
+--- a/gas/config/tc-avr.c
++++ b/gas/config/tc-avr.c
+@@ -115,12 +115,14 @@ static struct mcu_type_s mcu_types[] =
+ {"attiny44", AVR_ISA_AVR25, bfd_mach_avr25},
+ {"attiny44a", AVR_ISA_AVR25, bfd_mach_avr25},
+ {"attiny84", AVR_ISA_AVR25, bfd_mach_avr25},
++ {"attiny84a", AVR_ISA_AVR25, bfd_mach_avr25},
+ {"attiny25", AVR_ISA_AVR25, bfd_mach_avr25},
+ {"attiny45", AVR_ISA_AVR25, bfd_mach_avr25},
+ {"attiny85", 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},
++ {"attiny461a", AVR_ISA_AVR25, bfd_mach_avr25},
+ {"attiny861", AVR_ISA_AVR25, bfd_mach_avr25},
+ {"attiny861a", AVR_ISA_AVR25, bfd_mach_avr25},
+ {"attiny87", AVR_ISA_AVR25, bfd_mach_avr25},
+@@ -134,7 +136,6 @@ static struct mcu_type_s mcu_types[] =
+ {"atmega103", AVR_ISA_AVR31, bfd_mach_avr31},
+ {"at43usb320", AVR_ISA_AVR31, bfd_mach_avr31},
+ {"attiny167", AVR_ISA_AVR35, bfd_mach_avr35},
+- {"attiny327", AVR_ISA_AVR35, bfd_mach_avr35},
+ {"at90usb82", AVR_ISA_AVR35, bfd_mach_avr35},
+ {"at90usb162", AVR_ISA_AVR35, bfd_mach_avr35},
+ {"atmega8u2", AVR_ISA_AVR35, bfd_mach_avr35},
+@@ -142,16 +143,15 @@ static struct mcu_type_s mcu_types[] =
+ {"atmega32u2", AVR_ISA_AVR35, bfd_mach_avr35},
+ {"atmega8", AVR_ISA_M8, bfd_mach_avr4},
+ {"atmega48", AVR_ISA_AVR4, bfd_mach_avr4},
++ {"atmega48a", AVR_ISA_AVR4, bfd_mach_avr4},
+ {"atmega48p", AVR_ISA_AVR4, bfd_mach_avr4},
+ {"atmega88", AVR_ISA_AVR4, bfd_mach_avr4},
++ {"atmega88a", AVR_ISA_AVR4, bfd_mach_avr4},
+ {"atmega88p", AVR_ISA_AVR4, bfd_mach_avr4},
++ {"atmega88pa", AVR_ISA_AVR4, bfd_mach_avr4},
+ {"atmega8515", AVR_ISA_M8, bfd_mach_avr4},
+ {"atmega8535", AVR_ISA_M8, bfd_mach_avr4},
+ {"atmega8hva", AVR_ISA_AVR4, bfd_mach_avr4},
+- {"atmega4hvd", AVR_ISA_AVR4, bfd_mach_avr4},
+- {"atmega8hvd", AVR_ISA_AVR4, bfd_mach_avr4},
+- {"atmega8c1", AVR_ISA_AVR4, bfd_mach_avr4},
+- {"atmega8m1", AVR_ISA_AVR4, bfd_mach_avr4},
+ {"at90pwm1", AVR_ISA_AVR4, bfd_mach_avr4},
+ {"at90pwm2", AVR_ISA_AVR4, bfd_mach_avr4},
+ {"at90pwm2b", AVR_ISA_AVR4, bfd_mach_avr4},
+@@ -159,40 +159,67 @@ static struct mcu_type_s mcu_types[] =
+ {"at90pwm3b", AVR_ISA_AVR4, bfd_mach_avr4},
+ {"at90pwm81", AVR_ISA_AVR4, bfd_mach_avr4},
+ {"atmega16", AVR_ISA_AVR5, bfd_mach_avr5},
++ {"atmega16a", AVR_ISA_AVR5, bfd_mach_avr5},
+ {"atmega161", AVR_ISA_M161, bfd_mach_avr5},
+ {"atmega162", AVR_ISA_AVR5, bfd_mach_avr5},
+ {"atmega163", AVR_ISA_M161, bfd_mach_avr5},
++ {"atmega164a", AVR_ISA_AVR5, bfd_mach_avr5},
+ {"atmega164p", AVR_ISA_AVR5, bfd_mach_avr5},
+ {"atmega165", AVR_ISA_AVR5, bfd_mach_avr5},
++ {"atmega165a", AVR_ISA_AVR5, bfd_mach_avr5},
+ {"atmega165p", AVR_ISA_AVR5, bfd_mach_avr5},
+ {"atmega168", AVR_ISA_AVR5, bfd_mach_avr5},
++ {"atmega168a", AVR_ISA_AVR5, bfd_mach_avr5},
+ {"atmega168p", AVR_ISA_AVR5, bfd_mach_avr5},
+ {"atmega169", AVR_ISA_AVR5, bfd_mach_avr5},
++ {"atmega169a", AVR_ISA_AVR5, bfd_mach_avr5},
+ {"atmega169p", AVR_ISA_AVR5, bfd_mach_avr5},
+- {"atmega16c1", AVR_ISA_AVR5, bfd_mach_avr5},
++ {"atmega169pa",AVR_ISA_AVR5, bfd_mach_avr5},
++ {"atmega16hva",AVR_ISA_AVR5, bfd_mach_avr5},
++ {"atmega16hvb",AVR_ISA_AVR5, bfd_mach_avr5},
+ {"atmega32", AVR_ISA_AVR5, bfd_mach_avr5},
+ {"atmega323", AVR_ISA_AVR5, bfd_mach_avr5},
++ {"atmega324a", AVR_ISA_AVR5, bfd_mach_avr5},
+ {"atmega324p", AVR_ISA_AVR5, bfd_mach_avr5},
++ {"atmega324pa",AVR_ISA_AVR5, bfd_mach_avr5},
+ {"atmega325", AVR_ISA_AVR5, bfd_mach_avr5},
++ {"atmega325a", AVR_ISA_AVR5, bfd_mach_avr5},
+ {"atmega325p", AVR_ISA_AVR5, bfd_mach_avr5},
+ {"atmega3250", AVR_ISA_AVR5, bfd_mach_avr5},
++ {"atmega3250a",AVR_ISA_AVR5, bfd_mach_avr5},
+ {"atmega3250p",AVR_ISA_AVR5, bfd_mach_avr5},
++ {"atmega328", AVR_ISA_AVR5, bfd_mach_avr5},
+ {"atmega328p", AVR_ISA_AVR5, bfd_mach_avr5},
+ {"atmega329", AVR_ISA_AVR5, bfd_mach_avr5},
++ {"atmega329a", AVR_ISA_AVR5, bfd_mach_avr5},
+ {"atmega329p", AVR_ISA_AVR5, bfd_mach_avr5},
++ {"atmega329pa",AVR_ISA_AVR5, bfd_mach_avr5},
+ {"atmega3290", AVR_ISA_AVR5, bfd_mach_avr5},
++ {"atmega3290a",AVR_ISA_AVR5, bfd_mach_avr5},
+ {"atmega3290p",AVR_ISA_AVR5, bfd_mach_avr5},
++ {"atmega32hvb",AVR_ISA_AVR5, bfd_mach_avr5},
+ {"atmega406", AVR_ISA_AVR5, bfd_mach_avr5},
+ {"atmega64", AVR_ISA_AVR5, bfd_mach_avr5},
+ {"atmega640", AVR_ISA_AVR5, bfd_mach_avr5},
+ {"atmega644", AVR_ISA_AVR5, bfd_mach_avr5},
++ {"atmega644a", AVR_ISA_AVR5, bfd_mach_avr5},
+ {"atmega644p", AVR_ISA_AVR5, bfd_mach_avr5},
+ {"atmega644pa",AVR_ISA_AVR5, bfd_mach_avr5},
+ {"atmega645", AVR_ISA_AVR5, bfd_mach_avr5},
++ {"atmega645a", AVR_ISA_AVR5, bfd_mach_avr5},
++ {"atmega645p", AVR_ISA_AVR5, bfd_mach_avr5},
+ {"atmega649", AVR_ISA_AVR5, bfd_mach_avr5},
++ {"atmega649p", AVR_ISA_AVR5, bfd_mach_avr5},
++ {"atmega649a", AVR_ISA_AVR5, bfd_mach_avr5},
+ {"atmega6450", AVR_ISA_AVR5, bfd_mach_avr5},
++ {"atmega6450a",AVR_ISA_AVR5, bfd_mach_avr5},
++ {"atmega6450p",AVR_ISA_AVR5, bfd_mach_avr5},
+ {"atmega6490", AVR_ISA_AVR5, bfd_mach_avr5},
++ {"atmega6490a",AVR_ISA_AVR5, bfd_mach_avr5},
++ {"atmega6490p",AVR_ISA_AVR5, bfd_mach_avr5},
++ {"atmega64hve",AVR_ISA_AVR5, bfd_mach_avr5},
+ {"atmega16hva",AVR_ISA_AVR5, bfd_mach_avr5},
++ {"atmega16hva2",AVR_ISA_AVR5, bfd_mach_avr5},
+ {"atmega16hvb",AVR_ISA_AVR5, bfd_mach_avr5},
+ {"atmega32hvb",AVR_ISA_AVR5, bfd_mach_avr5},
+ {"at90can32" , AVR_ISA_AVR5, bfd_mach_avr5},
+@@ -211,6 +238,7 @@ static struct mcu_type_s mcu_types[] =
+ {"at90usb647", AVR_ISA_AVR5, bfd_mach_avr5},
+ {"at90scr100", AVR_ISA_AVR5, bfd_mach_avr5},
+ {"at94k", AVR_ISA_94K, bfd_mach_avr5},
++ {"m3000", AVR_ISA_AVR5, bfd_mach_avr5},
+ {"atmega128", AVR_ISA_AVR51, bfd_mach_avr51},
+ {"atmega1280", AVR_ISA_AVR51, bfd_mach_avr51},
+ {"atmega1281", AVR_ISA_AVR51, bfd_mach_avr51},
+@@ -219,9 +247,6 @@ static struct mcu_type_s mcu_types[] =
+ {"at90can128", AVR_ISA_AVR51, bfd_mach_avr51},
+ {"at90usb1286",AVR_ISA_AVR51, bfd_mach_avr51},
+ {"at90usb1287",AVR_ISA_AVR51, bfd_mach_avr51},
+- {"m3000f", AVR_ISA_AVR51, bfd_mach_avr51},
+- {"m3000s", AVR_ISA_AVR51, bfd_mach_avr51},
+- {"m3001b", AVR_ISA_AVR51, bfd_mach_avr51},
+ {"atmega2560", AVR_ISA_AVR6, bfd_mach_avr6},
+ {"atmega2561", AVR_ISA_AVR6, bfd_mach_avr6},
+ {"atxmega16a4", AVR_ISA_XMEGA, bfd_mach_avrxmega2},
+diff --git a/gas/doc/c-avr.texi b/gas/doc/c-avr.texi
+index ba0927c..c04c546 100644
+--- a/gas/doc/c-avr.texi
++++ b/gas/doc/c-avr.texi
+@@ -43,9 +43,10 @@ at90s8535).
+
+ Instruction set avr25 is for the classic AVR core with up to 8K program memory
+ space plus the MOVW instruction (MCU types: attiny13, attiny13a, attiny2313,
+-attiny2313a, attiny24, attiny24a, attiny4313, attiny44, attiny44a, attiny84,
+-attiny25, attiny45, attiny85, attiny261, attiny261a, attiny461, attiny861,
+-attiny861a, attiny87, attiny43u, attiny48, attiny88, at86rf401, ata6289).
++attiny2313a, attiny24, attiny24a, attiny4313, attiny43u, attiny44, attiny44a,
++attiny84, attiny84a, attiny25, attiny45, attiny85, attiny261, attiny261a,
++attiny461, attiny461a, attiny861, attiny861a, attiny87, attiny43u, attiny48,
++attiny88, at86rf401, ata6289).
+
+ Instruction set avr3 is for the classic AVR core with up to 128K program
+ memory space (MCU types: at43usb355, at76c711).
+@@ -54,28 +55,33 @@ Instruction set avr31 is for the classic AVR core with exactly 128K program
+ memory space (MCU types: atmega103, at43usb320).
+
+ Instruction set avr35 is for classic AVR core plus MOVW, CALL, and JMP
+-instructions (MCU types: attiny167, attiny327, at90usb82, at90usb162, atmega8u2,
++instructions (MCU types: attiny167, at90usb82, at90usb162, atmega8u2,
+ atmega16u2, atmega32u2).
+
+ Instruction set avr4 is for the enhanced AVR core with up to 8K program
+-memory space (MCU types: atmega48, atmega48p,atmega8, atmega88, atmega88p,
+-atmega8515, atmega8535, atmega8hva, atmega4hvd, atmega8hvd, at90pwm1,
+-at90pwm2, at90pwm2b, at90pwm3, at90pwm3b, at90pwm81, atmega8m1, atmega8c1).
++memory space (MCU types: atmega48, atmega48a, atmega48p,atmega8, atmega88,
++atmega88a, atmega88p, atmega88pa, atmega8515, atmega8535, atmega8hva,
++at90pwm1,at90pwm2, at90pwm2b, at90pwm3, at90pwm3b,
++at90pwm81).
+
+ Instruction set avr5 is for the enhanced AVR core with up to 128K program
+-memory space (MCU types: atmega16, atmega161, atmega162, atmega163, atmega164p,
+-atmega165, atmega165p, atmega168, atmega168p, atmega169, atmega169p, atmega16c1,
+-atmega32, atmega323, atmega324p, atmega325, atmega325p, atmega3250, atmega3250p,
+-atmega328p, atmega329, atmega329p, atmega3290, atmega3290p, atmega406, atmega64,
+-atmega640, atmega644, atmega644p, atmega644pa, atmega645, atmega6450, atmega649,
+-atmega6490, atmega16hva, atmega16hvb, atmega32hvb, at90can32, at90can64,
+-at90pwm216, at90pwm316, atmega32c1, atmega64c1, atmega16m1, atmega32m1,
+-atmega64m1, atmega16u4, atmega32u4, atmega32u6, at90usb646, at90usb647, at94k,
+-at90scr100).
++memory space (MCU types: atmega16, atmega16a, atmega161, atmega162, atmega163,
++atmega164a, atmega164p, atmega165, atmega165a, atmega165p, atmega168,
++atmega168a, atmega168p, atmega169, atmega169p, atmega169pa,
++atmega32, atmega323, atmega324a, atmega324p, atmega324pa, atmega325, atmega325a,
++atmega325p, atmega3250, atmega3250a, atmega3250p, atmega328, atmega328p,
++atmega329, atmega329a, atmega329p, atmega329pa, atmega3290, atmega3290a,
++atmega3290p, atmega406, atmega64, atmega640, atmega644, atmega644a, atmega644p,
++atmega644pa, atmega645, atmega645a, atmega645p, atmega6450, atmega6450a,
++atmega6450p, atmega649, atmega649a, atmega649p, atmega6490, atmega6490a,
++atmega6490p, atmega64hve, atmega16hva, atmega16hva2, atmega16hvb, atmega32hvb,
++at90can32, at90can64, at90pwm216, at90pwm316, atmega16u4, atmega32c1,
++atmega64c1, atmega64m1, atmega16m1, atmega32m1, atmega64m1, atmega16u4,
++atmega32u4, atmega32u6, at90usb646, at90usb647, at94k, at90scr100).
+
+ Instruction set avr51 is for the enhanced AVR core with exactly 128K program
+ memory space (MCU types: atmega128, atmega1280, atmega1281, atmega1284p,
+-atmega128rfa1, at90can128, at90usb1286, at90usb1287, m3000f, m3000s, m3001b).
++atmega128rfa1, at90can128, at90usb1286, at90usb1287, m3000).
+
+ Instruction set avr6 is for the enhanced AVR core with a 3-byte PC (MCU types:
+ atmega2560, atmega2561).
+--
+1.6.0.4
+