> A DR scan will go down the full DR scan portion of the state
> machine. If you add 2 back to back DR scans, I expect it will
> do what you need.

I'm not sure I understood you fully, but I tried:

static avr32_get_mem(target_t *target, u32 addr, u32 *data)
{
        jtag_tap_t *tap = target->tap;
        int retval;

        jtag_add_end_state(TAP_IDLE);
        jtag_set_instr(tap, INST_MEM_WORD_ACCESS);

        scan_field_t field1;
        field1.tap = tap;
        field1.num_bits = 35;
        u8 *data1 = calloc(CEIL(field1.num_bits, 8), 1);
        buf_set_u32(data1, 0, 4, SYSTEM_BUS_CACHED);
        buf_set_u32(data1, 4, 30, addr >> 2);
        buf_set_u32(data1, 34, 1, READ_ACCESS);
        field1.out_value = data1;
        field1.out_mask = NULL;
        field1.in_value = NULL;
        field1.in_check_value = NULL;
        field1.in_check_mask = NULL;
        field1.in_handler = NULL;
        field1.in_handler_priv = NULL;
        jtag_add_dr_scan(1, &field1, -1);

        scan_field_t field2;
        field2.tap = tap;
        field2.num_bits = 35;
        u8 *data2 = calloc(CEIL(field2.num_bits, 8), 1);
        field2.out_value = NULL;
        field2.out_mask = NULL;
        field2.in_value = data2;
        field2.in_check_value = NULL;
        field2.in_check_mask = NULL;
        field2.in_handler = NULL;
        field2.in_handler_priv = NULL;
        jtag_add_dr_scan(1, &field2, -1);

        retval = jtag_execute_queue();
        if (retval == ERROR_OK) {
                *data = buf_get_u32(data2, 0, 32);
                LOG_DEBUG("avr32: %08x: %08x", addr, *data);
        } else {
                LOG_ERROR("avr32: could not read %08x", addr);
        }
        free(data1);
        free(data2);

        return retval;
}


Unfortunately, this looks like it only gives me back junk data, 
no matter what address I select. The first result is always 
0x00000000, then all following results are 0x00000002.
_______________________________________________
Openocd-development mailing list
Openocd-development@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/openocd-development

Reply via email to