From a8b4b59e821d6691661a5ab6f1a4739a30bf33e4 Mon Sep 17 00:00:00 2001
From: joerg_wunsch <joerg_wunsch@81a1dc3b-b13d-400b-aceb-764788c761c2>
Date: Thu, 16 Jan 2014 07:27:41 +0000
Subject: [PATCH] In flip2_initialize(), check user is running on an Xmega
 device.

git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk/avrdude@1260 81a1dc3b-b13d-400b-aceb-764788c761c2
---
 ChangeLog | 5 +++++
 flip.c    | 9 +++++++++
 2 files changed, 14 insertions(+)

diff --git a/ChangeLog b/ChangeLog
index 0c07fbca..4a8e8737 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2014-01-16  Joerg Wunsch <j.gnu@uriah.heep.sax.de>
+
+	* flip.c (flip2_initialize): Check user is running on an Xmega
+	device.
+
 2014-01-15  Joerg Wunsch <j.gnu@uriah.heep.sax.de>
 
 	* flip.c: Added some verbose-level messages (-vv)
diff --git a/flip.c b/flip.c
index 9c071d26..d9ffb5e4 100644
--- a/flip.c
+++ b/flip.c
@@ -234,6 +234,15 @@ int flip2_initialize(PROGRAMMER* pgm, AVRPART *part)
   vid = (pgm->usbvid != 0) ? pgm->usbvid : USB_VENDOR_ATMEL;
   pid = (pgm->usbpid != 0) ? pgm->usbpid : part->usbpid;
 
+  if (!ovsigck && !(part->flags & AVRPART_HAS_PDI)) {
+    fprintf(stderr,
+            "%s: \"flip2\" (FLIP protocol version 2) is for Xmega devices.\n"
+            "%s For AT90USB* or ATmega*U* devices, use \"flip1\".\n"
+            "%s (Use -F to bypass this check.)\n",
+            progname, progbuf, progbuf);
+    return -1;
+  }
+
   result = dfu_init(FLIP2(pgm)->dfu, vid, pid);
 
   if (result != 0)