Browse Source

ft2232: cleanup ft2232_write

* Include the size check into ft2232_write, so calling it is simpler.
* Use sizeof(buffer) when possible
tags/v0.5.0-rc1
Marc Pignat 13 years ago
committed by Øyvind Harboe
parent
commit
cd7f443103
1 changed files with 43 additions and 42 deletions
  1. +43
    -42
      src/jtag/drivers/ft2232.c

+ 43
- 42
src/jtag/drivers/ft2232.c View File

@@ -480,7 +480,6 @@ static int ft2232_write(uint8_t* buf, int size, uint32_t* bytes_written)
else
{
*bytes_written = dw_bytes_written;
return ERROR_OK;
}
#elif BUILD_FT2232_LIBFTDI == 1
int retval;
@@ -493,9 +492,15 @@ static int ft2232_write(uint8_t* buf, int size, uint32_t* bytes_written)
else
{
*bytes_written = retval;
return ERROR_OK;
}
#endif

if (*bytes_written != (uint32_t)size)
{
return ERROR_JTAG_DEVICE_ERROR;
}

return ERROR_OK;
}

static int ft2232_read(uint8_t* buf, uint32_t size, uint32_t* bytes_read)
@@ -569,8 +574,9 @@ static int ft2232h_ft4232h_adaptive_clocking(bool enable)
LOG_DEBUG("%2.2x", buf);

uint32_t bytes_written;
int retval = ft2232_write(&buf, 1, &bytes_written);
if ((ERROR_OK != retval) || (bytes_written != 1))
int retval;

if ((retval = ft2232_write(&buf, sizeof(buf), &bytes_written)) != ERROR_OK)
{
LOG_ERROR("couldn't write command to %s adaptive clocking"
, enable ? "enable" : "disable");
@@ -589,8 +595,8 @@ static int ft2232h_ft4232h_clk_divide_by_5(bool enable)
{
uint32_t bytes_written;
uint8_t buf = enable ? 0x8b : 0x8a;
int retval = ft2232_write(&buf, 1, &bytes_written);
if ((ERROR_OK != retval) || (bytes_written != 1))
if (ft2232_write(&buf, sizeof(buf), &bytes_written) != ERROR_OK)
{
LOG_ERROR("couldn't write command to %s clk divide by 5"
, enable ? "enable" : "disable");
@@ -627,7 +633,7 @@ static int ft2232_speed(int speed)
buf[2] = (speed >> 8) & 0xff; /* valueH */

LOG_DEBUG("%2.2x %2.2x %2.2x", buf[0], buf[1], buf[2]);
if (((retval = ft2232_write(buf, 3, &bytes_written)) != ERROR_OK) || (bytes_written != 3))
if ((retval = ft2232_write(buf, sizeof(buf), &bytes_written)) != ERROR_OK)
{
LOG_ERROR("couldn't set FT2232 TCK speed");
return retval;
@@ -737,7 +743,7 @@ static void ft2232_debug_dump_buffer(void)

for (i = 0; i < ft2232_buffer_size; i++)
{
line_p += snprintf(line_p, 256 - (line_p - line), "%2.2x ", ft2232_buffer[i]);
line_p += snprintf(line_p, sizeof(line) - (line_p - line), "%2.2x ", ft2232_buffer[i]);
if (i % 16 == 15)
{
LOG_DEBUG("%s", line);
@@ -2369,7 +2375,7 @@ static int ft2232_init(void)
ft2232_speed(jtag_get_speed());

buf[0] = 0x85; /* Disconnect TDI/DO to TDO/DI for Loopback */
if (((retval = ft2232_write(buf, 1, &bytes_written)) != ERROR_OK) || (bytes_written != 1))
if ((retval = ft2232_write(buf, 1, &bytes_written)) != ERROR_OK)
{
LOG_ERROR("couldn't write to FT2232 to disable loopback");
return ERROR_JTAG_INIT_FAILED;
@@ -2431,7 +2437,7 @@ static int ftx232_init_tail(void)
buf[2] = low_direction; /* dir (output = 1), TCK/TDI/TMS = out, TDO = in */
LOG_DEBUG("%2.2x %2.2x %2.2x", buf[0], buf[1], buf[2]);

if (((ft2232_write(buf, 3, &bytes_written)) != ERROR_OK) || (bytes_written != 3))
if (ft2232_write(buf, sizeof(buf), &bytes_written) != ERROR_OK)
{
LOG_ERROR("couldn't initialize FT2232 DBUS");
return ERROR_JTAG_INIT_FAILED;
@@ -2517,7 +2523,7 @@ static int axm0432_jtag_init(void)
buf[2] = low_direction; /* dir (output = 1), TCK/TDI/TMS = out, TDO = in, nOE = out */
LOG_DEBUG("%2.2x %2.2x %2.2x", buf[0], buf[1], buf[2]);

if (((ft2232_write(buf, 3, &bytes_written)) != ERROR_OK) || (bytes_written != 3))
if (ft2232_write(buf, sizeof(buf), &bytes_written) != ERROR_OK)
{
LOG_ERROR("couldn't initialize FT2232 with 'JTAGkey' layout");
return ERROR_JTAG_INIT_FAILED;
@@ -2564,7 +2570,7 @@ static int axm0432_jtag_init(void)
buf[2] = high_direction; /* all outputs (xRST and xRSTnOE) */
LOG_DEBUG("%2.2x %2.2x %2.2x", buf[0], buf[1], buf[2]);

if (((ft2232_write(buf, 3, &bytes_written)) != ERROR_OK) || (bytes_written != 3))
if (ft2232_write(buf, sizeof(buf), &bytes_written) != ERROR_OK)
{
LOG_ERROR("couldn't initialize FT2232 with 'Dicarlo' layout");
return ERROR_JTAG_INIT_FAILED;
@@ -2590,8 +2596,7 @@ static int redbee_init(void)
buf[1] = low_output;
LOG_DEBUG("%2.2x %2.2x %2.2x", buf[0], buf[1], buf[2]);

if (((ft2232_write(buf, 3, &bytes_written)) != ERROR_OK)
|| (bytes_written != 3))
if (ft2232_write(buf, sizeof(buf), &bytes_written) != ERROR_OK)
{
LOG_ERROR("couldn't initialize FT2232 with 'redbee' layout");
return ERROR_JTAG_INIT_FAILED;
@@ -2630,8 +2635,7 @@ static int redbee_init(void)
buf[2] = high_direction; /* all outputs (xRST and xRSTnOE) */
LOG_DEBUG("%2.2x %2.2x %2.2x", buf[0], buf[1], buf[2]);

if (((ft2232_write(buf, 3, &bytes_written)) != ERROR_OK)
|| (bytes_written != 3))
if (ft2232_write(buf, sizeof(buf), &bytes_written) != ERROR_OK)
{
LOG_ERROR("couldn't initialize FT2232 with 'redbee' layout");
return ERROR_JTAG_INIT_FAILED;
@@ -2654,7 +2658,7 @@ static int jtagkey_init(void)
buf[2] = low_direction; /* dir (output = 1), TCK/TDI/TMS = out, TDO = in, nOE = out */
LOG_DEBUG("%2.2x %2.2x %2.2x", buf[0], buf[1], buf[2]);

if (((ft2232_write(buf, 3, &bytes_written)) != ERROR_OK) || (bytes_written != 3))
if (ft2232_write(buf, sizeof(buf), &bytes_written) != ERROR_OK)
{
LOG_ERROR("couldn't initialize FT2232 with 'JTAGkey' layout");
return ERROR_JTAG_INIT_FAILED;
@@ -2713,7 +2717,7 @@ static int jtagkey_init(void)
buf[2] = high_direction; /* all outputs (xRST and xRSTnOE) */
LOG_DEBUG("%2.2x %2.2x %2.2x", buf[0], buf[1], buf[2]);

if (((ft2232_write(buf, 3, &bytes_written)) != ERROR_OK) || (bytes_written != 3))
if (ft2232_write(buf, sizeof(buf), &bytes_written) != ERROR_OK)
{
LOG_ERROR("couldn't initialize FT2232 with 'JTAGkey' layout");
return ERROR_JTAG_INIT_FAILED;
@@ -2736,7 +2740,7 @@ static int olimex_jtag_init(void)
buf[2] = low_direction; /* dir (output = 1), TCK/TDI/TMS = out, TDO = in, nOE = out */
LOG_DEBUG("%2.2x %2.2x %2.2x", buf[0], buf[1], buf[2]);

if (((ft2232_write(buf, 3, &bytes_written)) != ERROR_OK) || (bytes_written != 3))
if (ft2232_write(buf, sizeof(buf), &bytes_written) != ERROR_OK)
{
LOG_ERROR("couldn't initialize FT2232 with 'Olimex' layout");
return ERROR_JTAG_INIT_FAILED;
@@ -2780,7 +2784,7 @@ static int olimex_jtag_init(void)
buf[2] = high_direction; /* all outputs (xRST and xRSTnOE) */
LOG_DEBUG("%2.2x %2.2x %2.2x", buf[0], buf[1], buf[2]);

if ((ft2232_write(buf, 3, &bytes_written) != ERROR_OK) || (bytes_written != 3))
if (ft2232_write(buf, sizeof(buf), &bytes_written) != ERROR_OK)
{
LOG_ERROR("couldn't initialize FT2232 with 'Olimex' layout");
return ERROR_JTAG_INIT_FAILED;
@@ -2803,7 +2807,7 @@ static int flyswatter_init(void)
buf[2] = low_direction; /* dir (output = 1), TCK/TDI/TMS = out, TDO = in, nOE[12]=out, n[ST]srst = out */
LOG_DEBUG("%2.2x %2.2x %2.2x", buf[0], buf[1], buf[2]);

if (((ft2232_write(buf, 3, &bytes_written)) != ERROR_OK) || (bytes_written != 3))
if (ft2232_write(buf, sizeof(buf), &bytes_written) != ERROR_OK)
{
LOG_ERROR("couldn't initialize FT2232 with 'flyswatter' layout");
return ERROR_JTAG_INIT_FAILED;
@@ -2826,7 +2830,7 @@ static int flyswatter_init(void)
buf[2] = high_direction; /* all outputs (xRST and xRSTnOE) */
LOG_DEBUG("%2.2x %2.2x %2.2x", buf[0], buf[1], buf[2]);

if (((ft2232_write(buf, 3, &bytes_written)) != ERROR_OK) || (bytes_written != 3))
if (ft2232_write(buf, sizeof(buf), &bytes_written) != ERROR_OK)
{
LOG_ERROR("couldn't initialize FT2232 with 'flyswatter' layout");
return ERROR_JTAG_INIT_FAILED;
@@ -2849,7 +2853,7 @@ static int turtle_init(void)
buf[2] = low_direction; /* dir (output = 1), TCK/TDI/TMS = out, TDO = in, nOE = out */
LOG_DEBUG("%2.2x %2.2x %2.2x", buf[0], buf[1], buf[2]);

if (((ft2232_write(buf, 3, &bytes_written)) != ERROR_OK) || (bytes_written != 3))
if (ft2232_write(buf, sizeof(buf), &bytes_written) != ERROR_OK)
{
LOG_ERROR("couldn't initialize FT2232 with 'turtelizer2' layout");
return ERROR_JTAG_INIT_FAILED;
@@ -2866,7 +2870,7 @@ static int turtle_init(void)
buf[2] = high_direction;
LOG_DEBUG("%2.2x %2.2x %2.2x", buf[0], buf[1], buf[2]);

if (((ft2232_write(buf, 3, &bytes_written)) != ERROR_OK) || (bytes_written != 3))
if (ft2232_write(buf, sizeof(buf), &bytes_written) != ERROR_OK)
{
LOG_ERROR("couldn't initialize FT2232 with 'turtelizer2' layout");
return ERROR_JTAG_INIT_FAILED;
@@ -2889,7 +2893,7 @@ static int comstick_init(void)
buf[2] = low_direction; /* dir (output = 1), TCK/TDI/TMS = out, TDO = in, nOE = out */
LOG_DEBUG("%2.2x %2.2x %2.2x", buf[0], buf[1], buf[2]);

if (((ft2232_write(buf, 3, &bytes_written)) != ERROR_OK) || (bytes_written != 3))
if (ft2232_write(buf, sizeof(buf), &bytes_written) != ERROR_OK)
{
LOG_ERROR("couldn't initialize FT2232 with 'comstick' layout");
return ERROR_JTAG_INIT_FAILED;
@@ -2909,7 +2913,7 @@ static int comstick_init(void)
buf[2] = high_direction;
LOG_DEBUG("%2.2x %2.2x %2.2x", buf[0], buf[1], buf[2]);

if (((ft2232_write(buf, 3, &bytes_written)) != ERROR_OK) || (bytes_written != 3))
if (ft2232_write(buf, sizeof(buf), &bytes_written) != ERROR_OK)
{
LOG_ERROR("couldn't initialize FT2232 with 'comstick' layout");
return ERROR_JTAG_INIT_FAILED;
@@ -2932,7 +2936,7 @@ static int stm32stick_init(void)
buf[2] = low_direction; /* dir (output = 1), TCK/TDI/TMS = out, TDO = in, nOE = out */
LOG_DEBUG("%2.2x %2.2x %2.2x", buf[0], buf[1], buf[2]);

if (((ft2232_write(buf, 3, &bytes_written)) != ERROR_OK) || (bytes_written != 3))
if (ft2232_write(buf, sizeof(buf), &bytes_written) != ERROR_OK)
{
LOG_ERROR("couldn't initialize FT2232 with 'stm32stick' layout");
return ERROR_JTAG_INIT_FAILED;
@@ -2952,7 +2956,7 @@ static int stm32stick_init(void)
buf[2] = high_direction;
LOG_DEBUG("%2.2x %2.2x %2.2x", buf[0], buf[1], buf[2]);

if (((ft2232_write(buf, 3, &bytes_written)) != ERROR_OK) || (bytes_written != 3))
if (ft2232_write(buf, sizeof(buf), &bytes_written) != ERROR_OK)
{
LOG_ERROR("couldn't initialize FT2232 with 'stm32stick' layout");
return ERROR_JTAG_INIT_FAILED;
@@ -2975,7 +2979,7 @@ static int sheevaplug_init(void)
buf[2] = low_direction; /* dir (output = 1), TCK/TDI/TMS = out, TDO = in */
LOG_DEBUG("%2.2x %2.2x %2.2x", buf[0], buf[1], buf[2]);

if (((ft2232_write(buf, 3, &bytes_written)) != ERROR_OK) || (bytes_written != 3))
if (ft2232_write(buf, sizeof(buf), &bytes_written) != ERROR_OK)
{
LOG_ERROR("couldn't initialize FT2232 with 'sheevaplug' layout");
return ERROR_JTAG_INIT_FAILED;
@@ -3003,7 +3007,7 @@ static int sheevaplug_init(void)
buf[2] = high_direction; /* all outputs - xRST */
LOG_DEBUG("%2.2x %2.2x %2.2x", buf[0], buf[1], buf[2]);

if (((ft2232_write(buf, 3, &bytes_written)) != ERROR_OK) || (bytes_written != 3))
if (ft2232_write(buf, sizeof(buf), &bytes_written) != ERROR_OK)
{
LOG_ERROR("couldn't initialize FT2232 with 'sheevaplug' layout");
return ERROR_JTAG_INIT_FAILED;
@@ -3026,7 +3030,7 @@ static int cortino_jtag_init(void)
buf[2] = low_direction; /* dir (output = 1), TCK/TDI/TMS = out, TDO = in, nOE = out */
LOG_DEBUG("%2.2x %2.2x %2.2x", buf[0], buf[1], buf[2]);

if (((ft2232_write(buf, 3, &bytes_written)) != ERROR_OK) || (bytes_written != 3))
if (ft2232_write(buf, sizeof(buf), &bytes_written) != ERROR_OK)
{
LOG_ERROR("couldn't initialize FT2232 with 'cortino' layout");
return ERROR_JTAG_INIT_FAILED;
@@ -3046,7 +3050,7 @@ static int cortino_jtag_init(void)
buf[2] = high_direction;
LOG_DEBUG("%2.2x %2.2x %2.2x", buf[0], buf[1], buf[2]);

if (((ft2232_write(buf, 3, &bytes_written)) != ERROR_OK) || (bytes_written != 3))
if (ft2232_write(buf, sizeof(buf), &bytes_written) != ERROR_OK)
{
LOG_ERROR("couldn't initialize FT2232 with 'stm32stick' layout");
return ERROR_JTAG_INIT_FAILED;
@@ -3341,7 +3345,7 @@ static int icebear_jtag_init(void) {
buf[2] = low_direction;
LOG_DEBUG("%2.2x %2.2x %2.2x", buf[0], buf[1], buf[2]);

if (((ft2232_write(buf, 3, &bytes_written)) != ERROR_OK) || (bytes_written != 3)) {
if (ft2232_write(buf, sizeof(buf), &bytes_written) != ERROR_OK) {
LOG_ERROR("couldn't initialize FT2232 with 'IceBear' layout (low)");
return ERROR_JTAG_INIT_FAILED;
}
@@ -3356,7 +3360,7 @@ static int icebear_jtag_init(void) {
buf[2] = high_direction; /* all outputs (xRST and xRSTnOE) */
LOG_DEBUG("%2.2x %2.2x %2.2x", buf[0], buf[1], buf[2]);

if (((ft2232_write(buf, 3, &bytes_written)) != ERROR_OK) || (bytes_written != 3)) {
if (ft2232_write(buf, sizeof(buf), &bytes_written) != ERROR_OK) {
LOG_ERROR("couldn't initialize FT2232 with 'IceBear' layout (high)");
return ERROR_JTAG_INIT_FAILED;
}
@@ -4003,8 +4007,7 @@ static int signalyzer_h_init(void)
buf[1] = low_output;
buf[2] = low_direction;

if (((ft2232_write(buf, 3, &bytes_written)) != ERROR_OK)
|| (bytes_written != 3))
if (ft2232_write(buf, sizeof(buf), &bytes_written) != ERROR_OK)
{
LOG_ERROR("couldn't initialize Signalyzer-H layout");
return ERROR_JTAG_INIT_FAILED;
@@ -4018,8 +4021,7 @@ static int signalyzer_h_init(void)
buf[1] = high_output;
buf[2] = high_direction;

if ((ft2232_write(buf, 3, &bytes_written) != ERROR_OK)
|| (bytes_written != 3))
if ((retval = ft2232_write(buf, sizeof(buf), &bytes_written)) != ERROR_OK)
{
LOG_ERROR("couldn't initialize Signalyzer-H layout");
return ERROR_JTAG_INIT_FAILED;
@@ -4033,8 +4035,7 @@ static int signalyzer_h_init(void)
buf[1] = high_output;
buf[2] = high_direction;

if ((ft2232_write(buf, 3, &bytes_written) != ERROR_OK)
|| (bytes_written != 3))
if (ft2232_write(buf, sizeof(buf), &bytes_written) != ERROR_OK)
{
LOG_ERROR("couldn't initialize Signalyzer-H layout");
return ERROR_JTAG_INIT_FAILED;
@@ -4218,7 +4219,7 @@ static int ktlink_init(void)
buf[2] = low_direction;
LOG_DEBUG("%2.2x %2.2x %2.2x", buf[0], buf[1], buf[2]);

if (((ft2232_write(buf, 3, &bytes_written)) != ERROR_OK) || (bytes_written != 3))
if (ft2232_write(buf, sizeof(buf), &bytes_written) != ERROR_OK)
{
LOG_ERROR("couldn't initialize FT2232 with 'ktlink' layout");
return ERROR_JTAG_INIT_FAILED;
@@ -4256,7 +4257,7 @@ static int ktlink_init(void)
buf[2] = high_direction;
LOG_DEBUG("%2.2x %2.2x %2.2x", buf[0], buf[1], buf[2]);

if (((ft2232_write(buf, 3, &bytes_written)) != ERROR_OK) || (bytes_written != 3))
if (ft2232_write(buf, sizeof(buf), &bytes_written) != ERROR_OK)
{
LOG_ERROR("couldn't initialize FT2232 with 'ktlink' layout");
return ERROR_JTAG_INIT_FAILED;


Loading…
Cancel
Save