diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/jtag/interface.c | 2 | ||||
-rw-r--r-- | src/jtag/jlink.c | 11 | ||||
-rw-r--r-- | src/jtag/jtag.h | 3 | ||||
-rw-r--r-- | src/jtag/minidriver.h | 4 |
4 files changed, 9 insertions, 11 deletions
diff --git a/src/jtag/interface.c b/src/jtag/interface.c index e475b482..f0624142 100644 --- a/src/jtag/interface.c +++ b/src/jtag/interface.c @@ -413,7 +413,7 @@ tap_state_t jtag_debug_state_machine(const void *tms_buf, const void *tdi_buf, tms_buffer = (const uint8_t *)tms_buf; tdi_buffer = (const uint8_t *)tdi_buf; - tap_bytes = TAP_SCAN_BYTES(tap_bits); + tap_bytes = DIV_ROUND_UP(tap_bits, 8); DEBUG_JTAG_IO("TAP/SM: TMS bits: %u (bytes: %u)", tap_bits, tap_bytes); tap_out_bits = 0; diff --git a/src/jtag/jlink.c b/src/jtag/jlink.c index 24221357..23ebc62d 100644 --- a/src/jtag/jlink.c +++ b/src/jtag/jlink.c @@ -763,15 +763,16 @@ static int jlink_tap_execute(void) if (!tap_length) return ERROR_OK; - /* JLink returns an extra NULL in packet when size of in message is a multiple of 64, creates problems with usb comms */ - /* WARNING This will interfere with tap state counting */ - while ((TAP_SCAN_BYTES(tap_length)%64) == 0) + /* JLink returns an extra NULL in packet when size of incoming + * message is a multiple of 64, creates problems with USB comms. + * WARNING: This will interfere with tap state counting. */ + while ((DIV_ROUND_UP(tap_length, 8) % 64) == 0) { jlink_tap_append_step((tap_get_state() == TAP_RESET)?1:0, 0); } // number of full bytes (plus one if some would be left over) - byte_length = TAP_SCAN_BYTES(tap_length); + byte_length = DIV_ROUND_UP(tap_length, 8); bool use_jtag3 = jlink_hw_jtag_version >= 3; usb_out_buffer[0] = use_jtag3 ? EMU_CMD_HW_JTAG3 : EMU_CMD_HW_JTAG2; @@ -808,7 +809,7 @@ static int jlink_tap_execute(void) DEBUG_JTAG_IO("pending scan result, length = %d", length); #ifdef _DEBUG_USB_COMMS_ - jlink_debug_buffer(buffer, TAP_SCAN_BYTES(length)); + jlink_debug_buffer(buffer, DIV_ROUND_UP(length, 8)); #endif if (jtag_read_buffer(buffer, command) != ERROR_OK) diff --git a/src/jtag/jtag.h b/src/jtag/jtag.h index 5328ff81..ee3ca32b 100644 --- a/src/jtag/jtag.h +++ b/src/jtag/jtag.h @@ -46,9 +46,6 @@ */ #define DIM(x) (sizeof(x)/sizeof((x)[0])) -/** Calculate the number of bytes required to hold @a n TAP scan bits */ -#define TAP_SCAN_BYTES(n) DIV_ROUND_UP(n, 8) - /*-----</Macros>-------------------------------------------------*/ /** diff --git a/src/jtag/minidriver.h b/src/jtag/minidriver.h index 49931b7b..392a1906 100644 --- a/src/jtag/minidriver.h +++ b/src/jtag/minidriver.h @@ -58,7 +58,7 @@ static inline void interface_jtag_add_scan_check_alloc(struct scan_field *field) /* We're executing this synchronously, so try to use local storage. */ if (field->num_bits > 32) { - unsigned num_bytes = TAP_SCAN_BYTES(field->num_bits); + unsigned num_bytes = DIV_ROUND_UP(field->num_bits, 8); field->in_value = (uint8_t *)malloc(num_bytes); field->allocated = 1; } @@ -77,7 +77,7 @@ static inline void interface_jtag_alloc_in_value32(struct scan_field *field) static inline void interface_jtag_add_scan_check_alloc(struct scan_field *field) { - unsigned num_bytes = TAP_SCAN_BYTES(field->num_bits); + unsigned num_bytes = DIV_ROUND_UP(field->num_bits, 8); field->in_value = (uint8_t *)cmd_queue_alloc(num_bytes); } |