News:

Attention: For security reasons,please choose a user name *different* from your login name.
Also make sure to choose a secure password and change it regularly.

Main Menu

Linux JTAG and serial /dev/ttyUSBx

Started by tcmichals, February 09, 2019, 11:55:41 PM

Previous topic - Next topic

tcmichals

Is it possible to  possible to access the jtag and the serial port at the same time in Linux?  For example, in windows a serial port and the jtag is active at the same time.

Thank you,

Tim

tcmichals

I found this https://www.systutorials.com/linux-kernels/489268/usb-serial-ftdi_sio-use-jtag-quirk-for-arrow-usb-blaster-linux-4-9-98/
I'm using kernel Linux desktop 4.15.0-45-generic #
syslog reports:

Feb  9 17:02:13 desktop upowerd[1333]: unhandled action 'unbind' on /sys/devices/pci0000:00/0000:00:14.0/usb1/1-8/1-8.4
Feb  9 17:02:17 desktop kernel: [28687.093353] usb 1-8.4: new high-speed USB device number 24 using xhci_hcd
Feb  9 17:02:17 desktop kernel: [28687.197963] usb 1-8.4: New USB device found, idVendor=0403, idProduct=6010
Feb  9 17:02:17 desktop kernel: [28687.197965] usb 1-8.4: New USB device strings: Mfr=1, Product=2, SerialNumber=3
Feb  9 17:02:17 desktop kernel: [28687.197968] usb 1-8.4: Product: Arrow USB Blaster
Feb  9 17:02:17 desktop kernel: [28687.197969] usb 1-8.4: Manufacturer: Arrow
Feb  9 17:02:17 desktop kernel: [28687.197971] usb 1-8.4: SerialNumber: AR2E3J9H
Feb  9 17:02:17 desktop kernel: [28687.200998] usb 1-8.4: Ignoring serial port reserved for JTAG

But the only way to get the Arrow programmer to show show up is to use 51-arrow-programmer.rules .

Also, looking at:  ls /sys/bus/usb/drivers/ftdi_sio/
1-8.4:1.1  bind  module  uevent  unbind
Looks like the /dev/ttyUSB0 is on the interface 1 not 0.  Correct?

Using a standard FTDI serial port:
ls /sys/bus/usb/drivers/ftdi_sio/
1-8.3:1.0  bind  module  uevent  unbind
So, this is for the first interface, 0.


JH

Hi,
which programmer did you mean exactly?
This one:
there are 2 ports, one is reserved for JTAG and the second one can be used for uart.
On Linux the first detected ttyUSB of the programmer should be JTAG and second one UART

br
John

tcmichals

Correct there are two physical ports.  (1) JTAG and (1) RS232.  Linux should have a JTAG port and /dev/ttyUSB0 or some /dev/ttyUSBx number correct? 

tcmichals

OK,  I updated the rules file to:
# Arrow-USB-Programmer
SUBSYSTEM=="usb",\
ENV{DEVTYPE}=="usb_device",\
ATTR{idVendor}=="0403",\
ATTR{idProduct}=="6010",\
MODE="0666",\
NAME="bus/usb/$env{BUSNUM}/$env{DEVNUM}",\
RUN+="/bin/chmod 0666 %c"

# Interface number zero is a JTAG.
# SUBSYSTEM=="usb",\
# ATTRS{idVendor}=="0403",\
# ATTRS{idProduct}=="6010",\
# ATTR{interface}=="Arrow USB Blaster",\
# ATTR{bInterfaceNumber}=="00"
# RUN="/bin/sh -c 'echo $kernel > /sys/bus/usb/drivers/ftdi_sio/unbind'"

Now there is a JTAG device (that is working) and /dev/ttyUSB0  I have not validated if serial is working.   Will try in couple of days.

tcmichals

Removing
#Interface number zero is a JTAG.
# SUBSYSTEM=="usb",\
# ATTRS{idVendor}=="0403",\
# ATTRS{idProduct}=="6010",\
# ATTR{interface}=="Arrow USB Blaster",\
# ATTR{bInterfaceNumber}=="00"
# RUN="/bin/sh -c 'echo $kernel > /sys/bus/usb/drivers/ftdi_sio/unbind'"
rrom the rules file allows /dev/ttyUSBx and JTAG to work at the same time.  Created a simple loop back on the serial pins using the CYC1000 and was able to echo data back up to 3Mbps using minicom  Also, adding some pins to route the serial out to the header and validated pins were toggling using a log analyzer.