aboutsummaryrefslogtreecommitdiffstats
path: root/devel/avr-binutils
diff options
context:
space:
mode:
authorjoerg <joerg@FreeBSD.org>2005-03-11 05:11:07 +0800
committerjoerg <joerg@FreeBSD.org>2005-03-11 05:11:07 +0800
commit2af0482dca2e66f7e18dfb0120bba051bec587fb (patch)
tree05087a83ac4317803d8bc4c2ecb5f9416de4eeb7 /devel/avr-binutils
parent24edc053a3c680368aabbed78ee2f8f4c9b4bedd (diff)
downloadfreebsd-ports-gnome-2af0482dca2e66f7e18dfb0120bba051bec587fb.tar.gz
freebsd-ports-gnome-2af0482dca2e66f7e18dfb0120bba051bec587fb.tar.zst
freebsd-ports-gnome-2af0482dca2e66f7e18dfb0120bba051bec587fb.zip
Merge some patches that have meanwhile be integrated in binutil's CVS,
and apply them to the latest released version (2.15). This mainly adds support for new AVR devices that appeared on the market recently, and fixes one relocation bug for the EEPROM section that could be noted when a bootloader section is also present.
Diffstat (limited to 'devel/avr-binutils')
-rw-r--r--devel/avr-binutils/Makefile2
-rw-r--r--devel/avr-binutils/files/patch-mega08-tinyx13-can12897
-rw-r--r--devel/avr-binutils/files/patch-mega325x-mega645x19
-rw-r--r--devel/avr-binutils/files/patch-no-lma-eeprom15
4 files changed, 132 insertions, 1 deletions
diff --git a/devel/avr-binutils/Makefile b/devel/avr-binutils/Makefile
index d94997ddcd23..49d0abdbd66b 100644
--- a/devel/avr-binutils/Makefile
+++ b/devel/avr-binutils/Makefile
@@ -7,7 +7,7 @@
PORTNAME= binutils
PORTVERSION= 2.15
-PORTREVISION= 1
+PORTREVISION= 2
CATEGORIES= devel
MASTER_SITES= ${MASTER_SITE_SOURCEWARE}
MASTER_SITE_SUBDIR= binutils/releases
diff --git a/devel/avr-binutils/files/patch-mega08-tinyx13-can128 b/devel/avr-binutils/files/patch-mega08-tinyx13-can128
new file mode 100644
index 000000000000..cdf59088ee7f
--- /dev/null
+++ b/devel/avr-binutils/files/patch-mega08-tinyx13-can128
@@ -0,0 +1,97 @@
+2004-04-02 Theodore A. Roth <troth@openavr.org>
+
+ * gas/config/tc-avr.c:
+ * include/opcode/avr.h:
+ Add support for atmega48, atmega88, atmega168, attiny13, attiny2313 and
+ at90can128.
+
+Index: gas/config/tc-avr.c
+===================================================================
+RCS file: /cvs/src/src/gas/config/tc-avr.c,v
+retrieving revision 1.20
+diff -u -p -p -r1.20 tc-avr.c
+--- gas/config/tc-avr.c 30 Nov 2002 08:39:43 -0000 1.20
++++ gas/config/tc-avr.c 3 Apr 2004 00:03:09 -0000
+@@ -90,20 +90,26 @@ static struct mcu_type_s mcu_types[] =
+ {"at43usb320",AVR_ISA_M103, bfd_mach_avr3},
+ {"at43usb355",AVR_ISA_M603, bfd_mach_avr3},
+ {"at76c711", AVR_ISA_M603, bfd_mach_avr3},
++ {"atmega48", AVR_ISA_M8, bfd_mach_avr4},
+ {"atmega8", AVR_ISA_M8, bfd_mach_avr4},
+ {"atmega83", AVR_ISA_M8, bfd_mach_avr4}, /* XXX -> m8535 */
+ {"atmega85", AVR_ISA_M8, bfd_mach_avr4}, /* XXX -> m8 */
++ {"atmega88", AVR_ISA_M8, bfd_mach_avr4},
+ {"atmega8515",AVR_ISA_M8, bfd_mach_avr4},
+ {"atmega8535",AVR_ISA_M8, bfd_mach_avr4},
++ {"attiny13", AVR_ISA_TINY2, bfd_mach_avr2},
++ {"attiny2313",AVR_ISA_TINY2, bfd_mach_avr2},
+ {"atmega16", AVR_ISA_M323, bfd_mach_avr5},
+ {"atmega161", AVR_ISA_M161, bfd_mach_avr5},
+ {"atmega162", AVR_ISA_M323, bfd_mach_avr5},
+ {"atmega163", AVR_ISA_M161, bfd_mach_avr5},
++ {"atmega168", AVR_ISA_M323, bfd_mach_avr5},
+ {"atmega169", AVR_ISA_M323, bfd_mach_avr5},
+ {"atmega32", AVR_ISA_M323, bfd_mach_avr5},
+ {"atmega323", AVR_ISA_M323, bfd_mach_avr5},
+ {"atmega64", AVR_ISA_M323, bfd_mach_avr5},
+ {"atmega128", AVR_ISA_M128, bfd_mach_avr5},
++ {"at90can128",AVR_ISA_M128, bfd_mach_avr5},
+ {"at94k", AVR_ISA_94K, bfd_mach_avr5},
+ {NULL, 0, 0}
+ };
+@@ -531,7 +537,8 @@ avr_operands (opcode, line)
+ /* Warn if the previous opcode was cpse/sbic/sbis/sbrc/sbrs
+ (AVR core bug, fixed in the newer devices). */
+
+- if (!(avr_opt.no_skip_bug || (avr_mcu->isa & AVR_ISA_MUL))
++ if (!(avr_opt.no_skip_bug ||
++ (avr_mcu->isa & (AVR_ISA_MUL | AVR_ISA_MOVW)))
+ && AVR_SKIP_P (prev))
+ as_warn (_("skipping two-word instruction"));
+
+Index: include/opcode/avr.h
+===================================================================
+RCS file: /cvs/src/src/include/opcode/avr.h,v
+retrieving revision 1.5
+diff -u -p -p -r1.5 avr.h
+--- include/opcode/avr.h 10 Nov 2001 09:40:53 -0000 1.5
++++ include/opcode/avr.h 3 Apr 2004 00:03:14 -0000
+@@ -23,20 +23,25 @@
+ #define AVR_ISA_SRAM 0x0008 /* device has SRAM (LD, ST, PUSH, POP, ...) */
+ #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, MOVW, ...) */
++#define AVR_ISA_MUL 0x0040 /* device has new core (MUL, FMUL, ...) */
+ #define AVR_ISA_ELPM 0x0080 /* device has >64K program memory (ELPM) */
+ #define AVR_ISA_ELPMX 0x0100 /* device has ELPM Rd,Z[+] */
+ #define AVR_ISA_SPM 0x0200 /* device can program itself */
+ #define AVR_ISA_BRK 0x0400 /* device has BREAK (on-chip debug) */
+ #define AVR_ISA_EIND 0x0800 /* device has >128K program memory (none yet) */
++#define AVR_ISA_MOVW 0x1000 /* device has MOVW */
+
+ #define AVR_ISA_TINY1 (AVR_ISA_1200 | AVR_ISA_LPM)
+ #define AVR_ISA_2xxx (AVR_ISA_TINY1 | AVR_ISA_SRAM)
+-#define AVR_ISA_M8 (AVR_ISA_2xxx | AVR_ISA_MUL | AVR_ISA_LPMX | AVR_ISA_SPM)
++#define AVR_ISA_TINY2 (AVR_ISA_2xxx | AVR_ISA_MOVW | AVR_ISA_LPMX | \
++ AVR_ISA_SPM | AVR_ISA_BRK)
++#define AVR_ISA_M8 (AVR_ISA_2xxx | AVR_ISA_MUL | AVR_ISA_MOVW | \
++ AVR_ISA_LPMX | AVR_ISA_SPM)
+ #define AVR_ISA_M603 (AVR_ISA_2xxx | AVR_ISA_MEGA)
+ #define AVR_ISA_M103 (AVR_ISA_M603 | AVR_ISA_ELPM)
+-#define AVR_ISA_M161 (AVR_ISA_M603 | AVR_ISA_MUL | AVR_ISA_LPMX | AVR_ISA_SPM)
+-#define AVR_ISA_94K (AVR_ISA_M603 | AVR_ISA_MUL | AVR_ISA_LPMX)
++#define AVR_ISA_M161 (AVR_ISA_M603 | AVR_ISA_MUL | AVR_ISA_MOVW | \
++ AVR_ISA_LPMX | AVR_ISA_SPM)
++#define AVR_ISA_94K (AVR_ISA_M603 | AVR_ISA_MUL | AVR_ISA_MOVW | AVR_ISA_LPMX)
+ #define AVR_ISA_M323 (AVR_ISA_M161 | AVR_ISA_BRK)
+ #define AVR_ISA_M128 (AVR_ISA_M323 | AVR_ISA_ELPM | AVR_ISA_ELPMX)
+
+@@ -236,7 +241,7 @@ AVR_INSN (ror, "r", "1001010rrrrr0111
+ AVR_INSN (swap, "r", "1001010rrrrr0010", 1, AVR_ISA_1200, 0x9402)
+
+ /* Known to be decoded as `nop' by the old core. */
+-AVR_INSN (movw, "v,v", "00000001ddddrrrr", 1, AVR_ISA_MUL, 0x0100)
++AVR_INSN (movw, "v,v", "00000001ddddrrrr", 1, AVR_ISA_MOVW, 0x0100)
+ AVR_INSN (muls, "d,d", "00000010ddddrrrr", 1, AVR_ISA_MUL, 0x0200)
+ AVR_INSN (mulsu,"a,a", "000000110ddd0rrr", 1, AVR_ISA_MUL, 0x0300)
+ AVR_INSN (fmul, "a,a", "000000110ddd1rrr", 1, AVR_ISA_MUL, 0x0308)
diff --git a/devel/avr-binutils/files/patch-mega325x-mega645x b/devel/avr-binutils/files/patch-mega325x-mega645x
new file mode 100644
index 000000000000..a911d090f52e
--- /dev/null
+++ b/devel/avr-binutils/files/patch-mega325x-mega645x
@@ -0,0 +1,19 @@
+2005-03-04 Eric B. Weddington <ericw@evcohs.com>
+
+ * gas/config/tc-avr.c:
+ Add support for atmega325, atmega3250, atmega645, atmega6450.
+
+--- gas/config/tc-avr.c.old 2005-03-04 09:52:14.321375000 -0700
++++ gas/config/tc-avr.c 2005-03-04 09:25:06.805750000 -0700
+@@ -107,7 +107,11 @@
+ {"atmega169", AVR_ISA_M323, bfd_mach_avr5},
+ {"atmega32", AVR_ISA_M323, bfd_mach_avr5},
+ {"atmega323", AVR_ISA_M323, bfd_mach_avr5},
++ {"atmega325", AVR_ISA_M323, bfd_mach_avr5},
++ {"atmega3250",AVR_ISA_M323, bfd_mach_avr5},
+ {"atmega64", AVR_ISA_M323, bfd_mach_avr5},
++ {"atmega645", AVR_ISA_M323, bfd_mach_avr5},
++ {"atmega6450",AVR_ISA_M323, bfd_mach_avr5},
+ {"atmega128", AVR_ISA_M128, bfd_mach_avr5},
+ {"at90can128",AVR_ISA_M128, bfd_mach_avr5},
+ {"at94k", AVR_ISA_94K, bfd_mach_avr5},
diff --git a/devel/avr-binutils/files/patch-no-lma-eeprom b/devel/avr-binutils/files/patch-no-lma-eeprom
new file mode 100644
index 000000000000..f4e8591d325e
--- /dev/null
+++ b/devel/avr-binutils/files/patch-no-lma-eeprom
@@ -0,0 +1,15 @@
+===================================================================
+RCS file: /cvs/src/src/ld/scripttempl/avr.sc,v
+retrieving revision 1.2
+retrieving revision 1.3
+diff -u -r1.2 -r1.3
+--- ld/scripttempl/avr.sc 2002/06/01 23:28:59 1.2
++++ ld/scripttempl/avr.sc 2004/05/08 21:52:56 1.3
+@@ -145,7 +145,6 @@
+ } ${RELOCATING+ > data}
+
+ .eeprom ${RELOCATING-0}:
+- ${RELOCATING+AT (ADDR (.text) + SIZEOF (.text) + SIZEOF (.data))}
+ {
+ *(.eeprom*)
+ ${RELOCATING+ __eeprom_end = . ; }