I'm running Fedora 7, w/ updates.

I have a brand new, just out of the box MSP-FET430UIF.

I believe I have massaged the ti_usb_3410_5052 driver correctly,
including the echo 2 > /sys/bus/usb/.../bConfigurationValue step, by
adding this udev rule:

[an...@ermintrude ~]$ cat /etc/udev/rules.d/msp-fet430uif.rules
SUBSYSTEM=="usb_device" ACTION=="add" SYSFS{product}=="MSP-FET430UIF JTAG Tool"
  SYSFS{bNumConfigurations}=="2"
  SYSFS{bConfigurationValue}=="1"
  RUN+="/bin/sh -c 'echo 2 > /sys%p/device/bConfigurationValue'", MODE="0666"
[an...@ermintrude ~]$

Here's what dmesg says about the resulting activity when I connect the device:

usb 5-1.4: new full speed USB device using ehci_hcd and address 21
usb 5-1.4: configuration #1 chosen from 1 choice
ti_usb_3410_5052 5-1.4:1.0: TI USB 3410 1 port adapter converter detected
usb 5-1.4: reset full speed USB device using ehci_hcd and address 21
usb 5-1.4: device firmware changed
ti_usb_3410_5052: probe of 5-1.4:1.0 failed with error -5
usb 5-1.4: USB disconnect, address 21
usb 5-1.4: new full speed USB device using ehci_hcd and address 22
usb 5-1.4: configuration #1 chosen from 2 choices
ti_usb_3410_5052 5-1.4:1.0: TI USB 3410 1 port adapter converter detected
ti_usb_3410_5052: probe of 5-1.4:1.0 failed with error -5
ti_usb_3410_5052 5-1.4:2.0: TI USB 3410 1 port adapter converter detected
usb 5-1.4: TI USB 3410 1 port adapter converter now attached to ttyUSB1
ti_usb_3410_5052_1 ttyUSB1: TI USB 3410 1 port adapter converter now
disconnected from ttyUSB1
ti_usb_3410_5052 5-1.4:2.0: device disconnected
ti_usb_3410_5052 5-1.4:2.0: TI USB 3410 1 port adapter converter detected
usb 5-1.4: TI USB 3410 1 port adapter converter now attached to ttyUSB1

>From what I can tell, the errors are OK and the jtag box is correctly
connected to
/dev/ttyUSB1 (I have an ftdi widget on /dev/ttyUSB0 - more on that later..)

I have the latest files from
http://www.soft-switch.org/downloads/mspgcc installed
and when I tried to run msp430-gdbproxy --selftest-usb-fet I got a
complaint about an
update being required. So far so good, thinks I.

I try the --update-usb-fet option, and here is what I get:
[an...@ermintrude foo]$  msp430-gdbproxy  msp430  --update-usb-fet /dev/ttyUSB1

Remote proxy for GDB, v0.7.1, Copyright (C) 1999 Quality Quorum Inc.
MSP430 adaption Copyright (C) 2002 Chris Liechti and Steve Underwood

GDBproxy comes with ABSOLUTELY NO WARRANTY; for details
use `--warranty' option. This is Open Source software. You are
welcome to redistribute it under certain conditions. Use the
'--copying' option for details.

notice:    msp430: TI USB FET update requested
notice:    msp430: Initializing bootloader...
error:     msp430: Could not initialize device interface (1)
debug: MSP430_Initialize()
error:     msp430: The FET tool version does not match this program.
Update required.
debug: MSP430_Initialize()
error:     msp430: The FET tool version does not match this program.
Update required.
debug: MSP430_Initialize()
error:     msp430: The FET tool version does not match this program.
Update required.
... [repeats until ^c]

Not good when the updater complains the same way.

Running it under strace:

[an...@ermintrude foo]$ strace msp430-gdbproxy  msp430
--update-usb-fet /dev/ttyUSB1
execve("./msp430-gdbproxy", ["msp430-gdbproxy", "msp430",
"--update-usb-fet", "/dev/ttyUSB1"], [/* 36 vars */]) = 0
brk(0)                                  = 0x8660000
access("/etc/ld.so.preload", R_OK)      = -1 ENOENT (No such file or directory)
open("/etc/ld.so.cache", O_RDONLY)      = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=112861, ...}) = 0
mmap2(NULL, 112861, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb7fc5000
close(3)                                = 0
open("/usr/lib/libMSP430.so", O_RDONLY) = 3
read(3, "\177elf\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\...@\220\0\0004\0\0\0"...,
512) = 512
fstat64(3, {st_mode=S_IFREG|0644, st_size=452181, ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1,
0) = 0xb7fc4000
mmap2(NULL, 567744, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3,
0) = 0x111000
mmap2(0x139000, 274432, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x27) = 0x139000
mmap2(0x17c000, 129472, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x17c000
close(3)                                = 0
open("/usr/lib/libHIL.so", O_RDONLY)    = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0000\t\0\0004\0\0\0"...,
512) = 512
fstat64(3, {st_mode=S_IFREG|0755, st_size=10827, ...}) = 0
mmap2(NULL, 10916, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3,
0) = 0x19c000
mmap2(0x19e000, 4096, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1) = 0x19e000
close(3)                                = 0
open("/lib/libc.so.6", O_RDONLY)        = 3
read(3, 
"\177elf\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\...@\300\0004\0\0\0"...,
512) = 512
fstat64(3, {st_mode=S_IFREG|0755, st_size=1673804, ...}) = 0
mmap2(0xbee000, 1390032, PROT_READ|PROT_EXEC,
MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xbee000
mmap2(0xd3c000, 12288, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x14e) = 0xd3c000
mmap2(0xd3f000, 9680, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xd3f000
close(3)                                = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1,
0) = 0xb7fc3000
set_thread_area({entry_number:-1 -> 6, base_addr:0xb7fc36c0,
limit:1048575, seg_32bit:1, contents:0, read_exec_only:0,
limit_in_pages:1, seg_not_present:0, useable:1}) = 0
mprotect(0xd3c000, 8192, PROT_READ)     = 0
mprotect(0x1d9000, 4096, PROT_READ)     = 0
munmap(0xb7fc5000, 112861)              = 0
fstat64(1, {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 7), ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1,
0) = 0xb7fe0000
write(1, "\n", 1
)                       = 1
write(1, "Remote proxy for GDB, v0.7.1, Co"..., 69Remote proxy for
GDB, v0.7.1, Copyright (C) 1999 Quality Quorum Inc.
) = 69
write(1, "MSP430 adaption Copyright (C) 20"..., 69MSP430 adaption
Copyright (C) 2002 Chris Liechti and Steve Underwood
) = 69
write(1, "\n", 1
)                       = 1
write(1, "GDBproxy comes with ABSOLUTELY N"..., 56GDBproxy comes with
ABSOLUTELY NO WARRANTY; for details
) = 56
write(1, "use `--warranty\' option. This is"..., 63use `--warranty'
option. This is Open Source software. You are
) = 63
write(1, "welcome to redistribute it under"..., 61welcome to
redistribute it under certain conditions. Use the
) = 61
write(1, "\'--copying\' option for details.\n", 32'--copying' option
for details.
) = 32
write(1, "\n", 1
)                       = 1
write(2, "notice:    ", 11notice:    )             = 11
write(2, "msp430: TI USB FET update reques"..., 35msp430: TI USB FET
update requested) = 35
write(2, "\n", 1
)                       = 1
write(2, "notice:    ", 11notice:    )             = 11
write(2, "msp430: Initializing bootloader."..., 34msp430: Initializing
bootloader...) = 34
write(2, "\n", 1
)                       = 1
open("/dev/ttyUSB0", O_RDWR)            = -1 EACCES (Permission denied)
write(2, "error:     ", 11error:     )             = 11
write(2, "msp430: Could not initialize dev"..., 49msp430: Could not
initialize device interface (1)) = 49
write(2, "\n", 1
)                       = 1
nanosleep({5, 0}, NULL)                 = 0
write(2, "debug: ", 7debug: )                  = 7
write(2, "MSP430_Initialize()", 19MSP430_Initialize())     = 19
write(2, "\n", 1
)                       = 1
open("/dev/ttyUSB1", O_RDWR)            = 3
ioctl(3, SNDCTL_TMR_TIMEBASE or TCGETS, {B460800 -opost -isig -icanon
-echo ...}) = 0
ioctl(3, SNDCTL_TMR_START or TCSETS, {B460800 -opost -isig -icanon
-echo ...}) = 0
ioctl(3, SNDCTL_TMR_TIMEBASE or TCGETS, {B460800 -opost -isig -icanon
-echo ...}) = 0
ioctl(3, TIOCMBIC, [TIOCM_DTR])         = 0
ioctl(3, TIOCMBIC, [TIOCM_RTS])         = 0
ioctl(3, TCFLSH, 0)                     = 0
write(3, "~\1\1\26\7~", 6)              = 6
gettimeofday({1194579887, 69333}, {300, 0}) = 0
select(4, [3], NULL, NULL, {0, 500000}) = 1 (in [3], left {0, 497000})
read(3, "\f\0", 2)                      = 2
gettimeofday({1194579887, 71961}, {300, 0}) = 0
select(4, [3], NULL, NULL, {0, 500000}) = 1 (in [3], left {0, 500000})
read(3, "\1\2\0\0\1\0(\3072\1\1\250", 12) = 12
ioctl(3, TCFLSH, 0)                     = 0
write(3, "~\'\2\1\0\4\0\0\0\361\350~", 12) = 12
gettimeofday({1194579887, 72248}, {300, 0}) = 0
select(4, [3], NULL, NULL, {0, 500000}) = 1 (in [3], left {0, 497000})
read(3, "\6\0", 2)                      = 2
gettimeofday({1194579887, 74917}, {300, 0}) = 0
select(4, [3], NULL, NULL, {0, 500000}) = 1 (in [3], left {0, 500000})
read(3, "\'\0059\0\253|", 6)            = 6
write(2, "error:     ", 11error:     )             = 11
write(2, "msp430: The FET tool version doe"..., 74msp430: The FET tool
version does not match this program. Update required.) = 74
write(2, "\n", 1
)                       = 1
nanosleep({5, 0},  <unfinished ...>

I lack the secret decoder ring to know what this exchange is trying to
tell me, but it looks like the device is
not just plain DOA, it is saying _something_ back.

Has anyone seen this before, or can any of the keepers of the secrets
decode the messages and
tell me what is going on ?

As an aside, I do notice that despite my specifying /dev/ttyUSB1 on
the command line, the
program is _still_ trying to open /dev/ttyUSB0 (the source of the
"error:     msp430: Could not initialize device interface (1)"
message.) I assume that would lead to other problems if permissions
didn't get in the way.
I'm pretty sure it shouldn't be doing _that_ either.
-- 
Andy

Reply via email to