[patch #9757] Fix ATtiny817 Xplained Mini programmer

classic Classic list List threaded Threaded
8 messages Options
Reply | Threaded
Open this post in threaded view
|

[patch #9757] Fix ATtiny817 Xplained Mini programmer

Kevin Cuzner-2
URL:
  <https://savannah.nongnu.org/patch/?9757>

                 Summary: Fix ATtiny817 Xplained Mini programmer
                 Project: AVR Downloader/UploaDEr
            Submitted by: svenschwermer
            Submitted on: Fri 22 Feb 2019 04:55:14 PM UTC
                Category: None
                Priority: 5 - Normal
                  Status: None
                 Privacy: Public
             Assigned to: None
        Originator Email:
             Open/Closed: Open
         Discussion Lock: Any

    _______________________________________________________

Details:

Hi,

I had already posted to the mailing list, but didn't get a response, so I'll
try here as well. This was what I posted to the mailing list:
https://lists.nongnu.org/archive/html/avrdude-dev/2019-01/msg00005.html

I think the error is caused by the way the programmer ID is compared against
"xplainedmini_updi". The attached patch seems to fix the issue. However, I
don't quite understand why a programmer would need a list of IDs in the first
place, so I'd appreciate it if some skeptical eyes looked over my patch.

Thanks,
Sven



    _______________________________________________________

File Attachments:


-------------------------------------------------------
Date: Fri 22 Feb 2019 04:55:14 PM UTC  Name: patch  Size: 2KiB   By:
svenschwermer

<http://savannah.nongnu.org/patch/download.php?file_id=46335>

    _______________________________________________________

Reply to this item at:

  <https://savannah.nongnu.org/patch/?9757>

_______________________________________________
  Message sent via Savannah
  https://savannah.nongnu.org/


_______________________________________________
avrdude-dev mailing list
[hidden email]
https://lists.nongnu.org/mailman/listinfo/avrdude-dev
Reply | Threaded
Open this post in threaded view
|

[patch #9757] Fix ATtiny817 Xplained Mini programmer

Kevin Cuzner-2
Reply | Threaded
Open this post in threaded view
|

[patch #9757] Fix ATtiny817 Xplained Mini programmer

Kevin Cuzner-2
Reply | Threaded
Open this post in threaded view
|

[patch #9757] Fix ATtiny817 Xplained Mini programmer

Kevin Cuzner-2
Reply | Threaded
Open this post in threaded view
|

[patch #9757] Fix ATtiny817 Xplained Mini programmer

Kevin Cuzner-2
Reply | Threaded
Open this post in threaded view
|

[patch #9757] Fix ATtiny817 Xplained Mini programmer

Kevin Cuzner-2
Update of patch #9757 (project avrdude):

                  Status:                    None => Need Info              
             Assigned to:                    None => joerg_wunsch          

    _______________________________________________________

Follow-up Comment #5:

Well, I don't think programmers usually have multiple IDs. However, the
avrdude.conf syntax (see config_gram.y) allows for a string_list in that
place.

I guess we don't really need to care for more than one ID, but we need to take
into account that pgm->id points to the *list* rather than the list's datum.

IMHO, the following patch ought to fix it as well, can you verify?


Index: jtag3.c
===================================================================
--- jtag3.c     (revision 1448)
+++ jtag3.c     (working copy)
@@ -867,7 +867,7 @@
   /* XplainedMini boards do not need this, and early revisions had a
    * firmware bug where they complained about it. */
   if (pgm->flag & PGM_FL_IS_EDBG) {
-    if (strcmp(pgm->id, "xplainedmini_updi") != 0) {
+    if (strcmp(ldata(lfirst(pgm->id)), "xplainedmini_updi") != 0) {
       if (jtag3_edbg_prepare(pgm) < 0) {
         return -1;
       }
@@ -1581,7 +1581,7 @@
   /* XplainedMini boards do not need this, and early revisions had a
    * firmware bug where they complained about it. */
   if (pgm->flag & PGM_FL_IS_EDBG) {
-    if (strcmp(pgm->id, "xplainedmini_updi") != 0) {
+    if (strcmp(ldata(lfirst(pgm->id)), "xplainedmini_updi") != 0) {
       jtag3_edbg_signoff(pgm);
     }
   }


    _______________________________________________________

Reply to this item at:

  <https://savannah.nongnu.org/patch/?9757>

_______________________________________________
  Message sent via Savannah
  https://savannah.nongnu.org/


Reply | Threaded
Open this post in threaded view
|

[patch #9757] Fix ATtiny817 Xplained Mini programmer

Kevin Cuzner-2
Follow-up Comment #6, patch #9757 (project avrdude):

Hi Jörg,

it took me some time to verify this because between me proposing this patch
and your comment, a regression has been introduced: The last revision that my
patch works on is r1435. r1436 breaks this programmer again—even with my
patch applied. See the extra verbose output for r1436 with my originally
suggested patch attached at the end of this post.

On r1435, I tried your patch. It works just as well as my proposed patch. I
agree that your patch is cleaner if it's safe to assume that programmers have
only up to one ID.

Sven

===

Patched (my original patch) r1436:

./avrdude -p t817 -c xplainedmini_updi -C avrdude.conf -v -v

avrdude: Version 6.3-20171130
         Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
         Copyright (c) 2007-2014 Joerg Wunsch

         System wide configuration file is "avrdude.conf"
         User configuration file is "/home/sven/.avrduderc"
         User configuration file does not exist or is not a regular file,
skipping

         Using Port                    : usb
         Using Programmer              : xplainedmini_updi
avrdude: jtag3_open_updi()
avrdude: Found CMSIS-DAP compliant device, using EDBG protocol
avrdude: Sending sign-on command: 0x80 (3 bytes msg)
         AVR Part                      : ATtiny817
         Chip Erase delay              : 0 us
         PAGEL                         : P00
         BS2                           : P00
         RESET disposition             : dedicated
         RETRY pulse                   : SCK
         serial program mode           : yes
         parallel program mode         : yes
         Timeout                       : 0
         StabDelay                     : 0
         CmdexeDelay                   : 0
         SyncLoops                     : 0
         ByteDelay                     : 0
         PollIndex                     : 0
         PollValue                     : 0x00
         Memory Detail                 :

                                  Block Poll               Page              
       Polled
           Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW
MaxW   ReadBack
           ----------- ---- ----- ----- ---- ------ ------ ---- ------ -----
----- ---------
           signature      0     0     0    0 no          3    1      0     0  
  0 0x00 0x00
           prodsig        0     0     0    0 no         61   61      0     0  
  0 0x00 0x00
           fuses          0     0     0    0 no          9    1      0     0  
  0 0x00 0x00
           fuse0          0     0     0    0 no          1    1      0     0  
  0 0x00 0x00
           fuse1          0     0     0    0 no          1    1      0     0  
  0 0x00 0x00
           fuse2          0     0     0    0 no          1    1      0     0  
  0 0x00 0x00
           fuse4          0     0     0    0 no          1    1      0     0  
  0 0x00 0x00
           fuse5          0     0     0    0 no          1    1      0     0  
  0 0x00 0x00
           fuse6          0     0     0    0 no          1    1      0     0  
  0 0x00 0x00
           fuse7          0     0     0    0 no          1    1      0     0  
  0 0x00 0x00
           fuse8          0     0     0    0 no          1    1      0     0  
  0 0x00 0x00
           lock           0     0     0    0 no          1    1      0     0  
  0 0x00 0x00
           data           0     0     0    0 no          0    1      0     0  
  0 0x00 0x00
           usersig        0     0     0    0 no         32   32      0     0  
  0 0x00 0x00
           flash          0     0     0    0 no       8192   64      0     0  
  0 0x00 0x00
           eeprom         0     0     0    0 no        128   32      0     0  
  0 0x00 0x00

         Programmer Type : JTAGICE3_UPDI
         Description     : Atmel AVR XplainedMini in UPDI mode
avrdude: jtag3_getparm()
avrdude: Sending get parameter (scope 0x01, section 0, parm 0) command: 0x84
(9 bytes msg)
avrdude: Sending get info (serial number) command: 0x81 (23 bytes msg)
         ICE hardware version: 0
         ICE firmware version: 1.13 (rel. 43)
         Serial number   : ATML2658061800003615
avrdude: jtag3_getparm()
avrdude: Sending get parameter (scope 0x01, section 1, parm 0) command: 0x84
(6 bytes msg)
         Vtarget         : 5.00 V
avrdude: jtag3_getparm()
avrdude: Sending get parameter (scope 0x12, section 1, parm 32) command: 0x84
(6 bytes msg)
         JTAG clock megaAVR/program: 0 kHz
avrdude: jtag3_getparm()
avrdude: Sending get parameter (scope 0x12, section 1, parm 33) command: 0x84
(6 bytes msg)
         JTAG clock megaAVR/debug:   0 kHz
avrdude: jtag3_getparm()
avrdude: Sending get parameter (scope 0x12, section 1, parm 48) command: 0x84
(6 bytes msg)
         JTAG clock Xmega: 0 kHz
avrdude: jtag3_getparm()
avrdude: Sending get parameter (scope 0x12, section 1, parm 49) command: 0x84
(6 bytes msg)
         PDI clock Xmega : 0 kHz

avrdude: jtag3_getparm()
avrdude: Sending get parameter (scope 0x01, section 0, parm 1) command: 0x84
(6 bytes msg)
avrdude: jtag3_setparm()
avrdude: Sending set parameter (scope 0x12, section 0, parm 0) command: 0x80
(3 bytes msg)
avrdude: jtag3_setparm()
avrdude: Sending set parameter (scope 0x12, section 0, parm 1) command: 0x80
(3 bytes msg)
avrdude: jtag3_setparm()
avrdude: Sending set parameter (scope 0x12, section 1, parm 0) command: 0x80
(3 bytes msg)
UPDI SET:
        xd->prog_base=0 80
        xd->flash_page_size=40
        xd->eeprom_page_size=20
        xd->nvmctrl=0 10
        xd->ocd=80 f
avrdude: jtag3_setparm()
avrdude: Sending set parameter (scope 0x12, section 2, parm 0) command: 0x80
(3 bytes msg)
avrdude: Sending AVR sign-on command: 0x84 (8 bytes msg)
avrdude: Partial Family_ID returned: "tiny"
avrdude: AVR device initialized and ready to accept instructions

Reading |                                                    | 0%
0.00savrdude: jtag3_paged_load(.., signature, 1, 0x0, 1)
          mapped to address: 0x1100
avrdude: Sending enter progmode command: 0x80 (3 bytes msg)
avrdude: Sending read memory command: 0x84 (4 bytes msg)
avrdude: Sending read memory command: 0x84 (4 bytes msg)
avrdude: Sending read memory command: 0x84 (4 bytes msg)
[... the last lines repeat indefinitely ...]

    _______________________________________________________

Reply to this item at:

  <https://savannah.nongnu.org/patch/?9757>

_______________________________________________
  Message sent via Savannah
  https://savannah.nongnu.org/


Reply | Threaded
Open this post in threaded view
|

[patch #9757] Fix ATtiny817 Xplained Mini programmer

Kevin Cuzner-2
Follow-up Comment #7, patch #9757 (project avrdude):

Thanks for the confirmation, Sven!

    _______________________________________________________

Reply to this item at:

  <https://savannah.nongnu.org/patch/?9757>

_______________________________________________
  Message sent via Savannah
  https://savannah.nongnu.org/