diff options
author | oharboe <oharboe@b42882b7-edfa-0310-969c-e2dbd0fdcd60> | 2008-03-11 09:06:00 +0000 |
---|---|---|
committer | oharboe <oharboe@b42882b7-edfa-0310-969c-e2dbd0fdcd60> | 2008-03-11 09:06:00 +0000 |
commit | 9a9cc91bcb61e340ba60b46dedb9017a58c8c91a (patch) | |
tree | 7320592f80e39038b77000aa74207ddedff3b5d8 /src/jtag/jtag.h | |
parent | 970e16603bde0a4c5334e5eb3c81264830b55798 (diff) |
- 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
Diffstat (limited to 'src/jtag/jtag.h')
-rw-r--r-- | src/jtag/jtag.h | 28 |
1 files changed, 18 insertions, 10 deletions
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 */ |