1use object::elf;
2
3pub fn ef_avr_arch(target_cpu: &str) -> u32 {
13 match target_cpu {
15 "avr1" => elf::EF_AVR_ARCH_AVR1,
17 "avr2" => elf::EF_AVR_ARCH_AVR2,
18 "avr25" => elf::EF_AVR_ARCH_AVR25,
19 "avr3" => elf::EF_AVR_ARCH_AVR3,
20 "avr31" => elf::EF_AVR_ARCH_AVR31,
21 "avr35" => elf::EF_AVR_ARCH_AVR35,
22 "avr4" => elf::EF_AVR_ARCH_AVR4,
23 "avr5" => elf::EF_AVR_ARCH_AVR5,
24 "avr51" => elf::EF_AVR_ARCH_AVR51,
25 "avr6" => elf::EF_AVR_ARCH_AVR6,
26 "avrxmega1" => elf::EF_AVR_ARCH_XMEGA1,
27 "avrxmega2" => elf::EF_AVR_ARCH_XMEGA2,
28 "avrxmega3" => elf::EF_AVR_ARCH_XMEGA3,
29 "avrxmega4" => elf::EF_AVR_ARCH_XMEGA4,
30 "avrxmega5" => elf::EF_AVR_ARCH_XMEGA5,
31 "avrxmega6" => elf::EF_AVR_ARCH_XMEGA6,
32 "avrxmega7" => elf::EF_AVR_ARCH_XMEGA7,
33 "avrtiny" => elf::EF_AVR_ARCH_AVRTINY,
34
35 "at90s1200" => elf::EF_AVR_ARCH_AVR1,
37 "attiny11" => elf::EF_AVR_ARCH_AVR1,
38 "attiny12" => elf::EF_AVR_ARCH_AVR1,
39 "attiny15" => elf::EF_AVR_ARCH_AVR1,
40 "attiny28" => elf::EF_AVR_ARCH_AVR1,
41 "at90s2313" => elf::EF_AVR_ARCH_AVR2,
42 "at90s2323" => elf::EF_AVR_ARCH_AVR2,
43 "at90s2333" => elf::EF_AVR_ARCH_AVR2,
44 "at90s2343" => elf::EF_AVR_ARCH_AVR2,
45 "attiny22" => elf::EF_AVR_ARCH_AVR2,
46 "attiny26" => elf::EF_AVR_ARCH_AVR2,
47 "at86rf401" => elf::EF_AVR_ARCH_AVR25,
48 "at90s4414" => elf::EF_AVR_ARCH_AVR2,
49 "at90s4433" => elf::EF_AVR_ARCH_AVR2,
50 "at90s4434" => elf::EF_AVR_ARCH_AVR2,
51 "at90s8515" => elf::EF_AVR_ARCH_AVR2,
52 "at90c8534" => elf::EF_AVR_ARCH_AVR2,
53 "at90s8535" => elf::EF_AVR_ARCH_AVR2,
54 "ata5272" => elf::EF_AVR_ARCH_AVR25,
55 "ata6616c" => elf::EF_AVR_ARCH_AVR25,
56 "attiny13" => elf::EF_AVR_ARCH_AVR25,
57 "attiny13a" => elf::EF_AVR_ARCH_AVR25,
58 "attiny2313" => elf::EF_AVR_ARCH_AVR25,
59 "attiny2313a" => elf::EF_AVR_ARCH_AVR25,
60 "attiny24" => elf::EF_AVR_ARCH_AVR25,
61 "attiny24a" => elf::EF_AVR_ARCH_AVR25,
62 "attiny4313" => elf::EF_AVR_ARCH_AVR25,
63 "attiny44" => elf::EF_AVR_ARCH_AVR25,
64 "attiny44a" => elf::EF_AVR_ARCH_AVR25,
65 "attiny84" => elf::EF_AVR_ARCH_AVR25,
66 "attiny84a" => elf::EF_AVR_ARCH_AVR25,
67 "attiny25" => elf::EF_AVR_ARCH_AVR25,
68 "attiny45" => elf::EF_AVR_ARCH_AVR25,
69 "attiny85" => elf::EF_AVR_ARCH_AVR25,
70 "attiny261" => elf::EF_AVR_ARCH_AVR25,
71 "attiny261a" => elf::EF_AVR_ARCH_AVR25,
72 "attiny441" => elf::EF_AVR_ARCH_AVR25,
73 "attiny461" => elf::EF_AVR_ARCH_AVR25,
74 "attiny461a" => elf::EF_AVR_ARCH_AVR25,
75 "attiny841" => elf::EF_AVR_ARCH_AVR25,
76 "attiny861" => elf::EF_AVR_ARCH_AVR25,
77 "attiny861a" => elf::EF_AVR_ARCH_AVR25,
78 "attiny87" => elf::EF_AVR_ARCH_AVR25,
79 "attiny43u" => elf::EF_AVR_ARCH_AVR25,
80 "attiny48" => elf::EF_AVR_ARCH_AVR25,
81 "attiny88" => elf::EF_AVR_ARCH_AVR25,
82 "attiny828" => elf::EF_AVR_ARCH_AVR25,
83 "at43usb355" => elf::EF_AVR_ARCH_AVR3,
84 "at76c711" => elf::EF_AVR_ARCH_AVR3,
85 "atmega103" => elf::EF_AVR_ARCH_AVR31,
86 "at43usb320" => elf::EF_AVR_ARCH_AVR31,
87 "attiny167" => elf::EF_AVR_ARCH_AVR35,
88 "at90usb82" => elf::EF_AVR_ARCH_AVR35,
89 "at90usb162" => elf::EF_AVR_ARCH_AVR35,
90 "ata5505" => elf::EF_AVR_ARCH_AVR35,
91 "ata6617c" => elf::EF_AVR_ARCH_AVR35,
92 "ata664251" => elf::EF_AVR_ARCH_AVR35,
93 "atmega8u2" => elf::EF_AVR_ARCH_AVR35,
94 "atmega16u2" => elf::EF_AVR_ARCH_AVR35,
95 "atmega32u2" => elf::EF_AVR_ARCH_AVR35,
96 "attiny1634" => elf::EF_AVR_ARCH_AVR35,
97 "atmega8" => elf::EF_AVR_ARCH_AVR4,
98 "ata6289" => elf::EF_AVR_ARCH_AVR4,
99 "atmega8a" => elf::EF_AVR_ARCH_AVR4,
100 "ata6285" => elf::EF_AVR_ARCH_AVR4,
101 "ata6286" => elf::EF_AVR_ARCH_AVR4,
102 "ata6612c" => elf::EF_AVR_ARCH_AVR4,
103 "atmega48" => elf::EF_AVR_ARCH_AVR4,
104 "atmega48a" => elf::EF_AVR_ARCH_AVR4,
105 "atmega48pa" => elf::EF_AVR_ARCH_AVR4,
106 "atmega48pb" => elf::EF_AVR_ARCH_AVR4,
107 "atmega48p" => elf::EF_AVR_ARCH_AVR4,
108 "atmega88" => elf::EF_AVR_ARCH_AVR4,
109 "atmega88a" => elf::EF_AVR_ARCH_AVR4,
110 "atmega88p" => elf::EF_AVR_ARCH_AVR4,
111 "atmega88pa" => elf::EF_AVR_ARCH_AVR4,
112 "atmega88pb" => elf::EF_AVR_ARCH_AVR4,
113 "atmega8515" => elf::EF_AVR_ARCH_AVR4,
114 "atmega8535" => elf::EF_AVR_ARCH_AVR4,
115 "atmega8hva" => elf::EF_AVR_ARCH_AVR4,
116 "at90pwm1" => elf::EF_AVR_ARCH_AVR4,
117 "at90pwm2" => elf::EF_AVR_ARCH_AVR4,
118 "at90pwm2b" => elf::EF_AVR_ARCH_AVR4,
119 "at90pwm3" => elf::EF_AVR_ARCH_AVR4,
120 "at90pwm3b" => elf::EF_AVR_ARCH_AVR4,
121 "at90pwm81" => elf::EF_AVR_ARCH_AVR4,
122 "ata5702m322" => elf::EF_AVR_ARCH_AVR5,
123 "ata5782" => elf::EF_AVR_ARCH_AVR5,
124 "ata5790" => elf::EF_AVR_ARCH_AVR5,
125 "ata5790n" => elf::EF_AVR_ARCH_AVR5,
126 "ata5791" => elf::EF_AVR_ARCH_AVR5,
127 "ata5795" => elf::EF_AVR_ARCH_AVR5,
128 "ata5831" => elf::EF_AVR_ARCH_AVR5,
129 "ata6613c" => elf::EF_AVR_ARCH_AVR5,
130 "ata6614q" => elf::EF_AVR_ARCH_AVR5,
131 "ata8210" => elf::EF_AVR_ARCH_AVR5,
132 "ata8510" => elf::EF_AVR_ARCH_AVR5,
133 "atmega16" => elf::EF_AVR_ARCH_AVR5,
134 "atmega16a" => elf::EF_AVR_ARCH_AVR5,
135 "atmega161" => elf::EF_AVR_ARCH_AVR5,
136 "atmega162" => elf::EF_AVR_ARCH_AVR5,
137 "atmega163" => elf::EF_AVR_ARCH_AVR5,
138 "atmega164a" => elf::EF_AVR_ARCH_AVR5,
139 "atmega164p" => elf::EF_AVR_ARCH_AVR5,
140 "atmega164pa" => elf::EF_AVR_ARCH_AVR5,
141 "atmega165" => elf::EF_AVR_ARCH_AVR5,
142 "atmega165a" => elf::EF_AVR_ARCH_AVR5,
143 "atmega165p" => elf::EF_AVR_ARCH_AVR5,
144 "atmega165pa" => elf::EF_AVR_ARCH_AVR5,
145 "atmega168" => elf::EF_AVR_ARCH_AVR5,
146 "atmega168a" => elf::EF_AVR_ARCH_AVR5,
147 "atmega168p" => elf::EF_AVR_ARCH_AVR5,
148 "atmega168pa" => elf::EF_AVR_ARCH_AVR5,
149 "atmega168pb" => elf::EF_AVR_ARCH_AVR5,
150 "atmega169" => elf::EF_AVR_ARCH_AVR5,
151 "atmega169a" => elf::EF_AVR_ARCH_AVR5,
152 "atmega169p" => elf::EF_AVR_ARCH_AVR5,
153 "atmega169pa" => elf::EF_AVR_ARCH_AVR5,
154 "atmega32" => elf::EF_AVR_ARCH_AVR5,
155 "atmega32a" => elf::EF_AVR_ARCH_AVR5,
156 "atmega323" => elf::EF_AVR_ARCH_AVR5,
157 "atmega324a" => elf::EF_AVR_ARCH_AVR5,
158 "atmega324p" => elf::EF_AVR_ARCH_AVR5,
159 "atmega324pa" => elf::EF_AVR_ARCH_AVR5,
160 "atmega324pb" => elf::EF_AVR_ARCH_AVR5,
161 "atmega325" => elf::EF_AVR_ARCH_AVR5,
162 "atmega325a" => elf::EF_AVR_ARCH_AVR5,
163 "atmega325p" => elf::EF_AVR_ARCH_AVR5,
164 "atmega325pa" => elf::EF_AVR_ARCH_AVR5,
165 "atmega3250" => elf::EF_AVR_ARCH_AVR5,
166 "atmega3250a" => elf::EF_AVR_ARCH_AVR5,
167 "atmega3250p" => elf::EF_AVR_ARCH_AVR5,
168 "atmega3250pa" => elf::EF_AVR_ARCH_AVR5,
169 "atmega328" => elf::EF_AVR_ARCH_AVR5,
170 "atmega328p" => elf::EF_AVR_ARCH_AVR5,
171 "atmega328pb" => elf::EF_AVR_ARCH_AVR5,
172 "atmega329" => elf::EF_AVR_ARCH_AVR5,
173 "atmega329a" => elf::EF_AVR_ARCH_AVR5,
174 "atmega329p" => elf::EF_AVR_ARCH_AVR5,
175 "atmega329pa" => elf::EF_AVR_ARCH_AVR5,
176 "atmega3290" => elf::EF_AVR_ARCH_AVR5,
177 "atmega3290a" => elf::EF_AVR_ARCH_AVR5,
178 "atmega3290p" => elf::EF_AVR_ARCH_AVR5,
179 "atmega3290pa" => elf::EF_AVR_ARCH_AVR5,
180 "atmega406" => elf::EF_AVR_ARCH_AVR5,
181 "atmega64" => elf::EF_AVR_ARCH_AVR5,
182 "atmega64a" => elf::EF_AVR_ARCH_AVR5,
183 "atmega640" => elf::EF_AVR_ARCH_AVR5,
184 "atmega644" => elf::EF_AVR_ARCH_AVR5,
185 "atmega644a" => elf::EF_AVR_ARCH_AVR5,
186 "atmega644p" => elf::EF_AVR_ARCH_AVR5,
187 "atmega644pa" => elf::EF_AVR_ARCH_AVR5,
188 "atmega645" => elf::EF_AVR_ARCH_AVR5,
189 "atmega645a" => elf::EF_AVR_ARCH_AVR5,
190 "atmega645p" => elf::EF_AVR_ARCH_AVR5,
191 "atmega649" => elf::EF_AVR_ARCH_AVR5,
192 "atmega649a" => elf::EF_AVR_ARCH_AVR5,
193 "atmega649p" => elf::EF_AVR_ARCH_AVR5,
194 "atmega6450" => elf::EF_AVR_ARCH_AVR5,
195 "atmega6450a" => elf::EF_AVR_ARCH_AVR5,
196 "atmega6450p" => elf::EF_AVR_ARCH_AVR5,
197 "atmega6490" => elf::EF_AVR_ARCH_AVR5,
198 "atmega6490a" => elf::EF_AVR_ARCH_AVR5,
199 "atmega6490p" => elf::EF_AVR_ARCH_AVR5,
200 "atmega64rfr2" => elf::EF_AVR_ARCH_AVR5,
201 "atmega644rfr2" => elf::EF_AVR_ARCH_AVR5,
202 "atmega16hva" => elf::EF_AVR_ARCH_AVR5,
203 "atmega16hva2" => elf::EF_AVR_ARCH_AVR5,
204 "atmega16hvb" => elf::EF_AVR_ARCH_AVR5,
205 "atmega16hvbrevb" => elf::EF_AVR_ARCH_AVR5,
206 "atmega32hvb" => elf::EF_AVR_ARCH_AVR5,
207 "atmega32hvbrevb" => elf::EF_AVR_ARCH_AVR5,
208 "atmega64hve" => elf::EF_AVR_ARCH_AVR5,
209 "atmega64hve2" => elf::EF_AVR_ARCH_AVR5,
210 "at90can32" => elf::EF_AVR_ARCH_AVR5,
211 "at90can64" => elf::EF_AVR_ARCH_AVR5,
212 "at90pwm161" => elf::EF_AVR_ARCH_AVR5,
213 "at90pwm216" => elf::EF_AVR_ARCH_AVR5,
214 "at90pwm316" => elf::EF_AVR_ARCH_AVR5,
215 "atmega32c1" => elf::EF_AVR_ARCH_AVR5,
216 "atmega64c1" => elf::EF_AVR_ARCH_AVR5,
217 "atmega16m1" => elf::EF_AVR_ARCH_AVR5,
218 "atmega32m1" => elf::EF_AVR_ARCH_AVR5,
219 "atmega64m1" => elf::EF_AVR_ARCH_AVR5,
220 "atmega16u4" => elf::EF_AVR_ARCH_AVR5,
221 "atmega32u4" => elf::EF_AVR_ARCH_AVR5,
222 "atmega32u6" => elf::EF_AVR_ARCH_AVR5,
223 "at90usb646" => elf::EF_AVR_ARCH_AVR5,
224 "at90usb647" => elf::EF_AVR_ARCH_AVR5,
225 "at90scr100" => elf::EF_AVR_ARCH_AVR5,
226 "at94k" => elf::EF_AVR_ARCH_AVR5,
227 "m3000" => elf::EF_AVR_ARCH_AVR5,
228 "atmega128" => elf::EF_AVR_ARCH_AVR51,
229 "atmega128a" => elf::EF_AVR_ARCH_AVR51,
230 "atmega1280" => elf::EF_AVR_ARCH_AVR51,
231 "atmega1281" => elf::EF_AVR_ARCH_AVR51,
232 "atmega1284" => elf::EF_AVR_ARCH_AVR51,
233 "atmega1284p" => elf::EF_AVR_ARCH_AVR51,
234 "atmega128rfa1" => elf::EF_AVR_ARCH_AVR51,
235 "atmega128rfr2" => elf::EF_AVR_ARCH_AVR51,
236 "atmega1284rfr2" => elf::EF_AVR_ARCH_AVR51,
237 "at90can128" => elf::EF_AVR_ARCH_AVR51,
238 "at90usb1286" => elf::EF_AVR_ARCH_AVR51,
239 "at90usb1287" => elf::EF_AVR_ARCH_AVR51,
240 "atmega2560" => elf::EF_AVR_ARCH_AVR6,
241 "atmega2561" => elf::EF_AVR_ARCH_AVR6,
242 "atmega256rfr2" => elf::EF_AVR_ARCH_AVR6,
243 "atmega2564rfr2" => elf::EF_AVR_ARCH_AVR6,
244 "atxmega16a4" => elf::EF_AVR_ARCH_XMEGA2,
245 "atxmega16a4u" => elf::EF_AVR_ARCH_XMEGA2,
246 "atxmega16c4" => elf::EF_AVR_ARCH_XMEGA2,
247 "atxmega16d4" => elf::EF_AVR_ARCH_XMEGA2,
248 "atxmega32a4" => elf::EF_AVR_ARCH_XMEGA2,
249 "atxmega32a4u" => elf::EF_AVR_ARCH_XMEGA2,
250 "atxmega32c3" => elf::EF_AVR_ARCH_XMEGA2,
251 "atxmega32c4" => elf::EF_AVR_ARCH_XMEGA2,
252 "atxmega32d3" => elf::EF_AVR_ARCH_XMEGA2,
253 "atxmega32d4" => elf::EF_AVR_ARCH_XMEGA2,
254 "atxmega32e5" => elf::EF_AVR_ARCH_XMEGA2,
255 "atxmega16e5" => elf::EF_AVR_ARCH_XMEGA2,
256 "atxmega8e5" => elf::EF_AVR_ARCH_XMEGA2,
257 "atxmega64a3" => elf::EF_AVR_ARCH_XMEGA4,
258 "atxmega64a3u" => elf::EF_AVR_ARCH_XMEGA4,
259 "atxmega64a4u" => elf::EF_AVR_ARCH_XMEGA4,
260 "atxmega64b1" => elf::EF_AVR_ARCH_XMEGA4,
261 "atxmega64b3" => elf::EF_AVR_ARCH_XMEGA4,
262 "atxmega64c3" => elf::EF_AVR_ARCH_XMEGA4,
263 "atxmega64d3" => elf::EF_AVR_ARCH_XMEGA4,
264 "atxmega64d4" => elf::EF_AVR_ARCH_XMEGA4,
265 "atxmega64a1" => elf::EF_AVR_ARCH_XMEGA5,
266 "atxmega64a1u" => elf::EF_AVR_ARCH_XMEGA5,
267 "atxmega128a3" => elf::EF_AVR_ARCH_XMEGA6,
268 "atxmega128a3u" => elf::EF_AVR_ARCH_XMEGA6,
269 "atxmega128b1" => elf::EF_AVR_ARCH_XMEGA6,
270 "atxmega128b3" => elf::EF_AVR_ARCH_XMEGA6,
271 "atxmega128c3" => elf::EF_AVR_ARCH_XMEGA6,
272 "atxmega128d3" => elf::EF_AVR_ARCH_XMEGA6,
273 "atxmega128d4" => elf::EF_AVR_ARCH_XMEGA6,
274 "atxmega192a3" => elf::EF_AVR_ARCH_XMEGA6,
275 "atxmega192a3u" => elf::EF_AVR_ARCH_XMEGA6,
276 "atxmega192c3" => elf::EF_AVR_ARCH_XMEGA6,
277 "atxmega192d3" => elf::EF_AVR_ARCH_XMEGA6,
278 "atxmega256a3" => elf::EF_AVR_ARCH_XMEGA6,
279 "atxmega256a3u" => elf::EF_AVR_ARCH_XMEGA6,
280 "atxmega256a3b" => elf::EF_AVR_ARCH_XMEGA6,
281 "atxmega256a3bu" => elf::EF_AVR_ARCH_XMEGA6,
282 "atxmega256c3" => elf::EF_AVR_ARCH_XMEGA6,
283 "atxmega256d3" => elf::EF_AVR_ARCH_XMEGA6,
284 "atxmega384c3" => elf::EF_AVR_ARCH_XMEGA6,
285 "atxmega384d3" => elf::EF_AVR_ARCH_XMEGA6,
286 "atxmega128a1" => elf::EF_AVR_ARCH_XMEGA7,
287 "atxmega128a1u" => elf::EF_AVR_ARCH_XMEGA7,
288 "atxmega128a4u" => elf::EF_AVR_ARCH_XMEGA7,
289 "attiny4" => elf::EF_AVR_ARCH_AVRTINY,
290 "attiny5" => elf::EF_AVR_ARCH_AVRTINY,
291 "attiny9" => elf::EF_AVR_ARCH_AVRTINY,
292 "attiny10" => elf::EF_AVR_ARCH_AVRTINY,
293 "attiny20" => elf::EF_AVR_ARCH_AVRTINY,
294 "attiny40" => elf::EF_AVR_ARCH_AVRTINY,
295 "attiny102" => elf::EF_AVR_ARCH_AVRTINY,
296 "attiny104" => elf::EF_AVR_ARCH_AVRTINY,
297 "attiny202" => elf::EF_AVR_ARCH_XMEGA3,
298 "attiny402" => elf::EF_AVR_ARCH_XMEGA3,
299 "attiny204" => elf::EF_AVR_ARCH_XMEGA3,
300 "attiny404" => elf::EF_AVR_ARCH_XMEGA3,
301 "attiny804" => elf::EF_AVR_ARCH_XMEGA3,
302 "attiny1604" => elf::EF_AVR_ARCH_XMEGA3,
303 "attiny406" => elf::EF_AVR_ARCH_XMEGA3,
304 "attiny806" => elf::EF_AVR_ARCH_XMEGA3,
305 "attiny1606" => elf::EF_AVR_ARCH_XMEGA3,
306 "attiny807" => elf::EF_AVR_ARCH_XMEGA3,
307 "attiny1607" => elf::EF_AVR_ARCH_XMEGA3,
308 "attiny212" => elf::EF_AVR_ARCH_XMEGA3,
309 "attiny412" => elf::EF_AVR_ARCH_XMEGA3,
310 "attiny214" => elf::EF_AVR_ARCH_XMEGA3,
311 "attiny414" => elf::EF_AVR_ARCH_XMEGA3,
312 "attiny814" => elf::EF_AVR_ARCH_XMEGA3,
313 "attiny1614" => elf::EF_AVR_ARCH_XMEGA3,
314 "attiny416" => elf::EF_AVR_ARCH_XMEGA3,
315 "attiny816" => elf::EF_AVR_ARCH_XMEGA3,
316 "attiny1616" => elf::EF_AVR_ARCH_XMEGA3,
317 "attiny3216" => elf::EF_AVR_ARCH_XMEGA3,
318 "attiny417" => elf::EF_AVR_ARCH_XMEGA3,
319 "attiny817" => elf::EF_AVR_ARCH_XMEGA3,
320 "attiny1617" => elf::EF_AVR_ARCH_XMEGA3,
321 "attiny3217" => elf::EF_AVR_ARCH_XMEGA3,
322 "attiny1624" => elf::EF_AVR_ARCH_XMEGA3,
323 "attiny1626" => elf::EF_AVR_ARCH_XMEGA3,
324 "attiny1627" => elf::EF_AVR_ARCH_XMEGA3,
325 "atmega808" => elf::EF_AVR_ARCH_XMEGA3,
326 "atmega809" => elf::EF_AVR_ARCH_XMEGA3,
327 "atmega1608" => elf::EF_AVR_ARCH_XMEGA3,
328 "atmega1609" => elf::EF_AVR_ARCH_XMEGA3,
329 "atmega3208" => elf::EF_AVR_ARCH_XMEGA3,
330 "atmega3209" => elf::EF_AVR_ARCH_XMEGA3,
331 "atmega4808" => elf::EF_AVR_ARCH_XMEGA3,
332 "atmega4809" => elf::EF_AVR_ARCH_XMEGA3,
333
334 _ => 0,
336 }
337}