The TPI protocol is based upon the communication protocol used by STK600 and AVRISP mkII. In those tools it is used for programming tinyAVR using TPI interface as well as AVR XMEGA devices using PDI and/or JTAG. This implementation supports only programming of tinyAVR devices using the TPI interface.
All multi-byte values (e.g. address and length fields) are big endian.
The protocol commands are put in the payload of EDBG commands with the handler set to TPIPROTOCOL. The responses are also sent as the payload of EDBG commands.
Note that the TPIPROTOCOL has no CMD_ACTIVATE_PHYSICAL. The ENTER_PROGMODE command will enable the physical and LEAVE_PROGMODE will deactivate it.