X-Git-Url: https://review.openocd.org/gitweb?p=openocd.git;a=blobdiff_plain;f=src%2Fjtag%2Fdrivers%2Fparport.c;h=b61f2f15e46c0695b33ec65234b2c2c992b21f2d;hp=2e6b9ed511211b1307ccd3e975fcee627bb16e67;hb=fa4680548150b51083239e3a5181a2ecd86a0da9;hpb=e0338293b80211aee4254848ea56e0cf38bf3b9a diff --git a/src/jtag/drivers/parport.c b/src/jtag/drivers/parport.c index 2e6b9ed511..b61f2f15e4 100644 --- a/src/jtag/drivers/parport.c +++ b/src/jtag/drivers/parport.c @@ -265,7 +265,6 @@ static int parport_init(void) struct cable *cur_cable; #if PARPORT_USE_PPDEV == 1 char buffer[256]; - int i = 0; #endif cur_cable = cables; @@ -323,7 +322,8 @@ static int parport_init(void) LOG_DEBUG("...open"); #if !defined(__FreeBSD__) && !defined(__FreeBSD_kernel__) - i = ioctl(device_handle, PPCLAIM); + int i = ioctl(device_handle, PPCLAIM); + if (i < 0) { LOG_ERROR("cannot claim device"); @@ -384,7 +384,9 @@ static int parport_init(void) bitbang_interface = &parport_bitbang; - wait_states = jtag_get_speed(); + int retval = jtag_get_speed(&wait_states); + if (retval != ERROR_OK) + return retval; return ERROR_OK; } @@ -424,7 +426,7 @@ COMMAND_HANDLER(parport_handle_parport_port_command) } } - command_print(CMD_CTX, "parport port = %u", parport_port); + command_print(CMD_CTX, "parport port = 0x%" PRIx16 "", parport_port); return ERROR_OK; } @@ -437,10 +439,13 @@ COMMAND_HANDLER(parport_handle_parport_cable_command) /* only if the cable name wasn't overwritten by cmdline */ if (parport_cable == 0) { + /* REVISIT first verify that it's listed in cables[] ... */ parport_cable = malloc(strlen(CMD_ARGV[0]) + sizeof(char)); strcpy(parport_cable, CMD_ARGV[0]); } + /* REVISIT it's probably worth returning the current value ... */ + return ERROR_OK; } @@ -472,7 +477,9 @@ COMMAND_HANDLER(parport_handle_parport_toggling_time_command) } parport_toggling_time_ns = ns; - wait_states = jtag_get_speed(); + retval = jtag_get_speed(&wait_states); + if (retval != ERROR_OK) + return retval; } command_print(CMD_CTX, "parport toggling time = %" PRIu32 " ns", @@ -484,40 +491,44 @@ COMMAND_HANDLER(parport_handle_parport_toggling_time_command) static const struct command_registration parport_command_handlers[] = { { .name = "parport_port", - .handler = &parport_handle_parport_port_command, + .handler = parport_handle_parport_port_command, .mode = COMMAND_CONFIG, - .help = "either the address of the I/O port " - "or the number of the '/dev/parport' device", - .usage = "[]", + .help = "Display the address of the I/O port (e.g. 0x378) " + "or the number of the '/dev/parport' device used. " + "If a parameter is provided, first change that port.", + .usage = "[port_number]", }, { .name = "parport_cable", - .handler = &parport_handle_parport_cable_command, + .handler = parport_handle_parport_cable_command, .mode = COMMAND_CONFIG, - .help = "the layout of the parallel port cable " - "used to connect to the target", - .usage = "[]", + .help = "Set the layout of the parallel port cable " + "used to connect to the target.", + /* REVISIT there's no way to list layouts we know ... */ + .usage = "[layout]", }, { .name = "parport_write_on_exit", - .handler = &parport_handle_write_on_exit_command, + .handler = parport_handle_write_on_exit_command, .mode = COMMAND_CONFIG, - .help = "configure the parallel driver to write " - "a known value to the parallel interface", - .usage = "[]", + .help = "Configure the parallel driver to write " + "a known value to the parallel interface on exit.", + .usage = "('on'|'off')", }, { .name = "parport_toggling_time", - .handler = &parport_handle_parport_toggling_time_command, + .handler = parport_handle_parport_toggling_time_command, .mode = COMMAND_CONFIG, - .help = "time it takes for the hardware to toggle TCK", - .usage = "[]", + .help = "Displays or assigns how many nanoseconds it " + "takes for the hardware to toggle TCK.", + .usage = "[nanoseconds]", }, COMMAND_REGISTRATION_DONE }; struct jtag_interface parport_interface = { .name = "parport", + .supported = DEBUG_CAP_TMS_SEQ, .commands = parport_command_handlers, .init = parport_init,