<andyw@pobox.com>.
Implements patch #4635: Add support for terminal/console servers for
serial programmers
* ser_posix.c: Add net_open(), and divert to it for net:host:port.
* ser_win32.c: Recognize net:host:port, and bail out.
* avrdude.1: Document the net:host:port connection option.
* doc/avrdude.texi: (Ditto.)
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@635 81a1dc3b-b13d-400b-aceb-764788c761c2
Wait for the device's response after sending an "E" command.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@634 81a1dc3b-b13d-400b-aceb-764788c761c2
DB9 connector, and fix some related bugs in serbb_posix.c.
Closes bug #16265: dasa2 does not work under posix
* avrdude.conf.in: New serbb pin numbering; added "siprog"
as an alias for "ponyser".
* serbb_posix.c: New pin numbering, fix some confusion.
* serbb_win32.c: New pin numbering.
The generic and Posix-related parts of these changes have
been contributed by Hanns-Konrad Unger
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@632 81a1dc3b-b13d-400b-aceb-764788c761c2
DB9 connector, and fix some related bugs in serbb_posix.c.
Closes bug #16265: dasa2 does not work under posix
* avrdude.conf.in: New serbb pin numbering; added "siprog"
as an alias for "ponyser".
* serbb_posix.c: New pin numbering, fix some confusion.
* serbb_win32.c: New pin numbering.
The generic and Posix-related parts of these changes have
been contributed by Hanns-Konrad Unger
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@631 81a1dc3b-b13d-400b-aceb-764788c761c2
possible to extend them for other programmers than PPI now (serbb,
stk500*).
* pgm.h: Keep the exit specs in an abstract form inside struct
programmer_t. (Should be moved out into some programmer-specific
structure.) Rename the getexitspecs() method into
parseexitspecs().
* main.c: Move the exit specs stuff out to the programmer
implementation.
* par.c: Implement the new exit spec handling. Everything is now
done using the generic abstraction layer.
Closes bug #16443: No disable Resetsignal at the end of
Programming Session
Obviates need for patch #5057: quick and dirty Hack to unset Reset
after Programming
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@629 81a1dc3b-b13d-400b-aceb-764788c761c2
via the patch tracking system.
patch #5096: Allow VCC and BUFF to be any pin in parallel mode
* config_gram.y: Release the restriction to PPIDATA pins.
* par.c: Rework the code to introduce a function par_setmany()
that builds on top of par_setpin(), and use that function for the
PPI_AVR_VCC and PPI_AVR_BUFF pin collections. This also abstracts
the polarity of these signals appropriately.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@628 81a1dc3b-b13d-400b-aceb-764788c761c2
Open the serial port with O_NONBLOCK, and save and restore the port
state before exiting.
patch #5008: Patch for (5.1) ser_posix.c for O_NONBLOCK open and
restoring serial port state on close
Closes bug #12622: avrdude hangs on macosx/darwin with PL-2303
usb-to-serial and Butterfly
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@627 81a1dc3b-b13d-400b-aceb-764788c761c2
definitions that are organized in pages.
* avr.c (avr_write_byte_default): Consider using the loadpage
instructions only if the respective memory is marked "paged".
Closes bug #17199: EEPROM fails verification on ATmega645 with
pony-stk200 hardware
Closes bug #16849: EEPROM write fails for AT90USB1287 with mode 0x41
Closes bug #15146: stk500v2_paged_write: loadpage instruction not
defined for part
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@622 81a1dc3b-b13d-400b-aceb-764788c761c2
option) as that is the programmer actually supported by
avrdude.conf.in.
Closes bug #15677: documentation mentions wrong programmer-id "avrispmk2"
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@621 81a1dc3b-b13d-400b-aceb-764788c761c2
AVR910 and AVR109. Change avr910_devcode of the ATtiny2313 to 0x5e
(ATtiny26).
Closes bug #16671: Tiny2313 avr910_devcode is bad
Closes bug #15826: avr910 device type for ATmega8 wrong
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@620 81a1dc3b-b13d-400b-aceb-764788c761c2
lock memory spaces of all devices where they have been missing. Add
the lock memory space to the ATmega48 section.
Closes bug #14920: tiny2313 fuses and AVRDUDE 5.0
Closes bug #15751: atmega48: no lock bits defined
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@619 81a1dc3b-b13d-400b-aceb-764788c761c2
* ppiwin.c (gettimeofday): Define gettimeofday() replacement
only if !defined(HAVE_GETTIMEOFDAY); use correct protype.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@616 81a1dc3b-b13d-400b-aceb-764788c761c2
always display the minor number as two digits. Examine the response
to the sign-on command to see which programmer hardware we are talking
to, and then restrict the STK500 topcard display to devices detected
as STK500.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@614 81a1dc3b-b13d-400b-aceb-764788c761c2
config_gram.h from the source distribution archive. These files are
supposed to be generated on the target system.
Closes bug #15536: avrdude-5.1 compilation fails on Gentoo/amd64
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@613 81a1dc3b-b13d-400b-aceb-764788c761c2
AVR068 is right, and stk500.exe is wrong. (This reverts rev 1.19)
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@611 81a1dc3b-b13d-400b-aceb-764788c761c2
patch #4539: Ability to control the bit clock (usleep) delay
for ppi interface
* bitbang.c: Implement bitbang_delay() and its calibration.
* bitbang.h: Declare bitbang_delay().
* main.c: Add the ispdelay option (-i).
* pgm.h (struct programmer_t): Add the ispdelay parameter.
* par.c: Add calls to bitbang_delay() when requested.
* serbb_posix.c: (Ditto.)
* serbb_win32.c: (Ditto.)
* avrdude.1: Document the new -i option.
* doc/avrdude.texi: (Ditto.)
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@610 81a1dc3b-b13d-400b-aceb-764788c761c2
* stk500v2.c (stk500v2_open): patch #5273: Emit error message
if user requests usb and no libusb support
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@608 81a1dc3b-b13d-400b-aceb-764788c761c2
macro to add this library to, to prevent it from being
automatically linked to all binaries. This should fix the Win32
build of loaddrv.
* Makefile.am (avrdude_LDADD): add LIBUSB here.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@602 81a1dc3b-b13d-400b-aceb-764788c761c2
* stk500v2.c: Add new functions for HVSP support.
* stk500v2.h: Add prototype for the stk500hvsp programmer.
* avrpart.h: Add fields to struct avrpart for new features.
* config_gram.y: Extend the configuration syntax for new
features required for HVSP support.
* lexer.l: (Ditto.)
* avrdude.conf.in: Add HVSP support for ATtiny13 and
ATtiny45 as an example.
* avrdude.1: Document stk500hvsp.
* doc/avrdude.texi: (Ditto.)
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@595 81a1dc3b-b13d-400b-aceb-764788c761c2
Fix the non-paged write operations for old AVRs.
In avrdude.conf.in, use the new PP mode parameters; add PP mode
definitions for AT90S8515.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@591 81a1dc3b-b13d-400b-aceb-764788c761c2
Eliminate pagebuf, and use stack-allocated buffers instead. The
pagesize of all current AVRs is at most 256 only anyway, and this is
unlikely to change with the STK500v2 protocol. The previous pagebuf
implementation suffered from some possible buffer overrun.
In stk500pp_write_page(), do always write full pages, rather than
attempting to write a partial last page which did not get written at
all. Fill the remaining bytes with 0xff.
For (paged) write operations, correctly synthesize the mode byte.
This mode byte is very different from the ISP mode byte (sigh).
In stk500pp_read_byte(), when performing read operations on paged
memory, start reading at the previous page boundary rather than the
current address.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@589 81a1dc3b-b13d-400b-aceb-764788c761c2
give the full name of the respective memory area, instead of
the (possibly abbreviated) name the user typed in the -U option.
(Previous attempt in rev 1.110 was obviously not complete.)
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@588 81a1dc3b-b13d-400b-aceb-764788c761c2
Document ATmega256x support. Also document Solaris port defaults
in avrdude.texi.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@584 81a1dc3b-b13d-400b-aceb-764788c761c2
jtag2 and bitbang programmers are working, stk500v2
still needs to be done.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@581 81a1dc3b-b13d-400b-aceb-764788c761c2
Add the "atisp" programmer entry that makes use of negated signals.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@578 81a1dc3b-b13d-400b-aceb-764788c761c2
The 64 KB devices are actually guessed, as the datasheet and XML
files obviously contain a number of errors there.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@576 81a1dc3b-b13d-400b-aceb-764788c761c2
Contributed by Wim Lewis, add support for checking device
signatures in detail (patch #4924 and #4925)
* avrdude.conf.in: Add signatures
* avrpart.c: Set default signature
* avrpart.h: Variable for signature
* config_gram.y: More signature reading
* lexer.l: Define that signatures exist
* main.c: Read signatures and check them against hardware
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@573 81a1dc3b-b13d-400b-aceb-764788c761c2
AVRISP mkII device. (Savannah patch #4789.)
* serial.h: Declare usb_serdev_frame device descriptor.
* stk500v2.c: Implementation of the AVRISP mkII handling.
* usb_libusb.c: Add USB handling for short-frame delimited
AVRISP mkII USB protocol; add distinction of different
devices in usbdev_open().
* jtagmkII.c: Tell usbdev_open() to search for the JTAG ICE mkII.
* usbdevs.h: (New file.)
* Makefile.am: Add usbdevs.h, as well as some other forgotten
files "make distcheck" complained about.
* avrdude.conf.in: Add more aliases for the AVRISP mkII.
* avrdude.1: Document how to use the AVRISP mkII.
* doc/avrdude.texi: (Ditto.)
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@564 81a1dc3b-b13d-400b-aceb-764788c761c2
ATmega48/88/168; the datasheet is a bit off here as well.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@560 81a1dc3b-b13d-400b-aceb-764788c761c2
patch #4459: Fix for rpm package builds
* avrdude.spec.in: update the RPM spec file:
- Default to enable-doc=yes during configure.
- Move info file to docs package.
- Make building of docs package conditional. Basic
idea copied from avr-gcc.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@558 81a1dc3b-b13d-400b-aceb-764788c761c2
Fix bug #15013: Wrong use of PPICLAIM (kernel: ppdev0: claim the
port first)
* par.c: don't claim/release here (thus win_ppdev.h not needed
anymore)
* ppi.c: claim/release here.
* freebsd_ppi.h: ppi_claim/ppi_release now take an fd as parameter.
* solaris_ecpp.h: (Ditto.)
* linux_ppdev.h: (Ditto.) (Also add copyright.)
* win_ppdev.h: Not needed anymore, remove.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@557 81a1dc3b-b13d-400b-aceb-764788c761c2
*par.c: ppi_claim and ppi_release definitions now in a Windows header file
*ppi.c: Only included if you are building for Windows
*win_ppdev.h: Initial Commit, see par.c
CV: ----------------------------------------------------------------------
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@549 81a1dc3b-b13d-400b-aceb-764788c761c2
The very basic functionality (paged flash read/write, erase, terminal
mode reads, fuse writes) works fine. There are still the following
issues right now:
. paged EEPROM write (i.e. through -U eeprom:w:...) only works on an
erased EEPROM
. byte-access flash and EEPROM writes (i.e. in terminal mode) fail
. documentation needs to be updated still
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@547 81a1dc3b-b13d-400b-aceb-764788c761c2
-added support for ATMega168, patch #4532 thanks to Manfred Bartz
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@544 81a1dc3b-b13d-400b-aceb-764788c761c2
While Solaris' lex understands start conditions, they cannot be grouped,
so unfold the <strng> group.
All actions need braces, even if they only consist of a comment.
As the classic lex uses semi-static resource allocation, we need to bump
the resource limits quite a bit.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@541 81a1dc3b-b13d-400b-aceb-764788c761c2
two-step declaration, and first define token_p to be a token_t *,
and then define YYSTYPE to token_p. That works around a bug in
Solaris' yacc.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@540 81a1dc3b-b13d-400b-aceb-764788c761c2
* Makefile.am: distclean avrdude.conf.
* avrdude.conf.in: make the parallel-port programmers optional.
* bitbang.c: move the bitbang features out into PROGRAMMER.
* configure.ac: introduce --enable-parport, add Solaris.
* lexer.l: replace str by strng to work around problems in some
versions of flex.
* main.c: move getexitspecs into the respective programmer's
domain; replace rindex by the C-standard strrchr.
* par.c: make parallel port optional.
* par.h: everything but par_initpgm() is private now.
* pgm.h: add setping/getping/highpulsepin/getexitspecs.
* serbb_posix.c: generalize bitbang interface; replace
cfmakeraw() by explicit code.
* serbb_win32.c: generalize bitbang interface.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@539 81a1dc3b-b13d-400b-aceb-764788c761c2
wide tty output. Document a trick to find out about the serial
numbers of all JTAG ICEs attached to USB.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@534 81a1dc3b-b13d-400b-aceb-764788c761c2
. use the correct endpoint, depending on whether we are going to read
or write
. when opening the USB device, set the configuration according to the
config entry, and properly claim the interface
. when closing, release the interface again
With these changes, it works now with libusb-win32 as well.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@533 81a1dc3b-b13d-400b-aceb-764788c761c2
give the full name of the respective memory area, instead of
the (possibly abbreviated) name the user typed in the -U option.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@529 81a1dc3b-b13d-400b-aceb-764788c761c2
string. Actually evaluate that number as microseconds then, as the
documentation used to state already.
While being there, re-sort the -s option into alphabetical order.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@527 81a1dc3b-b13d-400b-aceb-764788c761c2
Document the addition of the latest safemode update in the change log.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@522 81a1dc3b-b13d-400b-aceb-764788c761c2
* add support for parts with just 'fuse' memory
* if any fuse memories are altered, reflect those changes in the
post-programming safemode check so that safemode no longer
complains about fuses which were intentionally altered; this
eliminates the need to completely disable safemode using -u in
order to program fuses.
* provide -s option which will not ask to restore fuses, it will
just do it
Submitted by: Colin O'Flynn <coflynn@newae.com>
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@519 81a1dc3b-b13d-400b-aceb-764788c761c2
will be available in the upcoming avrdude release.
His addition has been implemented by means of a generalized bit-bang
interface that contains the common part between serial and paralle
bit-bang devices, and specialed backends for the serial and parallel
port connections.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@515 81a1dc3b-b13d-400b-aceb-764788c761c2
was the whole programmer submission which was already added through
another request, but the former lacked the VCC definition. Pick it up
from this patch.
Submitted by: tmohr@s.netic.de
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@511 81a1dc3b-b13d-400b-aceb-764788c761c2
avr910 programmer.
Original Submission: The attached patch against avrdude 4.4.0 fixes
the following problems with paged writes in avr910.c:
- failure to re-set address after page writes;
- no polling or delay after page writes;
- no page writes when not using auto-increment;
- an extraneous page write when data ends on page boundary.
Submitted by: "Nic" <avrdude@schraudolph.org>
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@510 81a1dc3b-b13d-400b-aceb-764788c761c2
match the XML file.
This fixes
bug #7492: EEPROM writing fail on atmega103 with atavrisp
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@509 81a1dc3b-b13d-400b-aceb-764788c761c2
Do not rebuild the docs again if they are up-to-date. This avoids as
well that they are rebuilt during "make install".
Use mv -f instead of plain mv in order to install the docs into the
respective subdirs, in order to avoid silly questions for non-writable
destination files.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@508 81a1dc3b-b13d-400b-aceb-764788c761c2
one.
This closes
bug #11496: Memory bank calibration on atmega128 should have 4 bytes
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@506 81a1dc3b-b13d-400b-aceb-764788c761c2
This fixes EEPROM access using the STK500V2 programmer, partially
undoing part of a previous general fixup commit. Choose the correct
read/write operations with the stk500v2 program function - the correct
one depends on the memory type. EEPROM is byte addressable so uses
read/write. FLASH is word addressable and so uses read_lo/write_lo.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@501 81a1dc3b-b13d-400b-aceb-764788c761c2
doc/avrdude.texi: (Ditto.)
Closes bug #13501: <memtype> should be listed in the man page
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@500 81a1dc3b-b13d-400b-aceb-764788c761c2
gratitous API change in recent versions of texi2html where
the output directory has changed names.
Fix for:
bug #13026: The build fails with texi2html 1.76
bug #12715: make issues during install
patch #3091: commandline fix for latest version of texi2html
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@499 81a1dc3b-b13d-400b-aceb-764788c761c2
that way. ;-) For those who want the 19200 Bd one, add "jtag2slow".
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@495 81a1dc3b-b13d-400b-aceb-764788c761c2
to 'i' (input). Even though this bit should be ignored, it should not
be changed. The 'x' setting sets the bit to zero which programs it
and could cause undefined behaviour. Setting to 'i' enables it to be
rewritten to its old value.
A better solution might be to read the fuse byte, apply the new value
while leaving the 'x' bit alone, then writing the value back. The
current fix is a workaround which allows the developer to change the
bit.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@494 81a1dc3b-b13d-400b-aceb-764788c761c2
when passing unsigned char * when char * is in the prototype and vice
versa. Clean these up along with a few others.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@491 81a1dc3b-b13d-400b-aceb-764788c761c2
#13693, #13871, and #14212.
This provides bug fixes to the STK500V2 programmer type. From the
patch information:
- incorrect token used from avrdude.conf.in
- wrong command sent to programmer, hence no write to eeprom.
- programmer was said to start writing at 0x0000 and continue page
by page and was not repositionned when a gap was found in the
hex file, or when the hex file start address was not
0x0000. Hence the verify procedure was correct, not the write
procedure.
- speed up of flash write to skip empty pages (full of 0xFF) by
re-enabling a dedicated function for that task.
- stk500v2_paged_load() was not returning the number of byte read,
so empty hex files were generated when reading memory.
Submitted by: Bernard Fouch <bernard.fouche@kuantic.com>
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@490 81a1dc3b-b13d-400b-aceb-764788c761c2
appears to have a complete XML description right now.
Document all the recently added new devices: AT90PWM2/3,
ATmega164/324/644, ATmega329x/649x, ATtiny25/45/85.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@489 81a1dc3b-b13d-400b-aceb-764788c761c2
all the details right now, so some of the parameters are guessed.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@487 81a1dc3b-b13d-400b-aceb-764788c761c2
changes to butterfly.c include:
. do not exit for unsupported devices but return -1 from the init function
instead; that way the -F option can be used to continue anyway
. honor the -b option as arbitrary bootloaders could be implemented with
any baud rate, not just the fixed 19200 Bd used by the butterfly
. implement functionality to read the fuse and lock bits, and write the
(boot) lock bits, resp.
. fix the signature byte order
The remaining files document the new functionality.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@486 81a1dc3b-b13d-400b-aceb-764788c761c2
main_exit: label to ensure the programmer is released correctly.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@483 81a1dc3b-b13d-400b-aceb-764788c761c2
thus it was falsely reporting that it failed when it was actually
working correctly. Fixed.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@482 81a1dc3b-b13d-400b-aceb-764788c761c2
to have problems sending a control message (returns an "I/O error").
At least try to recover gracefully in the bening case where the user
did not request a particular serial number, so we could continue
anyway without knowing it.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@481 81a1dc3b-b13d-400b-aceb-764788c761c2
usb_get_string_simple() as the latter is only found in recent enough
versions of libusb. That way, silently build without USB support
unless a recent version is available.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@480 81a1dc3b-b13d-400b-aceb-764788c761c2
available in recent versions of libusb, and the check isn't really
needed anyway (as the check for vendor and product ID will cover that
as well).
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@479 81a1dc3b-b13d-400b-aceb-764788c761c2
mkII.
The serial transport methods have been moved out into a record of
function pointers for that purpose, defaulting to the actual serial
connection that natively applies to the hosting system. Iff inside
the JTAG ICE mkII handler a port name starting with "usb" has been
detected, the record of function pointers is switched to USB.
Optionally, a serial number might be specified, so only the JTAG ICE
mkII matching the given serial number will be opened. The match is
done right-to-left, so only the least significant bytes of the serial
number need to be given.
In order to make the change as least intrusive to existing drivers as
possible, the entire naming scheme of the serial_foo() function entry
points has been maintained as access macros that encapsulate these
into the respective indirect function calls via serdev->foo().
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@478 81a1dc3b-b13d-400b-aceb-764788c761c2
Iff enter_progmode failed with RSP_ILLEGAL_JTAG_ID, give the user a
hint that their JTAGEN fuse might be unset.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@476 81a1dc3b-b13d-400b-aceb-764788c761c2
Now loading flash works on these devices even for simple parallel ISP
adapters.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@474 81a1dc3b-b13d-400b-aceb-764788c761c2
of the packet to occasionally been misinterpreted as a negative
number.
When discarding a packet for being overly long, restart the state
machine instead of attempting to drop a preposterous amount of data.
It is unlikely in that case that preposterous amount of data would
ever arrive, so rather attempt to re-align the reading algorithm
(supposedly resulting in a timeout and retransmit).
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@472 81a1dc3b-b13d-400b-aceb-764788c761c2
one byte at a time. Also mention the bug tracker interface on
savannah.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@471 81a1dc3b-b13d-400b-aceb-764788c761c2
clash with the Win32 API names for baud rates.
Reported by: Eric
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@462 81a1dc3b-b13d-400b-aceb-764788c761c2
. Implement the new EECRAddress field in the device descriptor that is
required by the 4.x firmware; make an uneducated guess about what
firmware requires what length of device descriptor -- perhaps Atmel
can be convinced to publish an official matrix for that.
. Specify EECR in the config file where required. Obviously, only
locations that differ from the 0x3c default are mentioned in the
XML files, so by now, this only affects the AT90CAN128 for us.
. After clarification with Atmel, EnablePageProgramming should really
default to 1, and only cleared if specified by an XML parameter. So
far, only the XML files for the ATmega256x and ATmega406 do specify
it at all, and they specify a 1, too.
. Drop the entire OCDEN fuse heuristic. If OCDEN is unprogrammed at
startup, issue a warning that single-byte EEPROM updates won't be
possible. Leave it to the user to program the fuse if desired.
That way, we won't run into any issue of prematurely wearing out the
hfuse EEPROM cell. Interestingly enough, this also solved the
problem of the target not restarting from scratch upon sign-off.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@461 81a1dc3b-b13d-400b-aceb-764788c761c2
yesterday's changes (i.e. before rev. 1.10 of ser_posix.c), that is,
exit(1) in case of a timeout. Previously, the upper layers didn't see
the timeout at all.
Quite possible that some of these drivers could handle a timeout more
intelligently though. At least for the rather sophisticated STK500v2
protocol, I think it should be possible to retry the request.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@460 81a1dc3b-b13d-400b-aceb-764788c761c2
performance.
Note that many consumers still read one byte at a time though.
This patch has once been submitted to me by Bernd Walter
<ticso@cicely.de>, minor tweak by me (mainly to get it running under
Linux, too).
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@459 81a1dc3b-b13d-400b-aceb-764788c761c2
Walthinsen, as well as JTAG ICE mkII support (by me).
Erik's submission has been cleaned up a little bit, mostly to add his
name and the current year to the copyright of the new file, remove
trailing white space before importing the files, and fix the minor
syntax errors in his avrdude.conf.in additions (missing semicolons).
The JTAG ICE mkII support should be considered alpha to beta quality
at this point. Few things are still to be done, like defering the
hfuse (OCDEN) tweaks until they are really required. Also, for
reasons not yet known, the target MCU doesn't start to run after
signing off from the ICE, it needs a power-cycle first (at least on my
STK500).
Note that for the JTAG ICE, I did change a few things in the internal
API. Notably I made the serial receive timeout configurable by the
backends via an exported variable (done in both the Posix and the
Win32 implementation), and I made the serial_recv() function return a
-1 instead of bailing out with exit(1) upon encountering a receive
timeout (currently only done in the Posix implementation). Both
measures together allow me to receive a datastreem from the ICE at 115
kbps on a somewhat lossy PCI multi-UART card that occasionally drops a
character. The JTAG ICE mkII protocol has enough of safety layers to
allow recovering from these events, but the previous code wasn't
prepared for any kind of recovery. The Win32 change for this still
has to be done, and the traditional drivers need to be converted to
exit(1) upon encountering a timeout (as they're now getting a -1
returned they didn't see before in that case).
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@451 81a1dc3b-b13d-400b-aceb-764788c761c2
doc are either not available on all systems or are at best
inconvenient to build and install. The doc can still be built, one
just needs to specify --enable-doc at configure time.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@445 81a1dc3b-b13d-400b-aceb-764788c761c2
encoding is correct, specifically the address bits don't exactly match
those of the preliminary datasheet that I have, but I don't see how
they could be right. Tested with STK500 and it works there.
Instruction encodings have not been tested due to lack of a parallel
port on my Mac.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@436 81a1dc3b-b13d-400b-aceb-764788c761c2
* NEWS: Fix typo.
* bootstrap: Delete the autom4te.cache dir before running the autotools.
* configure.ac (AC_INIT): Set version to 4.4.0.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@433 81a1dc3b-b13d-400b-aceb-764788c761c2
When showing update progress in a no tty situation, use unbuffered IO
for all systems, not just win32 native.
Update copyright year when printing version.
Remove warning about native win32 being experimental.
Split a line string.
* ppiwin.c: Update copyright year.
Add cvs Id keyword.
(usleep): Cleanup debug CPP directives to improve readability.
* ser_win32.c: Include <stdio.h> to fix failing build.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@430 81a1dc3b-b13d-400b-aceb-764788c761c2
* ser_win32.c: Assign copyright to Martin J. Thomas since he did all
real work on this file.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@429 81a1dc3b-b13d-400b-aceb-764788c761c2
was based on a typo in the datasheet which Atmel agreed is going to be
fixed.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@420 81a1dc3b-b13d-400b-aceb-764788c761c2
switch. The specified baud rate will override the default serial port
baud rate for a particular programmer.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@416 81a1dc3b-b13d-400b-aceb-764788c761c2
return an error code when building on MacOS X. This commit makes
AVRDUDE compile and run fine on my PowerMac G5 running MacOS X. In
theory it would be possible to support parallel ports on the Mac using
a PCI multi-port card and/or USB<->Parallel converters. If/when such
support is added we can flesh out these functions as needed, but for
now, only serial port programmers are currently supported.
Note that I tested avrdude on the G5/MacOS X with an STK500 programmer
and used a Keyspan model USA-19HS USB<->RS232 adapter device which
simply shows up in /dev as a POSIX serial port. None of the serial
port handling needed any changes.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@415 81a1dc3b-b13d-400b-aceb-764788c761c2
were not needed at all, and got in the way when compiling on a 64-bit
host OS.
Suggested by: Brian S. Dean
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@413 81a1dc3b-b13d-400b-aceb-764788c761c2
* doc/TODO: Still need to remove these options from documentation
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@410 81a1dc3b-b13d-400b-aceb-764788c761c2
* pgm.c: Fixed wrong type for default_open introduced by the cleanup yesterday.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@409 81a1dc3b-b13d-400b-aceb-764788c761c2
This change should increase immunity to delays in the
programmer-hardware.
Also did some unrelated cleanup in par_txrx().
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@408 81a1dc3b-b13d-400b-aceb-764788c761c2
Move save/restore-functionality into open/close.
* par.c: open/close now saves/restores PPICTRL, too.
* TODO: exitspecs don't work if RESET is in PPICTRL.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@407 81a1dc3b-b13d-400b-aceb-764788c761c2
Reminded by: Eric
While being here, perform a few style fixes to recent entries as well.
Noticed by: Emacs :-)
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@393 81a1dc3b-b13d-400b-aceb-764788c761c2
*avrpart.h: Added prototypes for list_parts() and locate_part()
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@389 81a1dc3b-b13d-400b-aceb-764788c761c2
*avr.h: Removed prototypes for moved functions
*avrpart.h: Added prototypes for functions in avrpart.c
*Makefile.am: Added new file avrpart.c
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@388 81a1dc3b-b13d-400b-aceb-764788c761c2
Document the change, including changing one of the texinfo examples
to use a Windows-like filename that contains a space (and thus
requires quoting).
This fixes bug #6764.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@386 81a1dc3b-b13d-400b-aceb-764788c761c2
* The second poll value for flash is corrected for all devices
* Delays are corrected for all devices, I have a datasheet for on my
harddisk
* mega161 is added
* avr910_devcode added for all devices except mega64, mega162,
mega169 and mega8535. Numbers are taken from uisp-source.
Contributed by Jan-Hinnerk Reichert <jan-hinnerk_reichert@hamburg.de>
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@382 81a1dc3b-b13d-400b-aceb-764788c761c2
stolen from the AT90S8515 since the datasheet says it's the same there.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@377 81a1dc3b-b13d-400b-aceb-764788c761c2
than memory device size.
(stk500_paged_write): Send whole block at once.
(stk500_paged_load): Limit blocks read to no bigger than memory
device size.
[Contributed by Bill Somerville <bill@classdesign.com>, this fixes
bug #5713.]
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@376 81a1dc3b-b13d-400b-aceb-764788c761c2
* configure.ac (AC_INIT): Add cvs back to version since we're
back in dev cycle (post release).
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@367 81a1dc3b-b13d-400b-aceb-764788c761c2
support for avr910.
* configure.ac (AC_INIT): Set version to 4.2.0.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@365 81a1dc3b-b13d-400b-aceb-764788c761c2
lines should be less than 80 chars including 8 spaces for the tab.
Date should be YYYY-MM-DD not YYYY/MM/DD.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@363 81a1dc3b-b13d-400b-aceb-764788c761c2
Define avrdude_CFLAGS.
* configure.ac: Set ENABLE_WARNINGS to "-Wall" if using gcc.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@362 81a1dc3b-b13d-400b-aceb-764788c761c2
eeprom, efuse, hfuse, and lfuse on a single command line. Much of the
output had to be ommitted from the example since the texi commands for
formatting the example don't allow page breaks within the example. If
someone knows a better way to format it, please feel free to do so.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@361 81a1dc3b-b13d-400b-aceb-764788c761c2
stk500 initialization routine. However, allow one to use the -F
option to ignore a bad return code from that function. I think this
still allows what Joerg intended, i.e., providing a way to still get
into terminal mode so that one can recover from setting bad STK500
values which may keep the chip from entering programming mode.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@359 81a1dc3b-b13d-400b-aceb-764788c761c2
anywhere specified to be written by any of the -U requests.
To remain backward compatible with previous versions, disable this
feature if any of the old-style memory specification operations are
specified (-i, -o).
Implement the -D option to explicitly disable the auto erase default.
Deprecate the old-style memory specification options (-f, -i, -I, -m,
and -o) in favor of the new -U option which allows one to operate on
multiple memories on a single command line.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@356 81a1dc3b-b13d-400b-aceb-764788c761c2
memory read or written (or up to where continuous 0xff begins in the
case of flash memory). An 'int' should be plenty big enough for that.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@354 81a1dc3b-b13d-400b-aceb-764788c761c2
fixes stk500 problem where number of bytes written is less than a page.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@348 81a1dc3b-b13d-400b-aceb-764788c761c2
argument is a 4 field string (fields seperated by colons) which
indicate what memory type to operate on, what operation to perform is
(read, write, or verify), the filename to read from, write to, or
verify against, and an optional file format field. Multple -U options
can be specified to operate on more than one memory at a time with a
single invocation. For example, to update both the flash and the
eeprom at the same time one can now specify the following:
avrdude -p -e -U flash:w:main.hex:i -U eeprom:w:eeprom.hex:i
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@341 81a1dc3b-b13d-400b-aceb-764788c761c2
reported that this patch fixes verify errors on the Windows platform
that are apparently timing related. Submitted by: Alex Shepherd
<ashepherd@wave.co.nz>, who indicates that this patch was based on
code from the UISP project.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@340 81a1dc3b-b13d-400b-aceb-764788c761c2
* doc/avrdude.texi: Document the -q option.
Fix some typos left over from pasting in man output.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@339 81a1dc3b-b13d-400b-aceb-764788c761c2
Extend ATmega8 calibration memory to support all 4 calibration bytes.
Savannah bug #3835. Submitted by Francisco T. A. Silva
<ftas@geodigitus.com.br>.
Add a few AVR910 programmer device codes. Savannah bug #3569 - sorry
I can't tell who submitted this to give proper credit.
Add support for the ATtiny12. Submitted by Pontifex <pontifex@isys.ca>
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@332 81a1dc3b-b13d-400b-aceb-764788c761c2
resides above the last non-0xff data value in the address space. Only
do this for flash memory since writing a 0xff to flash is a no-op.
This has the affect of creating smaller output files when dumping
memory contents from flash if the program in flash does not consume
the whole memory space. It also results in shorter programming times
when avrdude is asked to load a file into flash that has lots of 0xff
filled data past the last non-0xff data value.
I think this is basically where Alexey was going with his s-record
routine, but this should have a similar affect for all the I/O
routines. The main difference is that Alexey's also optimized 0xff
from the beginning of the address space and was not limited to flash.
I think that these optimizations should be limited to the flash since
it is currently the only memory that treats 0xff as special.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@331 81a1dc3b-b13d-400b-aceb-764788c761c2
output routines (don't optimize away 0xff data before and after non
0xff data). Also, fix a bug where the data contents sometimes weren't
written out completely.
Initial bug reported by Tom Harris <TomH@optiscan.com>. Fixes
provided by Alexey V.Levdikov <tsar@kemford.com>.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@330 81a1dc3b-b13d-400b-aceb-764788c761c2
main.c : print out '<stdin>' and '<stdout>' instead of '-' when using
stdio for I/O.
Thanks to Francisco T. A. Silva <ftas@geodigitus.com.br> for catching
this, and the error fixed by the previous commit as well.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@325 81a1dc3b-b13d-400b-aceb-764788c761c2
file format type to 'immediate mode' where the filename is assumed to
be the memory data itself.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@318 81a1dc3b-b13d-400b-aceb-764788c761c2
specify byte values on the command line instead of via a file. This
can be good for specifying fuse bytes and eliminates the need to
create single-byte files or using interactive terminal mode for these
single-byte memories. Requested by several folks on the mailing list.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@317 81a1dc3b-b13d-400b-aceb-764788c761c2
bytes since the 'R' command returns MSB first and the internal buffer
stores LSB first.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@307 81a1dc3b-b13d-400b-aceb-764788c761c2
removed in my previous patch. Terminal mode read/writes are broken
without those methods. D'oh!
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@305 81a1dc3b-b13d-400b-aceb-764788c761c2
incr supported by programmer hw, don't send addr for every byte.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@304 81a1dc3b-b13d-400b-aceb-764788c761c2
Daniel Williamson <dannyw@maconmgt.co.uk>
and
Ruwan Jayanetti <rjayanetti@sri.crossvue.com>
The resulting part definition used was actually somewhat of a merge of
the two submitted definitions.
Thanks for the contributions!
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@302 81a1dc3b-b13d-400b-aceb-764788c761c2
Have avr_read_byte() call pgm->read_byte() or avr_read_byte_default().
Add avr_write_byte_default().
Have avr_write_byte() call pgm->write_byte or avr_write_byte_default().
* pgm.c: Initialize pgm->write_byte and pgm->read_byte.
* pgm.h: Add write_byte and read_byte fields to struct programmer_t.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@296 81a1dc3b-b13d-400b-aceb-764788c761c2
available.
* avr910.c (avr910_vfy_cmd_sent): New function.
(avr910_chip_erase): Add support for chip erase.
(avr910_enter_prog_mode): New function.
(avr910_leave_prog_mode): New function.
(avr910_initialize): Add code to select device type and enter prog mode.
(avr910_close): Leave programming mode before closing serial port.
(avr910_read_sig_bytes): New function.
(avr910_initpgm): Add avr910_read_sig_bytes method to pgm initializer.
* avrdude.conf.in: Add note about deprecating devicecode.
Change all occurences of devicecode to stk500_devcode.
Add avr910_devcode to a few parts for testing.
* avrpart.h (struct avrpart): Change devicecode field to stk500_devcode.
(struct avrpart): Add avr910_devcode field.
* config_gram.y: Add K_STK500_DEVCODE and K_AVR910_DEVCODE tokens.
Generate an error if devicecode is found in the config file.
Handle parsing of avr910_devcode and stk500_devcode.
* lexer.l: Handle parsing of avr910_devcode and stk500_devcode.
* pgm.c: Initialize pgm->read_sig_bytes field.
* pgm.h: Add pgm->read_sig_bytes field.
* stk500.c: Use stk500_devcode instead of devicecode.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@293 81a1dc3b-b13d-400b-aceb-764788c761c2
* config_gram.y: Add parsing of avr910 programmer.
* lexer.l: Add avr910 token.
* avr910.c: [this is still work in progress]
Add some debug output.
Add probe for programmer presense.
* main.c: Set port to default_serial if programmer type is avr910.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@292 81a1dc3b-b13d-400b-aceb-764788c761c2
Change baud from int to long to avoid a 16-bit int overflow.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@291 81a1dc3b-b13d-400b-aceb-764788c761c2
ser_posix.c files.
* avr910.c: New file (stubs for avr910 serial programmer).
* avr910.h: New file.
* ser_posix.c: New file.
* ser_win32.c: New file (just stubs for now).
* serial.h: New file.
* stk500.c: Move all the code for accessing the posix serial ports
into ser_posix. This will make a native win32 port easier and allows
the avr910 programmer to share the serial code.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@289 81a1dc3b-b13d-400b-aceb-764788c761c2
* CHANGELOG: Move contents to NEWS and remove file.
* ChangeLog: All of the changes for this year.
* ChangeLog-2001: All 2001 changes.
* ChangeLog-2002: All 2002 changes.
* Makefile.am (EXTRA_DIST): Remove CHANGELOG and and Change-200[12].
* NEWS: Moved contents of CHANGELOG file here.
* README: Add note pointing to savannah site.
git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk@279 81a1dc3b-b13d-400b-aceb-764788c761c2