aarch64: Add support for debugging in HYP mode on ARMv8-A cores
[fw/openocd] / src / jtag / jtag.h
index 3d2146c36532056240da709ac3773da4f030ed7f..7f033e0e7099ab605e896d6f9194c519af14239d 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.,                                       *
-*   59 Temple Place - Suite 330, Boston, MA  02111-1307, 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
-
 #ifndef DEBUG_JTAG_IOZ
 #define DEBUG_JTAG_IOZ 64
 #endif
@@ -86,6 +76,14 @@ typedef enum tap_state {
 #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 +105,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 +119,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 +153,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 +162,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);
@@ -609,33 +605,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
@@ -671,8 +640,6 @@ void jtag_poll_set_enabled(bool value);
  * 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 */