X-Git-Url: https://review.openocd.org/gitweb?p=openocd.git;a=blobdiff_plain;f=src%2Fjtag%2Fdrivers%2Fparport.c;h=ff75859518a30054d5e31f80802ff69b400d1ad5;hp=3c07afb286e85a2df966d7dd644ccf29be7fd6f1;hb=b675edcc95935cbdf77002db1e261536026f4cbe;hpb=de0130a0aad83c1ef692ee4d68ab996a8668424d diff --git a/src/jtag/drivers/parport.c b/src/jtag/drivers/parport.c index 3c07afb286..ff75859518 100644 --- a/src/jtag/drivers/parport.c +++ b/src/jtag/drivers/parport.c @@ -18,7 +18,7 @@ * You should have received a copy of the GNU General Public License * * along with this program; if not, write to the * * Free Software Foundation, Inc., * - * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. * ***************************************************************************/ #ifdef HAVE_CONFIG_H @@ -60,7 +60,7 @@ /* parallel port cable description */ struct cable { - char *name; + const char *name; uint8_t TDO_MASK; /* status port bit containing current TDO value */ uint8_t TRST_MASK; /* data port bit for TRST */ uint8_t TMS_MASK; /* data port bit for TMS */ @@ -74,7 +74,7 @@ struct cable { uint8_t LED_MASK; /* data port bit for LED */ }; -static struct cable cables[] = { +static const struct cable cables[] = { /* name tdo trst tms tck tdi srst o_inv i_inv init exit led */ { "wiggler", 0x80, 0x10, 0x02, 0x04, 0x08, 0x01, 0x01, 0x80, 0x80, 0x80, 0x00 }, { "wiggler2", 0x80, 0x10, 0x02, 0x04, 0x08, 0x01, 0x01, 0x80, 0x80, 0x00, 0x20 }, @@ -95,6 +95,7 @@ static struct cable cables[] = { SOFT TDI - Target SRST */ { "altium", 0x10, 0x20, 0x04, 0x02, 0x01, 0x80, 0x00, 0x00, 0x10, 0x00, 0x08 }, + { "aspo", 0x10, 0x01, 0x04, 0x08, 0x02, 0x10, 0x17, 0x00, 0x17, 0x17, 0x00 }, { NULL, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 } }; @@ -107,7 +108,7 @@ static int wait_states; /* interface variables */ -static struct cable *cable; +static const struct cable *cable; static uint8_t dataport_value; #if PARPORT_USE_PPDEV == 1 @@ -261,15 +262,15 @@ static struct bitbang_interface parport_bitbang = { static int parport_init(void) { - struct cable *cur_cable; + const struct cable *cur_cable; #if PARPORT_USE_PPDEV == 1 char buffer[256]; #endif cur_cable = cables; - if ((parport_cable == NULL) || (parport_cable[0] == 0)) { - parport_cable = "wiggler"; + if (parport_cable == NULL) { + parport_cable = strdup("wiggler"); LOG_WARNING("No parport cable specified, using default 'wiggler'"); } @@ -452,8 +453,13 @@ COMMAND_HANDLER(parport_handle_parport_toggling_time_command) parport_toggling_time_ns = ns; retval = jtag_get_speed(&wait_states); - if (retval != ERROR_OK) - return retval; + if (retval != ERROR_OK) { + /* if jtag_get_speed fails then the clock_mode + * has not been configured, this happens if parport_toggling_time is + * called before the adapter speed is set */ + LOG_INFO("no parport speed set - defaulting to zero wait states"); + wait_states = 0; + } } command_print(CMD_CTX, "parport toggling time = %" PRIu32 " ns",