projects
/
fw
/
openocd
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
jtag/adapter: move config vars in struct adapter_config
[fw/openocd]
/
src
/
pld
/
virtex2.c
diff --git
a/src/pld/virtex2.c
b/src/pld/virtex2.c
index 36d8f6fdea2c8dd29ce68f945cacecf9a04e52c6..a2de8ccf55603fe3a19f5ae5a8877807649917da 100644
(file)
--- a/
src/pld/virtex2.c
+++ b/
src/pld/virtex2.c
@@
-13,9
+13,7
@@
* GNU General Public License for more details. *
* *
* You should have received a copy of the GNU General Public License *
* GNU General Public License for more details. *
* *
* 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. *
+ * along with this program. If not, see <http://www.gnu.org/licenses/>. *
***************************************************************************/
#ifdef HAVE_CONFIG_H
***************************************************************************/
#ifdef HAVE_CONFIG_H
@@
-28,7
+26,7
@@
static int virtex2_set_instr(struct jtag_tap *tap, uint32_t new_instr)
{
static int virtex2_set_instr(struct jtag_tap *tap, uint32_t new_instr)
{
- if (
tap == NULL
)
+ if (
!tap
)
return ERROR_FAIL;
if (buf_get_u32(tap->cur_instr, 0, tap->ir_length) != new_instr) {
return ERROR_FAIL;
if (buf_get_u32(tap->cur_instr, 0, tap->ir_length) != new_instr) {
@@
-159,13
+157,15
@@
static int virtex2_load(struct pld_device *pld_device, const char *filename)
jtag_add_tlr();
jtag_add_tlr();
- virtex2_set_instr(virtex2_info->tap, 0xc); /* JSTART */
+ if (!(virtex2_info->no_jstart))
+ virtex2_set_instr(virtex2_info->tap, 0xc); /* JSTART */
jtag_add_runtest(13, TAP_IDLE);
jtag_add_runtest(13, TAP_IDLE);
- virtex2_set_instr(virtex2_info->tap, 0x3f); /* BYPASS */
- virtex2_set_instr(virtex2_info->tap, 0x3f); /* BYPASS */
- virtex2_set_instr(virtex2_info->tap, 0xc); /* JSTART */
+ virtex2_set_instr(virtex2_info->tap, 0x3f); /* BYPASS */
+ virtex2_set_instr(virtex2_info->tap, 0x3f); /* BYPASS */
+ if (!(virtex2_info->no_jstart))
+ virtex2_set_instr(virtex2_info->tap, 0xc); /* JSTART */
jtag_add_runtest(13, TAP_IDLE);
jtag_add_runtest(13, TAP_IDLE);
- virtex2_set_instr(virtex2_info->tap, 0x3f); /* BYPASS */
+ virtex2_set_instr(virtex2_info->tap, 0x3f);
/* BYPASS */
jtag_execute_queue();
return ERROR_OK;
jtag_execute_queue();
return ERROR_OK;
@@
-183,13
+183,13
@@
COMMAND_HANDLER(virtex2_handle_read_stat_command)
COMMAND_PARSE_NUMBER(uint, CMD_ARGV[0], dev_id);
device = get_pld_device_by_num(dev_id);
if (!device) {
COMMAND_PARSE_NUMBER(uint, CMD_ARGV[0], dev_id);
device = get_pld_device_by_num(dev_id);
if (!device) {
- command_print(CMD
_CTX
, "pld device '#%s' is out of bounds", CMD_ARGV[0]);
+ command_print(CMD, "pld device '#%s' is out of bounds", CMD_ARGV[0]);
return ERROR_OK;
}
virtex2_read_stat(device, &status);
return ERROR_OK;
}
virtex2_read_stat(device, &status);
- command_print(CMD
_CTX
, "virtex2 status register: 0x%8.8" PRIx32 "", status);
+ command_print(CMD, "virtex2 status register: 0x%8.8" PRIx32 "", status);
return ERROR_OK;
}
return ERROR_OK;
}
@@
-204,14
+204,18
@@
PLD_DEVICE_COMMAND_HANDLER(virtex2_pld_device_command)
return ERROR_COMMAND_SYNTAX_ERROR;
tap = jtag_tap_by_string(CMD_ARGV[1]);
return ERROR_COMMAND_SYNTAX_ERROR;
tap = jtag_tap_by_string(CMD_ARGV[1]);
- if (
tap == NULL
) {
- command_print(CMD
_CTX
, "Tap: %s does not exist", CMD_ARGV[1]);
+ if (
!tap
) {
+ command_print(CMD, "Tap: %s does not exist", CMD_ARGV[1]);
return ERROR_OK;
}
virtex2_info = malloc(sizeof(struct virtex2_pld_device));
virtex2_info->tap = tap;
return ERROR_OK;
}
virtex2_info = malloc(sizeof(struct virtex2_pld_device));
virtex2_info->tap = tap;
+ virtex2_info->no_jstart = 0;
+ if (CMD_ARGC >= 3)
+ COMMAND_PARSE_NUMBER(int, CMD_ARGV[2], virtex2_info->no_jstart);
+
pld->driver_priv = virtex2_info;
return ERROR_OK;
pld->driver_priv = virtex2_info;
return ERROR_OK;