From owner-freebsd-usb@FreeBSD.ORG Sun Jan 30 02:22:57 2011 Return-Path: Delivered-To: freebsd-usb@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 4020F1065674 for ; Sun, 30 Jan 2011 02:22:57 +0000 (UTC) (envelope-from peterjeremy@acm.org) Received: from fallbackmx07.syd.optusnet.com.au (fallbackmx07.syd.optusnet.com.au [211.29.132.9]) by mx1.freebsd.org (Postfix) with ESMTP id 9CF298FC0C for ; Sun, 30 Jan 2011 02:22:56 +0000 (UTC) Received: from mail11.syd.optusnet.com.au (mail11.syd.optusnet.com.au [211.29.132.192]) by fallbackmx07.syd.optusnet.com.au (8.13.1/8.13.1) with ESMTP id p0U0W6v8004263 for ; Sun, 30 Jan 2011 11:32:06 +1100 Received: from server.vk2pj.dyndns.org (c220-239-116-103.belrs4.nsw.optusnet.com.au [220.239.116.103]) by mail11.syd.optusnet.com.au (8.13.1/8.13.1) with ESMTP id p0U0W2Jw015315 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO) for ; Sun, 30 Jan 2011 11:32:03 +1100 X-Bogosity: Ham, spamicity=0.000000 Received: from server.vk2pj.dyndns.org (localhost.vk2pj.dyndns.org [127.0.0.1]) by server.vk2pj.dyndns.org (8.14.4/8.14.4) with ESMTP id p0U0W1v9000130 for ; Sun, 30 Jan 2011 11:32:01 +1100 (EST) (envelope-from peter@server.vk2pj.dyndns.org) Received: (from peter@localhost) by server.vk2pj.dyndns.org (8.14.4/8.14.4/Submit) id p0U0W1qa000129 for freebsd-usb@freebsd.org; Sun, 30 Jan 2011 11:32:01 +1100 (EST) (envelope-from peter) Date: Sun, 30 Jan 2011 11:32:01 +1100 From: Peter Jeremy To: freebsd-usb@freebsd.org Message-ID: <20110130003201.GA99514@server.vk2pj.dyndns.org> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="qDbXVdCdHGoSgWSk" Content-Disposition: inline X-PGP-Key: http://members.optusnet.com.au/peterjeremy/pubkey.asc User-Agent: Mutt/1.5.20 (2009-06-14) Subject: ACM interface on TI Launchpad X-BeenThere: freebsd-usb@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: FreeBSD support for USB List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 30 Jan 2011 02:22:57 -0000 --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: at usbus0 umodem0: 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: at usbus4 umodem0: on usbus4 umodem0: data interface 0, has no CM over data, has no break umodem1: 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: 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: 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 iProduct =3D 0x0002 iSerialNumber =3D 0x0003 <1EFF426C50172852> bNumConfigurations =3D 0x0001=20 The output from "usbconfig dump_curr_config_desc" is: ugen4.2: 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 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 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 bmAttributes =3D 0x0003 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 bmAttributes =3D 0x0002 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 bmAttributes =3D 0x0002 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 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 bmAttributes =3D 0x0003 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 bmAttributes =3D 0x0003 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--