X-Git-Url: https://review.openocd.org/gitweb?p=openocd.git;a=blobdiff_plain;f=src%2Fjtag%2Fjtag.h;h=368cd726d2b1cf3a96f772e0f94a12d6fcc72b8a;hp=34a099b8ec593535304381bba24f1b3756eea098;hb=86e4324f1bd4cd8135cb857e4b940b1f2e872dc3;hpb=03803a9d792d613e60fcc0b5e810e68488e17b87 diff --git a/src/jtag/jtag.h b/src/jtag/jtag.h index 34a099b8ec..368cd726d2 100644 --- a/src/jtag/jtag.h +++ b/src/jtag/jtag.h @@ -62,7 +62,7 @@ */ typedef enum tap_state { -#if BUILD_ECOSBOARD +#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, @@ -123,21 +123,21 @@ typedef struct scan_field_s /// The number of bits this field specifies (up to 32) int num_bits; /// A pointer to value to be scanned into the device - u8* out_value; + uint8_t* out_value; /// A pointer to a 32-bit memory location for data scanned out - u8* in_value; + uint8_t* in_value; /// The value used to check the data scanned out. - u8* check_value; + uint8_t* check_value; /// The mask to go with check_value - u8* check_mask; + uint8_t* check_mask; /// in_value has been allocated for the queue int allocated; /// Indicates we modified the in_value. int modified; /// temporary storage for performing value checks synchronously - u8 intmp[4]; + uint8_t intmp[4]; } scan_field_t; typedef struct jtag_tap_event_action_s jtag_tap_event_action_t; @@ -151,23 +151,25 @@ struct jtag_tap_s const char* tapname; const char* dotted_name; int abs_chain_position; - /// Is this TAP enabled? - int enabled; + /// Is this TAP disabled after JTAG reset? + bool disabled_after_reset; + /// Is this TAP currently enabled? + bool enabled; int ir_length; /**< size of instruction register */ - u32 ir_capture_value; - u8* expected; /**< Capture-IR expected value */ - u32 ir_capture_mask; - u8* expected_mask; /**< Capture-IR expected mask */ - u32 idcode; + uint32_t ir_capture_value; + uint8_t* expected; /**< Capture-IR expected value */ + uint32_t ir_capture_mask; + uint8_t* expected_mask; /**< Capture-IR expected mask */ + uint32_t idcode; /**< device identification code */ /// Array of expected identification codes */ - u32* expected_ids; + uint32_t* expected_ids; /// Number of expected identification codes - u8 expected_ids_cnt; + uint8_t expected_ids_cnt; /// current instruction - u8* cur_instr; + uint8_t* cur_instr; /// Bypass register selected int bypass; @@ -199,19 +201,18 @@ extern unsigned jtag_tap_count(void); * - SRST pulls TRST * - TRST asserted * - **/ + * TAP activation/deactivation is currently implemented outside the core + * using scripted code that understands the specific router type. + */ enum jtag_event { - JTAG_TRST_ASSERTED -}; - -enum jtag_tap_event { + JTAG_TRST_ASSERTED, JTAG_TAP_EVENT_ENABLE, - JTAG_TAP_EVENT_DISABLE + JTAG_TAP_EVENT_DISABLE, }; struct jtag_tap_event_action_s { - enum jtag_tap_event event; + enum jtag_event event; Jim_Obj* body; jtag_tap_event_action_t* next; }; @@ -392,10 +393,10 @@ extern void jtag_add_plain_dr_scan(int num_fields, const scan_field_t* fields, t * For conversion types or checks that can fail, use the more complete * variant: jtag_callback_t. */ -typedef void (*jtag_callback1_t)(u8 *in); +typedef void (*jtag_callback1_t)(uint8_t *in); /// A simpler version of jtag_add_callback4(). -extern void jtag_add_callback(jtag_callback1_t, u8 *in); +extern void jtag_add_callback(jtag_callback1_t, uint8_t *in); /** @@ -413,7 +414,7 @@ typedef intptr_t jtag_callback_data_t; * @param data3 An integer big enough to use as an @c int or a pointer. * @returns an error code */ -typedef int (*jtag_callback_t)(u8 *in, jtag_callback_data_t data1, jtag_callback_data_t data2, jtag_callback_data_t data3); +typedef int (*jtag_callback_t)(uint8_t *in, jtag_callback_data_t data1, jtag_callback_data_t data2, jtag_callback_data_t data3); /** @@ -444,7 +445,7 @@ typedef int (*jtag_callback_t)(u8 *in, jtag_callback_data_t data1, jtag_callback * @param data3 An integer big enough to use as an @c int or a pointer. * */ -extern void jtag_add_callback4(jtag_callback_t f, u8 *in, +extern void jtag_add_callback4(jtag_callback_t f, uint8_t *in, jtag_callback_data_t data1, jtag_callback_data_t data2, jtag_callback_data_t data3); @@ -592,7 +593,7 @@ extern tap_state_t jtag_set_end_state(tap_state_t state); * **/ extern tap_state_t jtag_get_end_state(void); -extern void jtag_add_sleep(u32 us); +extern void jtag_add_sleep(uint32_t us); /** @@ -645,9 +646,9 @@ extern int jtag_srst_asserted(int* srst_asserted); * @param mask Pointer to scan mask; may be NULL. * @returns Nothing, but calls jtag_set_error() on any error. */ -extern void jtag_check_value_mask(scan_field_t *field, u8 *value, u8 *mask); +extern void jtag_check_value_mask(scan_field_t *field, uint8_t *value, uint8_t *mask); -extern void jtag_sleep(u32 us); +extern void jtag_sleep(uint32_t us); /* * The JTAG subsystem defines a number of error codes, @@ -690,7 +691,7 @@ extern void jtag_sleep(u32 us); * clocking data back in. Patches gladly accepted! */ extern void jtag_add_dr_out(jtag_tap_t* tap, - int num_fields, const int* num_bits, const u32* value, + int num_fields, const int* num_bits, const uint32_t* value, tap_state_t end_state);