{
struct scan_field field;
- field.tap = tap;
field.num_bits = tap->ir_length;
field.out_value = calloc(DIV_ROUND_UP(field.num_bits, 8), 1);
buf_set_u32(field.out_value, 0, field.num_bits, new_instr);
field.in_value = NULL;
- jtag_add_ir_scan(1, &field, jtag_set_end_state(TAP_IDLE));
+ jtag_add_ir_scan(tap, &field, jtag_set_end_state(TAP_IDLE));
free(field.out_value);
}
values = malloc(num_words * 4);
- scan_field.tap = virtex2_info->tap;
scan_field.num_bits = num_words * 32;
scan_field.out_value = values;
scan_field.in_value = NULL;
virtex2_set_instr(virtex2_info->tap, 0x5); /* CFG_IN */
- jtag_add_dr_scan(1, &scan_field, jtag_set_end_state(TAP_DRPAUSE));
+ jtag_add_dr_scan(virtex2_info->tap, 1, &scan_field, jtag_set_end_state(TAP_DRPAUSE));
free(values);
struct virtex2_pld_device *virtex2_info = pld_device->driver_priv;
struct scan_field scan_field;
- scan_field.tap = virtex2_info->tap;
scan_field.num_bits = 32;
scan_field.out_value = NULL;
scan_field.in_value = NULL;
{
scan_field.in_value = (uint8_t *)words;
- jtag_add_dr_scan(1, &scan_field, jtag_set_end_state(TAP_DRPAUSE));
+ jtag_add_dr_scan(virtex2_info->tap, 1, &scan_field, jtag_set_end_state(TAP_DRPAUSE));
jtag_add_callback(virtexflip32, (jtag_callback_data_t)words);
unsigned int i;
struct scan_field field;
- field.tap = virtex2_info->tap;
field.in_value = NULL;
if ((retval = xilinx_read_bit_file(&bit_file, filename)) != ERROR_OK)
field.num_bits = bit_file.length * 8;
field.out_value = bit_file.data;
- jtag_add_dr_scan(1, &field, jtag_set_end_state(TAP_DRPAUSE));
+ jtag_add_dr_scan(virtex2_info->tap, 1, &field, jtag_set_end_state(TAP_DRPAUSE));
jtag_execute_queue();
jtag_add_tlr();
return ERROR_OK;
}
-static int virtex2_register_commands(struct command_context *cmd_ctx)
-{
- struct command *virtex2_cmd = COMMAND_REGISTER(cmd_ctx, NULL, "virtex2",
- NULL, COMMAND_ANY, "virtex2 specific commands");
-
- COMMAND_REGISTER(cmd_ctx, virtex2_cmd, "read_stat",
- &virtex2_handle_read_stat_command, COMMAND_EXEC,
- "read Virtex-II status register");
-
- return ERROR_OK;
-}
+static const struct command_registration virtex2_exec_command_handlers[] = {
+ {
+ .name = "read_stat",
+ .mode = COMMAND_EXEC,
+ .handler = virtex2_handle_read_stat_command,
+ .help = "read status register",
+ .usage = "pld_num",
+ },
+ COMMAND_REGISTRATION_DONE
+};
+static const struct command_registration virtex2_command_handler[] = {
+ {
+ .name = "virtex2",
+ .mode = COMMAND_ANY,
+ .help = "Virtex-II specific commands",
+ .chain = virtex2_exec_command_handlers,
+ },
+ COMMAND_REGISTRATION_DONE
+};
struct pld_driver virtex2_pld = {
.name = "virtex2",
- .register_commands = &virtex2_register_commands,
+ .commands = virtex2_command_handler,
.pld_device_command = &virtex2_pld_device_command,
.load = &virtex2_load,
};