X-Git-Url: https://git.gag.com/?a=blobdiff_plain;ds=sidebyside;f=src%2Fjtag%2Fjtag.h;h=a3ce3711694d3442b5a2356faef022ac42d6e2ed;hb=8d7ddde5f104dde8949dbefcad85f08b7313e126;hp=a6d16e932e59f5479e5c8148c1476ed3c1a97c68;hpb=7f6bab0c4c36d7a64f933904e5add9bc6b36d78c;p=fw%2Fopenocd diff --git a/src/jtag/jtag.h b/src/jtag/jtag.h index a6d16e932..a3ce37116 100644 --- a/src/jtag/jtag.h +++ b/src/jtag/jtag.h @@ -2,7 +2,7 @@ * Copyright (C) 2005 by Dominic Rath * * Dominic.Rath@gmx.de * * * -* Copyright (C) 2007,2008 Øyvind Harboe * +* Copyright (C) 2007-2010 Øyvind Harboe * * oyvind.harboe@zylin.com * * * * This program is free software; you can redistribute it and/or modify * @@ -112,7 +112,7 @@ struct scan_field { /// The number of bits this field specifies (up to 32) int num_bits; /// A pointer to value to be scanned into the device - uint8_t* out_value; + const uint8_t* out_value; /// A pointer to a 32-bit memory location for data scanned out uint8_t* in_value; @@ -164,6 +164,8 @@ struct jtag_tap { struct jtag_tap_event_action *event_action; struct jtag_tap* next_tap; + /* dap instance if some null if no instance , initialized to 0 by calloc*/ + struct adiv5_dap *dap; }; void jtag_tap_init(struct jtag_tap *tap); @@ -173,6 +175,7 @@ struct jtag_tap* jtag_all_taps(void); const char *jtag_tap_name(const struct jtag_tap *tap); struct jtag_tap* jtag_tap_by_string(const char* dotted_name); struct jtag_tap* jtag_tap_by_jim_obj(Jim_Interp* interp, Jim_Obj* obj); +struct jtag_tap* jtag_tap_by_position(unsigned abs_position); struct jtag_tap* jtag_tap_next_enabled(struct jtag_tap* p); unsigned jtag_tap_count_enabled(void); unsigned jtag_tap_count(void); @@ -239,7 +242,7 @@ int jtag_call_event_callbacks(enum jtag_event event); /// @returns The current JTAG speed setting. -int jtag_get_speed(void); +int jtag_get_speed(int *speed); /** * Given a @a speed setting, use the interface @c speed_div callback to @@ -311,6 +314,10 @@ int adapter_init(struct command_context* cmd_ctx); /// Shutdown the debug adapter upon program exit. int adapter_quit(void); +/// Set ms to sleep after jtag_execute_queue() flushes queue. Debug +/// purposes. +void jtag_set_flush_queue_sleep(int ms); + /** * Initialize JTAG chain using only a RESET reset. If init fails, * try reset + init. @@ -661,8 +668,6 @@ void jtag_sleep(uint32_t us); * called with a non-zero error code. */ void jtag_set_error(int error); -/// @returns The current value of jtag_error -int jtag_get_error(void); /** * Resets jtag_error to ERROR_OK, returning its previous value. * @returns The previous value of @c jtag_error. @@ -691,4 +696,8 @@ void jtag_poll_set_enabled(bool value); * level APIs that are used in inner loops. */ #include +bool transport_is_jtag(void); + +int jim_jtag_newtap(Jim_Interp *interp, int argc, Jim_Obj *const *argv); + #endif /* JTAG_H */