remote: Implemented support for target clock tristating

This commit is contained in:
dragonmux 2022-08-10 00:26:44 +01:00 committed by Piotr Esden-Tempski
parent 01110a206b
commit 84527d501b
2 changed files with 31 additions and 21 deletions

View File

@ -261,7 +261,6 @@ static void remote_packet_process_jtag(unsigned i, char *packet)
}
static void remotePacketProcessGEN(unsigned i, char *packet)
{
(void)i;
uint32_t freq;
@ -320,6 +319,11 @@ static void remotePacketProcessGEN(unsigned i, char *packet)
remote_respond_string(REMOTE_RESP_OK, PLATFORM_IDENT "" FIRMWARE_VERSION);
break;
case REMOTE_TARGET_CLK_OE:
platform_target_clk_output_enable(packet[2] != '0');
remote_respond(REMOTE_RESP_OK, 0);
break;
default:
remote_respond(REMOTE_RESP_ERR, REMOTE_ERROR_UNRECOGNISED);
break;

View File

@ -62,26 +62,27 @@
#define REMOTE_RESP '&'
/* Generic protocol elements */
#define REMOTE_START 'A'
#define REMOTE_TDITDO_TMS 'D'
#define REMOTE_TDITDO_NOTMS 'd'
#define REMOTE_CYCLE 'c'
#define REMOTE_IN_PAR 'I'
#define REMOTE_FREQ_SET 'F'
#define REMOTE_FREQ_GET 'f'
#define REMOTE_IN 'i'
#define REMOTE_NEXT 'N'
#define REMOTE_OUT_PAR 'O'
#define REMOTE_OUT 'o'
#define REMOTE_PWR_SET 'P'
#define REMOTE_PWR_GET 'p'
#define REMOTE_RESET 'R'
#define REMOTE_INIT 'S'
#define REMOTE_TMS 'T'
#define REMOTE_VOLTAGE 'V'
#define REMOTE_NRST_SET 'Z'
#define REMOTE_NRST_GET 'z'
#define REMOTE_ADD_JTAG_DEV 'J'
#define REMOTE_START 'A'
#define REMOTE_TDITDO_TMS 'D'
#define REMOTE_TDITDO_NOTMS 'd'
#define REMOTE_CYCLE 'c'
#define REMOTE_IN_PAR 'I'
#define REMOTE_TARGET_CLK_OE 'E'
#define REMOTE_FREQ_SET 'F'
#define REMOTE_FREQ_GET 'f'
#define REMOTE_IN 'i'
#define REMOTE_NEXT 'N'
#define REMOTE_OUT_PAR 'O'
#define REMOTE_OUT 'o'
#define REMOTE_PWR_SET 'P'
#define REMOTE_PWR_GET 'p'
#define REMOTE_RESET 'R'
#define REMOTE_INIT 'S'
#define REMOTE_TMS 'T'
#define REMOTE_VOLTAGE 'V'
#define REMOTE_NRST_SET 'Z'
#define REMOTE_NRST_GET 'z'
#define REMOTE_ADD_JTAG_DEV 'J'
/* Protocol response options */
#define REMOTE_RESP_OK 'K'
@ -143,6 +144,11 @@
{ \
REMOTE_SOM, REMOTE_GEN_PACKET, REMOTE_PWR_GET, REMOTE_EOM, 0 \
}
#define REMOTE_TARGET_CLK_OE_STR \
(char[]) \
{ \
REMOTE_SOM, REMOTE_GEN_PACKET, REMOTE_TARGET_CLK_OE, '%', 'c', REMOTE_EOM, 0 \
}
/* SWDP protocol elements */
#define REMOTE_SWDP_PACKET 'S'