On Tue, Apr 28, 2020 at 09:31:41AM -0600, Tracey Emery wrote:
> On Fri, Apr 24, 2020 at 08:18:53AM -0600, Tracey Emery wrote:
> > I can certainly test this here in the future. Having newer avrdude would
> > be great. None of the ESP "suite of tools" uses avrdude, so those won't
> > be affected.
> > 
> > I'm working on a ATTiny project, which would be a good test case for
> > this. :D
> > 
> > > -- 
> > > jca | PGP : 0x1524E7EE / 5135 92C1 AD36 5293 2BDF  DDCC 0DFA 74AE 1524 
> > > E7EE
> > 
> > -- 
> > 
> > Tracey Emery
> 
> Here is a diff for later review. Tested communications with my
> buspirate, with no problems.
> 
> -- 
> 
> Tracey Emery

Andrea, were you able to test this diff while we were in release mode?
More testers than me would be useful.

> 
> diff b8b1ea7c41effe940702be2e1fa45f122b9f3cc7 /usr/ports/mystuff
> blob - f36bee3303e7d620c926342c755d4f26336e9f69
> file + devel/avrdude/Makefile
> --- devel/avrdude/Makefile
> +++ devel/avrdude/Makefile
> @@ -2,10 +2,12 @@
>  
>  COMMENT=     AVR microcontroller hardware in-system programmer
>  
> -V=           5.11
> +V=           6.3
>  DISTNAME=    avrdude-${V}
> -REVISION=    4
>  DISTFILES+=  avrdude-${V}.tar.gz avrdude-doc-${V}.pdf
> +
> +SHARED_LIBS +=  avrdude                   0.0 # 1.0
> +
>  CATEGORIES=  devel
>  
>  HOMEPAGE=    http://www.nongnu.org/avrdude/
> @@ -13,7 +15,7 @@ HOMEPAGE=   http://www.nongnu.org/avrdude/
>  # GPLv2+
>  PERMIT_PACKAGE=      Yes
>  
> -WANTLIB += c curses ftdi m pthread readline usb usb-1.0
> +WANTLIB += c curses elf ftdi1 m pthread readline usb usb-1.0
>  
>  MASTER_SITES=        ${MASTER_SITE_SAVANNAH:=avrdude/}
>  EXTRACT_ONLY=        avrdude-${V}${EXTRACT_SUFX}
> @@ -23,7 +25,7 @@ CONFIGURE_STYLE=    autoconf
>  CONFIGURE_ARGS+=     CPPFLAGS="-I${LOCALBASE}/include" \
>                       LDFLAGS="-L${LOCALBASE}/lib -pthread"
>  
> -LIB_DEPENDS=         devel/libftdi \
> +LIB_DEPENDS=         devel/libftdi1 \
>                       devel/libusb-compat
>  
>  SUBST_VARS+=         V
> blob - c143503b71077821ad44e1110d56fac3bb6fff06
> file + devel/avrdude/distinfo
> --- devel/avrdude/distinfo
> +++ devel/avrdude/distinfo
> @@ -1,4 +1,4 @@
> -SHA256 (avrdude-5.11.tar.gz) = Yxf08w/LG69+B+VeXHQ68+Hn+UnyBtOHKmIq7THVldc=
> -SHA256 (avrdude-doc-5.11.pdf) = 7mmFOgnvMLPV2yVrxpDT6lp4ezQjVsDTghUrLBbNEtM=
> -SIZE (avrdude-5.11.tar.gz) = 549113
> -SIZE (avrdude-doc-5.11.pdf) = 236872
> +SHA256 (avrdude-6.3.tar.gz) = D59zG2OUyneVuINZaJp/ofuoGMbh2WJRPrKNpnDgoZY=
> +SHA256 (avrdude-doc-6.3.pdf) = 8+fMdVehEcGB8/BNLasHXoNB141+f4kUtXgZjRjayi8=
> +SIZE (avrdude-6.3.tar.gz) = 909744
> +SIZE (avrdude-doc-6.3.pdf) = 255521
> blob - 9bc1c22fbaa811e0c3fe93f8b334a775d0ee1934
> file + /dev/null
> --- devel/avrdude/patches/patch-avrdude_conf_in
> +++ devel/avrdude/patches/patch-avrdude_conf_in
> @@ -1,201 +0,0 @@
> -$OpenBSD: patch-avrdude_conf_in,v 1.2 2013/05/05 16:48:08 edd Exp $
> -
> -Add support for attiny4313:
> -http://savannah.nongnu.org/patch/?7393
> -
> ---- avrdude.conf.in.orig     Fri Aug 26 21:50:33 2011
> -+++ avrdude.conf.in  Sat May  4 10:30:28 2013
> -@@ -9788,6 +9788,193 @@ part
> -   ;
> - 
> - #------------------------------------------------------------
> -+# ATtiny4313
> -+#------------------------------------------------------------
> -+
> -+part
> -+     id            = "t4313";
> -+     desc          = "ATtiny4313";
> -+     has_debugwire = yes;
> -+     flash_instr   = 0xB2, 0x0F, 0x1F;
> -+     eeprom_instr  = 0xBB, 0xFE, 0xBB, 0xEE, 0xBB, 0xCC, 0xB2, 0x0D,
> -+                 0xBA, 0x0F, 0xB2, 0x0F, 0xBA, 0x0D, 0xBB, 0xBC,
> -+                 0x99, 0xE1, 0xBB, 0xAC;
> -+     stk500_devcode   = 0x23;
> -+##   Use the ATtiny26 devcode:
> -+     avr910_devcode   = 0x5e;
> -+     signature        = 0x1e 0x92 0x0d;
> -+     pagel            = 0xD4;
> -+     bs2              = 0xD6;
> -+     reset            = io;
> -+     chip_erase_delay = 9000;
> -+
> -+     pgm_enable       = "1 0 1 0  1 1 0 0    0 1 0 1  0 0 1 1",
> -+                        "x x x x  x x x x    x x x x  x x x x";
> -+
> -+     chip_erase       = "1 0 1 0  1 1 0 0    1 0 0 x  x x x x",
> -+                        "x x x x  x x x x    x x x x  x x x x";
> -+
> -+    timeout         = 200;
> -+    stabdelay               = 100;
> -+    cmdexedelay             = 25;
> -+    synchloops              = 32;
> -+    bytedelay               = 0;
> -+    pollindex               = 3;
> -+    pollvalue               = 0x53;
> -+    predelay                = 1;
> -+    postdelay               = 1;
> -+    pollmethod              = 1;
> -+
> -+    pp_controlstack     =
> -+        0x0E, 0x1E, 0x0E, 0x1E, 0x2E, 0x3E, 0x2E, 0x3E,
> -+        0x4E, 0x5E, 0x4E, 0x5E, 0x6E, 0x7E, 0x6E, 0x7E,
> -+        0x26, 0x36, 0x66, 0x76, 0x2A, 0x3A, 0x6A, 0x7A,
> -+        0x2E, 0xFD, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00;
> -+    hventerstabdelay    = 100;
> -+    progmodedelay       = 0;
> -+    latchcycles         = 5;
> -+    togglevtg           = 1;
> -+    poweroffdelay       = 15;
> -+    resetdelayms        = 1;
> -+    resetdelayus        = 0;
> -+    hvleavestabdelay    = 15;
> -+    chiperasepulsewidth = 0;
> -+    chiperasepolltimeout = 10;
> -+    programfusepulsewidth = 0;
> -+    programfusepolltimeout = 5;
> -+    programlockpulsewidth = 0;
> -+    programlockpolltimeout = 5;
> -+
> -+     memory "eeprom"
> -+         size            = 256;
> -+        paged           = no;
> -+        page_size       = 4;
> -+         min_write_delay = 4000;
> -+         max_write_delay = 4500;
> -+         readback_p1     = 0xff;
> -+         readback_p2     = 0xff;
> -+         read            = "1   0  1  0   0  0  0  0   0 0 0 x  x x x x",
> -+                           "a7 a6 a5 a4  a3 a2 a1 a0   o o o o  o o o o";
> -+
> -+         write           = "1   1  0  0   0  0  0  0   0 0 0 x  x x x x",
> -+                           "a7 a6 a5 a4  a3 a2 a1 a0   i i i i  i i i i";
> -+
> -+    loadpage_lo     = "  1   1   0   0      0   0   0   1",
> -+                      "  0   0   0   0      0   0   0   0",
> -+                      "  0   0   0   0      0   0  a1  a0",
> -+                      "  i   i   i   i      i   i   i   i";
> -+
> -+    writepage       = "  1   1   0   0      0   0   1   0",
> -+                      "  0   0   x   x      x   x   x   x",
> -+                      " a7  a6  a5  a4     a3  a2   0   0",
> -+                      "  x   x   x   x      x   x   x   x";
> -+
> -+    mode            = 0x41;
> -+    delay           = 6;
> -+    blocksize       = 4;
> -+    readsize        = 256;
> -+       ;
> -+     memory "flash"
> -+         paged           = yes;
> -+         size            = 4096;
> -+         page_size       = 64;
> -+         num_pages       = 64;
> -+         min_write_delay = 4500;
> -+         max_write_delay = 4500;
> -+         readback_p1     = 0xff;
> -+         readback_p2     = 0xff;
> -+         read_lo         = "  0   0   1   0    0   0   0   0",
> -+                           "  0   0   0   0    0 a10  a9  a8",
> -+                           " a7  a6  a5  a4   a3  a2  a1  a0",
> -+                           "  o   o   o   o    o   o   o   o";
> -+
> -+         read_hi         = "  0   0   1   0    1   0   0   0",
> -+                           "  0   0   0   0    0 a10  a9  a8",
> -+                           " a7  a6  a5  a4   a3  a2  a1  a0",
> -+                           "  o   o   o   o    o   o   o   o";
> -+
> -+# The information in the data sheet of April/2004 is wrong, this works:
> -+         loadpage_lo     = "  0   1   0   0    0   0   0   0",
> -+                           "  0   0   0   x    x   x   x   x",
> -+                           "  x   x   x   x   a3  a2  a1  a0",
> -+                           "  i   i   i   i    i   i   i   i";
> -+
> -+# The information in the data sheet of April/2004 is wrong, this works:
> -+         loadpage_hi     = "  0   1   0   0    1   0   0   0",
> -+                           "  0   0   0   x    x   x   x   x",
> -+                           "  x   x   x   x   a3  a2  a1  a0",
> -+                           "  i   i   i   i    i   i   i   i";
> -+
> -+# The information in the data sheet of April/2004 is wrong, this works:
> -+         writepage       = "  0  1  0  0   1   1  0  0",
> -+                           "  0  0  0  0   0 a10 a9 a8",
> -+                           " a7 a6 a5 a4   x   x  x  x",
> -+                           "  x  x  x  x   x   x  x  x";
> -+
> -+    mode            = 0x41;
> -+    delay           = 6;
> -+    blocksize       = 32;
> -+    readsize        = 256;
> -+       ;
> -+#   ATtiny4313 has Signature Bytes: 0x1E 0x92 0x0D.
> -+     memory "signature"
> -+         size            = 3;
> -+         read            = "0  0  1  1   0  0  0  0   0  0  0  x   x  x  x  
> x",
> -+                           "x  x  x  x   x  x a1 a0   o  o  o  o   o  o  o  
> o";
> -+       ;
> -+     memory "lock"
> -+         size            = 1;
> -+         write           = "1 0 1 0  1 1 0 0  1 1 1 x  x x x x",
> -+                           "x x x x  x x x x  1 1 i i  i i i i";
> -+         read           = "0 1 0 1  1 0 0 0  0 0 0 0  0 0 0 0",
> -+                          "x x x x  x x x x  x x o o  o o o o";
> -+        min_write_delay = 9000;
> -+        max_write_delay = 9000;
> -+       ;
> -+
> -+     memory "lfuse"
> -+         size            = 1;
> -+         write           = "1 0 1 0  1 1 0 0  1 0 1 0  0 0 0 0",
> -+                           "x x x x  x x x x  i i i i  i i i i";
> -+
> -+         read            = "0 1 0 1  0 0 0 0  0 0 0 0  0 0 0 0",
> -+                           "x x x x  x x x x  o o o o  o o o o";
> -+        min_write_delay = 9000;
> -+        max_write_delay = 9000;
> -+       ;
> -+
> -+     memory "hfuse"
> -+         size            = 1;
> -+         write           = "1 0 1 0  1 1 0 0  1 0 1 0  1 0 0 0",
> -+                           "x x x x  x x x x  i i i i  i i i i";
> -+
> -+         read            = "0 1 0 1  1 0 0 0  0 0 0 0  1 0 0 0",
> -+                           "x x x x  x x x x  o o o o  o o o o";
> -+        min_write_delay = 9000;
> -+        max_write_delay = 9000;
> -+       ;
> -+
> -+     memory "efuse"
> -+         size            = 1;
> -+         write           = "1 0 1 0  1 1 0 0  1 0 1 0  0 1 0 0",
> -+                           "x x x x  x x x x  x x x x  x x x i";
> -+
> -+         read            = "0 1 0 1  0 0 0 0  0 0 0 0  1 0 0 0",
> -+                           "x x x x  x x x x  o o o o  o o o o";
> -+        min_write_delay = 9000;
> -+        max_write_delay = 9000;
> -+     ;
> -+# The Tiny4313 has calibration data for both 4 MHz and 8 MHz.
> -+# The information in the data sheet of April/2004 is wrong, this works:
> -+
> -+     memory "calibration"
> -+         size            = 2;
> -+         read            = "0  0  1  1   1  0  0  0    0 0 0 x  x x x x",
> -+                           "0  0  0  0   0  0  0  a0   o o o o  o o o o";
> -+     ;
> -+  ;
> -+
> -+#------------------------------------------------------------
> - # AT90PWM2
> - #------------------------------------------------------------
> - 
> blob - 99293fb72e40ca32fa095e6f9bead4a3bc8169d5
> file + /dev/null
> --- devel/avrdude/patches/patch-configure_ac
> +++ devel/avrdude/patches/patch-configure_ac
> @@ -1,23 +0,0 @@
> -$OpenBSD: patch-configure_ac,v 1.1 2017/09/25 09:16:12 robert Exp $
> -
> -Index: configure.ac
> ---- configure.ac.orig
> -+++ configure.ac
> -@@ -297,7 +297,7 @@ if test "$GCC" = yes; then
> -     safe_CFLAGS=$CFLAGS
> -     CFLAGS="$ENABLE_WARNINGS -Wno-pointer-sign"
> - 
> --    AC_TRY_COMPILE(, [ int main () { return 0 ; } ], [
> -+    AC_TRY_COMPILE(, [], [
> -             no_pointer_sign=yes
> -             AC_MSG_RESULT([yes]) 
> -             ], [
> -@@ -322,7 +322,7 @@ case $target in
> -                     safe_CFLAGS="$CFLAGS"
> -                     CFLAGS="$ENABLE_WARNINGS -mno-cygwin"
> - 
> --                    AC_TRY_COMPILE(, [ int main () { return 0 ; } ], [
> -+                    AC_TRY_COMPILE(, [], [
> -                             no_cygwin=yes
> -                             AC_MSG_RESULT([yes])
> -                             ], [
> blob - /dev/null
> file + devel/avrdude/patches/patch-fileio_c
> --- devel/avrdude/patches/patch-fileio_c
> +++ devel/avrdude/patches/patch-fileio_c
> @@ -0,0 +1,17 @@
> +$OpenBSD$
> +
> +Define EM_AVR, since it isn't included in our base libelf yet.
> +
> +Index: fileio.c
> +--- fileio.c.orig
> ++++ fileio.c
> +@@ -34,6 +34,9 @@
> + #elif defined(HAVE_LIBELF_LIBELF_H)
> + #include <libelf/libelf.h>
> + #endif
> ++#ifndef EM_AVR
> ++#define EM_AVR 83
> ++#endif
> + #define EM_AVR32 0x18ad         /* inofficial */
> + #endif
> + 
> blob - 3706aaf620ca6def50b50ef333cfc2531bf5ee22
> file + devel/avrdude/patches/patch-stk500v2_c
> --- devel/avrdude/patches/patch-stk500v2_c
> +++ devel/avrdude/patches/patch-stk500v2_c
> @@ -1,7 +1,9 @@
> -$OpenBSD: patch-stk500v2_c,v 1.5 2013/05/05 16:48:08 edd Exp $
> ---- stk500v2.c.orig  Fri Aug 26 21:22:10 2011
> -+++ stk500v2.c       Sat May  4 10:30:28 2013
> -@@ -319,6 +319,7 @@ static void stk500v2_jtagmkII_setup(PROGRAMMER * pgm)
> +$OpenBSD$
> +
> +Index: stk500v2.c
> +--- stk500v2.c.orig
> ++++ stk500v2.c
> +@@ -350,6 +350,7 @@ static void stk500v2_jtag3_setup(PROGRAMMER * pgm)
>   void stk500v2_teardown(PROGRAMMER * pgm)
>   {
>     free(pgm->cookie);
> @@ -9,23 +11,25 @@ $OpenBSD: patch-stk500v2_c,v 1.5 2013/05/05 16:48:08 e
>   }
>   
>   static void stk500v2_jtagmkII_teardown(PROGRAMMER * pgm)
> -@@ -330,6 +331,7 @@ static void stk500v2_jtagmkII_teardown(PROGRAMMER * pg
> +@@ -361,6 +362,7 @@ static void stk500v2_jtagmkII_teardown(PROGRAMMER * pg
>     jtagmkII_teardown(pgm);
>   
>     free(mycookie);
>  +  pgm->cookie = NULL;
>   }
>   
> - 
> -@@ -1158,12 +1160,14 @@ static int stk500hv_initialize(PROGRAMMER * pgm, 
> AVRPA
> + static void stk500v2_jtag3_teardown(PROGRAMMER * pgm)
> +@@ -1477,6 +1479,8 @@ static int stk500hv_initialize(PROGRAMMER * pgm, AVRPA
> +   }
> +   free(PDATA(pgm)->flash_pagecache);
> +   free(PDATA(pgm)->eeprom_pagecache);
> ++  PDATA(pgm)->flash_pagecache = NULL;
> ++  PDATA(pgm)->eeprom_pagecache = NULL;
>     if ((PDATA(pgm)->flash_pagecache = malloc(PDATA(pgm)->flash_pagesize)) == 
> NULL) {
> -     fprintf(stderr, "%s: stk500pp_initialize(): Out of memory\n",
> +     avrdude_message(MSG_INFO, "%s: stk500hv_initialize(): Out of memory\n",
>           progname);
> -+    PDATA(pgm)->eeprom_pagecache = NULL;
> -     return -1;
> -   }
> -   if ((PDATA(pgm)->eeprom_pagecache = malloc(PDATA(pgm)->eeprom_pagesize)) 
> == NULL) {
> -     fprintf(stderr, "%s: stk500pp_initialize(): Out of memory\n",
> +@@ -1486,6 +1490,7 @@ static int stk500hv_initialize(PROGRAMMER * pgm, AVRPA
> +     avrdude_message(MSG_INFO, "%s: stk500hv_initialize(): Out of memory\n",
>           progname);
>       free(PDATA(pgm)->flash_pagecache);
>  +    PDATA(pgm)->flash_pagecache = NULL;
> blob - 1988eb689b6bf479789a6082e7ed1e612a9b5e09
> file + devel/avrdude/pkg/PLIST
> --- devel/avrdude/pkg/PLIST
> +++ devel/avrdude/pkg/PLIST
> @@ -1,5 +1,9 @@
> -@comment $OpenBSD: PLIST,v 1.8 2018/09/04 12:46:10 espie Exp $
> +@comment $OpenBSD: PLIST,v$
>  @bin bin/avrdude
> +include/libavrdude.h
> +@static-lib lib/libavrdude.a
> +lib/libavrdude.la
> +@lib lib/libavrdude.so.${LIBavrdude_VERSION}
>  @man man/man1/avrdude.1
>  share/doc/avrdude/
>  share/doc/avrdude/avrdude-doc-${V}.pdf

-- 

Tracey Emery

Reply via email to