diff options
author | Stefan Mahr <stefan.mahr@sphairon.com> | 2011-05-31 09:33:01 +0200 |
---|---|---|
committer | Øyvind Harboe <oyvind.harboe@zylin.com> | 2011-06-01 07:23:42 +0200 |
commit | 796086cd49f769a55bebcdd43d2d348672c87371 (patch) | |
tree | 6cff4fc04df89d5939092e523b6b6b9990e6fc11 | |
parent | 524d79ebe74e28d751c88e665aabac2ea4d04e5c (diff) | |
download | openocd+libswd-796086cd49f769a55bebcdd43d2d348672c87371.tar.gz openocd+libswd-796086cd49f769a55bebcdd43d2d348672c87371.tar.bz2 openocd+libswd-796086cd49f769a55bebcdd43d2d348672c87371.tar.xz openocd+libswd-796086cd49f769a55bebcdd43d2d348672c87371.zip |
mips: fixup fastdata
fixup fastdata
-rw-r--r-- | src/target/mips_ejtag.c | 10 | ||||
-rw-r--r-- | src/target/mips_ejtag.h | 6 |
2 files changed, 10 insertions, 6 deletions
diff --git a/src/target/mips_ejtag.c b/src/target/mips_ejtag.c index f9510494..449b6b82 100644 --- a/src/target/mips_ejtag.c +++ b/src/target/mips_ejtag.c @@ -342,7 +342,6 @@ int mips_ejtag_init(struct mips_ejtag *ejtag_info) int mips_ejtag_fastdata_scan(struct mips_ejtag *ejtag_info, int write_t, uint32_t *data) { struct jtag_tap *tap; - uint8_t r[4]; tap = ejtag_info->tap; assert(tap != NULL); @@ -367,15 +366,14 @@ int mips_ejtag_fastdata_scan(struct mips_ejtag *ejtag_info, int write_t, uint32_ } else { - fields[1].in_value = r; + fields[1].in_value = (void *) data; } jtag_add_dr_scan(tap, 2, fields, TAP_IDLE); - if (!write_t) - { - *data = buf_get_u32(fields[1].in_value, 0, 32); - } + if ( (!write_t) && (data) ) + jtag_add_callback(mips_le_to_h_u32, + (jtag_callback_data_t) data); keep_alive(); diff --git a/src/target/mips_ejtag.h b/src/target/mips_ejtag.h index a6ed95a5..399246c4 100644 --- a/src/target/mips_ejtag.h +++ b/src/target/mips_ejtag.h @@ -146,4 +146,10 @@ int mips_ejtag_init(struct mips_ejtag *ejtag_info); int mips_ejtag_config_step(struct mips_ejtag *ejtag_info, int enable_step); int mips_ejtag_read_debug(struct mips_ejtag *ejtag_info, uint32_t* debug_reg); +static __inline__ void mips_le_to_h_u32(jtag_callback_data_t arg) +{ + uint8_t *in = (uint8_t *)arg; + *((uint32_t *)arg) = le_to_h_u32(in); +} + #endif /* MIPS_EJTAG */ |