* Copyright (C) 2005 by Dominic Rath *
* Dominic.Rath@gmx.de *
* *
-* Copyright (C) 2007,2008 Øyvind Harboe *
+* Copyright (C) 2007,2008 Øyvind Harboe *
* oyvind.harboe@zylin.com *
* *
* This program is free software; you can redistribute it and/or modify *
/* this is really: typedef jtag_tap_t */
/* But - the typedef is done in "types.h" */
-/* due to "forward decloration reasons" */
+/* due to "forward declaration reasons" */
struct jtag_tap_s
{
const char* chip;
uint32_t ir_capture_mask;
uint8_t* expected_mask; /**< Capture-IR expected mask */
uint32_t idcode;
+ bool hasidcode; /* not all devices have idcode, we'll discover this during chain examination */
/**< device identification code */
/// Array of expected identification codes */
JTAG_TRST_ASSERTED,
JTAG_TAP_EVENT_ENABLE,
JTAG_TAP_EVENT_DISABLE,
+ JTAG_TAP_EVENT_POST_RESET,
};
struct jtag_tap_event_action_s
* @returns ERROR_OK during configuration or on success, or an error
* code returned from the interface @c speed callback.
*/
-int jtag_set_speed(int speed);
+int jtag_config_speed(int speed);
/// Attempt to configure the interface for the specified KHz.
int jtag_config_khz(unsigned khz);
-/// Set the clock speed of the JTAG interface in KHz.
-void jtag_set_speed_khz(unsigned speed);
+/**
+ * Attempt to enable RTCK/RCLK. If that fails, fallback to the
+ * specified frequency.
+ */
+int jtag_config_rclk(unsigned fallback_speed_khz);
/// Retreives the clock speed of the JTAG interface in KHz.
unsigned jtag_get_speed_khz(void);
/// @returns the number of times the scan queue has been flushed
int jtag_get_flush_queue_count(void);
+/// Notify all TAP's about a TLR reset
+void jtag_notify_reset(void);
+
/* can be implemented by hw + sw */
extern int jtag_power_dropout(int* dropout);