| 1 | 709 | jeremybenn | /* Copyright (C) 2009, 2010, 2011
 | 
      
         | 2 |  |  |    Free Software Foundation, Inc.
 | 
      
         | 3 |  |  |    Contributed by Anatoly Sokolov (aesok@post.ru)
 | 
      
         | 4 |  |  |  
 | 
      
         | 5 |  |  |    This file is part of GCC.
 | 
      
         | 6 |  |  |  
 | 
      
         | 7 |  |  |    GCC is free software; you can redistribute it and/or modify
 | 
      
         | 8 |  |  |    it under the terms of the GNU General Public License as published by
 | 
      
         | 9 |  |  |    the Free Software Foundation; either version 3, or (at your option)
 | 
      
         | 10 |  |  |    any later version.
 | 
      
         | 11 |  |  |  
 | 
      
         | 12 |  |  |    GCC is distributed in the hope that it will be useful,
 | 
      
         | 13 |  |  |    but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
      
         | 14 |  |  |    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | 
      
         | 15 |  |  |    GNU General Public License for more details.
 | 
      
         | 16 |  |  |  
 | 
      
         | 17 |  |  |    You should have received a copy of the GNU General Public License
 | 
      
         | 18 |  |  |    along with GCC; see the file COPYING3.  If not see
 | 
      
         | 19 |  |  |    <http://www.gnu.org/licenses/>.  */
 | 
      
         | 20 |  |  |  
 | 
      
         | 21 |  |  | #include "config.h"
 | 
      
         | 22 |  |  | #include "system.h"
 | 
      
         | 23 |  |  | #include "coretypes.h"
 | 
      
         | 24 |  |  | #include "tm.h"
 | 
      
         | 25 |  |  |  
 | 
      
         | 26 |  |  | /* List of all known AVR MCU architectures.
 | 
      
         | 27 |  |  |    Order as of enum avr_arch from avr.h.  */
 | 
      
         | 28 |  |  |  
 | 
      
         | 29 |  |  | const struct base_arch_s
 | 
      
         | 30 |  |  | avr_arch_types[] =
 | 
      
         | 31 |  |  | {
 | 
      
         | 32 |  |  |   /* unknown device specified */
 | 
      
         | 33 |  |  |   { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x0060, 32, NULL,              "avr2"  },
 | 
      
         | 34 |  |  |   /*
 | 
      
         | 35 |  |  |     A  M  J  LM E  E  E  X  R   d S   S O   A
 | 
      
         | 36 |  |  |     S  U  M  PO L  L  I  M  A   a t   F ff  r
 | 
      
         | 37 |  |  |     M  L  P  MV P  P  J  E  M   t a   R s   c
 | 
      
         | 38 |  |  |              XW M  M  M  G  P   a r     e   h
 | 
      
         | 39 |  |  |                    X  P  A  D     t     t   ID   */
 | 
      
         | 40 |  |  |   { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0x0060, 32, "1",   "avr1"  },
 | 
      
         | 41 |  |  |   { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x0060, 32, "2",   "avr2"  },
 | 
      
         | 42 |  |  |   { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0x0060, 32, "25",  "avr25" },
 | 
      
         | 43 |  |  |   { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0x0060, 32, "3",   "avr3"  },
 | 
      
         | 44 |  |  |   { 0, 0, 1, 0, 1, 0, 0, 0, 0, 0x0060, 32, "31",  "avr31" },
 | 
      
         | 45 |  |  |   { 0, 0, 1, 1, 0, 0, 0, 0, 0, 0x0060, 32, "35",  "avr35" },
 | 
      
         | 46 |  |  |   { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0x0060, 32, "4",   "avr4"  },
 | 
      
         | 47 |  |  |   { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0x0060, 32, "5",   "avr5"  },
 | 
      
         | 48 |  |  |   { 0, 1, 1, 1, 1, 1, 0, 0, 0, 0x0060, 32, "51",  "avr51" },
 | 
      
         | 49 |  |  |   { 0, 1, 1, 1, 1, 1, 1, 0, 0, 0x0060, 32, "6",   "avr6"  },
 | 
      
         | 50 |  |  |  
 | 
      
         | 51 |  |  |   { 0, 1, 1, 1, 0, 0, 0, 1, 0, 0x2000,  0, "102", "avrxmega2" },
 | 
      
         | 52 |  |  |   { 0, 1, 1, 1, 1, 1, 0, 1, 0, 0x2000,  0, "104", "avrxmega4" },
 | 
      
         | 53 |  |  |   { 0, 1, 1, 1, 1, 1, 0, 1, 1, 0x2000,  0, "105", "avrxmega5" },
 | 
      
         | 54 |  |  |   { 0, 1, 1, 1, 1, 1, 1, 1, 0, 0x2000,  0, "106", "avrxmega6" },
 | 
      
         | 55 |  |  |   { 0, 1, 1, 1, 1, 1, 1, 1, 1, 0x2000,  0, "107", "avrxmega7" }
 | 
      
         | 56 |  |  | };
 | 
      
         | 57 |  |  |  
 | 
      
         | 58 |  |  | const struct mcu_type_s avr_mcu_types[] = {
 | 
      
         | 59 |  |  | #define AVR_MCU(NAME,ARCH,MACRO,SHORT_SP,ERRATA_SKIP,DATA_SEC,N_FLASH,LIB_NAME)\
 | 
      
         | 60 |  |  |   { NAME, ARCH, MACRO, SHORT_SP, ERRATA_SKIP, DATA_SEC, N_FLASH, LIB_NAME },
 | 
      
         | 61 |  |  | #include "avr-mcus.def"
 | 
      
         | 62 |  |  | #undef AVR_MCU
 | 
      
         | 63 |  |  |     /* End of list.  */
 | 
      
         | 64 |  |  |   { NULL, ARCH_UNKNOWN, NULL, 0, 0, 0, 0, NULL }
 | 
      
         | 65 |  |  | };
 | 
      
         | 66 |  |  |  
 |