Cleanup of config/includes.
[openocd.git] / src / jtag / jtag.h
index 062563d349b5f26756959b4d28483ead996cbb6d..feb4614fa6fe5c6ff3cd06baf4cef70102c8f87c 100644 (file)
 *   GNU General Public License for more details.                          *
 *                                                                         *
 *   You should have received a copy of the GNU General Public License     *
-*   along with this program; if not, write to the                         *
-*   Free Software Foundation, Inc.,                                       *
-*   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.           *
+*   along with this program.  If not, see <http://www.gnu.org/licenses/>. *
 ***************************************************************************/
 
-#ifndef JTAG_H
-#define JTAG_H
+#ifndef OPENOCD_JTAG_JTAG_H
+#define OPENOCD_JTAG_JTAG_H
 
 #include <helper/binarybuffer.h>
 #include <helper/log.h>
-
-#ifdef _DEBUG_JTAG_IO_
-#define DEBUG_JTAG_IO(expr ...) \
-       do { if (1) LOG_DEBUG(expr); } while (0)
-#else
-#define DEBUG_JTAG_IO(expr ...) \
-       do { if (0) LOG_DEBUG(expr); } while (0)
-#endif
+#include <helper/replacements.h>
 
 #ifndef DEBUG_JTAG_IOZ
 #define DEBUG_JTAG_IOZ 64
 typedef enum tap_state {
        TAP_INVALID = -1,
 
-#if BUILD_ZY1000
-       /* These are the old numbers. Leave as-is for now... */
-       TAP_RESET    = 0, TAP_IDLE = 8,
-       TAP_DRSELECT = 1, TAP_DRCAPTURE = 2, TAP_DRSHIFT = 3, TAP_DREXIT1 = 4,
-       TAP_DRPAUSE  = 5, TAP_DREXIT2 = 6, TAP_DRUPDATE = 7,
-       TAP_IRSELECT = 9, TAP_IRCAPTURE = 10, TAP_IRSHIFT = 11, TAP_IREXIT1 = 12,
-       TAP_IRPAUSE  = 13, TAP_IREXIT2 = 14, TAP_IRUPDATE = 15,
-
-#else
        /* Proper ARM recommended numbers */
        TAP_DREXIT2 = 0x0,
        TAP_DREXIT1 = 0x1,
@@ -82,10 +64,16 @@ typedef enum tap_state {
        TAP_IRUPDATE = 0xd,
        TAP_IRCAPTURE = 0xe,
        TAP_RESET = 0x0f,
-
-#endif
 } tap_state_t;
 
+/**
+ * Defines arguments for reset functions
+ */
+#define SRST_DEASSERT   0
+#define SRST_ASSERT     1
+#define TRST_DEASSERT   0
+#define TRST_ASSERT     1
+
 /**
  * Function tap_state_name
  * Returns a string suitable for display representing the JTAG tap_state
@@ -107,7 +95,7 @@ extern tap_state_t cmd_queue_cur_state;
  * jtag_add_dr_scan_check() to validate the value that was scanned out.
  */
 struct scan_field {
-       /** The number of bits this field specifies (up to 32) */
+       /** The number of bits this field specifies */
        int num_bits;
        /** A pointer to value to be scanned into the device */
        const uint8_t *out_value;
@@ -121,9 +109,9 @@ struct scan_field {
 };
 
 struct jtag_tap {
-       const char *chip;
-       const char *tapname;
-       const char *dotted_name;
+       char *chip;
+       char *tapname;
+       char *dotted_name;
        int abs_chain_position;
        /** Is this TAP disabled after JTAG reset? */
        bool disabled_after_reset;
@@ -155,8 +143,6 @@ 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;
        /* private pointer to support none-jtag specific functions */
        void *priv;
 };
@@ -166,8 +152,8 @@ void jtag_tap_free(struct jtag_tap *tap);
 
 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 chardotted_name);
-struct jtag_tap *jtag_tap_by_jim_obj(Jim_Interpinterp, Jim_Obj *obj);
+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);
@@ -214,11 +200,11 @@ struct jtag_tap_event_action {
 };
 
 /**
- * Defines the function signature requide for JTAG event callback
+ * Defines the function signature required for JTAG event callback
  * functions, which are added with jtag_register_event_callback()
  * and removed jtag_unregister_event_callback().
  * @param event The event to handle.
- * @param prive A pointer to data that was passed to
+ * @param priv A pointer to data that was passed to
  *     jtag_register_event_callback().
  * @returns Must return ERROR_OK on success, or an error code on failure.
  *
@@ -253,7 +239,7 @@ int jtag_config_khz(unsigned khz);
  */
 int jtag_config_rclk(unsigned fallback_speed_khz);
 
-/** Retreives the clock speed of the JTAG interface in KHz. */
+/** Retrieves the clock speed of the JTAG interface in KHz. */
 unsigned jtag_get_speed_khz(void);
 
 enum reset_types {
@@ -396,7 +382,7 @@ typedef intptr_t jtag_callback_data_t;
 typedef void (*jtag_callback1_t)(jtag_callback_data_t data0);
 
 /** A simpler version of jtag_add_callback4(). */
-void jtag_add_callback(jtag_callback1_t, jtag_callback_data_t data0);
+void jtag_add_callback(jtag_callback1_t f, jtag_callback_data_t data0);
 
 
 /**
@@ -411,7 +397,7 @@ void jtag_add_callback(jtag_callback1_t, jtag_callback_data_t data0);
  * assumptions about what the callback does or what its arguments are.
  * These callbacks are typically executed *after* the *entire* JTAG
  * queue has been executed for e.g. USB interfaces, and they are
- * guaranteeed to be invoked in the order that they were queued.
+ * guaranteed to be invoked in the order that they were queued.
  *
  * If the execution of the queue fails before the callbacks, then --
  * depending on driver implementation -- the callbacks may or may not be
@@ -461,7 +447,7 @@ void jtag_add_tlr(void);
  * path when transitioning to/from end
  * state.
  *
- * A list of unambigious single clock state transitions, not
+ * A list of unambiguous single clock state transitions, not
  * all drivers can support this, but it is required for e.g.
  * XScale and Xilinx support
  *
@@ -609,33 +595,6 @@ void jtag_sleep(uint32_t us);
 #define ERROR_JTAG_TRANSITION_INVALID (-109)
 #define ERROR_JTAG_INIT_SOFT_FAIL    (-110)
 
-/**
- * jtag_add_dr_out() is a version of jtag_add_dr_scan() which
- * only scans data out. It operates on 32 bit integers instead
- * of 8 bit, which makes it a better impedance match with
- * the calling code which often operate on 32 bit integers.
- *
- * Current or end_state can not be TAP_RESET. end_state can be TAP_INVALID
- *
- * num_bits[i] is the number of bits to clock out from value[i] LSB first.
- *
- * If the device is in bypass, then that is an error condition in
- * the caller code that is not detected by this fn, whereas
- * jtag_add_dr_scan() does detect it. Similarly if the device is not in
- * bypass, data must be passed to it.
- *
- * If anything fails, then jtag_error will be set and jtag_execute() will
- * return an error. There is no way to determine if there was a failure
- * during this function call.
- *
- * This is an inline fn to speed up embedded hosts. Also note that
- * interface_jtag_add_dr_out() can be a *small* inline function for
- * embedded hosts.
- *
- * There is no jtag_add_dr_outin() version of this fn that also allows
- * clocking data back in. Patches gladly accepted!
- */
-
 /**
  * Set the current JTAG core execution error, unless one was set
  * by a previous call previously.  Driver or application code must
@@ -666,13 +625,8 @@ bool jtag_poll_get_enabled(void);
  */
 void jtag_poll_set_enabled(bool value);
 
-
-/* The minidriver may have inline versions of some of the low
- * level APIs that are used in inner loops. */
 #include <jtag/minidriver.h>
 
-bool transport_is_jtag(void);
-
 int jim_jtag_newtap(Jim_Interp *interp, int argc, Jim_Obj *const *argv);
 
-#endif /* JTAG_H */
+#endif /* OPENOCD_JTAG_JTAG_H */

Linking to existing account procedure

If you already have an account and want to add another login method you MUST first sign in with your existing account and then change URL to read https://review.openocd.org/login/?link to get to this page again but this time it'll work for linking. Thank you.

SSH host keys fingerprints

1024 SHA256:YKx8b7u5ZWdcbp7/4AeXNaqElP49m6QrwfXaqQGJAOk gerrit-code-review@openocd.zylin.com (DSA)
384 SHA256:jHIbSQa4REvwCFG4cq5LBlBLxmxSqelQPem/EXIrxjk gerrit-code-review@openocd.org (ECDSA)
521 SHA256:UAOPYkU9Fjtcao0Ul/Rrlnj/OsQvt+pgdYSZ4jOYdgs gerrit-code-review@openocd.org (ECDSA)
256 SHA256:A13M5QlnozFOvTllybRZH6vm7iSt0XLxbA48yfc2yfY gerrit-code-review@openocd.org (ECDSA)
256 SHA256:spYMBqEYoAOtK7yZBrcwE8ZpYt6b68Cfh9yEVetvbXg gerrit-code-review@openocd.org (ED25519)
+--[ED25519 256]--+
|=..              |
|+o..   .         |
|*.o   . .        |
|+B . . .         |
|Bo. = o S        |
|Oo.+ + =         |
|oB=.* = . o      |
| =+=.+   + E     |
|. .=o   . o      |
+----[SHA256]-----+
2048 SHA256:0Onrb7/PHjpo6iVZ7xQX2riKN83FJ3KGU0TvI0TaFG4 gerrit-code-review@openocd.zylin.com (RSA)