Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 19 Apr 2017 19:36:34 +0000 (UTC)
From:      Boris Samorodov <bsam@FreeBSD.org>
To:        ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org
Subject:   svn commit: r438906 - in head/devel: . arduino-avrdude arduino-avrdude/files
Message-ID:  <201704191936.v3JJaY0R065484@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: bsam
Date: Wed Apr 19 19:36:33 2017
New Revision: 438906
URL: https://svnweb.freebsd.org/changeset/ports/438906

Log:
  AVRDUDE - AVR Downloader/UploaDEr - is a program for updating the
  flash, eeprom, and fuse bit memories of Atmel AVR microcontrollers.
  It operates with several programmers including STK500 and most
  directly connect parallel port style programmers.
  
  WWW: http://www.nongnu.org/avrdude/
  
  PR:		218234
  Submitted by:	bsdports@kyle-evans.net

Added:
  head/devel/arduino-avrdude/
  head/devel/arduino-avrdude/Makefile   (contents, props changed)
  head/devel/arduino-avrdude/distinfo   (contents, props changed)
  head/devel/arduino-avrdude/files/
  head/devel/arduino-avrdude/files/patch-Makefile.in   (contents, props changed)
  head/devel/arduino-avrdude/files/patch-avr.c   (contents, props changed)
  head/devel/arduino-avrdude/files/patch-avrdude.conf.in   (contents, props changed)
  head/devel/arduino-avrdude/files/patch-bitbang.c   (contents, props changed)
  head/devel/arduino-avrdude/files/patch-libavrdude.h   (contents, props changed)
  head/devel/arduino-avrdude/files/patch-main.c   (contents, props changed)
  head/devel/arduino-avrdude/pkg-descr   (contents, props changed)
Modified:
  head/devel/Makefile

Modified: head/devel/Makefile
==============================================================================
--- head/devel/Makefile	Wed Apr 19 19:30:05 2017	(r438905)
+++ head/devel/Makefile	Wed Apr 19 19:36:33 2017	(r438906)
@@ -99,6 +99,7 @@
     SUBDIR += apr2
     SUBDIR += arcanist
     SUBDIR += arduino
+    SUBDIR += arduino-avrdude
     SUBDIR += arduino-builder
     SUBDIR += arduino-core
     SUBDIR += arduino-ctags

Added: head/devel/arduino-avrdude/Makefile
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/devel/arduino-avrdude/Makefile	Wed Apr 19 19:36:33 2017	(r438906)
@@ -0,0 +1,42 @@
+# $FreeBSD$
+
+PORTNAME=	avrdude
+PORTVERSION=	6.3
+CATEGORIES=	devel
+MASTER_SITES=	SAVANNAH/avrdude
+PKGNAMEPREFIX=	arduino-
+
+MAINTAINER=	bsdports@kyle-evans.net
+COMMENT=	Program for programming the on-chip memory of Atmel AVR Arduino CPUs
+
+LICENSE=	GPLv2
+LICENSE_FILE=	${WRKSRC}/COPYING
+
+LIB_DEPENDS=	libftdi1.so:devel/libftdi1
+
+GNU_CONFIGURE=	yes
+USES=		libtool localbase readline
+USE_LDCONFIG=	yes
+INSTALL_TARGET=	install-strip
+MAKE_JOBS_UNSAFE=	yes
+
+MAKE_ENV+=	PKGNAMEPREFIX=${PKGNAMEPREFIX}
+
+CONFIGURE_ARGS+=	--disable-shared --disable-static
+
+PLIST_FILES=	bin/arduino-avrdude \
+		etc/arduino-avrdude.conf \
+		man/man1/arduino-avrdude.1.gz
+
+post-patch:
+	@${REINPLACE_CMD} -e 's|-lusb-1.0|-lusb|g' ${WRKSRC}/configure
+
+post-configure:
+	@${MV} ${WRKSRC}/${PORTNAME}.1 ${WRKSRC}/${PKGNAMEPREFIX}${PORTNAME}.1
+	@${MV} ${WRKSRC}/${PORTNAME}.conf ${WRKSRC}/${PKGNAMEPREFIX}${PORTNAME}.conf
+
+post-install:
+	@${RM} ${STAGEDIR}${PREFIX}/include/lib${PORTNAME}.h
+	@${RM} ${STAGEDIR}${PREFIX}/lib/lib${PORTNAME}.a
+
+.include <bsd.port.mk>

Added: head/devel/arduino-avrdude/distinfo
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/devel/arduino-avrdude/distinfo	Wed Apr 19 19:36:33 2017	(r438906)
@@ -0,0 +1,3 @@
+TIMESTAMP = 1490880510
+SHA256 (avrdude-6.3.tar.gz) = 0f9f731b6394ca7795b88359689a7fa1fba818c6e1d962513eb28da670e0a196
+SIZE (avrdude-6.3.tar.gz) = 909744

Added: head/devel/arduino-avrdude/files/patch-Makefile.in
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/devel/arduino-avrdude/files/patch-Makefile.in	Wed Apr 19 19:36:33 2017	(r438906)
@@ -0,0 +1,62 @@
+--- Makefile.in.orig	2017-03-30 13:30:41 UTC
++++ Makefile.in
+@@ -115,7 +115,7 @@ POST_UNINSTALL = :
+ build_triplet = @build@
+ host_triplet = @host@
+ target_triplet = @target@
+-bin_PROGRAMS = avrdude$(EXEEXT)
++bin_PROGRAMS = $(PKGNAMEPREFIX)avrdude$(EXEEXT)
+ subdir = .
+ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+ am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \
+@@ -540,7 +540,7 @@ EXTRA_DIST = \
+ 	ChangeLog-2011 \
+ 	ChangeLog-2012 \
+ 	ChangeLog-2013 \
+-	avrdude.1 \
++	$(PKGNAMEPREFIX)avrdude.1 \
+ 	avrdude.spec \
+ 	bootstrap
+ 
+@@ -664,8 +664,8 @@ avrdude_SOURCES = \
+ 	term.c \
+ 	term.h
+ 
+-man_MANS = avrdude.1
+-sysconf_DATA = avrdude.conf
++man_MANS = $(PKGNAMEPREFIX)avrdude.1
++sysconf_DATA = $(PKGNAMEPREFIX)avrdude.conf
+ ACLOCAL_AMFLAGS = -I m4
+ all: $(BUILT_SOURCES) ac_cfg.h
+ 	$(MAKE) $(AM_MAKEFLAGS) all-recursive
+@@ -823,8 +823,8 @@ clean-binPROGRAMS:
+ 	echo " rm -f" $$list; \
+ 	rm -f $$list
+ 
+-avrdude$(EXEEXT): $(avrdude_OBJECTS) $(avrdude_DEPENDENCIES) $(EXTRA_avrdude_DEPENDENCIES) 
+-	@rm -f avrdude$(EXEEXT)
++$(PKGNAMEPREFIX)avrdude$(EXEEXT): $(avrdude_OBJECTS) $(avrdude_DEPENDENCIES) $(EXTRA_avrdude_DEPENDENCIES) 
++	@rm -f $(PKGNAMEPREFIX)avrdude$(EXEEXT)
+ 	$(AM_V_CCLD)$(avrdude_LINK) $(avrdude_OBJECTS) $(avrdude_LDADD) $(LIBS)
+ 
+ mostlyclean-compile:
+@@ -2490,14 +2490,14 @@ dist-hook:
+ install-exec-local: backup-avrdude-conf
+ 
+ distclean-local:
+-	rm -f avrdude.conf
++	rm -f $(PKGNAMEPREFIX)avrdude.conf
+ 
+ # This will get run before the config file is installed.
+ backup-avrdude-conf:
+-	@echo "Backing up avrdude.conf in ${DESTDIR}${sysconfdir}"
+-	@if test -e ${DESTDIR}${sysconfdir}/avrdude.conf; then \
+-		cp -pR ${DESTDIR}${sysconfdir}/avrdude.conf \
+-			${DESTDIR}${sysconfdir}/avrdude.conf.bak; \
++	@echo "Backing up ${PKGNAMEPREFIX}avrdude.conf in ${DESTDIR}${sysconfdir}"
++	@if test -e ${DESTDIR}${sysconfdir}/$(PKGNAMEPREFIX)avrdude.conf; then \
++		cp -pR ${DESTDIR}${sysconfdir}/$(PKGNAMEPREFIX)avrdude.conf \
++			${DESTDIR}${sysconfdir}/$(PKGNAMEPREFIX)avrdude.conf.bak; \
+ 	fi
+ 
+ # Tell versions [3.59,3.63) of GNU make to not export all variables.

Added: head/devel/arduino-avrdude/files/patch-avr.c
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/devel/arduino-avrdude/files/patch-avr.c	Wed Apr 19 19:36:33 2017	(r438906)
@@ -0,0 +1,67 @@
+--- avr.c.orig	2017-03-30 13:30:41 UTC
++++ avr.c
+@@ -1058,7 +1058,40 @@ int avr_signature(PROGRAMMER * pgm, AVRPART * p)
+   return 0;
+ }
+ 
++uint8_t get_fuse_bitmask(AVRMEM * m) {
++  uint8_t bitmask_r = 0;
++  uint8_t bitmask_w = 0;
++  int i, j;
+ 
++  if (m->size > 1) {
++    // not a fuse, compare bytes directly
++    return 0xFF;
++  }
++
++  for (i=0; i<AVR_OP_MAX; i++) {
++    if (m->op[i] && i == AVR_OP_READ) {
++      for (j=7; j>=0; j--) {
++        bitmask_r |= (m->op[i]->bit[j].type != AVR_CMDBIT_IGNORE) << j;
++      }
++    }
++    if (m->op[i] && i == AVR_OP_WRITE) {
++      for (j=7; j>=0; j--) {
++        bitmask_w |= (m->op[i]->bit[j].type != AVR_CMDBIT_VALUE  &&
++          m->op[i]->bit[j].type != AVR_CMDBIT_IGNORE) << j;
++      }
++    }
++  }
++  return bitmask_r & bitmask_w;
++}
++
++int compare_memory_masked(AVRMEM * m, unsigned char buf1, unsigned char buf2) {
++  uint8_t bitmask = 0xFF;
++  if(m) {
++    bitmask = get_fuse_bitmask(m);
++  }
++  return ((buf1 & bitmask) != (buf2 & bitmask));
++}
++
+ /*
+  * Verify the memory buffer of p with that of v.  The byte range of v,
+  * may be a subset of p.  The byte range of p should cover the whole
+@@ -1104,11 +1137,18 @@ int avr_verify(AVRPART * p, AVRPART * v, char * memtyp
+   for (i=0; i<size; i++) {
+     if ((b->tags[i] & TAG_ALLOCATED) != 0 &&
+         buf1[i] != buf2[i]) {
+-      avrdude_message(MSG_INFO, "%s: verification error, first mismatch at byte 0x%04x\n"
+-                      "%s0x%02x != 0x%02x\n",
+-                      progname, i,
+-                      progbuf, buf1[i], buf2[i]);
+-      return -1;
++      if(compare_memory_masked(a , buf1[i], buf2[i])) {
++        avrdude_message(MSG_INFO, "%s: verification error, first mismatch at byte 0x%04x\n"
++                        "%s0x%02x != 0x%02x\n",
++                        progname, i,
++                        progbuf, buf1[i], buf2[i]);
++        return -1;
++      } else {
++        avrdude_message(MSG_INFO, "%s: WARNING: invalid value for unused bits in fuse \"%s\", should be set to 1 according to datasheet\n"
++                        "This behaviour is deprecated and will result in an error in future version\n"
++                        "You probably want to use 0x%02x instead of 0x%02x (double check with your datasheet first).\n",
++                        progname, memtype, buf1[i], buf2[i]);
++      }
+     }
+   }
+ 

Added: head/devel/arduino-avrdude/files/patch-avrdude.conf.in
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/devel/arduino-avrdude/files/patch-avrdude.conf.in	Wed Apr 19 19:36:33 2017	(r438906)
@@ -0,0 +1,68 @@
+--- avrdude.conf.in.orig	2017-03-30 13:30:41 UTC
++++ avrdude.conf.in
+@@ -874,6 +874,24 @@ programmer
+   usbpid     = 0x0c9f;
+ ;
+ 
++ programmer
++  id    = "arduinoisp";
++  desc  = "Arduino ISP Programmer";
++  type  = "usbtiny";
++  connection_type = usb;
++  usbvid     = 0x2341;
++  usbpid     = 0x0049;
++;
++
++ programmer
++  id    = "arduinoisporg";
++  desc  = "Arduino ISP Programmer";
++  type  = "usbtiny";
++  connection_type = usb;
++  usbvid     = 0x2A03;
++  usbpid     = 0x0049;
++;
++
+ programmer
+   id    = "butterfly";
+   desc  = "Atmel Butterfly Development Board";
+@@ -6530,6 +6548,11 @@ part
+                           "x x x x  x x x x   i i i i  i i i i";
+       ;
+ 
++    memory "efuse"
++        size            = 0;
++      ;
++
++
+     memory "lock"
+         size            = 1;
+         min_write_delay = 2000;
+@@ -9747,7 +9770,7 @@ part
+      avr910_devcode   = 0x20;
+      signature        = 0x1e 0x93 0x0b;
+      reset            = io;
+-     chip_erase_delay = 4500;
++     chip_erase_delay = 400000;
+ 
+      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";
+@@ -9792,8 +9815,8 @@ part
+          size            = 512;
+         paged           = no;
+         page_size       = 4;
+-         min_write_delay = 4000;
+-         max_write_delay = 4500;
++         min_write_delay = 30000;
++         max_write_delay = 30000;
+          readback_p1     = 0xff;
+          readback_p2     = 0xff;
+          read            = "1  0  1  0   0  0  0  0    0 0 0 x  x x x a8",
+@@ -9813,7 +9836,7 @@ part
+ 			  "  x   x   x   x      x   x   x   x";
+ 
+ 	mode		= 0x41;
+-	delay		= 6;
++	delay		= 12;
+ 	blocksize	= 4;
+ 	readsize	= 256;
+        ;

Added: head/devel/arduino-avrdude/files/patch-bitbang.c
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/devel/arduino-avrdude/files/patch-bitbang.c	Wed Apr 19 19:36:33 2017	(r438906)
@@ -0,0 +1,11 @@
+--- bitbang.c.orig	2017-03-30 13:30:41 UTC
++++ bitbang.c
+@@ -331,7 +331,7 @@ int bitbang_cmd(PROGRAMMER * pgm, const unsigned char 
+     res[i] = bitbang_txrx(pgm, cmd[i]);
+   }
+ 
+-    if(verbose >= 2)
++    if(verbose > 4)
+ 	{
+         avrdude_message(MSG_NOTICE2, "bitbang_cmd(): [ ");
+         for(i = 0; i < 4; i++)

Added: head/devel/arduino-avrdude/files/patch-libavrdude.h
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/devel/arduino-avrdude/files/patch-libavrdude.h	Wed Apr 19 19:36:33 2017	(r438906)
@@ -0,0 +1,11 @@
+--- libavrdude.h.orig	2017-03-30 13:30:41 UTC
++++ libavrdude.h
+@@ -337,6 +337,8 @@ typedef void (*walk_avrparts_cb)(const char *name, con
+                                  void *cookie);
+ void walk_avrparts(LISTID avrparts, walk_avrparts_cb cb, void *cookie);
+ void sort_avrparts(LISTID avrparts);
++uint8_t get_fuse_bitmask(AVRMEM * m);
++int compare_memory_masked(AVRMEM * m, unsigned char buf1, unsigned char buf2);
+ #ifdef __cplusplus
+ }
+ #endif

Added: head/devel/arduino-avrdude/files/patch-main.c
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/devel/arduino-avrdude/files/patch-main.c	Wed Apr 19 19:36:33 2017	(r438906)
@@ -0,0 +1,44 @@
+--- main.c.orig	2017-03-30 13:30:41 UTC
++++ main.c
+@@ -1264,8 +1264,10 @@ int main(int argc, char * argv [])
+       }
+     }
+     
++    AVRMEM * m;
++    m = avr_locate_mem(p, "fuse");
+     /* Now check what fuses are against what they should be */
+-    if (safemodeafter_fuse != safemode_fuse) {
++    if (compare_memory_masked(m, safemodeafter_fuse, safemode_fuse)) {
+       fuses_updated = 1;
+       avrdude_message(MSG_INFO, "%s: safemode: fuse changed! Was %x, and is now %x\n",
+               progname, safemode_fuse, safemodeafter_fuse);
+@@ -1293,7 +1295,8 @@ int main(int argc, char * argv [])
+     }
+ 
+     /* Now check what fuses are against what they should be */
+-    if (safemodeafter_lfuse != safemode_lfuse) {
++    m = avr_locate_mem(p, "lfuse");
++    if (compare_memory_masked(m, safemodeafter_lfuse, safemode_lfuse)) {
+       fuses_updated = 1;
+       avrdude_message(MSG_INFO, "%s: safemode: lfuse changed! Was %x, and is now %x\n",
+               progname, safemode_lfuse, safemodeafter_lfuse);
+@@ -1321,7 +1324,8 @@ int main(int argc, char * argv [])
+     }
+ 
+     /* Now check what fuses are against what they should be */
+-    if (safemodeafter_hfuse != safemode_hfuse) {
++    m = avr_locate_mem(p, "hfuse");
++    if (compare_memory_masked(m, safemodeafter_hfuse, safemode_hfuse)) {
+       fuses_updated = 1;
+       avrdude_message(MSG_INFO, "%s: safemode: hfuse changed! Was %x, and is now %x\n",
+               progname, safemode_hfuse, safemodeafter_hfuse);
+@@ -1346,7 +1350,8 @@ int main(int argc, char * argv [])
+     }
+ 
+     /* Now check what fuses are against what they should be */
+-    if (safemodeafter_efuse != safemode_efuse) {
++    m = avr_locate_mem(p, "efuse");
++    if (compare_memory_masked(m, safemodeafter_efuse, safemode_efuse)) {
+       fuses_updated = 1;
+       avrdude_message(MSG_INFO, "%s: safemode: efuse changed! Was %x, and is now %x\n",
+               progname, safemode_efuse, safemodeafter_efuse);

Added: head/devel/arduino-avrdude/pkg-descr
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/devel/arduino-avrdude/pkg-descr	Wed Apr 19 19:36:33 2017	(r438906)
@@ -0,0 +1,6 @@
+AVRDUDE - AVR Downloader/UploaDEr - is a program for updating the
+flash, eeprom, and fuse bit memories of Atmel AVR microcontrollers.
+It operates with several programmers including STK500 and most
+directly connect parallel port style programmers.
+
+WWW: http://www.nongnu.org/avrdude/



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201704191936.v3JJaY0R065484>