Re: ACM interface on TI Launchpad

2011-01-30 Thread Hans Petter Selasky
On Sunday 30 January 2011 01:32:01 Peter Jeremy wrote:
 I recently acquired a TI LaunchPad[1] and want to use FreeBSD as my
 development enviroment (for anyone else who is interested in this, at
 some stage I intend to post my experiences with the various ports to
 -ports or feel free to contact me off-list).  It provides a FET430UIF
 USB interface to the host computer and some googling shows that this
 is a Communication Device Class (CDC), Abstract Control Model (ACM)
 sub-class which is supported in Linux via the cdc_acm driver.
 
 On FreeBSD 8.1, umodem(4) reports:
  ugen0.2: Texas Instruments at usbus0
  umodem0: MSP430 Application UART on usbus0
  umodem0: data interface 0, has no CM over data, has no break
 and creates /dev/ttyU0 (and friends) but mspdebug reports that it
 cannot access the UIF (so it is presumably talking to the device
 UART, rather than the control interface).
 
 I have tried adding the device id to usbdevs and
   {USB_VPI(USB_VENDOR_TI, USB_PRODUCT_TI_FET430UIF, 1)},
 to sys/dev/usb/serial/umodem.c:umodem_devs[] and this changes the
 probe to:
  ugen4.2: Texas Instruments at usbus4
  umodem0: MSP430 Application UART on usbus4
  umodem0: data interface 0, has no CM over data, has no break
  umodem1: MSP430 Debug-Interface on usbus4
  umodem1: Missing descriptor. Assuming data interface is next.
  umodem1: data interface 2, has CM over data, has no break
  umodem1: no data interface
  device_attach: umodem1 attach returned 6
  umodem1: MSP430 Debug-Interface on usbus4
  umodem1: Missing descriptor. Assuming data interface is next.
  umodem1: data interface 2, has CM over data, has no break
  umodem1: no data interface
  device_attach: umodem1 attach returned 6
 but there's no change to the accessibility.

Hi,

There is a patch pending for allowing a CDC modem interface not having the 
correct descriptors to work. It is not yet committed. You could try adding the 
VID+PID to u3g.c. Basically, your modem should have worked, given that the 
manufacturer had followed the specs. Another alternative is to use LibUSB.

Could you remind me about this issue in one week or so?

--HPS
___
freebsd-usb@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-usb
To unsubscribe, send any mail to freebsd-usb-unsubscr...@freebsd.org


Re: ACM interface on TI Launchpad

2011-01-30 Thread Warren Block

On Sun, 30 Jan 2011, Hans Petter Selasky wrote:


On Sunday 30 January 2011 01:32:01 Peter Jeremy wrote:

I recently acquired a TI LaunchPad[1] and want to use FreeBSD as my
development enviroment (for anyone else who is interested in this, at
some stage I intend to post my experiences with the various ports to
-ports or feel free to contact me off-list).  It provides a FET430UIF
USB interface to the host computer and some googling shows that this
is a Communication Device Class (CDC), Abstract Control Model (ACM)
sub-class which is supported in Linux via the cdc_acm driver.

On FreeBSD 8.1, umodem(4) reports:
 ugen0.2: Texas Instruments at usbus0
 umodem0: MSP430 Application UART on usbus0
 umodem0: data interface 0, has no CM over data, has no break
and creates /dev/ttyU0 (and friends) but mspdebug reports that it
cannot access the UIF (so it is presumably talking to the device
UART, rather than the control interface).


There is a patch pending for allowing a CDC modem interface not having the
correct descriptors to work. It is not yet committed. You could try adding the
VID+PID to u3g.c. Basically, your modem should have worked, given that the
manufacturer had followed the specs. Another alternative is to use LibUSB.


The prerelease MacOSX driver might be useful as an example:
http://processors.wiki.ti.com/index.php/MSP430_LaunchPad_Mac_OS_X
___
freebsd-usb@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-usb
To unsubscribe, send any mail to freebsd-usb-unsubscr...@freebsd.org


ACM interface on TI Launchpad

2011-01-29 Thread Peter Jeremy
I recently acquired a TI LaunchPad[1] and want to use FreeBSD as my
development enviroment (for anyone else who is interested in this, at
some stage I intend to post my experiences with the various ports to
-ports or feel free to contact me off-list).  It provides a FET430UIF
USB interface to the host computer and some googling shows that this
is a Communication Device Class (CDC), Abstract Control Model (ACM)
sub-class which is supported in Linux via the cdc_acm driver.

On FreeBSD 8.1, umodem(4) reports:
 ugen0.2: Texas Instruments at usbus0
 umodem0: MSP430 Application UART on usbus0
 umodem0: data interface 0, has no CM over data, has no break
and creates /dev/ttyU0 (and friends) but mspdebug reports that it
cannot access the UIF (so it is presumably talking to the device
UART, rather than the control interface).

I have tried adding the device id to usbdevs and
  {USB_VPI(USB_VENDOR_TI, USB_PRODUCT_TI_FET430UIF, 1)},
to sys/dev/usb/serial/umodem.c:umodem_devs[] and this changes the
probe to:
 ugen4.2: Texas Instruments at usbus4
 umodem0: MSP430 Application UART on usbus4
 umodem0: data interface 0, has no CM over data, has no break
 umodem1: MSP430 Debug-Interface on usbus4
 umodem1: Missing descriptor. Assuming data interface is next.
 umodem1: data interface 2, has CM over data, has no break
 umodem1: no data interface
 device_attach: umodem1 attach returned 6
 umodem1: MSP430 Debug-Interface on usbus4
 umodem1: Missing descriptor. Assuming data interface is next.
 umodem1: data interface 2, has CM over data, has no break
 umodem1: no data interface
 device_attach: umodem1 attach returned 6
but there's no change to the accessibility.

Looking at the Linux driver sources, there are no quirks for this on
Linux.  How do I go about getting umodem(4) (or some other driver) to
detect the debug interfaces on FreeBSD?

The output from usbconfig dump_device_desc is:
ugen4.2: Texas Instruments MSP-FET430UIF Texas Instruments at usbus4, cfg=0 
md=HOST spd=FULL (12Mbps) pwr=ON

  bLength = 0x0012 
  bDescriptorType = 0x0001 
  bcdUSB = 0x0110 
  bDeviceClass = 0x 
  bDeviceSubClass = 0x 
  bDeviceProtocol = 0x 
  bMaxPacketSize0 = 0x0008 
  idVendor = 0x0451 
  idProduct = 0xf432 
  bcdDevice = 0x0100 
  iManufacturer = 0x0001  Texas Instruments
  iProduct = 0x0002  Texas Instruments MSP-FET430UIF
  iSerialNumber = 0x0003  1EFF426C50172852
  bNumConfigurations = 0x0001 


The output from usbconfig dump_curr_config_desc is:
ugen4.2: Texas Instruments MSP-FET430UIF Texas Instruments at usbus4, cfg=0 
md=HOST spd=FULL (12Mbps) pwr=ON

 Configuration index 0

bLength = 0x0009 
bDescriptorType = 0x0002 
wTotalLength = 0x0055 
bNumInterfaces = 0x0002 
bConfigurationValue = 0x0001 
iConfiguration = 0x  no string
bmAttributes = 0x0080 
bMaxPower = 0x0032 

Interface 0
  bLength = 0x0009 
  bDescriptorType = 0x0004 
  bInterfaceNumber = 0x 
  bAlternateSetting = 0x 
  bNumEndpoints = 0x0003 
  bInterfaceClass = 0x0002 
  bInterfaceSubClass = 0x0002 
  bInterfaceProtocol = 0x0001 
  iInterface = 0x0005  MSP430 Application UART

  Additional Descriptor

  bLength = 0x05
  bDescriptorType = 0x24
  bDescriptorSubType = 0x00
   RAW dump: 
   0x00 | 0x05, 0x24, 0x00, 0x10, 0x01


  Additional Descriptor

  bLength = 0x05
  bDescriptorType = 0x24
  bDescriptorSubType = 0x01
   RAW dump: 
   0x00 | 0x05, 0x24, 0x01, 0x00, 0x00


  Additional Descriptor

  bLength = 0x04
  bDescriptorType = 0x24
  bDescriptorSubType = 0x02
   RAW dump: 
   0x00 | 0x04, 0x24, 0x02, 0x02


 Endpoint 0
bLength = 0x0007 
bDescriptorType = 0x0005 
bEndpointAddress = 0x0082  IN
bmAttributes = 0x0003  INTERRUPT
wMaxPacketSize = 0x0040 
bInterval = 0x00ff 
bRefresh = 0x 
bSynchAddress = 0x 

 Endpoint 1
bLength = 0x0007 
bDescriptorType = 0x0005 
bEndpointAddress = 0x0003  OUT
bmAttributes = 0x0002  BULK
wMaxPacketSize = 0x0040 
bInterval = 0x00ff 
bRefresh = 0x 
bSynchAddress = 0x 

 Endpoint 2
bLength = 0x0007 
bDescriptorType = 0x0005 
bEndpointAddress = 0x0083  IN
bmAttributes = 0x0002  BULK
wMaxPacketSize = 0x0040 
bInterval = 0x00ff 
bRefresh = 0x 
bSynchAddress = 0x 


Interface 1
  bLength = 0x0009 
  bDescriptorType = 0x0004 
  bInterfaceNumber = 0x0001 
  bAlternateSetting = 0x 
  bNumEndpoints = 0x0002 
  bInterfaceClass = 0x0003 
  bInterfaceSubClass = 0x 
  bInterfaceProtocol = 0x 
  iInterface = 0x0004  MSP430 Debug-Interface

  Additional Descriptor

  bLength = 0x09
  bDescriptorType = 0x21
  bDescriptorSubType = 0x01
   RAW dump: 
   0x00 | 0x09, 0x21, 0x01, 0x01, 0x00,