avrdudes / avrdude

AVRDUDE is a utility to program AVR microcontrollers
GNU General Public License v2.0
747 stars 138 forks source link

[bug #29896] Add support for XMEGA specific AVR109 protocol extensions used by XBoot #200

Closed avrs-admin closed 2 years ago

avrs-admin commented 2 years ago

Alex Forencich Sun 16 May 2010 07:42:50 PM UTC

The AVR109 butterfly protocol does not support access to the user signature row and the production signature row on XMega devices.  The XBoot bootloader adds support for these locations by adding the memory types "U" and "P" in addition to the existing "E" and "F" types.

Updating AVRDUDE to support this would be trivial - it involves adding a couple of additional conditions to the block read and write fuctions in butterfly.c.  The only question is whether or not to add them universally and check for error conditions or to only support them for specific bootloaders.

This issue was migrated from https://savannah.nongnu.org/bugs/?29896

mcuee commented 2 years ago

I guess xmega is not popular that this has never been implemented.

mcuee commented 2 years ago

Since this involves user signature row, I am not so sure if the following two issues are related as well.

mcuee commented 2 years ago

@alexforencich Not so sure if you are still interested in this topic. If yes, please help to come out the pull request. Thanks.

MCUdude commented 2 years ago

@alexforencich it would be great if you had time to look at this! I have an ATxmega256A3BU board I can use to help out with testing. Since this is an Xboot-exclusive feature(isn't it?), maybe we can use the detected bootloader type to enable these features.

$ ./avrdude -cavr109 -p atxmega256a3bu -b 115200 -P /dev/cu.usbserial-1410

Connecting to programmer: .
Found programmer: Id = "XBoot++"; type = S
    Software Version = 1.7; No Hardware Version given.
Programmer supports auto addr increment.
Programmer supports buffered memory access with buffersize=512 bytes.

Programmer supports the following devices:
    Device code: 0x7b