blob: 769ba8894e7fd898c6b4b60cf1568f0f8ca635cf [file]
// See LICENSE.SiFive for license details.
#include <stdlib.h>
#include <stdio.h>
#include <unistd.h>
#include "remote_bitbang.h"
int init = 0;
int jtag_tick(int port, unsigned char *jtag_TCK, unsigned char *jtag_TMS,
unsigned char *jtag_TDI, unsigned char *jtag_TRSTn,
unsigned char jtag_TDO)
{
if (!init) {
if (port < 0 || port > UINT16_MAX)
fprintf(stderr, "Port number of out range: %d\n", port);
init = rbs_init(port);
}
rbs_tick(jtag_TCK, jtag_TMS, jtag_TDI, jtag_TRSTn, jtag_TDO);
if (VERBOSE)
fprintf(
stderr,
"Tick with: TCK=%hhd TMS=%hhd TDI=%hhd TRSTn=%hhd --> TDO=%hhd\n",
*jtag_TCK, *jtag_TMS, *jtag_TDI, *jtag_TRSTn, jtag_TDO);
return rbs_done() ? (rbs_exit_code() << 1 | 1) : 0;
}