diff --git a/Projects/AVRISP-MKII/Lib/XPROG/XPROGProtocol.c b/Projects/AVRISP-MKII/Lib/XPROG/XPROGProtocol.c index b8c435efa2..f3f888e1c1 100644 --- a/Projects/AVRISP-MKII/Lib/XPROG/XPROGProtocol.c +++ b/Projects/AVRISP-MKII/Lib/XPROG/XPROGProtocol.c @@ -74,7 +74,7 @@ void XPROGProtocol_SetMode(void) void XPROGProtocol_Command(void) { uint8_t XPROGCommand = Endpoint_Read_Byte(); - + switch (XPROGCommand) { case XPRG_CMD_ENTER_PROGMODE: @@ -420,13 +420,22 @@ static void XPROGProtocol_SetParam(void) uint8_t XPROGParam = Endpoint_Read_Byte(); /* Determine which parameter is being set, store the new parameter value */ - if (XPROGParam == XPRG_PARAM_NVMBASE) - XPROG_Param_NVMBase = Endpoint_Read_DWord_BE(); - else if (XPROGParam == XPRG_PARAM_EEPPAGESIZE) - XPROG_Param_EEPageSize = Endpoint_Read_Word_BE(); - else - ReturnStatus = XPRG_ERR_FAILED; - + switch (XPROGParam) + { + case XPRG_PARAM_NVMBASE: + XPROG_Param_NVMBase = Endpoint_Read_DWord_BE(); + break; + case XPRG_PARAM_EEPPAGESIZE: + XPROG_Param_EEPageSize = Endpoint_Read_Word_BE(); + break; + case XPRG_PARAM_UNDOC_1: + case XPRG_PARAM_UNDOC_2: + break; // Undocumented TPI parameter, just accept and discard + default: + ReturnStatus = XPRG_ERR_FAILED; + break; + } + Endpoint_ClearOUT(); Endpoint_SetEndpointDirection(ENDPOINT_DIR_IN); diff --git a/Projects/AVRISP-MKII/Lib/XPROG/XPROGProtocol.h b/Projects/AVRISP-MKII/Lib/XPROG/XPROGProtocol.h index 19a2a4d015..e42e50cec4 100644 --- a/Projects/AVRISP-MKII/Lib/XPROG/XPROGProtocol.h +++ b/Projects/AVRISP-MKII/Lib/XPROG/XPROGProtocol.h @@ -97,6 +97,8 @@ #define XPRG_PARAM_NVMBASE 0x01 #define XPRG_PARAM_EEPPAGESIZE 0x02 + #define XPRG_PARAM_UNDOC_1 0x03 + #define XPRG_PARAM_UNDOC_2 0x04 #define XPRG_PROTOCOL_PDI 0x00 #define XPRG_PROTOCOL_JTAG 0x01