-
Notifications
You must be signed in to change notification settings - Fork 139
/
NEWS
2075 lines (1697 loc) · 83.3 KB
/
NEWS
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
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
Approximate change log for AVRDUDE by version.
(For detailed changes, see the version control system logs.)
----------------------------------------------------------------------
Changes since version 8.0:
* Major changes compared to the previous version:
* New devices supported:
- AVR128DA28S, AVR128DA32S, AVR128DA48S, AVR128DA64S
- AVR32EB14, AVR32EB20, AVR32EB28, AVR32EB32
* New programmers supported:
* New serial adapters supported:
* Issues fixed:
- Missing devices in udev rules output? #1915
* Pull requests:
- Add AVR128DAxxS parts #1918
- Update usbpids in avrdude.conf #1919
- Add extra version information to avrdude output #1927
- CI: Ensure only supported configure options are used
(--enable-option-checking=fatal) #1934
- Document elf2tag script #1916
- Add AVR32EBxx parts #1932
- Fix ATxmega fuses memory sizes #1933
* Internals:
Changes in version 8.0:
* Major changes compared to the previous version:
- Support of multi-memory .hex/.srec files and memory lists #1828
- New terminal disasm command #1842
- GUI implementation of avrdude to demonstrate libavrdude #1714
* New devices supported:
- AVR16DU14, AVR16DU20, AVR16DU28, AVR16DU32
- AVR32DU14, AVR32DU20, AVR32DU28, AVR32DU32
* New programmers supported:
- serprog
- pickit5_updi
* New serial adapters supported:
- ch342, ch344, ch347, ch9103
* Issues fixed:
- Avrintel.h missing from installation #1683
- Use of undeclared identifier 'AVRDUDE_FULL_VERSION' #1706
- Wrong message level in jtag3_prmsg() #1726
- Old avrdude_message() can go away #1719
- avr_{read,write}_mem fail to initialize progress reporting #1718
- avr*timestamp() oddities #1722
- -F option not honoured #1740
- "jtag2 is not a unique start of a programmer name" #1739
- Regression: EEPROM issue with official STK500 V1 FW #1713
- usbasp_write_byte in TPI mode not implemented #1755
- Remove calls to exit() from libavrdude library #774
- cmake enabling LINUXGPIO on ubuntu 20.04 fails #1782
- macOS github action failed. #1793
- Format mismatch warnings #1799
- 0xff optimization when reading #1732
- Add support for more AVR-DU parts #1742
- Misleading error message: cannot find programmer id #1805
- Custom programmer broken in v7.3 #1807
- ATtiny11 does not have EEPROM #1812
- AVRDUDE fails to return -1 on some write errors #1821
- Multi-memory files #1817
- Terminal erase command #1833
- Bootrow r/w does not work for -c serialupdi #1832
- Wrong error message when specifying wrong AVR-Ex part #1813
- AVR109 auto reset functionality #1697
- Unable to write LOCK bit byte to JTAG3_TPI #1858
- Unexpected auto-erase consequences #1861
- JTAGICE3 EDBG communication mode relies on hardcoded USBVID #1838
- avrdude documentation typo(s) attemps #1852
- Conflicting types for op16_is_mnemo: enum/integer #1851
- Writing BOOTROW for Curiosity Nano #1868
- Should AVRDUDE be run as root? #1860
- Auto-build avrdude.pdf from texinfo sources #1847
- Poor coverage of (concept) index in documentation #1582
- Warnings when build under NetBSD 10 and OpenBSD 7.5 #1904
- Add -e for the location of avrdude executable for test8 #1900
- Weird AVR family warning on locked AVR-Dx #1894
- How is version.texi created with autotools? #1905
* Pull requests:
- Remove 32bit MSYS2 mingw32 and clang32 build #1687
- Make avrintel.h an internal header file for libavrdude #1686
- Fix -Wcalloc-transposed-args warning #1680
- Improve autotool build #1681
- Installation of libavrdude-avrintel.h #1688
- Updated documentation about NVM models support #1689
- Abbreviate ids of modern AVR parts #1703
- Allow slash in part variant name for -p #1702
- Fix reporting of read/write times for files with holes #1700
- Change port array in PROGRAMMER to be const char * #1699
- Fix cmake build errors related to ac_cfg.h #1707
- Add benchmark option -b for test-avrdude #1709
- Replace msg_info() by msg_debug() in jtag3_prmsg()
and jtag3_prevent() #1727
- Remove unused avrdude_message() #1730
- Add lmsg_xyz() functions to start message at left margin #1728
- Document progress reporting in source code #1724
- Change type for avr_(ms|us)timestamp() to uint64_t #1729
- Use Static Libs for macOS arduino_packing build #1731
- Add arduino_packing_release github action #1690
- Fix message levels in jtag3_print_data() #1741
- Consult -F option when signature cannot be read #1745
- Check all programmer ids for exact match #1746
- Update avrintel files #1747
- Add buspirate hiz and pullups feature #1733
- Add support for libgpiod v2+ API #1725
- Remove deprecated ucr2 part #1749
- Make programmers libavrdude ready #1750, 1752, 1756 ... 1786
- Make default EEPROM readback 0xff for STK500 v1 #1753
- Silence gcc warning when printf format is "" #1754
- Remove calls to exit() from libavrdude library #1790
- Include libgpiod-dev in build.yml for Linux builds #1788
- linuxgpio: add support for libgpiod v1.4 #1792
- Use magic memory tree interface throughout #1795
- Silence MacOS compiler warning #1794
- Add macOS autotools to github action #1798
- Silence compiler warnings #1800
- Fix 7 typos in 4 files #1802
- Put static variables into context structure #1803
- Add new AVRnnDUnn parts #1804
- Differentiate cause when programmer isn't found #1806
- Prepare for next urboot version #1808
- Rename AVRDUDE symbol names ending in _t #1809
- Warn when programmer failes to define prog_modes #1810
- Add serprog programmer #1801
- Remove EEPROM from ATtiny11 avrdude.conf entry #1814
- Guard serial_number access in usbhid_open() to avoid segfault #1815
- Allow selection of program modes for developer options #1816
- Return -1 on write error #1822
- Extend elf format for bootrow #1820
- Update AUTHORS list #1819
- Downgrade out-of-range file input errors on -F #1818
- Multi-memory file handling #1828
- Add developer options -p*/vcr to explore SW compatibility #1830
- Improve chip erase emulation for dryboot/dryrun #1836
- Use page erase for UPDI programming #1837
- Add fuses, calibration, sernum and tempsense memories #1829
- Fix bootrow access for -c serialupdi #1835
- Improve signature check for UPDI parts #1840
- Improve error handling for avrdude without libserialport #1843
- Provide terminal disasm command #1842
- Improve auto-reset handling and -x/-E parsing #1844
- Remove obsolete SVN $Id$ tags from source files #1850
- Update look and feel #1849
- Update documentation for -E and -x #1853
- Add more WCH USB to serial chips #1855
- cmake: LIB_NCURSES also accept pdcurses #1856
- Fix byte writes to TPI lockbits for jpag3.c #1859
- Refine auto-erase strategy #1862
- Provide -P usb:vid:pid for USB hid i/f and allow
long -P usb:serno for usblib and hidapi #186
- Initialise dryrun flash with realistic random code #1873
- Writing BOOTROW for Curiosity Nano #1870
- Refine programmer/part/memory compatibility modelling #1869
- Provide dev option -c \*/u that shows udev rules #1867
- Provide current avrdude.pdf documentation in repo root #1865
- doc: Stop building and installing .ps and .dvi #1857
- Improve autotools build (part 2/n) #1695
- Use correct file locations in the documentation #1637
- Deprecate obsolete features and options #1875
- Add more hard-coded usbvid/pid to udev rules #1876
- Fixes for jtag3 programmers and prep for jtagmkII #1877
- SWIG Python wrapper for libavrdude #1714
- PICkit 5 support #1863
- Make usbproduct available to programmers #1880
- Silently skip erasing read-only parts of a memory #1883
- Fix ATmega1284/P readsize #1886
- Fix addresses for jtag3_pdi boot and apptable #1887
- Adapt documentation to new Look and Feel #1892
- Adapt tools/test-avrdude script for versatile CI use #1891
- Reformat sources #1893
- Add to parts, programmers and index in avrdude.pdf #1895 #1902
- Fix deprecated types in libavrdude.i #1896
- Update build.yml to re-enable Windows on ARM64 MSVC build #1901
- Add -e exe option to test8 #1903
- Refrain from polling memories other than flash/eeprom #1897
- Remove known limitations comment from serprog.c #1906
- Improve messaging around locked UPDI parts #1907
- Improve Documentation #1908
- Silence compiler warnings #1909
- Parport build test #1874
- CI: test running the built avrdude executable #1888
- Add checks for zombie sourcecode problems #1910
- Iron out some problems in jtagmkII #1911
* Internals:
- Created a context structure pointed to by cx, which harbours global
and static variables
- Made programmers libavrdude ready: remove exit() calls and moved
static variables into local struct pdata
Changes in version 7.3:
* Major changes compared to the previous version:
- Connect target via -P serialadapter[:sn] and -P usb:vid:pid[:sn] #1498
- Add io and sram memory info in lieu of incomplete data memory
- New test-avrdude script in tools #1645
- Update SerialUPDI protocol #1627
- Terminal
+ Command regfile #1580
+ Command factory reset #1642
* New devices supported:
- AVR16EB14, AVR16EB20, AVR16EB28, AVR16EB32
- AVR64DU28, AVR64DU32
* New programmers supported:
- ft2232h_jtag, ft232h_jtag
- dryboot
* Issues fixed:
- Provide sib memory for AVR8X parts #1479
- HAS_VTARG_READ not utilized in source code #1469
- -c stk500 only works with stk500v2 firmware #1467
- Read silicon revision from modern AVRs #1472
- Dryrun doesn't overlap XMEGA flash memories #1485
- 7e94ed4442b breaks flashing GT2560 boards #1503
- Cross-platform support for 1200bps touch #1500
- Read ATmega324PB and ATmega328PB serial number #1509
- EEPROM file generates error with 7.2 #1508
- PGM LED not activated for flash or eeprom write #1514
- Adding the Avrdude build version to avrdude.conf #1475
- Harmonise WIN32 and POSIX serial comms timeout #1249
- Old avrdude.conf can result in a segmentation fault #1544
- Support AVR EB series #1546
- Programmer in .avrduderc not recognised #1551
- JTAG signature write ineffective #1527
- Control forced loading of ~/.avrduderc #1548
- Warn if avrdude and avrdude.conf versions don't match #1562
- Terminal part command could need an update #1558
- Proposal: Add memory sram #1559
- jtagmkI.c/jtagmkII.c rely on OCDEN being hfuse bit 7 #1537
- Certain terminal commands may be confusing #1570
- Upload port required for -cdryrun on MacOS #1578
- Make programmer -c name checking more forgiving #1591
- Query a programmer's current clock speed #1329
- Differentiate USB programmers with the same VID/PID #973
- Add AVR-DU series latest information #1595
- Provide simple way to factory reset a chip #1619
- Incorrect SerialUPDI communication for NVM V3, V4 and V5 #1621
- SerialUPDI programmer can fail when erasing EEPROM #1622
- SerialUPDI - NVMProg key not being accepted immediately
after NVM V3+ chip completes boot #1623
- USE_STATIC_LIBS builds fail to detect libreadline.so #1624
- Writing one-byte files to flash fails #1633
- Integrate test-avrdude github action using dryrun #1643
- Test script issues #1649
- SerialUPDI unable to write USERROW memory on AVR64DU32 #1655
- The last write/erase can fail with -c jtag2updi #1661
- Improve programmer documentation in avrdude.conf #1437
* Pull requests:
- Add JTAG support to avrftdi #1324
- Fix probing of the generic -c stk500 programmer #1468
- Utilize HAS_VTARG_READ defined in avrdude.conf #1470
- Provide sib memory for AVR8X parts #1480
- Read chip revision and add IO memory for PDI/UPDI parts #1474
- Replace string comparison functions #1482
- Fix overlapping XMEGA flash memories for dryrun #1486
- Exit if part and programmer are incompatible #1487
- Add io memory for classic parts #1488
- Add AVR-EB parts #1491
- Review calibration read command in avrdude.conf #1495
- Provide serialadapter entity in avrdude.conf #1497
- Add -P serialadapter[:sn] and -P usb:vid:pid[:sn] #1498
- Add -xdelay=n to wiring and improve reset timing #1505
- Reduce stk500v2_getsync() timeout #1506
- libserialport github action #1512
- Support serial port "touch" using libserialport #1507
- Read prodsig of classic parts #1510 #1520-21 #1524-26
- Adapt stk500 readback values for usbtiny.c #1511
- Add LED support for ScratchMonkey programmer #1517
- Review and update prodsig memories for U/PDI parts #1518
- Add id as comment to avrdude.conf definitions #1519
- Model prodsig for -c dryrun #1522
- Fix tempsense size, AVR-EB memory offsets and avrdude.conf
memory order #1523
- Review and update LED support #1528
- Fix SerialUPDI with NVM v3 controller #1531
- Add bootloader hashes from the Sanguino Arduino repo #1533
- Support MinGW cross compiler #1539
- Add avrdude_conf_version to grammar #1542 #1547
- Change execution order in silicon revision check #1543
- Add Arduino avrdude_packing github action for git man #1540
- Introduce memory types in lieu of memory name comparisons #1538
- Allow UPDI_SIB of AVR_EB in serialupdi #1549
- Harmonise WIN32 and POSIX serial comms timeout #1550
- Test programmers for prog_modes and type #1557
- Remove paged eeprom property from ATtiny43U #1556
- Review write_byte() functions #1554
- Provide option -N for do not load personal config file #1555
- Print warning when avrdude and avrdude.conf versions doesn't match #1564
- Always warn if part and programmer are incompatible #1563
- Provide -x xtal=... option for STK500 v1 and v2 #1566
- Update part cmd #1568
- Update src/CMakeLists.txt #1569
- Add memory sram and remove memory data #1571
- Add GNU readline to mingw github action #1576
- Provide libavrude functions to access part config values #1577
- Add get_vtarget/varef/fosc/sck_period for programmers #1574
- Provide terminal regfile command #1580
- Ignore port settings when using -c dryrun #1581
- Add more PL2303 compatible USB PIDs #1583
- Faster build.sh script with option -j #1586
- Terminal sck command improvements #1587
- Differentiate USB programmers with the same VID/PID #1588
- Provide configuration variable default_baudrate #1590
- Increase index entries in avrdude.texi #1592
- Suggest programmers using weighted Damerau-Levenshtein #1593
- Switch PICkit4 and SNAP avr/pic modes using -xmode #1596
- Support AVR64DU28 and AVR64DU32 #1601
- Force STK500 EEPROM paged r/w for bootloaders #1602
- Provide terminal keep alive code for jtagmkII_updi #1603
- Fix Arduino Nano Every EEPROM writing for UPDI parts #1604
- Provide and use locate_part_by_signature_pm() #1605
- Harden AVRDUDE against pre-C99 libraries #1608
- Add MSYS2 ucrt64, clang32 and clang64 to build.yml #1612
- Updates to SerialUPDI protocol #1627
- Fix upload of one-byte files to flash #1634
- Add CH343 USB to serial adapter #1640
- Add dryboot programmer #1641
- Provide terminal command factory reset #1642
- Add tools/test-avrdude #1645
- Add test-avrdude using dryrun to github action #1646
- Add delay for AVR Dragon and Arduino Nano Every #1647
- Make test-avrdude script resilient to old bash #1650
- Create test-avrdude temporary files in the script itself #1651
- Enable writing of 512-byte page for USERROW #1659
- Read signature on -c jtag2updi exit if last op was write #1662
- Determine Autoconf package version from cmake's #1663
- Add more programmer descriptions #1667
- test(1) string comparison uses =, not == #1668
* Internals:
- Introduce memory types in lieu of memory name comparisons #1538
This will enable to decouple memory names from function
- Added a knowledgebase on register files of parts
Changes in version 7.2:
* Major changes compared to the previous version:
- libgpiod support for linuxgpio #1299
- Support jtag2updi -U UPDI EEPROM write #1318
- avrdude.conf reconciled with ATDFs #1343
- avrdude -p part/s now also shows part variants #1343
- New programmer dryrun for testing #1347
- New -T cmd to mix terminal with -U commands #1373
- Run -t interactive terminals in CLI option order #1402
- Terminal
+ Command config (mnemonic fuse setting) #1365
+ Write to memory from files #1358
+ Command save memory to file #1396
+ Subshell command ! #1397
+ Command include file #1429
* New devices supported:
- AT89S51, AT89S52
- AT90S2323, ATtiny22
- ATmega16M1, ATmega32C1, ATmega64C1
- ATA5505
- ATA6612C, ATA6613C
- ATA6614Q
- ATA6616C, ATA6617C
- ATA664251
- ATmega16HVA, ATmega8HVA
- ATmega16HVB, ATmega16HVBrevB, ATmega32HVB, ATmega32HVBrevB
- ATmega64HVE2, ATmega32HVE2
- AT90PWM1
- AT90PWM161, AT90PWM81
- ATxmega32C3
- ATxmega32D3
- ATtiny416auto
- Variants of known devices now accepted:
AT32UC3A0512AU AT90PWM81EP AT90S1200A ATmega103L
ATmega1280V ATmega1281V ATmega128L ATmega161L
ATmega162L ATmega162V ATmega163L ATmega164PV
ATmega165PV ATmega165V ATmega168PV ATmega168V
ATmega169L ATmega169PV ATmega169V ATmega16L
ATmega16U4RC ATmega2560V ATmega2561V ATmega324PV
ATmega3250PV ATmega3250V ATmega325PV ATmega325V
ATmega3290PV ATmega3290V ATmega329PV ATmega329V
ATmega32L ATmega32U4RC ATmega48PV ATmega48V
ATmega640V ATmega644PV ATmega644V ATmega6450V
ATmega645V ATmega6490V ATmega649V ATmega64L
ATmega8515L ATmega8535L ATmega88PV ATmega88V
ATmega8L ATtiny102F ATtiny104F ATtiny11L
ATtiny12L ATtiny12V ATtiny13V ATtiny15L
ATtiny22L ATtiny2313V ATtiny24V ATtiny25V
ATtiny261V ATtiny26L ATtiny28L ATtiny28V
ATtiny44V ATtiny45V ATtiny461V ATtiny84V
ATtiny85V ATtiny861V AVR128DA28T AVR128DA32T
AVR128DA48T AVR128DA64T AVR128DB28T AVR128DB32T
AVR128DB48T AVR128DB64T AVR32DA28T AVR32DA32T
AVR32DA48T AVR32DB28T AVR32DB32T AVR32DB48T
AVR64DA28T AVR64DA32T AVR64DA48T AVR64DA64T
AVR64DB28T AVR64DB32T AVR64DB48T AVR64DB64T
* New programmers supported:
- dryrun
- raspberry_pi_gpio
- Flyswatter2
- CH341A
- Kanda AVRISP-U
- arduino_as_isp
- scratchmonkey, scratchmonkey_pp, scratchmonkey_hvsp
* Issues fixed:
- STK500V2 ISP problem with ATmega8/8515/8535, ATmega16 and
ATmega32 #425
- CMAKE issue: parport, linuxspi and linuxgpio not available
when compiled #1107
- MSYS2: Linker error when readline is present. #1293
- CMake Warning for MSVC build about CMAKE_BUILD_TYPE #1290
- PICKit 2: MSVC build of avrdude Windows binary does not work
#1006
- CMake version not checked properly in Ubuntu 18.04 #1300
- Pin limit too low for LePotato RPi clone #1307
- Port Linux sysfs GPIO feature to libgpiod #831
- Allow direct reset connection #1262
- AT89S51 and AT89S52 support for avrdude #1304
- Using serialupdi gives mismached help message #1311
- jtag2updi -U EEPROM write fails for AVR Dx parts #1128
- Usbtiny initialization never resets the part #1321
- Parts with *L, *PV and *V suffixes + others are missing in
avrdude.conf #1092
- -c urclock should progressively shrink metadata #1352
- Write errors in fuses/lock bits with unused bits #1371
- Some SPI read/write commands incompatible with .ATDF #1370
- Avrdude can segfault writing ihex or srec files #1390
- Avrdude srec format too lax when writing #1391
- Avrdude fails with AT90S8515 #433
- AT90S8515 STK500v2: only odd bytes are programmed #500
- STK500v2 ATtiny15 problem #509
- Downgrade missing USB device warning #1398
- Avrdude can not write usersig in terminal mode #1361
- avr109 atmega2564rfr2 erase timeout too short #336
- Add ScratchMonkey #989
- Warnings for MSVC build #1452, #1460
- [Regression] -F flag not correctly honored #1462
- Missing access to user signature rows in ATmega256RFR2 et al. #379
* Pull requests:
- Correct memory mode, delay and readback (classic parts) #1272
- Only send write flash cmd to STK500v2 ISP programmers if page
is not empty #1273
- Fix docu that avrftdi bit numbers start with 0 #1276
- Silence gcc compiler warnings #1277
- Reduce complexity of grammar #1282
- CMake: Convert verbal switches into boolean expressions #1285
- Add extra_features to identify a programmer's abilities #1286
- CMake: Remove LIB_LIBHID from configuration in favour of
hard-coding #1294
- build.sh: For compatibility with old CMake versions, use old
syntax to generate build system #1301
- Extend max pin number to 1000 #1308
- Add optional libgpiod support to linuxgpio #1299
- Auto-reset via RTS for direct RTS-reset connection #1309
- Support AT89S51, AT89S52, AT90S2323 and ATtiny22 #1310
- Remove PM_PDI flag for avrispv2 programmer #1314
- Make terminal write address optional for 1-byte memories #1315
- Print meaningful error message when using the serialupdi and
bitbanged UART ISP programmers #1317
- Support jtag2updi -U EEPROM write #1318
- Fix return value in usbtiny_cmd() and wrong error msg #1323
- Add CH341A programmer #1215
- Terminal read, write and erase with address intervals #1320
- Add Flyswatter2 programmer #1332
- Update avrintel.[ch] #1333
- Improve bitclock, sck and terminal documentation #1331
- Add -xhelp to programmers #1338
- Move avrintel[.ch] into libavrdude #1341
- Review avrdude.conf, add variants, reconcile with ATDFs #1343
- Add -xvtarg, -xvaref and -xfosc extended parameters #1345
- Add case-agnostic string comparisons to strutil.c #1346
- Provide a programmer dryrun that emulates programming #1347
- Add variants of obsolete parts to avrdude.conf #1348
- Add option -f to build.sh #1342
- Document -n behaviour wrt -U and terminal #1351
- Progressively shrink metadata for -c urclock #1357
- Extend <data> notion to files in terminal write #1358
- Add fuse0 to ATxmega128A4U/64A4U/32A4U/16A4U #1360
- Add configuration for Kanda's AVRISP-U programmer #1363
- Add more Avrdude CLI usage examples #1364
- Provide terminal config command for fuses and lock bits #1365
- Initialise unused bits of classic/XMEGA- part fuses/lock bits
with factory defaults #1372
- Implement -T cmd to mix terminal with -U commands #1373
- Prevent terminal write error for unchanged r/o region #1375
- Remove pgm->page_erase() function when unable to do so #1376
- Write fuse/lock only when terminal config changes them #1378
- Provide programmer arduino_as_isp #1383
- Provide debug messages for the dryrun programmer #1385
- Rewrite fileio functions to cater for memory segments #1392
- Add more documentation for programmers #1393, #1394, #1395
- Provide terminal save command #1396
- Provide terminal subshell command ! #1397
- Fix stk500v2.c's write_byte() for old parts #1386
- Document terminal comments #1399
- Expand authorship of documentation #1400
- Fix memory leak in avrcache.c #1401
- Run -t interactive terminals when it is their turn with
respect to -t/-T/-U command line option order #1402
- Mute missing USB device warning for lower verbosity #1403
- Implement bytewise cache for usersig #1404
- Relax checks before executing the -T/-U operations #1405
- Define usersig memory for ATmega*RF[AR]* parts #1406
- Increase timeout for emulated butterfly chip erase #1411
- Update reference to AT90S4433 datasheet #1415
- Update alf programmer info and URL #1416
- Update URLs for 89isp programmer #1417
- Update ft2232h programmer info and URLs #1418
- Update butterfly_mk info #1419
- Remove outdated web URLs for O-Link #1420
- Update URLs for the ttl232r programmer #1421
- Update usbasp programmer info #1422
- Remove comment and URL for arduino-ft232r programmer #1423
- Enable -c programmers to access -c string #1424
- Add scratchmonkey programmers #1429
- Use pgm->id list for alias names of a programmer #1430
- Fix writing of empty flash memory #1438
- Provide terminal include command #1439
- Add jtag2updi -xrtsdtr extended parameter #1425
- Update info on bsd programmer #1450
- Suppress overzealous compiler warnings #1454, #1461
- Bail out on failed initialisation unless -F was given #1463
- Fix -n warning for first interactive terminal #1465
- Fix classic-part usersig memory for jtag #1466
* Internals:
Changes in version 7.1:
* Major changes compared to the previous version:
- Provide a new programmer -c urclock for bootloader urprotocol
+ Urclock fully supports vector bootloaders at no extra code size
+ Uprotocol
https://github.com/stefanrueger/urboot/blob/main/urprotocol.md
allows programming much shorter bootloaders with more features:
* Exports a pgm_write_page(sram, progmem) function that the
application can call at FLASHEND-4+1 to use flash as storage
* Supports EEPROM reads/writes
* Protects itself from overwriting
* Vector bootloaders: can protect the reset vector
* Offers Chip Erase function (quicker than uploading 0xff's)
+ Urclock when compiled with libreadline supports bootloaders in
terminal mode (preventing them from WDT timeout)
+ The -c urclock programmer provides a metadata interface that
allows unused flash to be used as storage
+ avrdude -c urclock is backward compatible with avrdude -c arduino
- Add TPI support for Microchip tools #1205
- Add C-strings, C characters and double to terminal write
- Provide write flash in the terminal (using a cache)
- Provide page erase in the terminal as pgerase
- Add support for NetBSD and OpenBSD to build.sh
* New devices supported: none
* New programmers supported:
- urclock = Urclock programmer for bootloaders using urprotocol
- xplainedmini_tpi = Atmel AVR XplainedMini in TPI mode
- xplainedpro_pdi = Atmel AVR XplainedPro in PDI mode
- atmelice_tpi = Atmel-ICE (ARM/AVR) in TPI mode
- powerdebugger_tpi = Atmel PowerDebugger (ARM/AVR) in TPI mode
- pickit4 = MPLAB(R) PICkit 4 in JTAG mode
- pickit4_tpi = MPLAB(R) PICkit 4 in TPI mode
- snap = MPLAB(R) SNAP in JTAG mode
- snap_tpi = MPLAB(R) SNAP in TPI mode
- arduino_gemma = Arduino Gemma bootloader disguised as USBtiny
- adafruit_gemma = Adafruit Trinket Gemma bootloader disguised as USBtiny
- digilent-hs2 = Digilient JTAG HS2 (MPSSE)
- tigard = Tigard interface board
* Issues fixed:
- Fix micronucleus bootloader to check for unresponsive USB
devices #945
- Fix src/CMakeLists.txt to honor CMAKE_INSTALL_LIBDIR #972
- [bug #43898] atmega644p remains stopped after JTAG
transaction #366
- Wrong timings for ATmega328PB and other parts in avrdude.conf
#976
- FT232R based programmer ATmega2560 Flash Reading Problem #995
also #474
- Enable avrdude to send full input file incl trailing 0xff
#936
- Portname default for linuxspi programmer not recognized #926
- JTAG1 unable to write fuse and lock bits #443
- Unknown option '-s' on command line (legacy) #1032
- STK500/arduino/xbee programmers fail EEPROM r/w for some
parts #967 also #421
- Design issue: jtag2updi is hardcoded to fail for parts with
has_pdi = yes #1037
- Option parse error: after -U flash:w:program_to_upload.hex,
subsequent -V ignored #441
- Automatic verification is designed to fail for stdin #1044
- Display correct number of bytes when input file has holes
#1005
- Cmake installs avrdude.1 in the wrong place on Linux #1064
- avr910 -qq prompt too verbose #1081
- avrftdi.c: paged write can fail at addr 0 #1073
- Permission denied accessing /sys/class/gpio/gpioX/direction
would leave pin exported #472 also #372
- Raspberry Pi sysfs bug workaround for linuxgpio driver #386
- Fix CMake avrdude.conf dependency to avrdude.conf.in #1035
- CMake infrastructure does not handle documentation #947
- New feature: ability to reset FLIPv2 targets #733
- Fix Extended address not sent with avr109/butterfly #360
and #454
- Enable AVR JTAG ICE mkI program EEPROM in terminal mode
#1054
- Make flash writes work in terminal mode #1020
- Add support for XMEGA specific AVR109 protocol extensions
used by XBoot #200
- jtag2updi can not write EEPROM in terminal mode #1116
- Make UPDI programmers less verbose during initialization
#1084
- Quell mode isn't handled systematically #1114
- Mixing the progress bar with warning messages #1136
- Inconsistent terminal output re stdout and stderr #1130
- Supress the warning for Microchip SNAP #1135
- ATtiny85 communication problem with default bitclock #1133
- [Regression] Optiboot for "modern AVRs" no longer works #1120
- Cannot access EEPROM on some bootloader/part combos #970
- -U writes sometimes more bytes to flash/memory than input
file has #1050
- debugWire using dragon_dw and jtag2dw not working #1168
- && echo OK does not work after -c urclock #1192
- Serial drain timeout needs calibrating for -c urclock #1193
- avrdude -U file.elf misses second and following suitable
sections in elf segements #1204
- Avrdude on macOS has problems with libedit #1173
- urclock support for optiboot_x and optiboot_dx #1200
- Terminal does not continue read/dump correctly #1201
- JTAG3 programmer info not available in ISP mode #1212
- Extra avrdude> prompt with -qqt in terminal mode #1214
- PICkit4 and SNAP serial numbers not read by Avrdude #1038
- Optiboot EEPROM support cannot be detected by avrdude #1224
- megaAVR JTAG programming doesn't work for SNAP and PICkit4
#1052
- urclock/FTDI communication issues #1245
- stk500v2.c dumps core on open #1254
- linuxgpio cannot use pin 0 #1228
- Remove non-working butterfly page erase function
- linuxgpio and linuxspi: input files with unset bytes don't program
correctly #1263 #455
* Pull requests:
- Fix .Dd macro in manpage #949
- fix M1 homebrew path #950
- CMake Enhancements #962
- Reduce programmer desc string length in avrdude.conf
to < 80 characters #1000
- Dragon JTAG fix #979
- adding support for all Linux baud rates v.2 #993
- Replace internal knowledge in jtag3.c by a public API #996
- JTAG3 UPDI EEPROM fix #1013
- Treat x bits in .conf SPI commands as 0 #943
- Fix avrftdi support for ATmega2560 et al #998
- Fix avrdude.conf timings for ATmega328PB and other parts #1001
- Fix PICKit2 ATmega2560 flash paged flash read #1023
- Fix ft245r paged read for ATmega2560 et al #1018
- Add option -A that supresses trailing 0xff optimisation
and automatically do so for -c arduino #936
- Fix linuxspi default port #933
- Add support for high-voltage UPDI im jtag3.c #1015
- Fix terminal write edge cases; add one read mode; add quell
command #1025
- Fix usbtiny read for parts with more than 64 kB flash #1029
- CMakeLists.txt: fix build without C++ #1016
- Provide file format I: Intel HEX with comments that ignores
checksum errors #1030
- Enable writing fuse and lock bits for AVR-JTAGICE #1031
- Ignore -s flag as safemode is no longer supported #1033
- Developer options to describe parts and
extend avrdude.conf syntax #1040
- Deprecate original STK500 v1 protocol in favour of optiboot
and Arduino as ISP #1046
- Add jtagmkii_updi programmer option #1048
- Enable stdin verification, display correct number of bytes
written/verified, check -U memory names against spelling
errors and exit but skip -U memory updates with known
memories that the part lacks #1053
- Handle invalid -U file format specifiers for input #1042
- Implement a dry run for -U updates before opening the
programmer #1056
- Implement -c <wildcard>/dev_options for printing avrdude.conf
show comments with -p*/s or -c*/s; Reduce -p */r raw output;
specifying the full memory name now always works; stop
listing programmers where id starts with dot #1059
- Fix logfile short option in man-page; fix install dir for man
page #1063
- Use const for programmer functions where useful; add second
argument for programmer enable interface function
void (*enable)(PROGRAMMER *pgm, const AVRPART *p) #1078
- Make avr910 programmer initialize() less verbose #1083
- Fix flash paged write for avrftdi.c #1074
- Fix 4 parts wrt to their interfaces in avrdude.conf; rewrite
avrdude.conf.in file from avrdude -c* -p* output; reformat
conditional programmers in avrdude.conf.in using -c*; fix
reset=dedicated|io; entries #1086
- Add prog_modes, a bitwise or of prgramming modes, to part and
programmer definitions; add to part definition
+ mcuid, a unique id in 0..2039 for 8-bit AVR
+ n_interrupts, the number of interrupts
+ n_page_erase, if set, the # of pages erased for NVM erase
implement a simple calculator in config_gram.y for numeric
values; set part prog_modes, mcuid, n_interrupts and
n_page_erase in avrdude.conf.in; add external intelligence
about AVRs avrintel.[ch] to the project and warn during
parsing if mcuid is incompatible with it #1091
- Fix permission denied error in linuxgpio programmer #917
- Add a programmer arduino_gemma for the Arduino Gemma
bootloader and another one, adafruit_gemma, for the Adafruit
Trinket Gemma bootloader in avrdude.conf; #1093
- Add digilent-hs2 programmer in avrdude.conf #1094
- Fix dependency chain between avrdude.conf.in and
avrdude.conf #1095
- Build docs with CMake #1096
- New feature so user can print all compatible parts for a
programmer using -p\? -c programmer and vice versa #1099
- Add extended parameter disable_no_cs for linuxspi programmer
#1100
- Fix avr109 extended address #1101
- Add support for Flip 2 reset on exit #1102
- Support for Power Debugger analog readings in terminal mode
#1105
- Provide cached byte-wise read/write API #1106
- AVR109: support for prodsig read and usersig read/write #1108
- Add missing AVR variants the original JTAG ICE supports #1109
- Improve help message in terminal and provide new command
pgerase #1113
- Fix pointer truncation for Windows x64 #1119
- Fix jtag3_page_erase for targets with UPDI #1112
- Fix writing of last word on DWORD TPI parts #1115
- Use byte-wise read/write when page size is 1 in terminal
cache #1121
- Suppress Teensy USB communication error message on reboot #1122
- Fix UPDI erase when target is locked #1125
- Review and overhaul AVRDUDE's messaging system #1126
- Look for ~/.config/avrdude/avrdude.rc then ~/.avrduderc #1131
- Revamp terminal output (progress bar, callback and
stdout/stderr) #1132
- Detect PICkit4 and SNAP in PIC mode #1138
- Mention -B in the error message #1139
- Support optiboot, optiboot_dx and optiboot_x bootloaders for
-c arduino #1140
- Always use paged access for programmers that serve
bootloaders #1141
- Add libreadline-dev for Linux github action build #1146
- Implementation of SerialUPDI page erase operation #1151
- Fix Type 2 HV UPDI #1164
- Rewrite authors/copyrights #1182
- Add fallback for EM_AVR #1181
- Add a workaround for issue 1173 #1185
- Add xplainedpro_pdi programmer #1147
- Provide Urclock programmer #1171
- Fix JTAGICE mkII (not initializing after chip erase) #1172
- Ensure default_programmer from config files is used #1174
- Make terminal write's automatic number width less surprising
#1175
- Print HAVE_LIBREADLINE status when making the project #1184
- Pad pages with input file contents before avr_write() #1188
- Deprecate mosi/miso in favour of sdo/sdi #1189
- Provide bootloader-hash tool #1190
- Fix JTAGICE mkII parameters for parts with bootloaders #1191
- Fix shell exit value when chip erase is delayed #1194
- Support autobaud for urclock programmer #1198
- Fix userrow size and page_size for ATtiny3216/7 #1199
- Added TPI support for Microchip tools #1205
- Fix reading of .elf files #1206
- Use libedit only in interactive mode #1207
- Add urclock support for bootloaders in low flash #1208
- Terminal read improvements #1209
- Print meaningful error when a too slow ISP clock is detected #1216
- Check alternative USB PID for PICkit4/SNAP in PIC mode #1219
- Remove extraneous avrdude> prompt at end of terminal session #1220
- Read programmer serial number from libusb or hidusb #1223
- Hint at -xeepromrw option in EEPROM error messages #1226
- Add JTAG support for PICkit4 and Snap. #1233
- Mention developer options in documentation and Usage() #1234
- Print expected signature on signature mismatch #1237
- To work around Issue #1107 #1240
- Update build.sh for NetBSD #1241
- Add FT2232H support for Windows, Tigard programmer #1242
- Modify recv timeouts to accommodate urclock sync with ftdi
#1246
- CMake updates #1243
- Silence conf path detection debug output #1247
- Make WIN32 ser_recv() fail on time-out #1248
- Guard urclock_getsync() against initial spurious input #1251
- Change definition of NO_PIN to 1+PIN_MAX #1231
- Fix partial matches for locate_mem() and do_cmd() #1256
- Add abbreviated q command in terminal
- Move static usbsn into serdev struct and remove serno #1258
- Clean up avrdude.conf.in fixing a couple of bugs #1260
- Add readline library replacement for MSVC #1264
- Ensure full words are loaded for ISP programming #1265
- Silence page erase in cache code #1266
- Update to latest MSVC fork of hidapi to include bug fixes
#1269
* Internals:
- Implement -c <wildcard>/dev_opts and -p <wildcard>/dev_opts
for printing avrdude.conf programmer and part entries
- Added shorter alternative ISP commands for avrdude.conf
- Reformatted avrdude.conf to canonical form
- Reviewed API for prgrammer functions: use const for
programmer functions where useful; add second argument for
void (*enable)(PROGRAMMER *pgm, const AVRPART *p) #1078
- Reviewed messaging system making warnings and errors explicit
and treat them systematically
Changes in version 7.0:
* Major changes compared to the previous version:
- Completely revamped Windows support, including MSVC
- Started to add CMake (by now, parallel with autoconf/automake)
- New-architecture devices (AVR8X mega and tiny) can access all
fuses, and memory display shows meaningful alias names
- The "safemode" feature has been removed. The major class of
programmers it has been designed for (lowlevel bitbang
programmers on parallel or serial ports) virtually doesn't exist
anymore, and the fuse combination that was covered by it do not
match the fuses of modern AVR devices anyway.
- avrdude.conf is now being looked up in the location of the
executable file first, before considering the configured default
location; this eases a "portable use" where the entire suite is
not installed into its configured default location. (Basically
only relevant for unixoid systems; on Windows, this search order
has been used for many years already.)
* New devices supported:
- ATtiny828, ATtiny87, ATtiny167, ATtiny48, ATtiny102, ATtiny104
- LGT8F88P, LGT8F168P, LGT8F328P (fixed names of these parts)
- ATmeg164A, ATmega169A, ATmega169P, ATmega169PA, ATmega329A,
ATmega329PA, ATmega3290, ATmega3290A, ATmega3290PA, ATmega649A,
ATmega649P, ATmega6490A, ATmega6490P, ATmega165, ATmega165A,
ATmega165P, ATmega165PA, ATmega325A, ATmega325P, ATmega325PA,
ATmega645A, ATmega645P, ATmega3250A, ATmega3250P, ATmega3250PA,
ATmega6450A, ATmega6450P
- ATmega48A/48PA/88A/88PA/168A/168PA, ATmega164A/644A/644PA,
ATmega16A/32A/64A/128A, ATtiny13A, ATtiny24A/44A/84A,
ATtiny261A/461A/861A, ATtiny828R, ATtiny2313A, ATtiny1634R
- ATtiny3224, ATtiny3226 and ATtiny3227
- AVR16DD14/20/28/32, AVR32DD14/20/28/32 and AVR64DD14/20/28/32
- AVR8EA28/32, AVR16EA28/32/48, AVR32EA28/32/48 and AVR64EA28/32/64
- ATmega16U4
* New programmers supported:
- SerialUPDI (UPDI devices connected to serial port with few
passive parts)
- PicKit4 / SNAP (now also in ISP and PDI mode)
- Teensy bootloader (PR #802)
- Micronucleus bootloader (PR #786)
- ft232h (generic variant, PR #842)
- Kristech KT-LINK FT2232H interface with IO switching and voltage
buffers (PR #930)
* Issues fixed:
- Curiosity Nano and terminal mode #790 (only the actual bugs
reported)
- CMake doesn't correctly handle conditionals in avrdude.conf.in
#776
- CMake doesn't detect FreeBSD's libusb-1.0 (compatibility) #775
- CMake doesn't correctly handle conditionals in avrdude.conf.in
#776
- CMake: Recognize more than just bison #785
- [bug #26007] ATTiny167 not supported #150
- [bug #47375] ATtiny102/104 descriptions missing in configuration
file #409
- No error message when connecting to a not-connected AVRISP mkII
programmer #813
- [bug #53180] missing programmer or bad -P option argument
doesn't result in error message #471
- ATmega328P reported as lgt8fx328p #812
- [bug #48004] Dead link for linuxgpio in avrdude description #419
- Segmentation fault when writing ATtiny104 fuse #823
- USBasp returns ERANGE for unknown error #848
- Compiler warnings #856
- Can't get serialupdi to work #874
- Rework HID support for Windows #881
- List of signing keys? #884
- Pickit4 UPDI is writing at offset 0x4000 into flash instead of 0x0000. #892
- SerialUPDI programmer can't write to usersig/userrow in terminal mode #889
- Signature read command for ATmega165* was wrong (no-id)
- Cannot use non-standard baud rates for uploading on MacOS #771
- Wrong values in avrdude.conf #897
- AVR-Eclipse plugin broken by missing -u commandline option #890
- Timeout passed to hid_read_timeout() is too short for instances
where the EDBG AVRISP 'Enter Programming Mode' command fails #900
- Terminal write mode doesn't support string input (yet) #913
- Terminal mode: memory fill with strings may cause Avrdude to crash. #922
- Some parts have wrong or missing ISP commands #915
- Incorrect -b conversion for linuxspi programmer #927
- ATtiny43U calibration memory size #921
* Pull requests:
- GitHub Migration #765
- Update toplevel files. #767
- GitHub Migration part 2 #768
- Remove 'windows' folder with giveio.sys driver #769
- SerialUPDI implementation - release candidate 1 #772
- Fix typos #777
- Fix memory leaks #779
- As promised, documentation for SerialUPDI programmer #782
- Improve CMake project #783
- Fix avr_read() for page reads #784
- Serialupdi manpage #787
- Add PicKit4 and SNAP programmers #791
- Use yacc/byacc as an alternative to bison, closes #785 #793
- Derive program version string from last commit #794
- Find 'avrdude.conf' based on absolute path to executable #780
- buspirate: fix -Wtautological-constant-out-of-range-compare #796
- avrftdi: don't use the deprecated ftdi_usb_purge_buffers routine #792
- Ignore ctags index file #804
- term: fix memleakOnRealloc #806
- Add missing ATtiny targets to avrdude.conf #803
- Add support for Teensy bootloader #802
- Conffile clean up #801
- Fix typos all over the code #807
- Add MSVC builds and better WinUSB/FTDI support #798
- buspirate: fix invalidScanfArgType_int warning #808
- Ignore ac_cfg.h.in~ #810
- Notify open failure #814
- Print expected part #817
- pindefs: conform to the function declaration #818
- Add support for Micronucleus bootloader #786
- Remove ac_cfg.h from libavrdude.h #820
- CMake: enable dynamic-link library for libavrdude #826
- Fix for TPI fuse write (issue #823) #828
- Add missing ATmega__5 and ATmega__9 targets to avrdude.conf #809
- Add missing ATmega and ATtiny targets #832
- Added missing RTS/DTR management feature to serialupdi
programmer #811
- Add missing tinyAVR-2, AVR DD and AVR EA targets #836
- Add a new programmer ft232h #842
- Reduce verbosity when setting fuses and uploading programs #845
- jtagmkii: Reduce the number of sync attempts to 10 + print
number of attempts #844
- CMake: add initial support for installing lib and include files #829
- Add SPI support to USBtiny #816
- Add more memory sections to read from #815
- Add a build script for Unix-like systems #849
- Fix receive buffer implementation in ftdi_syncbb programmer #843