mirror of
https://git.FreeBSD.org/ports.git
synced 2024-12-23 04:23:08 +00:00
Add support for ATtiny88, ATmega32HVB, ATmega1284P.
Fix support for AT90USB82/162, move them into "avr35" architecture. Add basic support for fuse and lock bit sections in ELF file.
This commit is contained in:
parent
8bf0971371
commit
ba6acc8112
Notes:
svn2git
2021-03-31 03:12:20 +00:00
svn path=/head/; revision=204171
@ -7,7 +7,7 @@
|
||||
|
||||
PORTNAME= binutils
|
||||
PORTVERSION= 2.18
|
||||
PORTREVISION= 1
|
||||
PORTREVISION= 2
|
||||
CATEGORIES= devel
|
||||
MASTER_SITES= ${MASTER_SITE_SOURCEWARE}
|
||||
MASTER_SITE_SUBDIR= binutils/releases
|
||||
|
@ -1,16 +1,28 @@
|
||||
--- gas/config/tc-avr.c~ Mon Aug 6 21:59:55 2007
|
||||
+++ gas/config/tc-avr.c Sat Oct 27 16:30:54 2007
|
||||
@@ -97,22 +97,28 @@
|
||||
--- gas/config/tc-avr.c.orig Mon Aug 6 21:59:55 2007
|
||||
+++ gas/config/tc-avr.c Wed Dec 19 12:08:45 2007
|
||||
@@ -63,7 +63,7 @@
|
||||
{
|
||||
{"avr1", AVR_ISA_TINY1, bfd_mach_avr1},
|
||||
{"avr2", AVR_ISA_TINY2, bfd_mach_avr2},
|
||||
- {"avr3", AVR_ISA_M103, bfd_mach_avr3},
|
||||
+ {"avr3", AVR_ISA_USB162, bfd_mach_avr3},
|
||||
{"avr4", AVR_ISA_M8, bfd_mach_avr4},
|
||||
{"avr5", AVR_ISA_ALL, bfd_mach_avr5},
|
||||
{"avr6", AVR_ISA_ALL, bfd_mach_avr6},
|
||||
@@ -97,22 +97,31 @@
|
||||
{"attiny25", AVR_ISA_TINY2, bfd_mach_avr2},
|
||||
{"attiny45", AVR_ISA_TINY2, bfd_mach_avr2},
|
||||
{"attiny85", AVR_ISA_TINY2, bfd_mach_avr2},
|
||||
+ {"attiny43u", AVR_ISA_TINY2, bfd_mach_avr2},
|
||||
+ {"attiny48", AVR_ISA_TINY2, bfd_mach_avr2},
|
||||
+ {"attiny88", AVR_ISA_TINY2, bfd_mach_avr2},
|
||||
{"atmega603", AVR_ISA_M603, bfd_mach_avr3}, /* XXX -> m103 */
|
||||
{"atmega103", AVR_ISA_M103, bfd_mach_avr3},
|
||||
{"at43usb320", AVR_ISA_M103, bfd_mach_avr3},
|
||||
{"at43usb355", AVR_ISA_M603, bfd_mach_avr3},
|
||||
{"at76c711", AVR_ISA_M603, bfd_mach_avr3},
|
||||
+ {"at90usb82", AVR_ISA_USB162, bfd_mach_avr3},
|
||||
+ {"at90usb162", AVR_ISA_USB162, bfd_mach_avr3},
|
||||
{"atmega48", AVR_ISA_PWMx, bfd_mach_avr4},
|
||||
+ {"atmega48p", AVR_ISA_PWMx, bfd_mach_avr4},
|
||||
{"atmega8", AVR_ISA_M8, bfd_mach_avr4},
|
||||
@ -29,7 +41,7 @@
|
||||
{"atmega16", AVR_ISA_M323, bfd_mach_avr5},
|
||||
{"atmega161", AVR_ISA_M161, bfd_mach_avr5},
|
||||
{"atmega162", AVR_ISA_M323, bfd_mach_avr5},
|
||||
@@ -121,6 +127,7 @@
|
||||
@@ -121,6 +130,7 @@
|
||||
{"atmega165", AVR_ISA_M323, bfd_mach_avr5},
|
||||
{"atmega165p", AVR_ISA_M323, bfd_mach_avr5},
|
||||
{"atmega168", AVR_ISA_M323, bfd_mach_avr5},
|
||||
@ -37,7 +49,7 @@
|
||||
{"atmega169", AVR_ISA_M323, bfd_mach_avr5},
|
||||
{"atmega169p", AVR_ISA_M323, bfd_mach_avr5},
|
||||
{"atmega32", AVR_ISA_M323, bfd_mach_avr5},
|
||||
@@ -128,6 +135,7 @@
|
||||
@@ -128,12 +138,14 @@
|
||||
{"atmega324p", AVR_ISA_M323, bfd_mach_avr5},
|
||||
{"atmega325", AVR_ISA_M323, bfd_mach_avr5},
|
||||
{"atmega325p", AVR_ISA_M323, bfd_mach_avr5},
|
||||
@ -45,27 +57,45 @@
|
||||
{"atmega329", AVR_ISA_M323, bfd_mach_avr5},
|
||||
{"atmega329p", AVR_ISA_M323, bfd_mach_avr5},
|
||||
{"atmega3250", AVR_ISA_M323, bfd_mach_avr5},
|
||||
@@ -150,6 +158,8 @@
|
||||
{"atmega3250p",AVR_ISA_M323, bfd_mach_avr5},
|
||||
{"atmega3290", AVR_ISA_M323, bfd_mach_avr5},
|
||||
{"atmega3290p",AVR_ISA_M323, bfd_mach_avr5},
|
||||
+ {"atmega32hvb",AVR_ISA_M323, bfd_mach_avr5},
|
||||
{"atmega406", AVR_ISA_M323, bfd_mach_avr5},
|
||||
{"atmega64", AVR_ISA_M323, bfd_mach_avr5},
|
||||
{"atmega640", AVR_ISA_M323, bfd_mach_avr5},
|
||||
@@ -142,6 +154,7 @@
|
||||
{"atmega128", AVR_ISA_M128, bfd_mach_avr5},
|
||||
{"atmega1280", AVR_ISA_M128, bfd_mach_avr5},
|
||||
{"atmega1281", AVR_ISA_M128, bfd_mach_avr5},
|
||||
+ {"atmega1284p",AVR_ISA_M128, bfd_mach_avr5},
|
||||
{"atmega645", AVR_ISA_M323, bfd_mach_avr5},
|
||||
{"atmega649", AVR_ISA_M323, bfd_mach_avr5},
|
||||
{"atmega6450", AVR_ISA_M323, bfd_mach_avr5},
|
||||
@@ -150,8 +163,8 @@
|
||||
{"at90can32" , AVR_ISA_M323, bfd_mach_avr5},
|
||||
{"at90can64" , AVR_ISA_M323, bfd_mach_avr5},
|
||||
{"at90can128", AVR_ISA_M128, bfd_mach_avr5},
|
||||
- {"at90usb82", AVR_ISA_M323, bfd_mach_avr5},
|
||||
- {"at90usb162", AVR_ISA_M323, bfd_mach_avr5},
|
||||
+ {"at90pwm216", AVR_ISA_M323, bfd_mach_avr5},
|
||||
+ {"at90pwm316", AVR_ISA_M323, bfd_mach_avr5},
|
||||
{"at90usb82", AVR_ISA_M323, bfd_mach_avr5},
|
||||
{"at90usb162", AVR_ISA_M323, bfd_mach_avr5},
|
||||
{"at90usb646", AVR_ISA_M323, bfd_mach_avr5},
|
||||
--- gas/doc/c-avr.texi~ Mon Aug 6 22:00:08 2007
|
||||
+++ gas/doc/c-avr.texi Sat Oct 27 16:30:52 2007
|
||||
{"at90usb647", AVR_ISA_M323, bfd_mach_avr5},
|
||||
{"at90usb1286",AVR_ISA_M128, bfd_mach_avr5},
|
||||
--- gas/doc/c-avr.texi.orig Mon Aug 6 22:00:08 2007
|
||||
+++ gas/doc/c-avr.texi Wed Dec 19 12:07:54 2007
|
||||
@@ -41,24 +41,26 @@
|
||||
attiny26, at90s2333, at90s2343, at90s4414, at90s4433, at90s4434,
|
||||
at90s8515, at90c8534, at90s8535, at86rf401, attiny13, attiny2313,
|
||||
attiny261, attiny461, attiny861, attiny24, attiny44, attiny84, attiny25,
|
||||
-attiny45, attiny85).
|
||||
+attiny45, attiny85, attiny43u, attiny48).
|
||||
+attiny45, attiny85, attiny43u, attiny48, attiny88).
|
||||
|
||||
Instruction set avr3 is for the classic AVR core with up to 128K program
|
||||
memory space (MCU types: atmega103, atmega603, at43usb320, at43usb355,
|
||||
at76c711).
|
||||
-at76c711).
|
||||
+at76c711, at90usb82, at90usb162).
|
||||
|
||||
-Instruction set avr4 is for the enhanced AVR core with up to 8K program
|
||||
-memory space (MCU types: atmega48, atmega8, atmega83, atmega85, atmega88,
|
||||
@ -86,12 +116,23 @@
|
||||
+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, atmega32, atmega323, atmega324p, atmega325,
|
||||
+atmega169, atmega169p, atmega32, atmega32hvb, atmega323, atmega324p, atmega325,
|
||||
+atmega325p, atmega328p, atmega329, atmega329p, atmega3250,
|
||||
+atmega3250p, atmega3290, atmega3290p, atmega406, atmega64, atmega640,
|
||||
+atmega644, atmega644p, atmega128, atmega1280, atmega1281, atmega645,
|
||||
+atmega644, atmega644p, atmega128, atmega1280, atmega1281, atmega1284p, atmega645,
|
||||
+atmega649, atmega6450, atmega6490, atmega16hva, at90can32, at90can64,
|
||||
+at90can128, at90pwm216, at90pwm316, at90usb82, at90usb162, at90usb646,
|
||||
+at90can128, at90pwm216, at90pwm316, at90usb646,
|
||||
at90usb647, at90usb1286, at90usb1287, at94k).
|
||||
|
||||
Instruction set avr6 is for the enhanced AVR core with 256K program
|
||||
--- include/opcode/avr.h.orig Fri Apr 7 17:18:08 2006
|
||||
+++ include/opcode/avr.h Wed Dec 19 12:10:04 2007
|
||||
@@ -40,6 +40,8 @@
|
||||
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_USB162 (AVR_ISA_M603 | AVR_ISA_MOVW | \
|
||||
+ AVR_ISA_LPMX | AVR_ISA_SPM)
|
||||
#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)
|
||||
|
43
devel/avr-binutils/files/patch-newsections
Normal file
43
devel/avr-binutils/files/patch-newsections
Normal file
@ -0,0 +1,43 @@
|
||||
--- ld/scripttempl/avr.sc.old 2007-09-14 06:32:02.437500000 -0600
|
||||
+++ ld/scripttempl/avr.sc 2007-09-14 06:50:28.854125000 -0600
|
||||
@@ -4,9 +4,12 @@ OUTPUT_ARCH(${ARCH})
|
||||
|
||||
MEMORY
|
||||
{
|
||||
- text (rx) : ORIGIN = 0, LENGTH = $TEXT_LENGTH
|
||||
- data (rw!x) : ORIGIN = 0x800060, LENGTH = $DATA_LENGTH
|
||||
- eeprom (rw!x) : ORIGIN = 0x810000, LENGTH = 64K
|
||||
+ text (rx) : ORIGIN = 0, LENGTH = $TEXT_LENGTH
|
||||
+ data (rw!x) : ORIGIN = 0x800060, LENGTH = $DATA_LENGTH
|
||||
+ eeprom (rw!x) : ORIGIN = 0x810000, LENGTH = 64K
|
||||
+ fuse (rw!x) : ORIGIN = 0x820000, LENGTH = 1K
|
||||
+ lock (rw!x) : ORIGIN = 0x830000, LENGTH = 1K
|
||||
+ signature (rw!x) : ORIGIN = 0x840000, LENGTH = 1K
|
||||
}
|
||||
|
||||
SECTIONS
|
||||
@@ -196,6 +199,24 @@ SECTIONS
|
||||
${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) }
|
@ -11,9 +11,11 @@ In addition to the stock binutils-2.18 distribution, support for the
|
||||
following AVR devices has been added by a private patch:
|
||||
|
||||
ATtiny43U
|
||||
ATtiny48
|
||||
ATtiny48/88
|
||||
AT90PWM2B/PWM3B
|
||||
AT90PWM216/PWM316
|
||||
ATmega48P/88P/168P/328P
|
||||
ATmega32HVB
|
||||
ATmega1284P
|
||||
|
||||
WWW: http://www.sourceware.org/binutils/
|
||||
|
Loading…
Reference in New Issue
Block a user