summaryrefslogtreecommitdiff
path: root/src/target
diff options
context:
space:
mode:
authoroharboe <oharboe@b42882b7-edfa-0310-969c-e2dbd0fdcd60>2008-08-19 11:56:45 +0000
committeroharboe <oharboe@b42882b7-edfa-0310-969c-e2dbd0fdcd60>2008-08-19 11:56:45 +0000
commit91b6460671671a4052feaed04de74ec73bc7f851 (patch)
treedb07595601c04ea0fd98a8f0375e81c75871bc48 /src/target
parentbbe7110f42e96f9c56f9eea7819bf9b287dbe16f (diff)
downloadopenocd+libswd-91b6460671671a4052feaed04de74ec73bc7f851.tar.gz
openocd+libswd-91b6460671671a4052feaed04de74ec73bc7f851.tar.bz2
openocd+libswd-91b6460671671a4052feaed04de74ec73bc7f851.tar.xz
openocd+libswd-91b6460671671a4052feaed04de74ec73bc7f851.zip
tinker with Xscale performance, anti-log spamming is now only for debug_level 3 or more. Otherwise polling is done continously for 1 second.
git-svn-id: svn://svn.berlios.de/openocd/trunk@937 b42882b7-edfa-0310-969c-e2dbd0fdcd60
Diffstat (limited to 'src/target')
-rw-r--r--src/target/xscale.c104
1 files changed, 51 insertions, 53 deletions
diff --git a/src/target/xscale.c b/src/target/xscale.c
index 6bcd0251..7c364b3f 100644
--- a/src/target/xscale.c
+++ b/src/target/xscale.c
@@ -487,41 +487,40 @@ int xscale_read_tx(target_t *target, int consume)
for (;;)
{
- int i;
- for (i=0; i<100; i++)
+ /* if we want to consume the register content (i.e. clear TX_READY),
+ * we have to go straight from Capture-DR to Shift-DR
+ * otherwise, we go from Capture-DR to Exit1-DR to Pause-DR
+ */
+ if (consume)
+ jtag_add_pathmove(3, path);
+ else
{
- /* if we want to consume the register content (i.e. clear TX_READY),
- * we have to go straight from Capture-DR to Shift-DR
- * otherwise, we go from Capture-DR to Exit1-DR to Pause-DR
- */
- if (consume)
- jtag_add_pathmove(3, path);
- else
- {
- jtag_add_pathmove(sizeof(noconsume_path)/sizeof(*noconsume_path), noconsume_path);
- }
-
- jtag_add_dr_scan(3, fields, TAP_RTI);
-
- if ((retval = jtag_execute_queue()) != ERROR_OK)
- {
- LOG_ERROR("JTAG error while reading TX");
- return ERROR_TARGET_TIMEOUT;
- }
-
- gettimeofday(&now, NULL);
- if ((now.tv_sec > timeout.tv_sec) || ((now.tv_sec == timeout.tv_sec)&& (now.tv_usec > timeout.tv_usec)))
- {
- LOG_ERROR("time out reading TX register");
- return ERROR_TARGET_TIMEOUT;
- }
- if (!((!(field0_in & 1)) && consume))
- {
- goto done;
- }
+ jtag_add_pathmove(sizeof(noconsume_path)/sizeof(*noconsume_path), noconsume_path);
+ }
+
+ jtag_add_dr_scan(3, fields, TAP_RTI);
+
+ if ((retval = jtag_execute_queue()) != ERROR_OK)
+ {
+ LOG_ERROR("JTAG error while reading TX");
+ return ERROR_TARGET_TIMEOUT;
+ }
+
+ gettimeofday(&now, NULL);
+ if ((now.tv_sec > timeout.tv_sec) || ((now.tv_sec == timeout.tv_sec)&& (now.tv_usec > timeout.tv_usec)))
+ {
+ LOG_ERROR("time out reading TX register");
+ return ERROR_TARGET_TIMEOUT;
+ }
+ if (!((!(field0_in & 1)) && consume))
+ {
+ goto done;
+ }
+ if (debug_level>=3)
+ {
+ LOG_DEBUG("waiting 10ms");
+ usleep(10*1000); /* avoid flooding the logs */
}
- LOG_DEBUG("waiting 10ms");
- usleep(10*1000); /* avoid flooding the logs */
}
done:
@@ -585,28 +584,27 @@ int xscale_write_rx(target_t *target)
LOG_DEBUG("polling RX");
for (;;)
{
- int i;
- for (i=0; i<100; i++)
+ jtag_add_dr_scan(3, fields, TAP_RTI);
+
+ if ((retval = jtag_execute_queue()) != ERROR_OK)
{
- jtag_add_dr_scan(3, fields, TAP_RTI);
-
- if ((retval = jtag_execute_queue()) != ERROR_OK)
- {
- LOG_ERROR("JTAG error while writing RX");
- return retval;
- }
-
- gettimeofday(&now, NULL);
- if ((now.tv_sec > timeout.tv_sec) || ((now.tv_sec == timeout.tv_sec)&& (now.tv_usec > timeout.tv_usec)))
- {
- LOG_ERROR("time out writing RX register");
- return ERROR_TARGET_TIMEOUT;
- }
- if (!(field0_in & 1))
- goto done;
+ LOG_ERROR("JTAG error while writing RX");
+ return retval;
+ }
+
+ gettimeofday(&now, NULL);
+ if ((now.tv_sec > timeout.tv_sec) || ((now.tv_sec == timeout.tv_sec)&& (now.tv_usec > timeout.tv_usec)))
+ {
+ LOG_ERROR("time out writing RX register");
+ return ERROR_TARGET_TIMEOUT;
+ }
+ if (!(field0_in & 1))
+ goto done;
+ if (debug_level>=3)
+ {
+ LOG_DEBUG("waiting 10ms");
+ usleep(10*1000); /* avoid flooding the logs */
}
- LOG_DEBUG("waiting 10ms");
- usleep(10*1000); /* wait 10ms to avoid flooding the logs */
}
done: