diff --git a/src/avrdude.conf.in b/src/avrdude.conf.in index 3b8c5a6e..8a9bca41 100644 --- a/src/avrdude.conf.in +++ b/src/avrdude.conf.in @@ -12,7 +12,7 @@ # # DO NOT MODIFY THIS FILE. Modifications will be overwritten the next # time a "make install" is run. For user-specific additions, use the -# "-C +filename" commandline option. +# "-C +filename" command line option. # # Possible entry formats are: # @@ -34,12 +34,12 @@ # rdyled = <num> ; # pin number # pgmled = <num> ; # pin number # vfyled = <num> ; # pin number -# usbvid = <hexnum>; # USB VID (Vendor ID) -# usbpid = <hexnum> [, <hexnum> ...] # USB PID (Product ID) (1) -# usbdev = <interface>; # USB interface or other device info -# usbvendor = <vendorname>; # USB Vendor Name -# usbproduct = <productname>; # USB Product Name -# usbsn = <serialno>; # USB Serial Number +# usbvid = <hexnum> ; # USB VID (Vendor ID) +# usbpid = <hexnum> [, <hexnum> ...] ; # USB PID (Product ID) (1) +# usbdev = <interface> ; # USB interface or other device info +# usbvendor = <vendorname> ; # USB Vendor Name +# usbproduct = <productname> ; # USB Product Name +# usbsn = <serialno> ; # USB Serial Number # hvupdi_support = <num> [, <num>, ... ] ; # UPDI HV Variants Support # # To invert a bit, use = ~ <num>, the spaces are important. @@ -48,32 +48,34 @@ # specify it as follows = ~ ( <num> [, <num2> ... ] ) . # # (1) Not all programmer types can process a list of PIDs. -# ; +# ; # # part -# id = <id> ; # quoted string # desc = <description> ; # quoted string +# id = <id> ; # quoted string +# family_id = <id> ; # quoted string, eg, "megaAVR" or "tinyAVR" +# hvupdi_variant = <num> ; # numeric -1 (n/a) or 0..2 +# devicecode = <num> ; # deprecated, use stk500_devcode +# stk500_devcode = <num> ; # numeric +# avr910_devcode = <num> ; # numeric # has_jtag = <yes/no> ; # part has JTAG i/f # has_debugwire = <yes/no> ; # part has debugWire i/f # has_pdi = <yes/no> ; # part has PDI i/f # has_updi = <yes/no> ; # part has UPDI i/f # has_tpi = <yes/no> ; # part has TPI i/f -# devicecode = <num> ; # deprecated, use stk500_devcode -# stk500_devcode = <num> ; # numeric -# avr910_devcode = <num> ; # numeric +# is_at90s1200 = <yes/no> ; # AT90S1200 part +# is_avr32 = <yes/no> ; # AVR32 part # signature = <num> <num> <num> ; # signature bytes # usbpid = <num> ; # DFU USB PID # chip_erase_delay = <num> ; # micro-seconds -# reset = dedicated | io; -# retry_pulse = reset | sck; -# pgm_enable = <instruction format> ; -# chip_erase = <instruction format> ; +# reset = dedicated | io ; +# retry_pulse = reset | sck ; # chip_erase_delay = <num> ; # chip erase delay (us) # # STK500 parameters (parallel programming IO lines) # pagel = <num> ; # pin name in hex, i.e., 0xD7 # bs2 = <num> ; # pin name in hex, i.e., 0xA0 # serial = <yes/no> ; # can use serial downloading -# parallel = <yes/no/pseudo>; # can use par. programming +# parallel = <yes/no/pseudo> ; # can use par. programming # # STK500v2 parameters, to be taken from Atmel's XML files # timeout = <num> ; # stabdelay = <num> ; @@ -85,52 +87,59 @@ # predelay = <num> ; # postdelay = <num> ; # pollmethod = <num> ; -# mode = <num> ; -# delay = <num> ; -# blocksize = <num> ; -# readsize = <num> ; # hvspcmdexedelay = <num> ; # # STK500v2 HV programming parameters, from XML -# pp_controlstack = <num>, <num>, ...; # PP only -# hvsp_controlstack = <num>, <num>, ...; # HVSP only -# hventerstabdelay = <num>; -# progmodedelay = <num>; # PP only -# latchcycles = <num>; -# togglevtg = <num>; -# poweroffdelay = <num>; -# resetdelayms = <num>; -# resetdelayus = <num>; -# hvleavestabdelay = <num>; -# resetdelay = <num>; -# synchcycles = <num>; # HVSP only -# chiperasepulsewidth = <num>; # PP only -# chiperasepolltimeout = <num>; -# chiperasetime = <num>; # HVSP only -# programfusepulsewidth = <num>; # PP only -# programfusepolltimeout = <num>; -# programlockpulsewidth = <num>; # PP only -# programlockpolltimeout = <num>; +# pp_controlstack = <num>, <num>, ... ; # PP only +# hvsp_controlstack = <num>, <num>, ... ; # HVSP only +# flash_instr = <num>, <num>, <num> ; +# eeprom_instr = <num>, <num>, ... ; +# hventerstabdelay = <num> ; +# progmodedelay = <num> ; # PP only +# latchcycles = <num> ; +# togglevtg = <num> ; +# poweroffdelay = <num> ; +# resetdelayms = <num> ; +# resetdelayus = <num> ; +# hvleavestabdelay = <num> ; +# resetdelay = <num> ; +# synchcycles = <num> ; # HVSP only +# chiperasepulsewidth = <num> ; # PP only +# chiperasepolltimeout = <num> ; +# chiperasetime = <num> ; # HVSP only +# programfusepulsewidth = <num> ; # PP only +# programfusepolltimeout = <num> ; +# programlockpulsewidth = <num> ; # PP only +# programlockpolltimeout = <num> ; # # JTAG ICE mkII parameters, also from XML files # allowfullpagebitstream = <yes/no> ; # enablepageprogramming = <yes/no> ; -# idr = <num> ; # IO addr of IDR (OCD) reg. -# rampz = <num> ; # IO addr of RAMPZ reg. -# spmcr = <num> ; # mem addr of SPMC[S]R reg. -# eecr = <num> ; # mem addr of EECR reg. -# # (only when != 0x3c) -# is_at90s1200 = <yes/no> ; # AT90S1200 part -# is_avr32 = <yes/no> ; # AVR32 part +# idr = <num> ; # IO addr of IDR (OCD) reg +# rampz = <num> ; # IO addr of RAMPZ reg +# spmcr = <num> ; # mem addr of SPMC[S]R reg +# eecr = <num> ; # mem addr of EECR reg only when != 0x3c +# mcu_base = <num> ; +# nvm_base = <num> ; +# ocd_base = <num> ; +# ocdrev = <num> ; +# pgm_enable = <instruction format> ; +# chip_erase = <instruction format> ; # # memory <memtype> -# paged = <yes/no> ; # yes / no +# paged = <yes/no> ; # yes/no (flash only, do not use for EEPROM) +# offset = <num> ; # memory offset # size = <num> ; # bytes # page_size = <num> ; # bytes # num_pages = <num> ; # numeric # min_write_delay = <num> ; # micro-seconds # max_write_delay = <num> ; # micro-seconds -# readback_p1 = <num> ; # byte value -# readback_p2 = <num> ; # byte value -# pwroff_after_write = <yes/no> ; # yes / no +# readback = <num> <num> ; # pair of byte values +# readback_p1 = <num> ; # byte value (first component) +# readback_p2 = <num> ; # byte value (second component) +# pwroff_after_write = <yes/no> ; # yes/no +# mode = <num> ; # STK500 v2 file parameter, to be taken from Atmel's XML files +# delay = <num> ; # " +# blocksize = <num> ; # " +# readsize = <num> ; # " # read = <instruction format> ; # write = <instruction format> ; # read_lo = <instruction format> ; @@ -140,11 +149,12 @@ # loadpage_lo = <instruction format> ; # loadpage_hi = <instruction format> ; # writepage = <instruction format> ; -# ; -# ; +# ; +# ; # # If any of the above parameters are not specified, the default value -# of 0 is used for numerics or the empty string ("") for string +# of 0 is used for numerics (except for hvupdi_variant and ocdrev, +# where the default value is -1) or the empty string ("") for string # values. If a required parameter is left empty, AVRDUDE will # complain. # @@ -152,7 +162,12 @@ # using the following syntax. In this case specified integer and # string values override parameter values from the parent part. New # memory definitions are added to the definitions inherited from the -# parent. +# parent. If, however, a new memory definition refers to an existing +# one of the same name for that part then, from v7.1, the existing +# memory definition is extended, and components overwritten with new +# values. Assigning NULL removes an inherited SPI instruction format, +# memory definition, control stack, eeprom or flash instruction, eg, +# as in memory "efuse" = NULL; # # part parent <id> # quoted string # id = <id> ; # quoted string @@ -181,7 +196,7 @@ # # INSTRUCTION FORMATS # -# Instruction formats are specified as a comma seperated list of +# Instruction formats are specified as a comma separated list of # string values containing information (bit specifiers) about each # of the 32 bits of the instruction. Bit specifiers may be one of # the following formats: @@ -190,10 +205,11 @@ # # '0' = the bit is always clear on input as well as output # -# 'x' = the bit is ignored on input and output +# 'x' = the bit is ignored on input and output and set as 0 # -# 'a' = the bit is an address bit, the bit-number matches this bit -# specifier's position within the current instruction byte +# 'a' = the bit is an address bit; from v 7.1 the bit-number +# is set to match the right bit position for the +# instruction to "just work" # # 'aN' = the bit is the Nth address bit, bit-number = N, i.e., a12 # is address bit 12 on input, a0 is address bit 0. @@ -202,11 +218,28 @@ # # 'o' = the bit is an output data bit # -# Each instruction must be composed of 32 bit specifiers. The +# Each instruction must be composed of 32 bit specifiers. The # instruction specification closely follows the instruction data -# provided in Atmel's data sheets for their parts. +# provided in Atmel's data sheets for their parts. Note that flash +# addresses always refer to *word* addresses whilst all other +# memory types specify *byte* addresses. # -# See below for some examples. +# Example for signature read on the ATmega328P: +# read = "0 0 1 1 0 0 0 0", "0 0 0 x x x x x", +# "x x x x x x a1 a0", "o o o o o o o o"; +# +# As the address bit numbers in the SPI opcodes are highly +# systematic, they don't really need to be specified. A compact +# version of the format specification neither uses bit-numbers for +# address lines nor spaces. If such a string is longer than 7 +# characters, then the characters 0, 1, x, a, i and o will be +# recognised as the corresponding bit, whilst any of the characters +# ., -, _ or / can act as arbitrary visual separators, which are +# ignored. Examples: +# +# loadpage_lo = "0100.0000--000x.xxxx--xxaa.aaaa--iiii.iiii"; +# +# loadpage_lo = "0100.0000", "000x.xxxx", "xxaa.aaaa", "iiii.iiii"; # # # The following are STK500 part device codes to use for the