PageRenderTime 70ms CodeModel.GetById 15ms app.highlight 25ms RepoModel.GetById 2ms app.codeStats 5ms

/dist/tools-mac/avrdude.conf

http://github.com/makerbot/G3Firmware
Config | 11721 lines | 10075 code | 1646 blank | 0 comment | 0 complexity | 25c20925af5af4d9bc18a1ef0562e96e MD5 | raw file

Large files files are truncated, but you can click here to view the full file

   1# $Id: avrdude.conf.in,v 1.122 2007/05/16 21:29:36 joerg_wunsch Exp $
   2#
   3# AVRDUDE Configuration File
   4#
   5# This file contains configuration data used by AVRDUDE which describes
   6# the programming hardware pinouts and also provides part definitions.
   7# AVRDUDE's "-C" command line option specifies the location of the
   8# configuration file.  The "-c" option names the programmer configuration
   9# which must match one of the entry's "id" parameter.  The "-p" option
  10# identifies which part AVRDUDE is going to be programming and must match
  11# one of the parts' "id" parameter.
  12#
  13# Possible entry formats are:
  14#
  15#   programmer
  16#       id       = <id1> [, <id2> [, <id3>] ...] ;  # <idN> are quoted strings
  17#       desc     = <description> ;                  # quoted string
  18#       type     = par | stk500 | stk500v2 | stk500pp | stk500hvsp | stk500generic |
  19#                  avr910 | butterfly | usbasp |
  20#                  jtagmki | jtagmkii | jtagmkii_isp | jtagmkii_dw |
  21#                  dragon_dw | dragon_jtag | dragon_isp | dragon_pp |
  22#                  dragon_hvsp; # programmer type
  23#       baudrate = <num> ;                          # baudrate for avr910-programmer
  24#       vcc      = <num1> [, <num2> ... ] ;         # pin number(s)
  25#       reset    = <num> ;                          # pin number
  26#       sck      = <num> ;                          # pin number
  27#       mosi     = <num> ;                          # pin number
  28#       miso     = <num> ;                          # pin number
  29#       errled   = <num> ;                          # pin number
  30#       rdyled   = <num> ;                          # pin number
  31#       pgmled   = <num> ;                          # pin number
  32#       vfyled   = <num> ;                          # pin number
  33#     ;
  34#
  35#   part
  36#       id               = <id> ;                 # quoted string
  37#       desc             = <description> ;        # quoted string
  38#       has_jtag         = <yes/no> ;             # part has JTAG i/f
  39#       has_debugwire    = <yes/no> ;             # part has debugWire i/f
  40#       devicecode       = <num> ;            # deprecated, use stk500_devcode
  41#       stk500_devcode   = <num> ;                # numeric
  42#       avr910_devcode   = <num> ;                # numeric
  43#       signature        = <num> <num> <num> ;    # signature bytes
  44#       chip_erase_delay = <num> ;                # micro-seconds
  45#       reset            = dedicated | io;
  46#       retry_pulse      = reset | sck;
  47#       pgm_enable       = <instruction format> ;
  48#       chip_erase       = <instruction format> ;
  49#       chip_erase_delay = <num> ;                # chip erase delay (us)
  50#       # STK500 parameters (parallel programming IO lines)
  51#       pagel            = <num> ;                # pin name in hex, i.e., 0xD7
  52#       bs2              = <num> ;                # pin name in hex, i.e., 0xA0
  53#       serial           = <yes/no> ;             # can use serial downloading
  54#       parallel         = <yes/no/pseudo>;       # can use par. programming
  55#       # STK500v2 parameters, to be taken from Atmel's XML files
  56#       timeout          = <num> ;
  57#       stabdelay        = <num> ;
  58#       cmdexedelay      = <num> ;
  59#       synchloops       = <num> ;
  60#       bytedelay        = <num> ;
  61#       pollvalue        = <num> ;
  62#       pollindex        = <num> ;
  63#       predelay         = <num> ;
  64#       postdelay        = <num> ;
  65#       pollmethod       = <num> ;
  66#       mode             = <num> ;
  67#       delay            = <num> ;
  68#       blocksize        = <num> ;
  69#       readsize         = <num> ;
  70#       hvspcmdexedelay  = <num> ;
  71#       # STK500v2 HV programming parameters, from XML
  72#       pp_controlstack  = <num>, <num>, ...;   # PP only
  73#       hvsp_controlstack = <num>, <num>, ...;  # HVSP only
  74#       hventerstabdelay = <num>;
  75#       progmodedelay    = <num>;               # PP only
  76#       latchcycles      = <num>;
  77#       togglevtg        = <num>;
  78#       poweroffdelay    = <num>;
  79#       resetdelayms     = <num>;
  80#       resetdelayus     = <num>;
  81#       hvleavestabdelay = <num>;
  82#       resetdelay       = <num>;
  83#       synchcycles      = <num>;               # HVSP only
  84#       chiperasepulsewidth = <num>;            # PP only
  85#       chiperasepolltimeout = <num>;
  86#       chiperasetime    = <num>;               # HVSP only
  87#       programfusepulsewidth = <num>;          # PP only
  88#       programfusepolltimeout = <num>;
  89#       programlockpulsewidth = <num>;          # PP only
  90#       programlockpolltimeout = <num>;
  91#       # JTAG ICE mkII parameters, also from XML files
  92#       allowfullpagebitstream = <yes/no> ;
  93#       enablepageprogramming = <yes/no> ;
  94#       idr              = <num> ;                # IO addr of IDR (OCD) reg.
  95#       rampz            = <num> ;                # IO addr of RAMPZ reg.
  96#       spmcr            = <num> ;                # mem addr of SPMC[S]R reg.
  97#       eecr             = <num> ;                # mem addr of EECR reg.
  98#                                                 # (only when != 0x3c)
  99#
 100#       memory <memtype>
 101#           paged           = <yes/no> ;          # yes / no
 102#           size            = <num> ;             # bytes
 103#           page_size       = <num> ;             # bytes
 104#           num_pages       = <num> ;             # numeric
 105#           min_write_delay = <num> ;             # micro-seconds
 106#           max_write_delay = <num> ;             # micro-seconds
 107#           readback_p1     = <num> ;             # byte value
 108#           readback_p2     = <num> ;             # byte value
 109#           pwroff_after_write = <yes/no> ;       # yes / no
 110#           read            = <instruction format> ;
 111#           write           = <instruction format> ;
 112#           read_lo         = <instruction format> ;
 113#           read_hi         = <instruction format> ;
 114#           write_lo        = <instruction format> ;
 115#           write_hi        = <instruction format> ;
 116#           loadpage_lo     = <instruction format> ;
 117#           loadpage_hi     = <instruction format> ;
 118#           writepage       = <instruction format> ;
 119#         ;
 120#     ;
 121#
 122# If any of the above parameters are not specified, the default value
 123# of 0 is used for numerics or the empty string ("") for string
 124# values.  If a required parameter is left empty, AVRDUDE will
 125# complain.
 126#
 127# NOTES:
 128#   * 'devicecode' is the device code used by the STK500 (see codes 
 129#       listed below)
 130#   * Not all memory types will implement all instructions.
 131#   * AVR Fuse bits and Lock bits are implemented as a type of memory.
 132#   * Example memory types are:
 133#       "flash", "eeprom", "fuse", "lfuse" (low fuse), "hfuse" (high
 134#       fuse), "signature", "calibration", "lock"
 135#   * The memory type specified on the avrdude command line must match
 136#     one of the memory types defined for the specified chip.
 137#   * The pwroff_after_write flag causes avrdude to attempt to
 138#     power the device off and back on after an unsuccessful write to
 139#     the affected memory area if VCC programmer pins are defined.  If
 140#     VCC pins are not defined for the programmer, a message
 141#     indicating that the device needs a power-cycle is printed out.
 142#     This flag was added to work around a problem with the
 143#     at90s4433/2333's; see the at90s4433 errata at:
 144#
 145#         http://www.atmel.com/atmel/acrobat/doc1280.pdf
 146#
 147# INSTRUCTION FORMATS
 148#
 149#    Instruction formats are specified as a comma seperated list of
 150#    string values containing information (bit specifiers) about each
 151#    of the 32 bits of the instruction.  Bit specifiers may be one of
 152#    the following formats:
 153#
 154#       '1'  = the bit is always set on input as well as output
 155#
 156#       '0'  = the bit is always clear on input as well as output
 157#
 158#       'x'  = the bit is ignored on input and output
 159#
 160#       'a'  = the bit is an address bit, the bit-number matches this bit
 161#              specifier's position within the current instruction byte
 162#
 163#       'aN' = the bit is the Nth address bit, bit-number = N, i.e., a12
 164#              is address bit 12 on input, a0 is address bit 0.
 165#
 166#       'i'  = the bit is an input data bit
 167#
 168#       'o'  = the bit is an output data bit
 169#
 170#    Each instruction must be composed of 32 bit specifiers.  The
 171#    instruction specification closely follows the instruction data
 172#    provided in Atmel's data sheets for their parts.
 173#
 174# See below for some examples.
 175#
 176#
 177# The following are STK500 part device codes to use for the
 178# "devicecode" field of the part.  These came from Atmel's software
 179# section avr061.zip which accompanies the application note
 180# AVR061 available from:
 181#
 182#      http://www.atmel.com/atmel/acrobat/doc2525.pdf
 183#
 184
 185#define ATTINY10    0x10
 186#define ATTINY11    0x11
 187#define ATTINY12    0x12
 188#define ATTINY15    0x13
 189#define ATTINY13    0x14
 190
 191#define ATTINY22    0x20
 192#define ATTINY26    0x21
 193#define ATTINY28    0x22
 194#define ATTINY2313  0x23
 195
 196#define AT90S1200   0x33
 197
 198#define AT90S2313   0x40
 199#define AT90S2323   0x41
 200#define AT90S2333   0x42
 201#define AT90S2343   0x43
 202
 203#define AT90S4414   0x50
 204#define AT90S4433   0x51
 205#define AT90S4434   0x52
 206#define ATMEGA48    0x59
 207
 208#define AT90S8515   0x60
 209#define AT90S8535   0x61
 210#define AT90C8534   0x62
 211#define ATMEGA8515  0x63
 212#define ATMEGA8535  0x64
 213
 214#define ATMEGA8     0x70
 215#define ATMEGA88    0x73
 216#define ATMEGA168   0x86
 217
 218#define ATMEGA161   0x80
 219#define ATMEGA163   0x81
 220#define ATMEGA16    0x82
 221#define ATMEGA162   0x83
 222#define ATMEGA169   0x84
 223
 224#define ATMEGA323   0x90
 225#define ATMEGA32    0x91
 226
 227#define ATMEGA64    0xA0
 228
 229#define ATMEGA103   0xB1
 230#define ATMEGA128   0xB2
 231#define AT90CAN128  0xB3
 232
 233#define AT86RF401   0xD0
 234
 235#define AT89START   0xE0
 236#define AT89S51	    0xE0
 237#define AT89S52	    0xE1
 238
 239# The following table lists the devices in the original AVR910
 240# appnote:
 241# |Device |Signature | Code |
 242# +-------+----------+------+
 243# |tiny12 | 1E 90 05 | 0x55 |
 244# |tiny15 | 1E 90 06 | 0x56 |
 245# |       |          |      |
 246# | S1200 | 1E 90 01 | 0x13 |
 247# |       |          |      |
 248# | S2313 | 1E 91 01 | 0x20 |
 249# | S2323 | 1E 91 02 | 0x48 |
 250# | S2333 | 1E 91 05 | 0x34 |
 251# | S2343 | 1E 91 03 | 0x4C |
 252# |       |          |      |
 253# | S4414 | 1E 92 01 | 0x28 |
 254# | S4433 | 1E 92 03 | 0x30 |
 255# | S4434 | 1E 92 02 | 0x6C |
 256# |       |          |      |
 257# | S8515 | 1E 93 01 | 0x38 |
 258# | S8535 | 1E 93 03 | 0x68 |
 259# |       |          |      |
 260# |mega32 | 1E 95 01 | 0x72 |
 261# |mega83 | 1E 93 05 | 0x65 |
 262# |mega103| 1E 97 01 | 0x41 |
 263# |mega161| 1E 94 01 | 0x60 |
 264# |mega163| 1E 94 02 | 0x64 |
 265
 266# Appnote AVR109 also has a table of AVR910 device codes, which
 267# lists:
 268# dev         avr910   signature
 269# ATmega8     0x77     0x1E 0x93 0x07
 270# ATmega8515  0x3B     0x1E 0x93 0x06
 271# ATmega8535  0x6A     0x1E 0x93 0x08
 272# ATmega16    0x75     0x1E 0x94 0x03
 273# ATmega162   0x63     0x1E 0x94 0x04
 274# ATmega163   0x66     0x1E 0x94 0x02
 275# ATmega169   0x79     0x1E 0x94 0x05
 276# ATmega32    0x7F     0x1E 0x95 0x02
 277# ATmega323   0x73     0x1E 0x95 0x01
 278# ATmega64    0x46     0x1E 0x96 0x02
 279# ATmega128   0x44     0x1E 0x97 0x02
 280#
 281# These codes refer to "BOOT" device codes which are apparently
 282# different than standard device codes, for whatever reasons
 283# (often one above the standard code).
 284
 285# There are several extended versions of AVR910 implementations around
 286# in the Internet.  These add the following codes (only devices that
 287# actually exist are listed):
 288
 289# ATmega8515	0x3A
 290# ATmega128	0x43
 291# ATmega64	0x45
 292# ATtiny26	0x5E
 293# ATmega8535	0x69
 294# ATmega32	0x72
 295# ATmega16	0x74
 296# ATmega8	0x76
 297# ATmega169	0x78
 298
 299#
 300# Overall avrdude defaults
 301#
 302default_parallel   = "unknown";
 303default_serial     = "unknown";
 304
 305
 306#
 307# PROGRAMMER DEFINITIONS
 308#
 309
 310programmer
 311  id    = "avrisp";
 312  desc  = "Atmel AVR ISP";
 313  type  = stk500;
 314;
 315
 316programmer
 317  id    = "avrispv2";
 318  desc  = "Atmel AVR ISP V2";
 319  type  =  stk500v2;
 320;
 321
 322programmer
 323  id    = "avrispmkII";
 324  desc  = "Atmel AVR ISP mkII";
 325  type  =  stk500v2;
 326;
 327
 328programmer
 329  id    = "avrisp2";
 330  desc  = "Atmel AVR ISP mkII";
 331  type  =  stk500v2;
 332;
 333
 334# This is supposed to be the "default" STK500 entry.
 335# Attempts to select the correct firmware version
 336# by probing for it.  Better use one of the entries
 337# below instead.
 338programmer
 339  id    = "stk500";
 340  desc  = "Atmel STK500";
 341  type  = stk500generic;
 342;
 343
 344programmer
 345  id    = "stk500v1";
 346  desc  = "Atmel STK500 Version 1.x firmware";
 347  type  = stk500;
 348;
 349
 350programmer
 351  id    = "stk500v2";
 352  desc  = "Atmel STK500 Version 2.x firmware";
 353  type  = stk500v2;
 354;
 355
 356programmer
 357  id    = "stk500pp";
 358  desc  = "Atmel STK500 V2 in parallel programming mode";
 359  type  = stk500pp;
 360;
 361
 362programmer
 363  id    = "stk500hvsp";
 364  desc  = "Atmel STK500 V2 in high-voltage serial programming mode";
 365  type  = stk500hvsp;
 366;
 367
 368programmer
 369  id    = "avr910";
 370  desc  = "Atmel Low Cost Serial Programmer";
 371  type  = avr910;
 372;
 373
 374programmer
 375  id    = "usbasp";
 376  desc  = "USBasp, http://www.fischl.de/usbasp/";
 377  type  = usbasp;
 378;
 379
 380programmer
 381  id    = "usbtiny";
 382  desc  = "USBtiny simple USB programmer";
 383  type  = usbtiny;
 384;
 385
 386programmer
 387  id    = "butterfly";
 388  desc  = "Atmel Butterfly Development Board";
 389  type  = butterfly;
 390;
 391
 392programmer
 393  id    = "avr109";
 394  desc  = "Atmel AppNote AVR109 Boot Loader";
 395  type  = butterfly;
 396;
 397
 398programmer
 399  id    = "avr911";
 400  desc  = "Atmel AppNote AVR911 AVROSP";
 401  type  = butterfly;
 402;
 403
 404programmer
 405  id    = "jtagmkI";
 406  desc  = "Atmel JTAG ICE (mkI)";
 407  baudrate = 115200;    # default is 115200
 408  type  = jtagmki;
 409;
 410
 411# easier to type
 412programmer
 413  id    = "jtag1";
 414  desc  = "Atmel JTAG ICE (mkI)";
 415  baudrate = 115200;    # default is 115200
 416  type  = jtagmki;
 417;
 418
 419# easier to type
 420programmer
 421  id    = "jtag1slow";
 422  desc  = "Atmel JTAG ICE (mkI)";
 423  baudrate = 19200;
 424  type  = jtagmki;
 425;
 426
 427programmer
 428  id    = "jtagmkII";
 429  desc  = "Atmel JTAG ICE mkII";
 430  baudrate = 19200;    # default is 19200
 431  type  = jtagmkii;
 432;
 433
 434# easier to type
 435programmer
 436  id    = "jtag2slow";
 437  desc  = "Atmel JTAG ICE mkII";
 438  baudrate = 19200;    # default is 19200
 439  type  = jtagmkii;
 440;
 441
 442# JTAG ICE mkII @ 115200 Bd
 443programmer
 444  id    = "jtag2fast";
 445  desc  = "Atmel JTAG ICE mkII";
 446  baudrate = 115200;
 447  type  = jtagmkii;
 448;
 449
 450# make the fast one the default, people will love that
 451programmer
 452  id    = "jtag2";
 453  desc  = "Atmel JTAG ICE mkII";
 454  baudrate = 115200;
 455  type  = jtagmkii;
 456;
 457
 458# JTAG ICE mkII in ISP mode
 459programmer
 460  id    = "jtag2isp";
 461  desc  = "Atmel JTAG ICE mkII in ISP mode";
 462  baudrate = 115200;
 463  type  = jtagmkii_isp;
 464;
 465
 466# JTAG ICE mkII in debugWire mode
 467programmer
 468  id    = "jtag2dw";
 469  desc  = "Atmel JTAG ICE mkII in debugWire mode";
 470  baudrate = 115200;
 471  type  = jtagmkii_dw;
 472;
 473
 474# AVR Dragon in JTAG mode
 475programmer
 476  id    = "dragon_jtag";
 477  desc  = "Atmel AVR Dragon in JTAG mode";
 478  baudrate = 115200;
 479  type  = dragon_jtag;
 480;
 481
 482# AVR Dragon in ISP mode
 483programmer
 484  id    = "dragon_isp";
 485  desc  = "Atmel AVR Dragon in ISP mode";
 486  baudrate = 115200;
 487  type  = dragon_isp;
 488;
 489
 490# AVR Dragon in PP mode
 491programmer
 492  id    = "dragon_pp";
 493  desc  = "Atmel AVR Dragon in PP mode";
 494  baudrate = 115200;
 495  type  = dragon_pp;
 496;
 497
 498# AVR Dragon in HVSP mode
 499programmer
 500  id    = "dragon_hvsp";
 501  desc  = "Atmel AVR Dragon in HVSP mode";
 502  baudrate = 115200;
 503  type  = dragon_hvsp;
 504;
 505
 506# AVR Dragon in debugWire mode
 507programmer
 508  id    = "dragon_dw";
 509  desc  = "Atmel AVR Dragon in debugWire mode";
 510  baudrate = 115200;
 511  type  = dragon_dw;
 512;
 513
 514programmer
 515  id    = "pavr";
 516  desc  = "Jason Kyle's pAVR Serial Programmer";
 517  type  = avr910;
 518;
 519
 520
 521#
 522# some ultra cheap programmers use bitbanging on the 
 523# serialport.
 524#
 525# PC - DB9 - Pins for RS232:
 526#
 527# GND   5   -- |O
 528#              |   O| <-   9   RI
 529# DTR   4   <- |O   |
 530#              |   O| <-   8   CTS
 531# TXD   3   <- |O   |
 532#              |   O| ->   7   RTS
 533# RXD   2   -> |O   |
 534#              |   O| <-   6   DSR
 535# DCD   1   -> |O
 536#
 537# Using RXD is currently not supported.
 538# Using RI is not supported under Win32 but is supported under Posix.
 539
 540# serial ponyprog design (dasa2 in uisp)
 541# reset=!txd sck=rts mosi=dtr miso=cts
 542
 543programmer
 544  id    = "ponyser";
 545  desc  = "design ponyprog serial, reset=!txd sck=rts mosi=dtr miso=cts";
 546  type  = serbb;
 547  reset = ~3;
 548  sck   = 7;
 549  mosi  = 4;
 550  miso  = 8;
 551;
 552
 553# Same as above, different name
 554# reset=!txd sck=rts mosi=dtr miso=cts
 555
 556programmer
 557  id    = "siprog";
 558  desc  = "Lancos SI-Prog <http://www.lancos.com/siprogsch.html>";
 559  type  = serbb;
 560  reset = ~3;
 561  sck   = 7;
 562  mosi  = 4;
 563  miso  = 8;
 564;
 565
 566# unknown (dasa in uisp)
 567# reset=rts sck=dtr mosi=txd miso=cts
 568
 569programmer
 570  id    = "dasa";
 571  desc  = "serial port banging, reset=rts sck=dtr mosi=txd miso=cts";
 572  type  = serbb;
 573  reset = 7;
 574  sck   = 4;
 575  mosi  = 3;
 576  miso  = 8;
 577;
 578
 579# unknown (dasa3 in uisp)
 580# reset=!dtr sck=rts mosi=txd miso=cts
 581
 582programmer
 583  id    = "dasa3";
 584  desc  = "serial port banging, reset=!dtr sck=rts mosi=txd miso=cts";
 585  type  = serbb;
 586  reset = ~4;
 587  sck   = 7;
 588  mosi  = 3;
 589  miso  = 8;
 590;
 591
 592#
 593# PART DEFINITIONS
 594#
 595
 596#------------------------------------------------------------
 597# ATtiny11
 598#------------------------------------------------------------
 599
 600# This is an HVSP-only device.
 601
 602part
 603    id                  = "t11";
 604    desc                = "ATtiny11";
 605    stk500_devcode      = 0x11;
 606    signature           = 0x1e 0x90 0x04;
 607    chip_erase_delay    = 20000;
 608
 609    timeout		= 200;
 610    hvsp_controlstack     =
 611        0x4C, 0x0C, 0x1C, 0x2C, 0x3C, 0x64, 0x74, 0x00,
 612        0x68, 0x78, 0x68, 0x68, 0x00, 0x00, 0x68, 0x78,
 613        0x78, 0x00, 0x6D, 0x0C, 0x80, 0x40, 0x20, 0x10,
 614        0x11, 0x08, 0x04, 0x02, 0x03, 0x08, 0x04, 0x00;
 615    hventerstabdelay    = 100;
 616    progmodedelay       = 0;
 617    hvspcmdexedelay     = 0;
 618    synchcycles         = 6;
 619    latchcycles         = 1;
 620    togglevtg           = 1;
 621    poweroffdelay       = 25;
 622    resetdelayms        = 0;
 623    resetdelayus        = 50;
 624    hvleavestabdelay    = 100;
 625    resetdelay          = 25;
 626    chiperasepolltimeout = 40;
 627    chiperasetime       = 0;
 628    programfusepolltimeout = 25;
 629    programlockpolltimeout = 25;
 630
 631    memory "eeprom"
 632        size            = 64;
 633	blocksize	= 64;
 634	readsize	= 256;
 635	delay		= 5;
 636    ;
 637
 638    memory "flash"
 639        size            = 1024;
 640	blocksize	= 128;
 641	readsize	= 256;
 642	delay		= 3;
 643    ;
 644
 645    memory "signature"
 646        size            = 3;
 647    ;
 648
 649    memory "lock"
 650        size            = 1;
 651    ;
 652
 653    memory "calibration"
 654        size            = 1;
 655    ;
 656
 657    memory "fuse"
 658        size            = 1;
 659    ;
 660;
 661
 662#------------------------------------------------------------
 663# ATtiny12
 664#------------------------------------------------------------
 665
 666part
 667    id                  = "t12";
 668    desc                = "ATtiny12";
 669    stk500_devcode      = 0x12;
 670    avr910_devcode      = 0x55;
 671    signature           = 0x1e 0x90 0x05;
 672    chip_erase_delay    = 20000;
 673    pgm_enable          = "1 0 1 0  1 1 0 0   0 1 0 1  0 0 1 1",
 674                          "x x x x  x x x x   x x x x  x x x x";
 675
 676    chip_erase          = "1 0 1 0  1 1 0 0   1 0 0 x  x x x x",
 677                          "x x x x  x x x x   x x x x  x x x x";
 678
 679    timeout		= 200;
 680    stabdelay		= 100;
 681    cmdexedelay		= 25;
 682    synchloops		= 32;
 683    bytedelay		= 0;
 684    pollindex		= 3;
 685    pollvalue		= 0x53;
 686    predelay		= 1;
 687    postdelay		= 1;
 688    pollmethod		= 0;
 689
 690    hvsp_controlstack   =
 691        0x4C, 0x0C, 0x1C, 0x2C, 0x3C, 0x64, 0x74, 0x00,
 692        0x68, 0x78, 0x68, 0x68, 0x00, 0x00, 0x68, 0x78,
 693        0x78, 0x00, 0x6D, 0x0C, 0x80, 0x40, 0x20, 0x10,
 694        0x11, 0x08, 0x04, 0x02, 0x03, 0x08, 0x04, 0x00;
 695    hventerstabdelay    = 100;
 696    hvspcmdexedelay     = 0;
 697    synchcycles         = 6;
 698    latchcycles         = 1;
 699    togglevtg           = 1;
 700    poweroffdelay       = 25;
 701    resetdelayms        = 0;
 702    resetdelayus        = 50;
 703    hvleavestabdelay    = 100;
 704    resetdelay          = 25;
 705    chiperasepolltimeout = 40;
 706    chiperasetime       = 0;
 707    programfusepolltimeout = 25;
 708    programlockpolltimeout = 25;
 709
 710    memory "eeprom"
 711        size            = 64;
 712        min_write_delay = 9000;
 713        max_write_delay = 20000;
 714        readback_p1     = 0xff;
 715        readback_p2     = 0xff;
 716        read            = "1  0  1  0   0  0  0  0    x x x x  x x x x",
 717                          "x  x a5 a4  a3 a2 a1 a0    o o o o  o o o o";
 718
 719        write           = "1  1  0  0   0  0  0  0    x x x x  x x x x",
 720                          "x  x a5 a4  a3 a2 a1 a0    i i i i  i i i i";
 721
 722	mode		= 0x04;
 723	delay		= 8;
 724	blocksize	= 64;
 725	readsize	= 256;
 726    ;
 727
 728    memory "flash"
 729        size            = 1024;
 730        min_write_delay = 4500;
 731        max_write_delay = 20000;
 732        readback_p1     = 0xff;
 733        readback_p2     = 0xff;
 734        read_lo         = "  0  0  1  0   0  0  0  0",
 735                          "  x  x  x  x   x  x  x a8",
 736                          " a7 a6 a5 a4  a3 a2 a1 a0",
 737                          "  o  o  o  o   o  o  o  o";
 738
 739        read_hi         = "  0  0  1  0   1  0  0  0",
 740                          "  x  x  x  x   x  x  x a8",
 741                          " a7 a6 a5 a4  a3 a2 a1 a0",
 742                          "  o  o  o  o   o  o  o  o";
 743
 744        write_lo        = "  0  1  0  0   0  0  0  0",
 745                          "  x  x  x  x   x  x  x a8",
 746                          " a7 a6 a5 a4  a3 a2 a1 a0",
 747                          "  i  i  i  i   i  i  i  i";
 748
 749        write_hi        = "  0  1  0  0   1  0  0  0",
 750                          "  x  x  x  x   x  x  x a8",
 751                          " a7 a6 a5 a4  a3 a2 a1 a0",
 752                          "  i  i  i  i   i  i  i  i";
 753
 754	mode		= 0x04;
 755	delay		= 5;
 756	blocksize	= 128;
 757	readsize	= 256;
 758    ;
 759
 760    memory "signature"
 761        size            = 3;
 762        read            = "0  0  1  1   0  0  0  0    x x x x  x x x x",
 763                          "0  0  0  0   0  0 a1 a0    o o o o  o o o o";
 764    ;
 765
 766    memory "lock"
 767        size            = 1;
 768        read            = "0  1  0  1   1  0  0  0    x x x x  x x x x",
 769                          "x  x  x  x   x  x  x  x    x x x x  x o o x";
 770
 771        write           = "1  0  1  0   1  1  0  0    1 1 1 1  1 i i 1",
 772                          "x  x  x  x   x  x  x  x    x x x x  x x x x";
 773        min_write_delay = 9000;
 774        max_write_delay = 9000;
 775    ;
 776
 777    memory "calibration"
 778        size            = 1;
 779        read            = "0  0  1  1   1  0  0  0    x x x x  x x x x",
 780                          "0  0  0  0   0  0  0  0    o o o o  o o o o";
 781    ;
 782
 783    memory "fuse"
 784        size            = 1;
 785        read            = "0  1  0  1   0  0  0  0    x x x x  x x x x",
 786                          "x  x  x  x   x  x  x  x    o o o o  o o o o";
 787
 788        write           = "1  0  1  0   1  1  0  0    1 0 1 x  x x x x",
 789                          "x  x  x  x   x  x  x  x    i i i i  i i i i";
 790        min_write_delay = 9000;
 791        max_write_delay = 9000;
 792    ;
 793;
 794
 795#------------------------------------------------------------
 796# ATtiny13
 797#------------------------------------------------------------
 798
 799part
 800    id                  = "t13";
 801    desc                = "ATtiny13";
 802     has_debugwire = yes;
 803     flash_instr   = 0xB4, 0x0E, 0x1E;
 804     eeprom_instr  = 0xBB, 0xFE, 0xBB, 0xEE, 0xBB, 0xCC, 0xB2, 0x0D,
 805	             0xBC, 0x0E, 0xB4, 0x0E, 0xBA, 0x0D, 0xBB, 0xBC,
 806	             0x99, 0xE1, 0xBB, 0xAC;
 807    stk500_devcode      = 0x14;
 808    signature           = 0x1e 0x90 0x07;
 809    chip_erase_delay    = 4000;
 810    pgm_enable          = "1 0 1 0  1 1 0 0   0 1 0 1  0 0 1 1",
 811                          "x x x x  x x x x   x x x x  x x x x";
 812
 813    chip_erase          = "1 0 1 0  1 1 0 0   1 0 0 x  x x x x",
 814                          "x x x x  x x x x   x x x x  x x x x";
 815
 816    timeout		= 200;
 817    stabdelay		= 100;
 818    cmdexedelay		= 25;
 819    synchloops		= 32;
 820    bytedelay		= 0;
 821    pollindex		= 3;
 822    pollvalue		= 0x53;
 823    predelay		= 1;
 824    postdelay		= 1;
 825    pollmethod		= 1;
 826
 827    hvsp_controlstack     =
 828	0x4C, 0x0C, 0x1C, 0x2C, 0x3C, 0x64, 0x74, 0x66,
 829        0x68, 0x78, 0x68, 0x68, 0x7A, 0x6A, 0x68, 0x78,
 830        0x78, 0x7D, 0x6D, 0x0C, 0x80, 0x40, 0x20, 0x10,
 831        0x11, 0x08, 0x04, 0x02, 0x03, 0x08, 0x04, 0x00;
 832    hventerstabdelay    = 100;
 833    progmodedelay       = 0;
 834    hvspcmdexedelay     = 0;
 835    synchcycles         = 6;
 836    latchcycles         = 1;
 837    togglevtg           = 1;
 838    poweroffdelay       = 25;
 839    resetdelayms        = 0;
 840    resetdelayus        = 90;
 841    hvleavestabdelay    = 100;
 842    resetdelay          = 25;
 843    chiperasepolltimeout = 40;
 844    chiperasetime       = 0;
 845    programfusepolltimeout = 25;
 846    programlockpolltimeout = 25;
 847
 848    memory "eeprom"
 849        size            = 64;
 850        page_size       = 4;
 851        min_write_delay = 4000;
 852        max_write_delay = 4000;
 853        readback_p1     = 0xff;
 854        readback_p2     = 0xff;
 855        read            = "1  0  1  0   0  0  0  0    0 0 0 x  x x x x",
 856                          "x  x a5 a4  a3 a2 a1 a0    o o o o  o o o o";
 857
 858        write           = "1  1  0  0   0  0  0  0    0 0 0 x  x x x x",
 859                          "x  x a5 a4  a3 a2 a1 a0    i i i i  i i i i";
 860
 861	loadpage_lo	= "  1   1   0   0      0   0   0   1",
 862			  "  0   0   0   0      0   0   0   0",
 863			  "  0   0   0   0      0   0  a1  a0",
 864			  "  i   i   i   i      i   i   i   i";
 865
 866	writepage	= "  1   1   0   0      0   0   1   0",
 867			  "  0   0   x   x      x   x   x   x",
 868			  "  x   x  a5  a4     a3  a2   0   0",
 869			  "  x   x   x   x      x   x   x   x";
 870
 871	mode		= 0x41;
 872	delay		= 5;
 873	blocksize	= 4;
 874	readsize	= 256;
 875    ;
 876
 877    memory "flash"
 878        paged           = yes;
 879        size            = 1024;
 880        page_size       = 32;
 881        num_pages       = 32;
 882        min_write_delay = 4500;
 883        max_write_delay = 4500;
 884        readback_p1     = 0xff;
 885        readback_p2     = 0xff;
 886        read_lo         = "  0  0  1  0   0  0  0  0",
 887                          "  0  0  0  0   0  0  0 a8",
 888                          " a7 a6 a5 a4  a3 a2 a1 a0",
 889                          "  o  o  o  o   o  o  o  o";
 890
 891        read_hi         = "  0  0  1  0   1  0  0  0",
 892                          "  0  0  0  0   0  0  0 a8",
 893                          " a7 a6 a5 a4  a3 a2 a1 a0",
 894                          "  o  o  o  o   o  o  o  o";
 895
 896        loadpage_lo     = "  0  1  0  0   0  0  0  0",
 897                          "  0  0  0  x   x  x  x  x",
 898                          "  x  x  x  x  a3 a2 a1 a0",
 899                          "  i  i  i  i   i  i  i  i";
 900
 901        loadpage_hi     = "  0  1  0  0   1  0  0  0",
 902                          "  0  0  0  x   x  x  x  x",
 903                          "  x  x  x  x  a3 a2 a1 a0",
 904                          "  i  i  i  i   i  i  i  i";
 905
 906        writepage       = "  0  1  0  0   1  1  0  0",
 907                          "  0  0  0  0   0  0  0 a8",
 908                          " a7 a6 a5 a4   x  x  x  x",
 909                          "  x  x  x  x   x  x  x  x";
 910
 911	mode		= 0x41;
 912	delay		= 6;
 913	blocksize	= 32;
 914	readsize	= 256;
 915    ;
 916
 917    memory "signature"
 918        size            = 3;
 919        read            = "0  0  1  1   0  0  0  0    0 0 0 x  x x x x",
 920                          "x  x  x  x   x  x a1 a0    o o o o  o o o o";
 921    ;
 922
 923    memory "lock"
 924        size            = 1;
 925        min_write_delay = 4500;
 926        max_write_delay = 4500;
 927
 928	read            = "0  1  0  1   1  0  0  0    0 0 0 0  0 0 0 0",
 929                          "x  x  x  x   x  x  x  x    x x o o  o o o o";
 930
 931        write           = "1  0  1  0   1  1  0  0    1 1 1 x  x x x x",
 932                          "x  x  x  x   x  x  x  x    1 1 i i  i i i i";
 933    ;
 934
 935    memory "calibration"
 936        size            = 2;
 937        read            = "0  0  1  1   1  0  0  0    0 0 0 x  x x x x",
 938                          "0  0  0  0   0  0  0 a0    o o o o  o o o o";
 939    ;
 940
 941    memory "lfuse"
 942        size            = 1;
 943        min_write_delay = 4500;
 944        max_write_delay = 4500;
 945
 946        write           = "1 0 1 0  1 1 0 0  1 0 1 0  0 0 0 0",
 947                          "x x x x  x x x x  i i i i  i i i i";
 948
 949        read            = "0 1 0 1  0 0 0 0  0 0 0 0  0 0 0 0",
 950                          "x x x x  x x x x  o o o o  o o o o";
 951      ;
 952
 953    memory "hfuse"
 954        size            = 1;
 955        min_write_delay = 4500;
 956        max_write_delay = 4500;
 957
 958        write           = "1 0 1 0  1 1 0 0  1 0 1 0  1 0 0 0",
 959                          "x x x x  x x x x  i i i i  i i i i";
 960
 961        read            = "0 1 0 1  1 0 0 0  0 0 0 0  1 0 0 0",
 962                          "x x x x  x x x x  o o o o  o o o o";
 963      ;
 964
 965;
 966
 967
 968#------------------------------------------------------------
 969# ATtiny15
 970#------------------------------------------------------------
 971
 972part
 973    id                  = "t15";
 974    desc                = "ATtiny15";
 975    stk500_devcode      = 0x13;
 976    avr910_devcode      = 0x56;
 977    signature           = 0x1e 0x90 0x06;
 978    chip_erase_delay    = 8200;
 979    pgm_enable          = "1 0 1 0  1 1 0 0   0 1 0 1  0 0 1 1",
 980                          "x x x x  x x x x   x x x x  x x x x";
 981
 982    chip_erase          = "1 0 1 0  1 1 0 0   1 0 0 x  x x x x",
 983                          "x x x x  x x x x   x x x x  x x x x";
 984
 985    timeout		= 200;
 986    stabdelay		= 100;
 987    cmdexedelay		= 25;
 988    synchloops		= 32;
 989    bytedelay		= 0;
 990    pollindex		= 3;
 991    pollvalue		= 0x53;
 992    predelay		= 1;
 993    postdelay		= 1;
 994    pollmethod		= 0;
 995
 996    hvsp_controlstack   =
 997        0x4C, 0x0C, 0x1C, 0x2C, 0x3C, 0x64, 0x74, 0x00,
 998        0x68, 0x78, 0x68, 0x68, 0x00, 0x00, 0x68, 0x78,
 999        0x78, 0x00, 0x6D, 0x0C, 0x80, 0x40, 0x20, 0x10,
1000        0x11, 0x08, 0x04, 0x02, 0x03, 0x08, 0x04, 0x00;
1001    hventerstabdelay    = 100;
1002    hvspcmdexedelay     = 5;
1003    synchcycles         = 6;
1004    latchcycles         = 16;
1005    togglevtg           = 1;
1006    poweroffdelay       = 25;
1007    resetdelayms        = 0;
1008    resetdelayus        = 50;
1009    hvleavestabdelay    = 100;
1010    resetdelay          = 25;
1011    chiperasepolltimeout = 40;
1012    chiperasetime       = 0;
1013    programfusepolltimeout = 25;
1014    programlockpolltimeout = 25;
1015
1016    memory "eeprom"
1017        size            = 64;
1018        min_write_delay = 8200;
1019        max_write_delay = 8200;
1020        readback_p1     = 0xff;
1021        readback_p2     = 0xff;
1022        read            = "1  0  1  0   0  0  0  0    x x x x  x x x x",
1023                          "x  x a5 a4  a3 a2 a1 a0    o o o o  o o o o";
1024
1025        write           = "1  1  0  0   0  0  0  0    x x x x  x x x x",
1026                          "x  x a5 a4  a3 a2 a1 a0    i i i i  i i i i";
1027
1028	mode		= 0x04;
1029	delay		= 10;
1030	blocksize	= 64;
1031	readsize	= 256;
1032    ;
1033
1034    memory "flash"
1035        size            = 1024;
1036        min_write_delay = 4100;
1037        max_write_delay = 4100;
1038        readback_p1     = 0xff;
1039        readback_p2     = 0xff;
1040        read_lo         = "  0  0  1  0   0  0  0  0",
1041                          "  x  x  x  x   x  x  x a8",
1042                          " a7 a6 a5 a4  a3 a2 a1 a0",
1043                          "  o  o  o  o   o  o  o  o";
1044
1045        read_hi         = "  0  0  1  0   1  0  0  0",
1046                          "  x  x  x  x   x  x  x a8",
1047                          " a7 a6 a5 a4  a3 a2 a1 a0",
1048                          "  o  o  o  o   o  o  o  o";
1049
1050        write_lo        = "  0  1  0  0   0  0  0  0",
1051                          "  x  x  x  x   x  x  x a8",
1052                          " a7 a6 a5 a4  a3 a2 a1 a0",
1053                          "  i  i  i  i   i  i  i  i";
1054
1055        write_hi        = "  0  1  0  0   1  0  0  0",
1056                          "  x  x  x  x   x  x  x a8",
1057                          " a7 a6 a5 a4  a3 a2 a1 a0",
1058                          "  i  i  i  i   i  i  i  i";
1059
1060	mode		= 0x04;
1061	delay		= 5;
1062	blocksize	= 128;
1063	readsize	= 256;
1064    ;
1065
1066    memory "signature"
1067        size            = 3;
1068        read            = "0  0  1  1   0  0  0  0    x x x x  x x x x",
1069                          "0  0  0  0   0  0 a1 a0    o o o o  o o o o";
1070    ;
1071
1072    memory "lock"
1073        size            = 1;
1074        read            = "0  1  0  1   1  0  0  0    x x x x  x x x x",
1075                          "x  x  x  x   x  x  x  x    x x x x  x o o x";
1076
1077        write           = "1  0  1  0   1  1  0  0    1 1 1 1  1 i i 1",
1078                          "x  x  x  x   x  x  x  x    x x x x  x x x x";
1079        min_write_delay = 9000;
1080        max_write_delay = 9000;
1081    ;
1082
1083    memory "calibration"
1084        size            = 1;
1085        read            = "0  0  1  1   1  0  0  0    x x x x  x x x x",
1086                          "0  0  0  0   0  0  0  0    o o o o  o o o o";
1087    ;
1088
1089    memory "fuse"
1090        size            = 1;
1091        read            = "0  1  0  1   0  0  0  0    x x x x  x x x x",
1092                          "x  x  x  x   x  x  x  x    o o o o  x x o o";
1093
1094        write           = "1  0  1  0   1  1  0  0    1 0 1 x  x x x x",
1095                          "x  x  x  x   x  x  x  x    i i i i  1 1 i i";
1096        min_write_delay = 9000;
1097        max_write_delay = 9000;
1098    ;
1099;
1100
1101#------------------------------------------------------------
1102# AT90s1200
1103#------------------------------------------------------------
1104
1105part
1106    id               = "1200";
1107    desc             = "AT90S1200";
1108    stk500_devcode   = 0x33;
1109    avr910_devcode   = 0x13;
1110    signature        = 0x1e 0x90 0x01;
1111    pagel            = 0xd7;
1112    bs2              = 0xa0;
1113    chip_erase_delay = 20000;
1114    pgm_enable       = "1 0 1 0  1 1 0 0    0 1 0 1  0 0 1 1",
1115                       "x x x x  x x x x    x x x x  x x x x";
1116
1117    chip_erase       = "1 0 1 0  1 1 0 0    1 0 0 0  0 0 0 0",
1118                       "x x x x  x x x x    x x x x  x x x x";
1119
1120    timeout		= 200;
1121    stabdelay		= 100;
1122    cmdexedelay		= 25;
1123    synchloops		= 1;
1124    bytedelay		= 0;
1125    pollindex		= 0;
1126    pollvalue		= 0xFF;
1127    predelay		= 1;
1128    postdelay		= 1;
1129    pollmethod		= 0;
1130
1131    pp_controlstack     =
1132        0x0E, 0x1E, 0x0F, 0x1F, 0x2E, 0x3E, 0x2F, 0x3F,
1133        0x4E, 0x5E, 0x4F, 0x5F, 0x6E, 0x7E, 0x6F, 0x7F,
1134        0x66, 0x76, 0x67, 0x77, 0x6A, 0x7A, 0x6B, 0x7B,
1135        0xBE, 0xFD, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00;
1136    hventerstabdelay    = 100;
1137    progmodedelay       = 0;
1138    latchcycles         = 0;
1139    togglevtg           = 0;
1140    poweroffdelay       = 0;
1141    resetdelayms        = 0;
1142    resetdelayus        = 0;
1143    hvleavestabdelay    = 15;
1144    chiperasepulsewidth = 15;
1145    chiperasepolltimeout = 0;
1146    programfusepulsewidth = 2;
1147    programfusepolltimeout = 0;
1148    programlockpulsewidth = 0;
1149    programlockpolltimeout = 1;
1150
1151    memory "eeprom"
1152        size            = 64;
1153        min_write_delay = 4000;
1154        max_write_delay = 9000;
1155        readback_p1     = 0x00;
1156        readback_p2     = 0xff;
1157        read            = "1 0  1  0   0  0  0  0   x x x x  x x x x", 
1158                          "x x a5 a4  a3 a2 a1 a0   o o o o  o o o o";
1159
1160        write           = "1 1  0  0   0  0  0  0   x x x x  x x x x",
1161                          "x x a5 a4  a3 a2 a1 a0   i i i i  i i i i";
1162
1163	mode		= 0x04;
1164	delay		= 20;
1165	blocksize	= 32;
1166	readsize	= 256;
1167      ;
1168    memory "flash"
1169        size            = 1024;
1170        min_write_delay = 4000;
1171        max_write_delay = 9000;
1172        readback_p1     = 0xff;
1173        readback_p2     = 0xff;
1174        read_lo         = "  0   0   1   0    0   0   0   0",
1175                          "  x   x   x   x    x   x   x  a8",
1176                          " a7  a6  a5  a4   a3  a2  a1  a0",
1177                          "  o   o   o   o    o   o   o   o";
1178
1179        read_hi         = "  0   0   1   0    1   0   0   0",
1180                          "  x   x   x   x    x   x   x  a8",
1181                          " a7  a6  a5  a4   a3  a2  a1  a0",
1182                          "  o   o   o   o    o   o   o   o";
1183
1184        write_lo        = "  0   1   0   0    0   0   0   0",
1185                          "  x   x   x   x    x   x   x  a8",
1186                          " a7  a6  a5  a4   a3  a2  a1  a0",
1187                          "  i   i   i   i    i   i   i   i";
1188
1189        write_hi        = "  0   1   0   0    1   0   0   0",
1190                          "  x   x   x   x    x   x   x  a8",
1191                          " a7  a6  a5  a4   a3  a2  a1  a0",
1192                          "  i   i   i   i    i   i   i   i";
1193
1194	mode		= 0x02;
1195	delay		= 15;
1196	blocksize	= 128;
1197	readsize	= 256;
1198      ;
1199    memory "signature"
1200        size            = 3;
1201        read            = "0  0  1  1   0  0  0  0   x  x  x  x   x  x  x  x",
1202                          "x  x  x  x   x  x a1 a0   o  o  o  o   o  o  o  o";
1203      ;
1204    memory "fuse"
1205        size            = 1;
1206      ;
1207    memory "lock"
1208        size            = 1;
1209        min_write_delay = 9000;
1210        max_write_delay = 20000;
1211        write           = "1 0 1 0  1 1 0 0   1 1 1 1  1 i i 1",
1212                          "x x x x  x x x x   x x x x  x x x x";
1213      ;
1214  ;
1215
1216#------------------------------------------------------------
1217# AT90s4414
1218#------------------------------------------------------------
1219
1220part
1221    id               = "4414";
1222    desc             = "AT90S4414";
1223    stk500_devcode   = 0x50;
1224    avr910_devcode   = 0x28;
1225    signature        = 0x1e 0x92 0x01;
1226    chip_erase_delay = 20000;
1227    pgm_enable       = "1 0 1 0  1 1 0 0    0 1 0 1  0 0 1 1",
1228                       "x x x x  x x x x    x x x x  x x x x";
1229
1230    chip_erase       = "1 0 1 0  1 1 0 0    1 0 0 0  0 0 0 0",
1231                       "x x x x  x x x x    x x x x  x x x x";
1232
1233    timeout		= 200;
1234    stabdelay		= 100;
1235    cmdexedelay		= 25;
1236    synchloops		= 32;
1237    bytedelay		= 0;
1238    pollindex		= 3;
1239    pollvalue		= 0x53;
1240    predelay		= 1;
1241    postdelay		= 1;
1242    pollmethod		= 0;
1243
1244    pp_controlstack     =
1245        0x0E, 0x1E, 0x0F, 0x1F, 0x2E, 0x3E, 0x2F, 0x3F,
1246        0x4E, 0x5E, 0x4F, 0x5F, 0x6E, 0x7E, 0x6F, 0x7F,
1247        0x66, 0x76, 0x67, 0x77, 0x6A, 0x7A, 0x6B, 0x7B,
1248        0xBE, 0xFD, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01;
1249    hventerstabdelay    = 100;
1250    progmodedelay       = 0;
1251    latchcycles         = 0;
1252    togglevtg           = 0;
1253    poweroffdelay       = 0;
1254    resetdelayms        = 0;
1255    resetdelayus        = 0;
1256    hvleavestabdelay    = 15;
1257    chiperasepulsewidth = 15;
1258    chiperasepolltimeout = 0;
1259    programfusepulsewidth = 2;
1260    programfusepolltimeout = 0;
1261    programlockpulsewidth = 0;
1262    programlockpolltimeout = 1;
1263
1264    memory "eeprom"
1265        size            = 256;
1266        min_write_delay = 9000;
1267        max_write_delay = 20000;
1268        readback_p1     = 0x80;
1269        readback_p2     = 0x7f;
1270        read            = " 1  0  1  0   0  0  0  0  x x x x  x x x a8", 
1271                          "a7 a6 a5 a4 a3 a2 a1 a0   o o o o  o o o o";
1272
1273        write           = " 1  1  0  0   0  0  0  0   x x x x  x x x a8",
1274                          "a7 a6 a5 a4  a3 a2 a1 a0   i i i i  i i i i";
1275
1276	mode		= 0x04;
1277	delay		= 12;
1278	blocksize	= 64;
1279	readsize	= 256;
1280      ;
1281    memory "flash"
1282        size            = 4096;
1283        min_write_delay = 9000;
1284        max_write_delay = 20000;
1285        readback_p1     = 0x7f;
1286        readback_p2     = 0x7f;
1287        read_lo         = "  0   0   1   0    0   0   0   0",
1288                          "  x   x   x   x  a11 a10  a9  a8",
1289                          " a7  a6  a5  a4   a3  a2  a1  a0",
1290                          "  o   o   o   o    o   o   o   o";
1291
1292        read_hi         = "  0   0   1   0    1   0   0   0",
1293                          "  x   x   x   x  a11 a10  a9  a8",
1294                          " a7  a6  a5  a4   a3  a2  a1  a0",
1295                          "  o   o   o   o    o   o   o   o";
1296
1297        write_lo        = "  0   1   0   0    0   0   0   0",
1298                          "  x   x   x   x  a11 a10  a9  a8",
1299                          " a7  a6  a5  a4   a3  a2  a1  a0",
1300                          "  i   i   i   i    i   i   i   i";
1301
1302        write_hi        = "  0   1   0   0    1   0   0   0",
1303                          "  x   x   x   x  a11 a10  a9  a8",
1304                          " a7  a6  a5  a4   a3  a2  a1  a0",
1305                          "  i   i   i   i    i   i   i   i";
1306
1307	mode		= 0x04;
1308	delay		= 12;
1309	blocksize	= 64;
1310	readsize	= 256;
1311      ;
1312    memory "signature"
1313        size            = 3;
1314        read            = "0  0  1  1   0  0  0  0   x  x  x  x   x  x  x  x",
1315                          "x  x  x  x   x  x a1 a0   o  o  o  o   o  o  o  o";
1316      ;
1317    memory "fuse"
1318	size		= 1;
1319      ;
1320    memory "lock"
1321	size		= 1;
1322	write		= "1  0  1  0   1  1  0  0   1  1  1  1   1  i  i  1",
1323			  "x  x  x  x   x  x  x  x   x  x  x  x   x  x  x  x";
1324        min_write_delay = 9000;
1325        max_write_delay = 9000;
1326      ;
1327  ;
1328
1329#------------------------------------------------------------
1330# AT90s2313
1331#------------------------------------------------------------
1332
1333part
1334    id               = "2313";
1335    desc             = "AT90S2313";
1336    stk500_devcode   = 0x40;
1337    avr910_devcode   = 0x20;
1338    signature        = 0x1e 0x91 0x01;
1339    chip_erase_delay = 20000;
1340    pgm_enable       = "1 0 1 0  1 1 0 0    0 1 0 1  0 0 1 1",
1341                       "x x x x  x x x x    x x x x  x x x x";
1342
1343    chip_erase       = "1 0 1 0  1 1 0 0    1 0 0 0  0 0 0 0",
1344                       "x x x x  x x x x    x x x x  x x x x";
1345
1346    timeout		= 200;
1347    stabdelay		= 100;
1348    cmdexedelay		= 25;
1349    synchloops		= 32;
1350    bytedelay		= 0;
1351    pollindex		= 3;
1352    pollvalue		= 0x53;
1353    predelay		= 1;
1354    postdelay		= 1;
1355    pollmethod		= 0;
1356
1357    pp_controlstack     =
1358        0x0E, 0x1E, 0x0F, 0x1F, 0x2E, 0x3E, 0x2F, 0x3F,
1359        0x4E, 0x5E, 0x4F, 0x5F, 0x6E, 0x7E, 0x6F, 0x7F,
1360        0x66, 0x76, 0x67, 0x77, 0x6A, 0x7A, 0x6B, 0x7B,
1361        0xBE, 0xFD, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00;
1362    hventerstabdelay    = 100;
1363    progmodedelay       = 0;
1364    latchcycles         = 0;
1365    togglevtg           = 0;
1366    poweroffdelay       = 0;
1367    resetdelayms        = 0;
1368    resetdelayus        = 0;
1369    hvleavestabdelay    = 15;
1370    chiperasepulsewidth = 15;
1371    chiperasepolltimeout = 0;
1372    programfusepulsewidth = 2;
1373    programfusepolltimeout = 0;
1374    programlockpulsewidth = 0;
1375    programlockpolltimeout = 1;
1376
1377    memory "eeprom"
1378        size            = 128;
1379        min_write_delay = 4000;
1380        max_write_delay = 9000;
1381        readback_p1     = 0x80;
1382        readback_p2     = 0x7f;
1383        read            = "1  0  1  0   0  0  0  0   x x x x  x x x x", 
1384                          "x a6 a5 a4  a3 a2 a1 a0   o o o o  o o o o";
1385
1386        write           = "1  1  0  0   0  0  0  0   x x x x  x x x x",
1387                          "x a6 a5 a4  a3 a2 a1 a0   i i i i  i i i i";
1388
1389	mode		= 0x04;
1390	delay		= 12;
1391	blocksize	= 64;
1392	readsize	= 256;
1393      ;
1394    memory "flash"
1395        size            = 2048;
1396        min_write_delay = 4000;
1397        max_write_delay = 9000;
1398        readback_p1     = 0x7f;
1399        readback_p2     = 0x7f;
1400        read_lo         = "  0   0   1   0    0   0   0   0",
1401                          "  x   x   x   x    x   x  a9  a8",
1402                          " a7  a6  a5  a4   a3  a2  a1  a0",
1403                          "  o   o   o   o    o   o   o   o";
1404
1405        read_hi         = "  0   0   1   0    1   0   0   0",
1406                          "  x   x   x   x    x   x  a9  a8",
1407                          " a7  a6  a5  a4   a3  a2  a1  a0",
1408                          "  o   o   o   o    o   o   o   o";
1409
1410        write_lo        = "  0   1   0   0    0   0   0   0",
1411                          "  x   x   x   x    x   x  a9  a8",
1412                          " a7  a6  a5  a4   a3  a2  a1  a0",
1413                          "  i   i   i   i    i   i   i   i";
1414
1415        write_hi        = "  0   1   0   0    1   0   0   0",
1416                          "  x   x   x   x    x   x  a9  a8",
1417                          " a7  a6  a5  a4   a3  a2  a1  a0",
1418                          "  i   i   i   i    i   i   i   i";
1419
1420	mode		= 0x04;
1421	delay		= 12;
1422	blocksize	= 128;
1423	readsize	= 256;
1424      ;
1425    memory "signature"
1426        size            = 3;
1427        read            = "0  0  1  1   0  0  0  0   x  x  x  x   x  x  x  x",
1428                          "x  x  x  x   x  x a1 a0   o  o  o  o   o  o  o  o";
1429      ;
1430    memory "fuse"
1431        size            = 1;
1432      ;
1433    memory "lock"
1434        size            = 1;
1435        write           = "1 0 1 0  1 1 0 0  1 1 1 x  x i i x",
1436                          "x x x x  x x x x  x x x x  x x x x";
1437        min_write_delay = 9000;
1438        max_write_delay = 9000;
1439      ;
1440  ;
1441
1442#------------------------------------------------------------
1443# AT90s2333
1444#------------------------------------------------------------
1445
1446part
1447    id               = "2333";
1448##### WARNING: No XML file for device 'AT90S2333'! #####
1449    desc             = "AT90S2333";
1450    stk500_devcode   = 0x42;
1451    avr910_devcode   = 0x34;
1452    signature        = 0x1e 0x91 0x05;
1453    chip_erase_delay = 20000;
1454    pgm_enable       = "1 0 1 0  1 1 0 0    0 1 0 1  0 0 1 1",
1455                       "x x x x  x x x x    x x x x  x x x x";
1456
1457    chip_erase       = "1 0 1 0  1 1 0 0    1 0 0 0  0 0 0 0",
1458                       "x x x x  x x x x    x x x x  x x x x";
1459
1460    memory "eeprom"
1461        size            = 128;
1462        min_write_delay = 9000;
1463        max_write_delay = 20000;
1464        readback_p1     = 0x00;
1465        readback_p2     = 0xff;
1466        read            = "1  0  1  0   0  0  0  0   x x x x  x x x x", 
1467                          "x a6 a5 a4  a3 a2 a1 a0   o o o o  o o o o";
1468
1469        write           = "1  1  0  0   0  0  0  0   x x x x  x x x x",
1470                          "x a6 a5 a4  a3 a2 a1 a0   i i i i  i i i i";
1471      ;
1472    memory "flash"
1473        size            = 2048;
1474        min_write_delay = 9000;
1475        max_write_delay = 20000;
1476        readback_p1     = 0xff;
1477        readback_p2     = 0xff;
1478        read_lo         = "  0   0   1   0    0   0   0   0",
1479                          "  x   x   x   x    x   x  a9  a8",
1480                          " a7  a6  a5  a4   a3  a2  a1  a0",
1481                          "  o   o   o   o    o   o   o   o";
1482
1483        read_hi         = "  0   0   1   0    1   0   0   0",
1484                          "  x   x   x   x    x   x  a9  a8",
1485                          " a7  a6  a5  a4   a3  a2  a1  a0",
1486                          "  o   o   o   o    o   o   o   o";
1487
1488        write_lo        = "  0   1   0   0    0   0   0   0",
1489                          "  x   x   x   x    x   x  a9  a8",
1490                          " a7  a6  a5  a4   a3  a2  a1  a0",
1491                          "  i   i   i   i    i   i   i   i";
1492
1493        write_hi        = "  0   1   0   0    1   0   0   0",
1494                          "  x   x   x   x    x   x  a9  a8",
1495                          " a7  a6  a5  a4   a3  a2  a1  a0",
1496                          "  i   i   i   i    i   i   i   i";
1497      ;
1498    memory "signature"
1499        size            = 3;
1500        read            = "0  0  1  1   0  0  0  0   x  x  x  x   x  x  x  x",
1501                          "x  x  x  x   x  x a1 a0   o  o  o  o   o  o  o  o";
1502      ;
1503    memory "fuse"
1504        size            = 1;
1505        min_write_delay = 9000;
1506        max_write_delay = 20000;
1507        pwroff_after_write = yes;
1508        read            = "0 1 0 1  0 0 0 0   x x x x  x x x x",
1509                          "x x x x  x x x x   x x o o  o o o o";
1510
1511        write           = "1 0 1 0  1 1 0 0   1 0 1 i  i i i i",
1512                          "x x x x  x x x x   x x x x  x x x x";
1513      ;
1514    memory "lock"
1515        size            = 1;
1516        min_write_delay = 9000;
1517        max_write_delay = 20000;
1518        read            = "0 1 0 1  1 0 0 0   x x x x  x x x x",
1519                          "x x x x  x x x x   x x x x  x o o x";
1520
1521        write           = "1 0 1 0  1 1 0 0   1 1 1 1  1 i i 1",
1522                          "x x x x  x x x x   x x x x  x x x x";
1523      ;
1524  ;
1525
1526
1527#------------------------------------------------------------
1528# AT90s2343 (also AT90s2323 and ATtiny22)
1529#------------------------------------------------------------
1530
1531part
1532    id               = "2343";
1533    desc             = "AT90S2343";
1534    stk500_devcode   = 0x43;
1535    avr910_devcode   = 0x4c;
1536    signature        = 0x1e 0x91 0x03;
1537    chip_erase_delay = 18000;
1538    pgm_enable       = "1 0 1 0  1 1 0 0    0 1 0 1  0 0 1 1",
1539                       "x x x x  x x x x    x x x x  x x x x";
1540
1541    chip_erase       = "1 0 1 0  1 1 0 0    1 0 0 x  x x x x",
1542                       "x x x x  x x x x    x x x x  x x x x";
1543
1544    timeout		= 200;
1545    stabdelay		= 100;
1546    cmdexedelay		= 25;
1547    synchloops		= 32;
1548    bytedelay		= 0;
1549    pollindex		= 3;
1550    pollvalue		= 0x53;
1551    predelay		= 1;
1552    postdelay		= 1;
1553    pollmethod		= 0;
1554
1555    hvsp_controlstack   =
1556        0x4C, 0x0C, 0x1C, 0x2C, 0x3C, 0x64, 0x74, 0x00,
1557        0x68, 0x78, 0x68, 0x68, 0x00, 0x00, 0x68, 0x78,
1558        0x78, 0x00, 0x6D, 0x0C, 0x80, 0x40, 0x20, 0x10,
1559        0x11, 0x08, 0x04, 0x02, 0x03, 0x08, 0x04, 0x00;
1560    hventerstabdelay    = 100;
1561    hvspcmdexedelay     = 0;
1562    synchcycles         = 6;
1563    latchcycles         = 1;
1564    togglevtg           = 0;
1565    poweroffdelay       = 25;
1566    resetdelayms        = 0;
1567    resetdelayus        = 50;
1568    hvleavestabdelay    = 100;
1569    resetdelay          = 25;
1570    chiperasepolltimeout = 40;
1571    chiperasetime       = 0;
1572    programfusepolltimeout = 25;
1573    programlockpolltimeout = 25;
1574
1575    memory "eeprom"
1576        size            = 128;
1577        min_write_delay = 9000;
1578        max_write_delay = 20000;
1579        readback_p1     = 0x00;
1580        readback_p2     = 0xff;
1581        read            = "1  0  1  0   0  0  0  0   0 0 0 0  0 0 0 0", 
1582                          "x a6 a5 a4  a3 a2 a1 a0   o o o o  o o o o";
1583
1584        write           = "1  1  0  0   0  0  0  0   0 0 0 0  0 0 0 0",
1585                          "x a6 a5 a4  a3 a2 a1 a0   i i i i  i i i i";
1586
1587	mode		= 0x04;
1588	delay		= 12;
1589	blocksize	= 64;
1590	readsize	= 256;
1591      ;
1592    memory "flash"
1593        size            = 2048;
1594        min_write_delay = 9000;
1595        max_write_delay = 20000;
1596        readback_p1     = 0xff;
1597        readback_p2     = 0xff;
1598        read_lo         = "  0   0   1   0    0   0   0   0",
1599                          "  x   x   x   x    x   x  a9  a8",…

Large files files are truncated, but you can click here to view the full file