usb/165154: USB patch for new u3g device

2012-02-14 Thread mike tancsa

Number: 165154
Category:   usb
Synopsis:   USB patch for new u3g device
Confidential:   no
Severity:   non-critical
Priority:   medium
Responsible:freebsd-usb
State:  open
Quarter:
Keywords:   
Date-Required:
Class:  update
Submitter-Id:   current-users
Arrival-Date:   Tue Feb 14 21:20:07 UTC 2012
Closed-Date:
Last-Modified:
Originator: mike tancsa
Release:RELENG_8
Organization:
Sentex Communications
Environment:
8.2-STABLE FreeBSD 8.2-STABLE #0: Tue Feb 14 14:24:26 EST 2012  i386
Description:
Hi,
Sierra has a new air card to do LTE (Aircard 313U). It seems to work well with 
FreeBSD after the simple patches below.


ugen3.3: AirCard 313U Sierra Wireless, Incorporated at usbus3, cfg=0 md=HOST 
spd=HIGH (480Mbps) pwr=ON

  bLength = 0x0012 
  bDescriptorType = 0x0001 
  bcdUSB = 0x0200 
  bDeviceClass = 0x 
  bDeviceSubClass = 0x 
  bDeviceProtocol = 0x 
  bMaxPacketSize0 = 0x0040 
  idVendor = 0x1199 
  idProduct = 0x68aa 
  bcdDevice = 0x0006 
  iManufacturer = 0x0003  Sierra Wireless, Incorporated
  iProduct = 0x0002  AirCard 313U
  iSerialNumber = 0x0004  01269827166
  bNumConfigurations = 0x0001 




ugen3.3: AirCard 313U Sierra Wireless, Incorporated at usbus3, cfg=0 md=HOST 
spd=HIGH (480Mbps) pwr=ON


 Configuration index 0

bLength = 0x0009 
bDescriptorType = 0x0002 
wTotalLength = 0x00bf 
bNumInterfaces = 0x0007 
bConfigurationValue = 0x0001 
iConfiguration = 0x0001  Sierra Configuration
bmAttributes = 0x00a0 
bMaxPower = 0x00fa 

Interface 0
  bLength = 0x0009 
  bDescriptorType = 0x0004 
  bInterfaceNumber = 0x 
  bAlternateSetting = 0x 
  bNumEndpoints = 0x0002 
  bInterfaceClass = 0x00ff 
  bInterfaceSubClass = 0x00ff 
  bInterfaceProtocol = 0x00ff 
  iInterface = 0x  no string

 Endpoint 0
bLength = 0x0007 
bDescriptorType = 0x0005 
bEndpointAddress = 0x0081  IN
bmAttributes = 0x0002  BULK
wMaxPacketSize = 0x0200 
bInterval = 0x0020 
bRefresh = 0x 
bSynchAddress = 0x 

 Endpoint 1
bLength = 0x0007 
bDescriptorType = 0x0005 
bEndpointAddress = 0x0001  OUT
bmAttributes = 0x0002  BULK
wMaxPacketSize = 0x0200 
bInterval = 0x0020 
bRefresh = 0x 
bSynchAddress = 0x 


Interface 1
  bLength = 0x0009 
  bDescriptorType = 0x0004 
  bInterfaceNumber = 0x0001 
  bAlternateSetting = 0x 
  bNumEndpoints = 0x0002 
  bInterfaceClass = 0x00ff 
  bInterfaceSubClass = 0x00ff 
  bInterfaceProtocol = 0x00ff 
  iInterface = 0x  no string

 Endpoint 0
bLength = 0x0007 
bDescriptorType = 0x0005 
bEndpointAddress = 0x0082  IN
bmAttributes = 0x0002  BULK
wMaxPacketSize = 0x0200 
bInterval = 0x0020 
bRefresh = 0x 
bSynchAddress = 0x 

 Endpoint 1
bLength = 0x0007 
bDescriptorType = 0x0005 
bEndpointAddress = 0x0002  OUT
bmAttributes = 0x0002  BULK
wMaxPacketSize = 0x0200 
bInterval = 0x0020 
bRefresh = 0x 
bSynchAddress = 0x 


Interface 2
  bLength = 0x0009 
  bDescriptorType = 0x0004 
  bInterfaceNumber = 0x0002 
  bAlternateSetting = 0x 
  bNumEndpoints = 0x0002 
  bInterfaceClass = 0x00ff 
  bInterfaceSubClass = 0x00ff 
  bInterfaceProtocol = 0x00ff 
  iInterface = 0x  no string

 Endpoint 0
bLength = 0x0007 
bDescriptorType = 0x0005 
bEndpointAddress = 0x0083  IN
bmAttributes = 0x0002  BULK
wMaxPacketSize = 0x0200 
bInterval = 0x0020 
bRefresh = 0x 
bSynchAddress = 0x 

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


Interface 3
  bLength = 0x0009 
  bDescriptorType = 0x0004 
  bInterfaceNumber = 0x0003 
  bAlternateSetting = 0x 
  bNumEndpoints = 0x0003 
  bInterfaceClass = 0x00ff 
  bInterfaceSubClass = 0x00ff 
  bInterfaceProtocol = 0x00ff 
  iInterface = 0x  no string

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

 Endpoint 1
bLength = 0x0007 
bDescriptorType = 0x0005 
bEndpointAddress = 0x0085  IN
bmAttributes = 0x0002  BULK
wMaxPacketSize = 0x0200 
bInterval = 0x0020 
bRefresh = 0x 
bSynchAddress = 0x 

   

FreeBSD and Sierra Wireless AirCard 313U

2012-02-14 Thread Mike Tancsa
In case anyone else is looking to get this LTE card working on FreeBSD,
the following simple device patches work for me. I submitted a PR as
well (http://www.freebsd.org/cgi/query-pr.cgi?pr=165154)


ugen3.3: AirCard 313U Sierra Wireless, Incorporated at usbus3, cfg=0
md=HOST spd=HIGH (480Mbps) pwr=ON

  bLength = 0x0012
  bDescriptorType = 0x0001
  bcdUSB = 0x0200
  bDeviceClass = 0x
  bDeviceSubClass = 0x
  bDeviceProtocol = 0x
  bMaxPacketSize0 = 0x0040
  idVendor = 0x1199
  idProduct = 0x68aa
  bcdDevice = 0x0006
  iManufacturer = 0x0003  Sierra Wireless, Incorporated
  iProduct = 0x0002  AirCard 313U
  iSerialNumber = 0x0004  01269827166
  bNumConfigurations = 0x0001




ugen3.3: AirCard 313U Sierra Wireless, Incorporated at usbus3, cfg=0
md=HOST spd=HIGH (480Mbps) pwr=ON


 Configuration index 0

bLength = 0x0009
bDescriptorType = 0x0002
wTotalLength = 0x00bf
bNumInterfaces = 0x0007
bConfigurationValue = 0x0001
iConfiguration = 0x0001  Sierra Configuration
bmAttributes = 0x00a0
bMaxPower = 0x00fa

Interface 0
  bLength = 0x0009
  bDescriptorType = 0x0004
  bInterfaceNumber = 0x
  bAlternateSetting = 0x
  bNumEndpoints = 0x0002
  bInterfaceClass = 0x00ff
  bInterfaceSubClass = 0x00ff
  bInterfaceProtocol = 0x00ff
  iInterface = 0x  no string

 Endpoint 0
bLength = 0x0007
bDescriptorType = 0x0005
bEndpointAddress = 0x0081  IN
bmAttributes = 0x0002  BULK
wMaxPacketSize = 0x0200
bInterval = 0x0020
bRefresh = 0x
bSynchAddress = 0x

 Endpoint 1
bLength = 0x0007
bDescriptorType = 0x0005
bEndpointAddress = 0x0001  OUT
bmAttributes = 0x0002  BULK
wMaxPacketSize = 0x0200
bInterval = 0x0020
bRefresh = 0x
bSynchAddress = 0x


Interface 1
  bLength = 0x0009
  bDescriptorType = 0x0004
  bInterfaceNumber = 0x0001
  bAlternateSetting = 0x
  bNumEndpoints = 0x0002
  bInterfaceClass = 0x00ff
  bInterfaceSubClass = 0x00ff
  bInterfaceProtocol = 0x00ff
  iInterface = 0x  no string

 Endpoint 0
bLength = 0x0007
bDescriptorType = 0x0005
bEndpointAddress = 0x0082  IN
bmAttributes = 0x0002  BULK
wMaxPacketSize = 0x0200
bInterval = 0x0020
bRefresh = 0x
bSynchAddress = 0x

 Endpoint 1
bLength = 0x0007
bDescriptorType = 0x0005
bEndpointAddress = 0x0002  OUT
bmAttributes = 0x0002  BULK
wMaxPacketSize = 0x0200
bInterval = 0x0020
bRefresh = 0x
bSynchAddress = 0x


Interface 2
  bLength = 0x0009
  bDescriptorType = 0x0004
  bInterfaceNumber = 0x0002
  bAlternateSetting = 0x
  bNumEndpoints = 0x0002
  bInterfaceClass = 0x00ff
  bInterfaceSubClass = 0x00ff
  bInterfaceProtocol = 0x00ff
  iInterface = 0x  no string

 Endpoint 0
bLength = 0x0007
bDescriptorType = 0x0005
bEndpointAddress = 0x0083  IN
bmAttributes = 0x0002  BULK
wMaxPacketSize = 0x0200
bInterval = 0x0020
bRefresh = 0x
bSynchAddress = 0x

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


Interface 3
  bLength = 0x0009
  bDescriptorType = 0x0004
  bInterfaceNumber = 0x0003
  bAlternateSetting = 0x
  bNumEndpoints = 0x0003
  bInterfaceClass = 0x00ff
  bInterfaceSubClass = 0x00ff
  bInterfaceProtocol = 0x00ff
  iInterface = 0x  no string

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

 Endpoint 1
bLength = 0x0007
bDescriptorType = 0x0005
bEndpointAddress = 0x0085  IN
bmAttributes = 0x0002  BULK
wMaxPacketSize = 0x0200
bInterval = 0x0020
bRefresh = 0x
bSynchAddress = 0x

 Endpoint 2
bLength = 0x0007
bDescriptorType = 0x0005
bEndpointAddress = 0x0004  OUT
bmAttributes = 0x0002  BULK
wMaxPacketSize = 0x0200
bInterval = 0x0020
bRefresh = 0x
bSynchAddress = 0x


Interface 4
  bLength = 0x0009
  bDescriptorType = 0x0004
  bInterfaceNumber = 0x0004
  bAlternateSetting = 0x
  bNumEndpoints = 0x0003
  bInterfaceClass = 0x00ff
  bInterfaceSubClass = 0x00ff
  bInterfaceProtocol = 0x00ff
  iInterface = 0x  no string

 Endpoint 0