Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 30 Jan 2011 11:32:01 +1100
From:      Peter Jeremy <peterjeremy@acm.org>
To:        freebsd-usb@freebsd.org
Subject:   ACM interface on TI Launchpad
Message-ID:  <20110130003201.GA99514@server.vk2pj.dyndns.org>

next in thread | raw e-mail | index | archive | help

--qDbXVdCdHGoSgWSk
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

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=
=3D0 md=3DHOST spd=3DFULL (12Mbps) pwr=3DON

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


The output from "usbconfig dump_curr_config_desc" is:
ugen4.2: <Texas Instruments MSP-FET430UIF Texas Instruments> at usbus4, cfg=
=3D0 md=3DHOST spd=3DFULL (12Mbps) pwr=3DON

 Configuration index 0

    bLength =3D 0x0009=20
    bDescriptorType =3D 0x0002=20
    wTotalLength =3D 0x0055=20
    bNumInterfaces =3D 0x0002=20
    bConfigurationValue =3D 0x0001=20
    iConfiguration =3D 0x0000  <no string>
    bmAttributes =3D 0x0080=20
    bMaxPower =3D 0x0032=20

    Interface 0
      bLength =3D 0x0009=20
      bDescriptorType =3D 0x0004=20
      bInterfaceNumber =3D 0x0000=20
      bAlternateSetting =3D 0x0000=20
      bNumEndpoints =3D 0x0003=20
      bInterfaceClass =3D 0x0002=20
      bInterfaceSubClass =3D 0x0002=20
      bInterfaceProtocol =3D 0x0001=20
      iInterface =3D 0x0005  <MSP430 Application UART>

      Additional Descriptor

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


      Additional Descriptor

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


      Additional Descriptor

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


     Endpoint 0
        bLength =3D 0x0007=20
        bDescriptorType =3D 0x0005=20
        bEndpointAddress =3D 0x0082  <IN>
        bmAttributes =3D 0x0003  <INTERRUPT>
        wMaxPacketSize =3D 0x0040=20
        bInterval =3D 0x00ff=20
        bRefresh =3D 0x0000=20
        bSynchAddress =3D 0x0000=20

     Endpoint 1
        bLength =3D 0x0007=20
        bDescriptorType =3D 0x0005=20
        bEndpointAddress =3D 0x0003  <OUT>
        bmAttributes =3D 0x0002  <BULK>
        wMaxPacketSize =3D 0x0040=20
        bInterval =3D 0x00ff=20
        bRefresh =3D 0x0000=20
        bSynchAddress =3D 0x0000=20

     Endpoint 2
        bLength =3D 0x0007=20
        bDescriptorType =3D 0x0005=20
        bEndpointAddress =3D 0x0083  <IN>
        bmAttributes =3D 0x0002  <BULK>
        wMaxPacketSize =3D 0x0040=20
        bInterval =3D 0x00ff=20
        bRefresh =3D 0x0000=20
        bSynchAddress =3D 0x0000=20


    Interface 1
      bLength =3D 0x0009=20
      bDescriptorType =3D 0x0004=20
      bInterfaceNumber =3D 0x0001=20
      bAlternateSetting =3D 0x0000=20
      bNumEndpoints =3D 0x0002=20
      bInterfaceClass =3D 0x0003=20
      bInterfaceSubClass =3D 0x0000=20
      bInterfaceProtocol =3D 0x0000=20
      iInterface =3D 0x0004  <MSP430 Debug-Interface>

      Additional Descriptor

      bLength =3D 0x09
      bDescriptorType =3D 0x21
      bDescriptorSubType =3D 0x01
       RAW dump:=20
       0x00 | 0x09, 0x21, 0x01, 0x01, 0x00, 0x01, 0x22, 0xb6,=20
       0x08 | 0x02

     Endpoint 0
        bLength =3D 0x0007=20
        bDescriptorType =3D 0x0005=20
        bEndpointAddress =3D 0x0081  <IN>
        bmAttributes =3D 0x0003  <INTERRUPT>
        wMaxPacketSize =3D 0x0040=20
        bInterval =3D 0x0001=20
        bRefresh =3D 0x0000=20
        bSynchAddress =3D 0x0000=20

     Endpoint 1
        bLength =3D 0x0007=20
        bDescriptorType =3D 0x0005=20
        bEndpointAddress =3D 0x0001  <OUT>
        bmAttributes =3D 0x0003  <INTERRUPT>
        wMaxPacketSize =3D 0x0040=20
        bInterval =3D 0x0001=20
        bRefresh =3D 0x0000=20
        bSynchAddress =3D 0x0000=20

[1] http://processors.wiki.ti.com/index.php/MSP430_LaunchPad_%28MSP-EXP430G=
2%29
--=20
Peter Jeremy

--qDbXVdCdHGoSgWSk
Content-Type: application/pgp-signature
Content-Disposition: inline

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.15 (FreeBSD)

iEYEARECAAYFAk1EsYEACgkQ/opHv/APuIdrlACfVoGVD2H/PB55Jyt0FQF3bwzd
uKgAoIUln0bZbNrx6K8A85pfQsre2qMG
=ED7L
-----END PGP SIGNATURE-----

--qDbXVdCdHGoSgWSk--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20110130003201.GA99514>