summaryrefslogtreecommitdiffstats
path: root/patches/binutils-2.20.1a/atmel/0009-Add-support-for-more-XMEGA-devices.patch
blob: bbb8b6486827c8fc325b2e74bf55527d3e9990ac (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
From 0a532d69add35e87bd577d6e9341897d8b5080be Mon Sep 17 00:00:00 2001
From: Stephan Linz <linz@li-pro.net>
Date: Tue, 19 Apr 2011 00:55:01 +0200
Subject: [PATCH 9/9] Add support for more XMEGA devices

Add support for a bunch of new AVR XMEGA devices: atxmega64a1u,
atxmega128a1u, atxmega128b1, atxmega16x1, atxmega32x1

Original ATMEL patch from:
http://distribute.atmel.no/tools/opensource/avr-gcc/binutils-2.20.1/53-binutils-2.20.1-xmega128a1u-64a1u.patch
http://distribute.atmel.no/tools/opensource/avr-gcc/binutils-2.20.1/54-binutils-2.20.1-atxmega16x1-32x1.patch
http://distribute.atmel.no/tools/opensource/avr-gcc/binutils-2.20.1/55-binutils-2.20.1-atxmega128b1.patch

Signed-off-by: Stephan Linz <linz@li-pro.net>
---
 binutils/size.c     |    1 +
 gas/config/tc-avr.c |    5 +++++
 gas/doc/c-avr.texi  |   14 ++++++++------
 3 files changed, 14 insertions(+), 6 deletions(-)

diff --git a/binutils/size.c b/binutils/size.c
index a6c8e6c..f5ca64b 100644
--- a/binutils/size.c
+++ b/binutils/size.c
@@ -132,6 +132,7 @@ avr_device_t avr[] =
 	{"atxmega128a1",  AVR136K, AVR8K,  AVR2K},
 	{"atxmega128a1u", AVR136K, AVR8K,  AVR2K},
 	{"atxmega128a3",  AVR136K, AVR8K,  AVR2K},
+	{"atxmega128b1",  AVR136K, AVR8K,  AVR2K},
 	{"atxmega128d3",  AVR136K, AVR8K,  AVR2K},
 
 	{"at43usb320",    AVR128K, 608UL,  0UL},
diff --git a/gas/config/tc-avr.c b/gas/config/tc-avr.c
index 20501bb..1a22ae7 100644
--- a/gas/config/tc-avr.c
+++ b/gas/config/tc-avr.c
@@ -252,12 +252,16 @@ static struct mcu_type_s mcu_types[] =
   {"atmega2561", AVR_ISA_AVR6,    bfd_mach_avr6},
   {"atxmega16a4", AVR_ISA_XMEGA,  bfd_mach_avrxmega2},
   {"atxmega16d4", AVR_ISA_XMEGA,  bfd_mach_avrxmega2},
+  {"atxmega16x1", AVR_ISA_XMEGA,  bfd_mach_avrxmega2},
   {"atxmega32a4", AVR_ISA_XMEGA,  bfd_mach_avrxmega2},
   {"atxmega32d4", AVR_ISA_XMEGA,  bfd_mach_avrxmega2},
+  {"atxmega32x1", AVR_ISA_XMEGA,  bfd_mach_avrxmega2},
   {"atxmega64a3", AVR_ISA_XMEGA,  bfd_mach_avrxmega4},
   {"atxmega64d3", AVR_ISA_XMEGA,  bfd_mach_avrxmega4},
   {"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},
   {"atxmega128d3", AVR_ISA_XMEGA, bfd_mach_avrxmega6},
   {"atxmega192a3", AVR_ISA_XMEGA, bfd_mach_avrxmega6},
   {"atxmega192d3", AVR_ISA_XMEGA, bfd_mach_avrxmega6},
@@ -265,6 +269,7 @@ static struct mcu_type_s mcu_types[] =
   {"atxmega256a3b",AVR_ISA_XMEGA, bfd_mach_avrxmega6},
   {"atxmega256d3", AVR_ISA_XMEGA, bfd_mach_avrxmega6},
   {"atxmega128a1", AVR_ISA_XMEGA, bfd_mach_avrxmega7},
+  {"atxmega128a1u",AVR_ISA_XMEGA, bfd_mach_avrxmega7},
   {"attiny4",      AVR_ISA_AVRTINY10, bfd_mach_avrtiny10},
   {"attiny5",      AVR_ISA_AVRTINY10, bfd_mach_avrtiny10},
   {"attiny9",      AVR_ISA_AVRTINY10, bfd_mach_avrtiny10},
diff --git a/gas/doc/c-avr.texi b/gas/doc/c-avr.texi
index c04c546..07637bf 100644
--- a/gas/doc/c-avr.texi
+++ b/gas/doc/c-avr.texi
@@ -88,24 +88,26 @@ atmega2560, atmega2561).
 
 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, atxmega16d4,
-atxmega32d4).
+atxmega16x1, atxmega32a4, atxmega32d4, atxmega32x1).
 
 Instruction set avrxmega3 is for the XMEGA AVR core with 8K to 64K program
-memory space and greater than 64K data space (MCU types: atxmega32a4).
+memory space and greater than 64K data space (MCU types: none).
 
 Instruction set avrxmega4 is for the XMEGA AVR core with up to 64K program
 memory space and less than 64K data space (MCU types: atxmega64a3, atxmega64d3).
 
 Instruction set avrxmega5 is for the XMEGA AVR core with up to 64K program
-memory space and greater than 64K data space (MCU types: atxmega64a1).
+memory space and greater than 64K data space (MCU types: atxmega64a1,
+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,
-atxmega128d3, atxmega192a3, atxmega192d3, atxmega256a3, atxmega256a3b,
-atxmega192d3).
+atxmega128d3, atxmega192a3, atxmega128b1, atxmega192d3, atxmega256a3,
+atxmega256a3b, atxmega192d3).
 
 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).
+memory space and greater than 64K data space (MCU types: atxmega128a1,
+atxmega128a1u).
 
 @cindex @code{-mall-opcodes} command line option, AVR
 @item -mall-opcodes
-- 
1.6.0.4