From: Øyvind H. <go...@us...> - 2010-06-09 16:02:38
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "Main OpenOCD repository". The branch, master has been updated via 49e6c61bcc9a176119721c38004eca02b3e77f19 (commit) via c63468038473420bf4f25d2b93e3ce7620d0b572 (commit) from f6236ade0e0b62129b4a16f0d7897f79756189f0 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 49e6c61bcc9a176119721c38004eca02b3e77f19 Author: Ãyvind Harboe <oyv...@zy...> Date: Wed Jun 9 16:01:10 2010 +0200 flash: flash erase_address takes unsigned arguments fixed bug where address was parsed as a signed, rather than unsigned it. Signed-off-by: Ãyvind Harboe <oyv...@zy...> diff --git a/src/flash/nor/tcl.c b/src/flash/nor/tcl.c index b3dbd7b..cf1ca4a 100644 --- a/src/flash/nor/tcl.c +++ b/src/flash/nor/tcl.c @@ -199,8 +199,8 @@ COMMAND_HANDLER(handle_flash_erase_address_command) { struct flash_bank *p; int retval = ERROR_OK; - int address; - int length; + uint32_t address; + uint32_t length; bool do_pad = false; bool do_unlock = false; struct target *target = get_current_target(CMD_CTX); @@ -229,8 +229,8 @@ COMMAND_HANDLER(handle_flash_erase_address_command) return ERROR_COMMAND_SYNTAX_ERROR; } - COMMAND_PARSE_NUMBER(int, CMD_ARGV[0], address); - COMMAND_PARSE_NUMBER(int, CMD_ARGV[1], length); + COMMAND_PARSE_NUMBER(u32, CMD_ARGV[0], address); + COMMAND_PARSE_NUMBER(u32, CMD_ARGV[1], length); if (length <= 0) { commit c63468038473420bf4f25d2b93e3ce7620d0b572 Author: Ãyvind Harboe <oyv...@zy...> Date: Mon Jun 7 16:14:51 2010 +0200 zy1000: fix optimisation gaffe DCC optimisation was broken on targets w/multiple TAP's. Signed-off-by: Ãyvind Harboe <oyv...@zy...> diff --git a/src/jtag/zy1000/zy1000.c b/src/jtag/zy1000/zy1000.c index f578058..13685f8 100644 --- a/src/jtag/zy1000/zy1000.c +++ b/src/jtag/zy1000/zy1000.c @@ -820,14 +820,35 @@ static void jtag_pre_post_bits(struct jtag_tap *tap, int *pre, int *post) *post = post_bits; } +/* + static const int embeddedice_num_bits[] = {32, 6}; + uint32_t values[2]; + + values[0] = value; + values[1] = (1 << 5) | reg_addr; + + jtag_add_dr_out(tap, + 2, + embeddedice_num_bits, + values, + TAP_IDLE); +*/ + void embeddedice_write_dcc(struct jtag_tap *tap, int reg_addr, uint8_t *buffer, int little, int count) { - +#if 0 + int i; + for (i = 0; i < count; i++) + { + embeddedice_write_reg_inner(tap, reg_addr, fast_target_buffer_get_u32(buffer, little)); + buffer += 4; + } +#else int pre_bits; int post_bits; jtag_pre_post_bits(tap, &pre_bits, &post_bits); - if (pre_bits + post_bits + 6 > 32) + if ((pre_bits > 32) || (post_bits + 6 > 32)) { int i; for (i = 0; i < count; i++) @@ -837,18 +858,20 @@ void embeddedice_write_dcc(struct jtag_tap *tap, int reg_addr, uint8_t *buffer, } } else { - shiftValueInner(TAP_DRSHIFT, TAP_DRSHIFT, pre_bits, 0); int i; - for (i = 0; i < count - 1; i++) + for (i = 0; i < count; i++) { /* Fewer pokes means we get to use the FIFO more efficiently */ + shiftValueInner(TAP_DRSHIFT, TAP_DRSHIFT, pre_bits, 0); shiftValueInner(TAP_DRSHIFT, TAP_DRSHIFT, 32, fast_target_buffer_get_u32(buffer, little)); - shiftValueInner(TAP_DRSHIFT, TAP_IDLE, 6 + post_bits + pre_bits, (reg_addr | (1 << 5))); + /* Danger! here we need to exit into the TAP_IDLE state to make + * DCC pick up this value. + */ + shiftValueInner(TAP_DRSHIFT, TAP_IDLE, 6 + post_bits, (reg_addr | (1 << 5))); buffer += 4; } - shiftValueInner(TAP_DRSHIFT, TAP_DRSHIFT, 32, fast_target_buffer_get_u32(buffer, little)); - shiftValueInner(TAP_DRSHIFT, TAP_IDLE, 6 + post_bits, (reg_addr | (1 << 5))); } +#endif } ----------------------------------------------------------------------- Summary of changes: src/flash/nor/tcl.c | 8 ++++---- src/jtag/zy1000/zy1000.c | 37 ++++++++++++++++++++++++++++++------- 2 files changed, 34 insertions(+), 11 deletions(-) hooks/post-receive -- Main OpenOCD repository |