From 9a9cc91bcb61e340ba60b46dedb9017a58c8c91a Mon Sep 17 00:00:00 2001 From: oharboe Date: Tue, 11 Mar 2008 09:06:00 +0000 Subject: - fixed jtag_add_reset(). It no longer causes jtag_execute_queue() to fail for two of it's return codes. A little bit weird, but compatible with existing codebase. - tightend up error handling. Since the jtag_xxx() is a queue that is either executed as things are added(hw queue) or a software queue, then errors can only be caught during jtag_execute_queue(). No error code is therefore returned from the queuing fn's. git-svn-id: svn://svn.berlios.de/openocd/trunk@492 b42882b7-edfa-0310-969c-e2dbd0fdcd60 --- src/jtag/jtag.h | 28 ++++++++++++++++++---------- 1 file changed, 18 insertions(+), 10 deletions(-) (limited to 'src/jtag/jtag.h') diff --git a/src/jtag/jtag.h b/src/jtag/jtag.h index df1ca08a..fba65852 100644 --- a/src/jtag/jtag.h +++ b/src/jtag/jtag.h @@ -245,13 +245,13 @@ extern int jtag_init(struct command_context_s *cmd_ctx); extern int jtag_register_commands(struct command_context_s *cmd_ctx); /* JTAG interface, can be implemented with a software or hardware fifo */ -extern int jtag_add_ir_scan(int num_fields, scan_field_t *fields, enum tap_state endstate); +extern void jtag_add_ir_scan(int num_fields, scan_field_t *fields, enum tap_state endstate); extern int interface_jtag_add_ir_scan(int num_fields, scan_field_t *fields, enum tap_state endstate); -extern int jtag_add_dr_scan(int num_fields, scan_field_t *fields, enum tap_state endstate); +extern void jtag_add_dr_scan(int num_fields, scan_field_t *fields, enum tap_state endstate); extern int interface_jtag_add_dr_scan(int num_fields, scan_field_t *fields, enum tap_state endstate); -extern int jtag_add_plain_ir_scan(int num_fields, scan_field_t *fields, enum tap_state endstate); +extern void jtag_add_plain_ir_scan(int num_fields, scan_field_t *fields, enum tap_state endstate); extern int interface_jtag_add_plain_ir_scan(int num_fields, scan_field_t *fields, enum tap_state endstate); -extern int jtag_add_plain_dr_scan(int num_fields, scan_field_t *fields, enum tap_state endstate); +extern void jtag_add_plain_dr_scan(int num_fields, scan_field_t *fields, enum tap_state endstate); extern int interface_jtag_add_plain_dr_scan(int num_fields, scan_field_t *fields, enum tap_state endstate); /* execute a state transition within the JTAG standard, but the exact path * path that is taken is undefined. Many implementations use precisely @@ -274,7 +274,7 @@ extern int interface_jtag_add_plain_dr_scan(int num_fields, scan_field_t *fields * NB! a jtag_add_statemove() to the current state is not * a no-operation. */ -extern int jtag_add_statemove(enum tap_state endstate); +extern void jtag_add_statemove(enum tap_state endstate); extern int interface_jtag_add_statemove(enum tap_state endstate); /* A list of unambigious single clock state transitions, not * all drivers can support this, but it is required for e.g. @@ -285,19 +285,28 @@ extern int interface_jtag_add_statemove(enum tap_state endstate); * Note that the first on the list must be reachable * via a single transition from the current state. */ -extern int jtag_add_pathmove(int num_states, enum tap_state *path); +extern void jtag_add_pathmove(int num_states, enum tap_state *path); extern int interface_jtag_add_pathmove(int num_states, enum tap_state *path); /* go to TAP_RTI, if we're not already there and cycle * precisely num_cycles in the TAP_RTI after which move * to the end state, if it is != TAP_RTI */ -extern int jtag_add_runtest(int num_cycles, enum tap_state endstate); +extern void jtag_add_runtest(int num_cycles, enum tap_state endstate); extern int interface_jtag_add_runtest(int num_cycles, enum tap_state endstate); +/* If it fails and one of the error messages below are returned, nothing is + * added to the queue and jtag_execute() won't return an error code. + * + * ERROR_JTAG_RESET_WOULD_ASSERT_TRST + * ERROR_JTAG_RESET_CANT_SRST + * + * All other error codes will result in jtag_execute_queue() returning + * an error. + */ extern int jtag_add_reset(int trst, int srst); extern int interface_jtag_add_reset(int trst, int srst); -extern int jtag_add_end_state(enum tap_state endstate); +extern void jtag_add_end_state(enum tap_state endstate); extern int interface_jtag_add_end_state(enum tap_state endstate); -extern int jtag_add_sleep(u32 us); +extern void jtag_add_sleep(u32 us); extern int interface_jtag_add_sleep(u32 us); @@ -339,7 +348,6 @@ extern int jtag_register_event_callback(int (*callback)(enum jtag_event event, v extern int jtag_verify_capture_ir; - /* error codes * JTAG subsystem uses codes between -100 and -199 */ -- cgit v1.2.3-18-g5258