From dcd5374ae932372ed5f79dce39d85190053cbc38 Mon Sep 17 00:00:00 2001
From: MCUdude <hansibull@gmail.com>
Date: Sun, 2 Jan 2022 12:57:42 +0100
Subject: [PATCH] Print meaningful error if programmer doesn't support target

---
 src/jtagmkII.c | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/src/jtagmkII.c b/src/jtagmkII.c
index 263a1f6b..f41d126b 100644
--- a/src/jtagmkII.c
+++ b/src/jtagmkII.c
@@ -1305,6 +1305,14 @@ static int jtagmkII_initialize(PROGRAMMER * pgm, AVRPART * p)
   int ok;
   const char *ifname;
 
+  /* Abort and print error if programmer does not support the target microcontroller */
+  if ((strncmp(ldata(lfirst(pgm->id)), "jtag2updi", strlen("jtag2updi")) == 0 && p->flags & AVRPART_HAS_PDI) ||
+      (strncmp(ldata(lfirst(pgm->id)), "jtagmkII", strlen("jtagmkII")) == 0 && p->flags & AVRPART_HAS_UPDI)) {
+    avrdude_message(MSG_INFO, "Error: programmer %s does not support target %s\n\n",
+	  ldata(lfirst(pgm->id)), p->desc);
+    return -1;
+  }
+
   ok = 0;
   if (pgm->flag & PGM_FL_IS_DW) {
     ifname = "debugWire";