diff --git a/src/jtag3.c b/src/jtag3.c
index 8eed8c29..a371a6a9 100644
--- a/src/jtag3.c
+++ b/src/jtag3.c
@@ -1198,6 +1198,7 @@ static int jtag3_initialize(PROGRAMMER * pgm, AVRPART * p)
 
     u16_to_b2(xd.nvm_base_addr, p->nvm_base);
     u16_to_b2(xd.ocd_base_addr, p->ocd_base);
+    xd.hvupdi_variant = p->hvupdi_variant;
 
     for (ln = lfirst(p->mem); ln; ln = lnext(ln))
     {
diff --git a/src/jtag3_private.h b/src/jtag3_private.h
index 3eeb61b3..677d2289 100644
--- a/src/jtag3_private.h
+++ b/src/jtag3_private.h
@@ -400,5 +400,7 @@ struct updi_device_desc {
     unsigned char flash_page_size_msb;  // Extends flash_page_size, used in 24-bit mode
 
     unsigned char address_mode;  // 0x00 = 16-bit mode, 0x01 = 24-bit mode
+
+    unsigned char hvupdi_variant; // Indicates the target UPDI HV implementation
 };
 #endif /* JTAG3_PRIVATE_EXPORTED */