mips: fixup fastdata
authorStefan Mahr <stefan.mahr@sphairon.com>
Tue, 31 May 2011 07:33:01 +0000 (09:33 +0200)
committerØyvind Harboe <oyvind.harboe@zylin.com>
Wed, 1 Jun 2011 05:23:42 +0000 (07:23 +0200)
fixup fastdata

src/target/mips_ejtag.c
src/target/mips_ejtag.h

index f951049..449b6b8 100644 (file)
@@ -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();
 
index a6ed95a..399246c 100644 (file)
@@ -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 */