Commit Graph

705 Commits

Author SHA1 Message Date
Stefan Rueger e6f7e158cd
Change periphery to peripheral; document deprecated miso/mosi are now sdi/sdo 2022-11-24 13:18:06 +00:00
Stefan Rueger 2b3534ea8a
Remove tabs and reformat 2022-11-24 12:36:49 +00:00
Stefan Rueger 8e79b7dc52
Fix error detection for reading a page to pad unset bytes 2022-11-24 12:16:43 +00:00
Stefan Rueger 68c6ffd7fc
Silence compiler warnings, change comments, remove typos 2022-11-24 12:14:54 +00:00
Stefan Rueger c3413ff0f4
Fix shell exit value when chip erase is delayed to next flash write 2022-11-23 19:53:55 +00:00
Jan Egil Ruud f9a2bd0327 Got added support for reading and writing fuses, and chiperase. 2022-11-23 14:25:14 +01:00
Stefan Rueger 19cd7d8c69
Remove non-stk500v1 bootloaders from urclock hash table 2022-11-22 22:38:43 +00:00
Stefan Rueger b925b5113d
Silence compiler warnings 2022-11-22 21:49:26 +00:00
Stefan Rueger 25ca91371d
Pad pages with input file contents before avr_write() 2022-11-22 21:32:42 +00:00
Stefan Rueger 33dd231e4c
Silence some compiler warnings 2022-11-22 21:17:39 +00:00
Stefan Rueger 8c73609c0e
Fix parameters for JTAGICE mkII and devices with bootloaders 2022-11-22 21:02:25 +00:00
Stefan Rueger 796e97ee3a
Update avrdude.conf.in wrt n_boot_sections, boot_section_size, eecr, spmcr 2022-11-22 20:49:12 +00:00
Stefan Rueger 9599bf2243
Add n_boot_sections and boot_section_size to part definitions 2022-11-22 20:44:12 +00:00
Stefan Rueger 7d5ab433ca
Replace gratuitous references to slave and master with technical terms 2022-11-22 17:11:33 +00:00
Stefan Rueger adc333ea54
Deprecate mosi/miso in favour of sdo/sdi
See https://www.oshwa.org/a-resolution-to-redefine-spi-signal-names/
2022-11-22 17:04:05 +00:00
Jan Egil Ruud 5dc2545716 Cleaned and improved TPI send and receive. 2022-11-22 14:05:01 +01:00
Jan Egil Ruud 3afdd55089 Get rid of TPI magic numbers. 2022-11-22 13:23:57 +01:00
Jan Egil Ruud 32a6ca39e4 Cleaned up whitespace in jtag3.c so it at least is consistent within the file. 2022-11-22 13:05:14 +01:00
Stefan Rueger 883d9494c8
Silence compiler warnings for urclock.c 2022-11-22 01:39:27 +00:00
Stefan Rueger ef824d4d89
Merge pull request #1184 from mcuee/cmake_print_readline
Print HAVE_LIBREADLINE status
2022-11-22 01:18:56 +00:00
Stefan Rueger 9c30ccc6ea
Merge pull request #1175 from stefanrueger/terminal
Make terminal write's automatic number width less surprising
2022-11-22 01:18:30 +00:00
Stefan Rueger 3400527c7d
Merge pull request #1174 from stefanrueger/default_programmer
Ensure default_programmer from config files is used
2022-11-22 01:17:55 +00:00
Cristiano De Alti c3acdccbe5
Fix JTAGICE mkII by removing the initialize call after CMD_CHIP_ERASE_ISP (#1172)
- The extra call to initialize() sends CMD_ENTER_PROGMODE_ISP causing a flash
   verification mismatch
2022-11-22 01:17:19 +00:00
Stefan Rueger 02e02be6f9
Merge pull request #1171 from stefanrueger/urclock
Provide Urclock programmer
2022-11-22 01:13:57 +00:00
Stefan Rueger 2063671a02
Merge pull request #1147 from mcuee/Xplained_Pro_PDI
Add xplainedpro_pdi programmer
2022-11-22 01:13:23 +00:00
Stefan Rueger f9aea24fba
Reduce drain timeout value for Windows in urclock.c 2022-11-22 00:49:34 +00:00
Stefan Rueger 2e398916a7
Hash known bootloaders for urclock; they don't need -xbootsize=.... 2022-11-22 00:47:26 +00:00
Jörg Wunsch 3892c5a459
Merge pull request #1181 from dl8dtl/add_em_evr_for_openbsd
Add fallback for EM_AVR
2022-11-21 23:31:14 +01:00
Jan Egil Ruud 10ccf0f515 Initial commit for jtag3 TPI support. Can read signature on ATtiny104 XPlained mini, but nothing else yet. 2022-11-21 21:18:13 +01:00
Joerg Wunsch f90e36f231 Add a workaround for issue #1173
The readline compat layer for libedit which otherwise provides native
readline functionality in NetBSD and MacOS appears to have a bug that
causes subsequent prompts to be delayed until another line is being
processed.

Re-installing the callback over and over again works around that, and
does not seem to harm with GNU libreadline.
2022-11-20 22:52:41 +01:00
Stefan Rueger 7f4474f049
Delete previous metadata when writing new file to flash in urclock 2022-11-20 13:02:51 +00:00
Stefan Rueger c0e4dd494e
Use file basename in -c urclock metadata under WIN32 2022-11-20 01:48:39 +00:00
mcuee df4dccabfc
Update configure.ac to print libreadline status 2022-11-20 09:46:07 +08:00
Stefan Rueger 53de22cb83
Update avrintel.c for LGT8F(8|16|32)8P parts 2022-11-20 01:12:14 +00:00
Stefan Rueger f276d325ec
Handle verification errors in read only memory areas gracefully 2022-11-20 00:27:49 +00:00
Stefan Rueger ee25a62df6
Emulate chip erase in terminal when pgm->chip_erase() soft fails 2022-11-19 23:09:18 +00:00
Stefan Rueger d65a9a3cee
Adapt -c urclock to new reset vector protection in urboot v7.7 2022-11-19 19:39:39 +00:00
Joerg Wunsch 77ad26ddf4 Replace the hint to AUTHORS by an URL
Suggested by: Hans
2022-11-18 21:24:10 +01:00
Joerg Wunsch efad24e3de Rewrite authors/copyrights 2022-11-18 10:31:45 +01:00
Joerg Wunsch 9df522a219 Add <sys/select.h> where appropriate
Under Posix systems, this header is documented to be required
when using select().
2022-11-17 14:14:22 +01:00
Joerg Wunsch 01be288b18 Add fallback for EM_AVR
OpenBSD still lacks this definition, so provide our own for
them.
2022-11-16 21:21:51 +01:00
Stefan Rueger a3eeedd176
Silence some compiler warnings 2022-11-16 02:32:32 +00:00
Stefan Rueger 2abb666bd2
Prepare urclock for autobaud synchronisation 2022-11-16 02:08:13 +00:00
Stefan Rueger d901e0a768
Update urbootPutVersion() to reflect urboot v7.7 changes 2022-11-16 00:42:36 +00:00
Stefan Rueger 82b9491cbd
Harden urclock against bootloader bricking
- Detect write restrictions with new pgm->readonly(..., addr)
 - Check in byte-wise cached write whether mem/addr allows write
 - Emulated chip erase tells user CE is delayed until first -U
 - After bootloader CE urclock_chip_erase will init reset vector
 - Low level paged write @ 0 unconditionally protects reset vector
 - Low level paged read @ 0 checks and repairs reset vector
2022-11-16 00:08:46 +00:00
Stefan Rueger afc2f7cf0c
Hint at option -xdelay=... for urclock programmer not responding messages 2022-11-12 13:47:48 +00:00
Stefan Rueger ff9c8bbe46
Silence min()/max() compiler warnings, fix urclock.c typo etc 2022-11-12 13:32:53 +00:00
Stefan Rueger e2b69dec75
Remove MacOS compiler warnings for urclock.c 2022-11-12 01:12:31 +00:00
Stefan Rueger b178deef5f
Handle n_page_erase in urclock for parts t441, t841 and t1634 2022-11-11 01:33:42 +00:00
Stefan Rueger 6e3a99be87
Add write statistics for patched flash input files at notice2 level 2022-11-11 01:27:55 +00:00
Stefan Rueger 22bd977365
Indent erasing chip message in main 2022-11-10 23:18:43 +00:00
Stefan Rueger c67bfe39a3
Show input file staistics before patching in update.c 2022-11-10 23:00:18 +00:00
Stefan Rueger 321bddbf7b
Rename urclock's option forcetrim to restore 2022-11-10 22:35:40 +00:00
Stefan Rueger 2434c3f7f6
Make terminal write's automatic number width less surprising 2022-11-10 19:38:21 +00:00
Stefan Rueger 4c4952d4f6
Ensure default_programmer from config files is used 2022-11-10 18:20:13 +00:00
Stefan Rueger afa408e2c6
Make urclock.c iron out a bug in some bootloaders 2022-11-09 21:00:16 +00:00
Stefan Rueger d5d0b940cc
Harden vector bootloaders more against reset overwrites 2022-11-09 19:28:29 +00:00
Stefan Rueger 84a3e2cc2b
Fix avr.c comment 2022-11-09 19:27:34 +00:00
Stefan Rueger c7ba53bca0
Harden urclock against terminal time outs and vector overwrites 2022-11-09 16:16:59 +00:00
Stefan Rueger ea65918dca
Omit verify after write failure in term.c 2022-11-09 15:43:57 +00:00
Stefan Rueger 20b86fb739
Warn in uclock when bootloader cannot read/write memories 2022-11-08 20:16:05 +00:00
Stefan Rueger 6a6d333849
Update urclock documentation 2022-11-08 15:18:30 +00:00
Stefan Rueger cf3c81f714
Update urclock's -x parameters 2022-11-07 18:01:23 +00:00
Stefan Rueger 715db4c690
Make -A default for urclock programmer 2022-11-07 02:43:34 +00:00
Stefan Rueger 21d93ec8cb
Update urclock programmer 2022-11-07 01:26:47 +00:00
Stefan Rueger e6c26d8db4
Provide urclock programmer 2022-11-06 01:29:07 +00:00
Stefan Rueger d211c4e5f5
Merge pull request #1164 from MCUdude/hvupdi-type2-fix
Fix Type 2 HV UPDI
2022-11-01 18:17:52 +00:00
Stefan Rueger 02fe08aed2
Open programmer before allocating part
So any programmer that knows exactly which part it is connected to
can set the -p part option should the user not have done so.

Also no longer exits main without closing open programmer.
2022-11-01 18:12:00 +00:00
MCUdude 577ee72db7 Fix Type 2 HV UPDI
Used on AVR-DD and AVR-Ex targets
2022-10-31 11:06:14 +01:00
Stefan Rueger 50046da923
Merge pull request #1151 from dbuchwald/serialupdi_page_erase
Implementation of SerialUPDI page erase operation
2022-10-29 11:02:17 +01:00
Stefan Rueger d87eb14dc9
Make -p variable partdesc global 2022-10-29 10:55:58 +01:00
Stefan Rueger 87df3216cb
Make fileio() and do_op() arguments const where possible 2022-10-29 10:48:47 +01:00
Stefan Rueger a1018999c4
Correct plural for message writing %d bytes in term.c 2022-10-26 08:42:03 +01:00
Stefan Rueger 418cf08e84
Change avrdude.conf.in comment on location of per-user config file 2022-10-25 18:13:28 +01:00
mcuee f2a413d2dc
Merge branch 'avrdudes:main' into Xplained_Pro_PDI 2022-10-24 07:57:55 +08:00
Stefan Rueger 3769332afd
Merge pull request #1142 from MCUdude/stk600-pdi
STK600 supports programming using PDI
2022-10-23 23:10:10 +01:00
Stefan Rueger ae5b460859
Merge pull request #1141 from stefanrueger/paged
Always use paged access for programmers that serve bootloaders
2022-10-23 22:33:31 +01:00
Stefan Rueger baaad71aa5
Support optiboot, optiboot_dx and optiboot_x bootloaders for -c arduino (#1140)
* If bootloaders are served, send word addresses for classic parts and
  byte addresses for newer parts, eg, UPDI and PDI
* Load ext addr for stk500v1 bootloaders after grazing 64k boundaries
* Fix bootloader stk500v1 EEPROM r/w for classic parts with page size 1
2022-10-23 22:32:29 +01:00
Stefan Rueger 16922842be
Improve -B bitclock documentation 2022-10-23 22:26:07 +01:00
Stefan Rueger 2c7083f001
Merge pull request #1139 from steelman/isp-clock-error-message
Mention -B in the error message and document -F better
2022-10-23 21:59:21 +01:00
Stefan Rueger 4f6bab6303
Merge pull request #1138 from MCUdude/pic-detect-mode-cherry
Detect PICkit4 and SNAP in PIC mode
2022-10-23 21:57:26 +01:00
Stefan Rueger 5b008a04cf
Revamp terminal output: progress bar, callback and stdout/stderr (#1132)
* Print parms output to stdout
* Flush terminal writes and other minor changes
* Prepare terminal for periodic calls to programmer to reset bootloader WDT
* Only show progress reports for memories > 32 bytes or on -vv
* Freeze progress bar on serious error
* Allow cached r/w byte routines to be used in pgm->read_byte and pgm->write_byte
2022-10-23 21:56:45 +01:00
steelman 34fa2faba5
Look for ~/.config/avrdude/avrduce.rc configuration file (#1131)
* Look for ~/.config/avrdude/config configuration file

Traditionally per-user configuration files have been placed
in user's home directory with their names beginnig with a dot
to hide them from some tools like ls(1). However, the number
of programs following this convention have grown over time
to the point where the number of hidden files becomes inconvenient to
some users. For this reason the XDG Base Directory Specification[1]
specifies an alternate place to store configuration files under
~/.config directory.

This patch enables avrdude to look for ~/.config/avrdude/config
configuration file, if ~/.avrduderc doesn't exist.

[1] https://specifications.freedesktop.org/basedir-spec/basedir-spec-0.8.html

* Safely concatenate directories and configurations files and minor changes in docs

* Make stats variable available for WIN32 again in main.c

* Utilise full usr_config[] array space

* Check for xdg-style avrdude.rc file first before fallback ~/.avrduderc

Co-authored-by: Stefan Rueger <stefan.rueger@urclocks.com>
2022-10-23 21:52:54 +01:00
Dawid Buchwald fa1c081a94 Implemented page erase operation for SerialUPDI 2022-10-23 15:06:06 +02:00
mcuee 4a5efa7635
Add xplainedpro_pdi programmer
This will fix https://github.com/avrdudes/avrdude/issues/1143.

Xplained Pro should be able to support PDI mode as per the documentation.

Reference: take note that the following document does not cover UPDI support.
https://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-42096-Microcontrollers-Embedded-Debugger_User-Guide.pdf

Reference discussion:
* https://github.com/avrdudes/avrdude/pull/1139#issuecomment-1286760773
* https://github.com/avrdudes/avrdude/discussions/1019#discussioncomment-3569440
2022-10-23 14:24:57 +08:00
MCUdude 992e9666a3 STK600 supports programming using PDI 2022-10-22 12:51:03 +02:00
Łukasz Stelmach c890ff90eb Mention -B in the error message
One of possible problems of failed initialization is too hight frequency
of ISP clock. Mention using -B option as a possible solution.

Closes #1133
2022-10-21 02:33:34 +02:00
Stefan Rueger b9396bcd02
Always use paged access for programmers that serve bootloaders 2022-10-21 00:56:43 +01:00
Łukasz Stelmach 9977f1ed12 Document meaning of -F during initialization 2022-10-20 19:52:35 +02:00
MCUdude 72da5c73db Fix formatting and replace tabs with spaces 2022-10-20 12:39:11 +02:00
MCUdude 867d83c215 Print error message if no HID device is connected when using hidapi 2022-10-20 12:27:59 +02:00
MCUdude 14446950df Check for PICkit4 or SNAP in PIC mode 2022-10-20 12:19:10 +02:00
MCUdude b083416e3b Let Avrdude use the valid SNAP USB PID first 2022-10-20 12:19:10 +02:00
MCUdude 13817459e1 Add missing USB VID/PIDs 2022-10-20 12:19:10 +02:00
MCUdude c999083b8f Change message type from error to warning and add additional USB info 2022-10-20 12:18:42 +02:00
Stefan Rueger b864d7e73a
Update NEWS and resolve minor residual messaging issues 2022-10-17 16:39:45 +01:00
Stefan Rueger e172877724
Review and overhaul AVRDUDE's messaging system (#1126)
* Change avrdude_message(MSG_XYZ, ...) to msg_xyz(...)
* Define and use pmsg_xyz(...) instead of msg_xyz("%s: ...", progname, ...)
* Review and change avrdude_message() levels
   - Introduce new levels warning, error and ext_error
   - Distribute info level to info, warning, error, ext_error
   - Assign levels (more) consistently
   - Unify grammar, punctuation and style of messages
* Use imsg_xyz() to print indented messages
* Show function name in errors and warnings on -v
* Reduce effective verbosity level by number of -q above one
2022-10-17 15:44:55 +01:00
Stefan Rueger 2503ae03ce
Merge pull request #1125 from MCUdude/updi-lock-fix
Fix UPDI erase when target is locked
2022-10-17 14:17:32 +01:00
Stefan Rueger ff1d26ad18
Merge pull request #1122 from mariusgreuel/pr-teensy-warning
Suppress Teensy USB communication error message on reboot
2022-10-17 14:17:07 +01:00
Stefan Rueger 8e879cfae6
Merge pull request #1121 from stefanrueger/avr_cache
Use byte-wise read/write when page size is 1 in terminal cache
2022-10-17 14:16:43 +01:00