diff options
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.patch | 253 |
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 + |