From 720722edaed657170ccc2ebb03165f92d79f29da Mon Sep 17 00:00:00 2001 From: MCUdude Date: Wed, 15 Apr 2026 12:30:50 +0200 Subject: [PATCH] Fix issue where programmers that can supply power couldn't read it using -x vtarg --- src/jtag3.c | 21 +++++++++++---------- src/stk500v2.c | 42 ++++++++++++++++++++++-------------------- 2 files changed, 33 insertions(+), 30 deletions(-) diff --git a/src/jtag3.c b/src/jtag3.c index 458853ed..c71f228d 100644 --- a/src/jtag3.c +++ b/src/jtag3.c @@ -1552,6 +1552,14 @@ static int jtag3_parseextparms(const PROGRAMMER *pgm, const LISTID extparms) { } if(str_starts(extended_param, "vtarg")) { + if(pgm->extra_features & HAS_VTARG_READ) { + // Get target voltage + if(str_eq(extended_param, "vtarg")) { + my.vtarg_get = true; + continue; + } + } + if(pgm->extra_features & HAS_VTARG_ADJ) { // Set target voltage if(str_starts(extended_param, "vtarg=")) { @@ -1567,19 +1575,12 @@ static int jtag3_parseextparms(const PROGRAMMER *pgm, const LISTID extparms) { my.vtarg_set = true; continue; } - pmsg_error("invalid setting in -x %s; use or -x vtarg=\n", extended_param); - rv = -1; - break; - } - if(pgm->extra_features & HAS_VTARG_READ) { - // Get target voltage - if(str_eq(extended_param, "vtarg")) { - my.vtarg_get = true; - continue; - } + pmsg_error("invalid setting in -x %s; use -x vtarg=\n", extended_param); rv = -1; break; } + rv = -1; + break; } if(str_starts(extended_param, "mode") && (str_starts(pgmid, "pickit4") || str_starts(pgmid, "snap"))) { diff --git a/src/stk500v2.c b/src/stk500v2.c index eaa605c1..1600f7e3 100644 --- a/src/stk500v2.c +++ b/src/stk500v2.c @@ -1728,6 +1728,14 @@ static int stk500v2_parseextparms(const PROGRAMMER *pgm, const LISTID extparms) const char *extended_param = ldata(ln); if(str_starts(extended_param, "vtarg")) { + if(pgm->extra_features & HAS_VTARG_READ) { + // Get target voltage + if(str_eq(extended_param, "vtarg")) { + my.vtarg_get = true; + continue; + } + } + if(pgm->extra_features & HAS_VTARG_ADJ) { // Set target voltage if(str_starts(extended_param, "vtarg=")) { @@ -1743,19 +1751,12 @@ static int stk500v2_parseextparms(const PROGRAMMER *pgm, const LISTID extparms) my.vtarg_set = true; continue; } - pmsg_error("invalid setting in -x %s; use or -x vtarg=\n", extended_param); - rv = -1; - break; - } - if(pgm->extra_features & HAS_VTARG_READ) { - // Get target voltage - if(str_eq(extended_param, "vtarg")) { - my.vtarg_get = true; - continue; - } + pmsg_error("invalid setting in -x %s; use -x vtarg=\n", extended_param); rv = -1; break; } + rv = -1; + break; } if(str_starts(extended_param, "varef")) { @@ -1988,6 +1989,14 @@ static int stk500v2_jtag3_parseextparms(const PROGRAMMER *pgm, const LISTID extp } if(str_starts(extended_param, "vtarg")) { + if(pgm->extra_features & HAS_VTARG_READ) { + // Get target voltage + if(str_eq(extended_param, "vtarg")) { + my.vtarg_get = true; + continue; + } + } + if(pgm->extra_features & HAS_VTARG_ADJ) { // Set target voltage if(str_starts(extended_param, "vtarg=")) { @@ -2003,19 +2012,12 @@ static int stk500v2_jtag3_parseextparms(const PROGRAMMER *pgm, const LISTID extp my.vtarg_set = true; continue; } - pmsg_error("invalid setting in -x %s; use or -x vtarg=\n", extended_param); - rv = -1; - break; - } - if(pgm->extra_features & HAS_VTARG_READ) { - // Get target voltage - if(str_eq(extended_param, "vtarg")) { - my.vtarg_get = true; - continue; - } + pmsg_error("invalid setting in -x %s; use -x vtarg=\n", extended_param); rv = -1; break; } + rv = -1; + break; } if(str_starts(extended_param, "mode") && (str_starts(pgmid, "pickit4") || str_starts(pgmid, "snap"))) {