* 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
# include "config.h"
}
struct sequence *next;
- next = (struct sequence *)malloc(sizeof(*next));
+ next = malloc(sizeof(*next));
if (next) {
next->tms = calloc(1, DIV_ROUND_UP(len, 8));
if (next->tms) {
static struct queue *queue_alloc(void)
{
- struct queue *queue = (struct queue *)malloc(sizeof(struct queue));
+ struct queue *queue = malloc(sizeof(*queue));
if (queue)
queue->head = NULL;
else
return queue;
}
-/* Size of usb communnication buffer */
+/* Size of usb communication buffer */
#define OSBDM_USB_BUFSIZE 64
/* Timeout for USB transfer, ms */
#define OSBDM_USB_TIMEOUT 1000
/* Lists of valid VID/PID pairs
*/
-static const uint16_t osbdm_vid[] = { 0x15a2, 0x15a2, 0 };
-static const uint16_t osbdm_pid[] = { 0x0042, 0x0058, 0 };
+static const uint16_t osbdm_vid[] = { 0x15a2, 0x15a2, 0x15a2, 0 };
+static const uint16_t osbdm_pid[] = { 0x0042, 0x0058, 0x005e, 0 };
struct osbdm {
struct jtag_libusb_device_handle *devh; /* USB handle */
- uint8_t buffer[OSBDM_USB_BUFSIZE]; /* Data to send and recieved */
+ uint8_t buffer[OSBDM_USB_BUFSIZE]; /* Data to send and receive */
int count; /* Count data to send and to read */
};
(char *)osbdm->buffer, osbdm->count, OSBDM_USB_TIMEOUT);
if (count != osbdm->count) {
- LOG_ERROR("OSBDM communnication error: can't write");
+ LOG_ERROR("OSBDM communication error: can't write");
return ERROR_FAIL;
}
*/
if (osbdm->count < 0) {
- LOG_ERROR("OSBDM communnication error: can't read");
+ LOG_ERROR("OSBDM communication error: can't read");
return ERROR_FAIL;
}
if (osbdm->count < 2) {
- LOG_ERROR("OSBDM communnication error: answer too small");
+ LOG_ERROR("OSBDM communication error: reply too small");
return ERROR_FAIL;
}
if (osbdm->count != osbdm->buffer[1]) {
- LOG_ERROR("OSBDM communnication error: answer size mismatch");
+ LOG_ERROR("OSBDM communication error: reply size mismatch");
return ERROR_FAIL;
}
if (cmd_saved != osbdm->buffer[0]) {
- LOG_ERROR("OSBDM communnication error: answer command mismatch");
+ LOG_ERROR("OSBDM communication error: reply command mismatch");
return ERROR_FAIL;
}
}
if (length <= 0) {
- LOG_ERROR("BUG: bit sequence equal or less to 0");
+ LOG_ERROR("BUG: bit sequence equal or less than 0");
return ERROR_FAIL;
}
/* Extra check
*/
if (((osbdm->buffer[2] << 8) | osbdm->buffer[3]) != 2 * swap_count) {
- LOG_ERROR("OSBDM communnication error: not proper answer to swap command");
+ LOG_ERROR("OSBDM communication error: invalid swap command reply");
return ERROR_FAIL;
}
/* Copy TDO responce
*/
- uint8_t *buffer = (uint8_t *)osbdm->buffer + 4;
+ uint8_t *buffer = osbdm->buffer + 4;
for (int bit_idx = 0; bit_idx < length; ) {
int bit_count = length - bit_idx;
if (bit_count > 16)
static int osbdm_open(struct osbdm *osbdm)
{
(void)memset(osbdm, 0, sizeof(*osbdm));
- if (jtag_libusb_open(osbdm_vid, osbdm_pid, &osbdm->devh) != ERROR_OK)
+ if (jtag_libusb_open(osbdm_vid, osbdm_pid, NULL, &osbdm->devh) != ERROR_OK)
return ERROR_FAIL;
if (jtag_libusb_claim_interface(osbdm->devh, 0) != ERROR_OK)
int skip_first)
{
int len = 0;
- int tms;
+ int tms = 0;
tap_set_end_state(new_state);
if (tap_get_end_state() == TAP_RESET) {
return ERROR_FAIL;
} else {
/* Device successfully opened */
- LOG_INFO("OSBDM has opened");
+ LOG_DEBUG("OSBDM init");
}
/* Perform initialize command */
return ERROR_OK;
}
-static int osbdm_khz(int khz, int *speed)
-{
- *speed = khz;
- return ERROR_OK;
-}
-
-static int osbdm_speed(int speed)
-{
- return ERROR_OK;
-}
-
-static int osbdm_speed_div(int speed, int *khz)
-{
- *khz = speed;
- return ERROR_OK;
-}
-
struct jtag_interface osbdm_interface = {
.name = "osbdm",
.transports = jtag_only,
.execute_queue = osbdm_execute_queue,
- .khz = osbdm_khz,
- .speed = osbdm_speed,
- .speed_div = osbdm_speed_div,
-
.init = osbdm_init,
.quit = osbdm_quit
};