flash page
* usbasp.c (usbasp_spi_paged_write): Remove USBASP_BLOCKFLAG_LAST.
It is no longer needed, as we always write full pages now in paged
write mode.
This prevents each flash page from being written twice, where the
second attempt on older devices (ATmega64/128) signalled an immediate
"ready" condition when polling (likely a silicon bug) even though they
were still in progress. This caused the USBasp firmware to proceed,
and fill the page buffer anew which eventually caused the data
corruption.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk/avrdude@1343 81a1dc3b-b13d-400b-aceb-764788c761c2
* stk500v2.c (stk500v2_recv): Add a reference to the bug report
but don't change anything, lest to break it somehow
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk/avrdude@1342 81a1dc3b-b13d-400b-aceb-764788c761c2
* avr.c: avoid division by zero in report_progress(), eg. when
writing an empty eeprom file were total becomes 0
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk/avrdude@1340 81a1dc3b-b13d-400b-aceb-764788c761c2
* buspirate.c: applied patch + switch off at disable (even when
a reset follows) + some general whitespace/tab cleanup
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk/avrdude@1339 81a1dc3b-b13d-400b-aceb-764788c761c2
after changing lock byte
* stk500v2.c (stk500isp_write_byte): As a workaround for broken
tool firmware, add 10 ms of delay before returning from any
single-byte write operation.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk/avrdude@1337 81a1dc3b-b13d-400b-aceb-764788c761c2
every byte-wide access (rather than JTAGICE3 only). This finally
obsoletes the use of the prehistoric SPI_MULTI command where
AVRDUDE used to assemble all the low-level ISP stuff by itself.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk/avrdude@1336 81a1dc3b-b13d-400b-aceb-764788c761c2
* avrdude.conf.in (m168, m328, m48, m88, t1634, t26, t261, t461,
t861, t88): In efuse (or hfuse for t26) read operation, turn all
bits in byte 3 from "x" to "o" (output); this is a first step
towards fixing the symptoms mentioned in the bug, by unifying the
behaviour between different AVRs. Not touched are the historic
devices where the fuses are not documented to form a full byte
each (2333, 4433, 4434, 8535, m103, m161, m163).
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk/avrdude@1335 81a1dc3b-b13d-400b-aceb-764788c761c2
* usb_libusb.c (usbdev_drain): Make this a dummy function only.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk/avrdude@1334 81a1dc3b-b13d-400b-aceb-764788c761c2
When printing the part signature also print the part id.
* avrpart.c (locate_part_by_signature): New function.
* libavrdude.h (locate_part_by_signature): New function.
* main.c (main): Use the new function to find the part and print its id.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk/avrdude@1332 81a1dc3b-b13d-400b-aceb-764788c761c2
* ft245r.c: set pthread cancel type to asynchronous, reorder ftdi_usb_close/deinit
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk/avrdude@1324 81a1dc3b-b13d-400b-aceb-764788c761c2
Submitted by Didrik Madheden:
* flip1.c: Provide dummy functions for the #ifndef HAVE_LIBUSB case
* flip2.c: (Dito.)
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk/avrdude@1314 81a1dc3b-b13d-400b-aceb-764788c761c2
serial.h fileio.h safemode.h update.h pgm_type.h config.h confwin.h
lists.h) into a single header that can be included by anyone wanting
to link against the library.
Adapt everything to cope with this situation.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk/avrdude@1311 81a1dc3b-b13d-400b-aceb-764788c761c2
* configure.ac: Add AC_CONFIG_MACRO_DIR as suggested by libtoolize
* Makefile.am: add -I m4 to ACLOCAL_AMFLAGS as suggested by libtoolize
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk/avrdude@1308 81a1dc3b-b13d-400b-aceb-764788c761c2
(in the !HAVE_LIBUSB case) to match prototypes.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk/avrdude@1303 81a1dc3b-b13d-400b-aceb-764788c761c2
This file will be overwritten by the next installation, so it's not a
good idea to manually modify it. Using the -C +file option is a much
better way for user modifications.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk/avrdude@1296 81a1dc3b-b13d-400b-aceb-764788c761c2
will split this according to the EP's maxsize. This makes it work
over USB 1.1 connections (albeit very slowly, due to the interrupt
transfers used).
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk/avrdude@1284 81a1dc3b-b13d-400b-aceb-764788c761c2
the JTAGICE3 programmer handle a list of PIDs, by trying each of them
in sequence. Use a single, central jtag3_open_common() function to
handle the common code of all jtag3_open_* functions. Centralize all
USB VID/PID definitions in usbdevs.h.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk/avrdude@1283 81a1dc3b-b13d-400b-aceb-764788c761c2
even though all desired data had aldready been received.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk/avrdude@1277 81a1dc3b-b13d-400b-aceb-764788c761c2
"union pinfo", so the USB parameters can be passed without hacks.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk/avrdude@1276 81a1dc3b-b13d-400b-aceb-764788c761c2
* usb_libusb.c (usbdev_close): Only issue the usb_reset() for
Linux systems, as these are the only ones that seem to require
it under some circumstances.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk/avrdude@1273 81a1dc3b-b13d-400b-aceb-764788c761c2
than just elf_begin() only, so it is clear we found a sufficiently
recent libelf to work with.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk/avrdude@1272 81a1dc3b-b13d-400b-aceb-764788c761c2
AC_TRY_COMPILE, so it also works for cross-compilation
setups.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk/avrdude@1267 81a1dc3b-b13d-400b-aceb-764788c761c2
* flip2.h: Rename from flip.h
* Makefile.am: Reflect the renaming.
* dfu.c: Update information how to get GPL.
* dfu.h: (Dito.)
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk/avrdude@1262 81a1dc3b-b13d-400b-aceb-764788c761c2
patch #7896: DFU FLIPv2 programming support
* pgm_type.c: Add the flip2 programmer type.
* config_gram.y: Allow for the usbid keyword in a device definition.
* avrdude.conf.in: Add usbpid values to those Xmega devices where
applicable.
* avrpart.h: Add usbpid device field.
* dfu.c: (New file.)
* dfu.h: (New file.)
* flip.c: (New file.)
* flip.h: (New file.)
* Makefile.am: Add new files.
* doc/avrdude.texi: Document the changes.
* avrdude.1: (Dito.)
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk/avrdude@1258 81a1dc3b-b13d-400b-aceb-764788c761c2
* fileio.c (fileio): open file in binary mode also for FMT_ELF
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk/avrdude@1253 81a1dc3b-b13d-400b-aceb-764788c761c2
* linuxgpio.c, bitbang.c, buspirate.c, par.c, pgm.h, term.c, serbb_*.c: changed
interface of setpin, getpin, highpulsepin to take pin function as parameter
(not the real number, which can be found by pgm->pinno[function])
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk/avrdude@1252 81a1dc3b-b13d-400b-aceb-764788c761c2
* linuxgpio.c: fixed check for unused pins to ignore the inverse flag
* pindefs.c: fixed fill_old_pinlist to not create an empty mask with inverse flag set
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk/avrdude@1251 81a1dc3b-b13d-400b-aceb-764788c761c2
This options was used during developing to examine the created
bytestream - even without an FTDI device present. avrftdi creates
correct bytestreams and thus, this is option is not of any use anymore.
To the contrary: it makes code unreadable, more complex and prone to error.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk/avrdude@1246 81a1dc3b-b13d-400b-aceb-764788c761c2
* main.c: Always clear the UF_AUTO_ERASE flag if either a
non-Xmega device was found, or the programmer does not offer a
page_erase method.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk/avrdude@1242 81a1dc3b-b13d-400b-aceb-764788c761c2
the flash page cache size to at most "readsize". For Xmegas with
a page size of 512 bytes, the maximum USB packet size was
overflowed, and subsequently, a memmove copied beyond the end of
the allocated buffer.
* jtag3.c (jtag3_read_byte): Add the correct offset also for the
various flash regions, so reading the apptable or boot regions
yields the correct data.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk/avrdude@1237 81a1dc3b-b13d-400b-aceb-764788c761c2
bug #40040: Support for ATtiny20 and ATtiny40
* avrdude.conf.in: Restructure the reduced-core tiny devices
to use a common entry .reduced_core_tiny; add ATtiny20 and
ATtiny40
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk/avrdude@1236 81a1dc3b-b13d-400b-aceb-764788c761c2
bug #40033: Support for the XMegaE5 family
* avrdude.conf.in (ATxmega8E6, ATxmega16E5, ATxmega32E5): New
entries.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk/avrdude@1231 81a1dc3b-b13d-400b-aceb-764788c761c2
patch #7710: usb_libusb: Check VID/PID before opening device
* usb_libusb.c (usbdev_open): Swap the sequence of verifying the
VID:PID, and opening the device.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk/avrdude@1228 81a1dc3b-b13d-400b-aceb-764788c761c2
* butterfly.c (butterfly_page_erase): Add dummy function to avoid
segfault when writing to EEPROM.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk/avrdude@1227 81a1dc3b-b13d-400b-aceb-764788c761c2
patch #7657 Add ATmega406 support for avrdude using DRAGON + JTAG
* avrdude.conf.in (ATmega406): New entry.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk/avrdude@1225 81a1dc3b-b13d-400b-aceb-764788c761c2
* stk500.c (stk500_getsync): Loop 10 times trying to get in
sync with the programmer.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk/avrdude@1223 81a1dc3b-b13d-400b-aceb-764788c761c2
* avr.c (avr_read, avr_write): Change the progress reporting for
paged read/write from per-address to per-considered-page. This
ought to give a realistic estimation about the time still to be
spent.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk/avrdude@1220 81a1dc3b-b13d-400b-aceb-764788c761c2
Add a FAQ entry describing the method to connect to a device
where the firmware has reduced the internal clock speed.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk/avrdude@1218 81a1dc3b-b13d-400b-aceb-764788c761c2
* avrdude.conf: Bump the chip_erase_delay for all ATmega*4 devices
to 55 ms. While the datasheet still claims 9 ms, all the XML files
tell either 45 or 55 ms, depending on STK600 or not.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk/avrdude@1217 81a1dc3b-b13d-400b-aceb-764788c761c2