usb/130024: [newusb] Sun Type 7 Unix keyboard doesn't work with usb2

Renato Botelho garga at freebsd.org
Thu Jan 15 07:30:04 PST 2009


The following reply was made to PR usb/130024; it has been noted by GNATS.

From: Renato Botelho <garga at freebsd.org>
To: Hans Petter Selasky <hselasky at freebsd.org>
Cc: bug-followup at freebsd.org
Subject: Re: usb/130024: [newusb] Sun Type 7 Unix keyboard doesn't work
	with usb2
Date: Thu, 15 Jan 2009 13:24:20 -0200

 On Sat, Jan 03, 2009 at 12:54:21AM +0100, Hans Petter Selasky wrote:
 > Hi,
 > 
 > Have you tried on different computers?
 > 
 > Is the problem the same everwhere?
 > 
 > Are you willing to sponsor one of those keyboards for debugging purpose?
 > 
 > Could you attach to this PR dumps of the keyboard descriptors using the 
 > usbconfig dump commands? See "usbconfig -h" if you need help.
 > 
 > For example:
 > 
 > usbconfig -u xxx -a yyy dump_curr_config_desc dump_device_desc
 > 
 > And: "dmesg | grep -i usb"
 
 I have news about it, i'm writing this email using the sun keyboard. I
 discovered that it works on one usb port of my box IF i connect the mouse on
 another port, let me explain.
 
 With current usb stack, I connect mouse on a usb port of the Keyboard (it
 has 3), and connect keyboard on any computer usb port and it works fine.
 
 To make it work with newusb, i need to boot the machine, connect mouse on a
 usb port and after this connect keyboard on an specyfic usb port.
 
 Here is the data you asked me:
 
 usbconfig output:
 
 ugen0.1: <UHCI root HUB VIA> at usbus0, cfg=0 md=HOST spd=FULL (12Mbps) pwr=ON
 
   bLength = 0x0012 
   bDescriptorType = 0x0001 
   bcdUSB = 0x0100 
   bDeviceClass = 0x0009 
   bDeviceSubClass = 0x0000 
   bDeviceProtocol = 0x0000 
   bMaxPacketSize0 = 0x0040 
   idVendor = 0x0000 
   idProduct = 0x0000 
   bcdDevice = 0x0100 
   iManufacturer = 0x0001  <VIA>
   iProduct = 0x0002  <UHCI root HUB>
   iSerialNumber = 0x0000  <no string>
   bNumConfigurations = 0x0001 
 
 
  Configuration index 0
 
     bLength = 0x0009 
     bDescriptorType = 0x0002 
     wTotalLength = 0x0019 
     bNumInterfaces = 0x0001 
     bConfigurationValue = 0x0001 
     iConfiguration = 0x0000  <no string>
     bmAttributes = 0x0040 
     bMaxPower = 0x0000 
 
     Interface 0
       bLength = 0x0009 
       bDescriptorType = 0x0004 
       bInterfaceNumber = 0x0000 
       bAlternateSetting = 0x0000 
       bNumEndpoints = 0x0001 
       bInterfaceClass = 0x0009 
       bInterfaceSubClass = 0x0000 
       bInterfaceProtocol = 0x0000 
       iInterface = 0x0000  <no string>
 
      Endpoint 0
         bLength = 0x0007 
         bDescriptorType = 0x0005 
         bEndpointAddress = 0x0081 
         bmAttributes = 0x0003 
         wMaxPacketSize = 0x0008 
         bInterval = 0x00ff 
         bRefresh = 0x0000 
         bSynchAddress = 0x0000 
 
 
 
 ugen1.1: <UHCI root HUB VIA> at usbus1, cfg=0 md=HOST spd=FULL (12Mbps) pwr=ON
 
   bLength = 0x0012 
   bDescriptorType = 0x0001 
   bcdUSB = 0x0100 
   bDeviceClass = 0x0009 
   bDeviceSubClass = 0x0000 
   bDeviceProtocol = 0x0000 
   bMaxPacketSize0 = 0x0040 
   idVendor = 0x0000 
   idProduct = 0x0000 
   bcdDevice = 0x0100 
   iManufacturer = 0x0001  <VIA>
   iProduct = 0x0002  <UHCI root HUB>
   iSerialNumber = 0x0000  <no string>
   bNumConfigurations = 0x0001 
 
 
  Configuration index 0
 
     bLength = 0x0009 
     bDescriptorType = 0x0002 
     wTotalLength = 0x0019 
     bNumInterfaces = 0x0001 
     bConfigurationValue = 0x0001 
     iConfiguration = 0x0000  <no string>
     bmAttributes = 0x0040 
     bMaxPower = 0x0000 
 
     Interface 0
       bLength = 0x0009 
       bDescriptorType = 0x0004 
       bInterfaceNumber = 0x0000 
       bAlternateSetting = 0x0000 
       bNumEndpoints = 0x0001 
       bInterfaceClass = 0x0009 
       bInterfaceSubClass = 0x0000 
       bInterfaceProtocol = 0x0000 
       iInterface = 0x0000  <no string>
 
      Endpoint 0
         bLength = 0x0007 
         bDescriptorType = 0x0005 
         bEndpointAddress = 0x0081 
         bmAttributes = 0x0003 
         wMaxPacketSize = 0x0008 
         bInterval = 0x00ff 
         bRefresh = 0x0000 
         bSynchAddress = 0x0000 
 
 
 
 ugen2.1: <UHCI root HUB VIA> at usbus2, cfg=0 md=HOST spd=FULL (12Mbps) pwr=ON
 
   bLength = 0x0012 
   bDescriptorType = 0x0001 
   bcdUSB = 0x0100 
   bDeviceClass = 0x0009 
   bDeviceSubClass = 0x0000 
   bDeviceProtocol = 0x0000 
   bMaxPacketSize0 = 0x0040 
   idVendor = 0x0000 
   idProduct = 0x0000 
   bcdDevice = 0x0100 
   iManufacturer = 0x0001  <VIA>
   iProduct = 0x0002  <UHCI root HUB>
   iSerialNumber = 0x0000  <no string>
   bNumConfigurations = 0x0001 
 
 
  Configuration index 0
 
     bLength = 0x0009 
     bDescriptorType = 0x0002 
     wTotalLength = 0x0019 
     bNumInterfaces = 0x0001 
     bConfigurationValue = 0x0001 
     iConfiguration = 0x0000  <no string>
     bmAttributes = 0x0040 
     bMaxPower = 0x0000 
 
     Interface 0
       bLength = 0x0009 
       bDescriptorType = 0x0004 
       bInterfaceNumber = 0x0000 
       bAlternateSetting = 0x0000 
       bNumEndpoints = 0x0001 
       bInterfaceClass = 0x0009 
       bInterfaceSubClass = 0x0000 
       bInterfaceProtocol = 0x0000 
       iInterface = 0x0000  <no string>
 
      Endpoint 0
         bLength = 0x0007 
         bDescriptorType = 0x0005 
         bEndpointAddress = 0x0081 
         bmAttributes = 0x0003 
         wMaxPacketSize = 0x0008 
         bInterval = 0x00ff 
         bRefresh = 0x0000 
         bSynchAddress = 0x0000 
 
 
 
 ugen3.1: <UHCI root HUB VIA> at usbus3, cfg=0 md=HOST spd=FULL (12Mbps) pwr=ON
 
   bLength = 0x0012 
   bDescriptorType = 0x0001 
   bcdUSB = 0x0100 
   bDeviceClass = 0x0009 
   bDeviceSubClass = 0x0000 
   bDeviceProtocol = 0x0000 
   bMaxPacketSize0 = 0x0040 
   idVendor = 0x0000 
   idProduct = 0x0000 
   bcdDevice = 0x0100 
   iManufacturer = 0x0001  <VIA>
   iProduct = 0x0002  <UHCI root HUB>
   iSerialNumber = 0x0000  <no string>
   bNumConfigurations = 0x0001 
 
 
  Configuration index 0
 
     bLength = 0x0009 
     bDescriptorType = 0x0002 
     wTotalLength = 0x0019 
     bNumInterfaces = 0x0001 
     bConfigurationValue = 0x0001 
     iConfiguration = 0x0000  <no string>
     bmAttributes = 0x0040 
     bMaxPower = 0x0000 
 
     Interface 0
       bLength = 0x0009 
       bDescriptorType = 0x0004 
       bInterfaceNumber = 0x0000 
       bAlternateSetting = 0x0000 
       bNumEndpoints = 0x0001 
       bInterfaceClass = 0x0009 
       bInterfaceSubClass = 0x0000 
       bInterfaceProtocol = 0x0000 
       iInterface = 0x0000  <no string>
 
      Endpoint 0
         bLength = 0x0007 
         bDescriptorType = 0x0005 
         bEndpointAddress = 0x0081 
         bmAttributes = 0x0003 
         wMaxPacketSize = 0x0008 
         bInterval = 0x00ff 
         bRefresh = 0x0000 
         bSynchAddress = 0x0000 
 
 
 
 ugen4.1: <EHCI root HUB VIA> at usbus4, cfg=0 md=HOST spd=HIGH (480Mbps) pwr=ON
 
   bLength = 0x0012 
   bDescriptorType = 0x0001 
   bcdUSB = 0x0200 
   bDeviceClass = 0x0009 
   bDeviceSubClass = 0x0000 
   bDeviceProtocol = 0x0001 
   bMaxPacketSize0 = 0x0040 
   idVendor = 0x0000 
   idProduct = 0x0000 
   bcdDevice = 0x0100 
   iManufacturer = 0x0001  <VIA>
   iProduct = 0x0002  <EHCI root HUB>
   iSerialNumber = 0x0000  <no string>
   bNumConfigurations = 0x0001 
 
 
  Configuration index 0
 
     bLength = 0x0009 
     bDescriptorType = 0x0002 
     wTotalLength = 0x0019 
     bNumInterfaces = 0x0001 
     bConfigurationValue = 0x0001 
     iConfiguration = 0x0000  <no string>
     bmAttributes = 0x0040 
     bMaxPower = 0x0000 
 
     Interface 0
       bLength = 0x0009 
       bDescriptorType = 0x0004 
       bInterfaceNumber = 0x0000 
       bAlternateSetting = 0x0000 
       bNumEndpoints = 0x0001 
       bInterfaceClass = 0x0009 
       bInterfaceSubClass = 0x0000 
       bInterfaceProtocol = 0x0000 
       iInterface = 0x0000  <no string>
 
      Endpoint 0
         bLength = 0x0007 
         bDescriptorType = 0x0005 
         bEndpointAddress = 0x0081 
         bmAttributes = 0x0003 
         wMaxPacketSize = 0x0008 
         bInterval = 0x00ff 
         bRefresh = 0x0000 
         bSynchAddress = 0x0000 
 
 
 
 ugen1.3: <product 0x100e Sun Microsystems> at usbus1, cfg=0 md=HOST spd=FULL (12Mbps) pwr=SAVE
 
   bLength = 0x0012 
   bDescriptorType = 0x0001 
   bcdUSB = 0x0200 
   bDeviceClass = 0x0009 
   bDeviceSubClass = 0x0000 
   bDeviceProtocol = 0x0000 
   bMaxPacketSize0 = 0x0008 
   idVendor = 0x0430 
   idProduct = 0x100e 
   bcdDevice = 0x0104 
   iManufacturer = 0x0000  <no string>
   iProduct = 0x0000  <no string>
   iSerialNumber = 0x0000  <no string>
   bNumConfigurations = 0x0001 
 
 
  Configuration index 0
 
     bLength = 0x0009 
     bDescriptorType = 0x0002 
     wTotalLength = 0x0019 
     bNumInterfaces = 0x0001 
     bConfigurationValue = 0x0001 
     iConfiguration = 0x0000  <no string>
     bmAttributes = 0x00a0 
     bMaxPower = 0x0032 
 
     Interface 0
       bLength = 0x0009 
       bDescriptorType = 0x0004 
       bInterfaceNumber = 0x0000 
       bAlternateSetting = 0x0000 
       bNumEndpoints = 0x0001 
       bInterfaceClass = 0x0009 
       bInterfaceSubClass = 0x0000 
       bInterfaceProtocol = 0x0000 
       iInterface = 0x0000  <no string>
 
      Endpoint 0
         bLength = 0x0007 
         bDescriptorType = 0x0005 
         bEndpointAddress = 0x0081 
         bmAttributes = 0x0003 
         wMaxPacketSize = 0x0001 
         bInterval = 0x00ff 
         bRefresh = 0x0000 
         bSynchAddress = 0x0000 
 
 
 
 ugen1.4: <product 0x00a2 Sun Microsystems> at usbus1, cfg=0 md=HOST spd=FULL (12Mbps) pwr=ON
 
   bLength = 0x0012 
   bDescriptorType = 0x0001 
   bcdUSB = 0x0200 
   bDeviceClass = 0x0000 
   bDeviceSubClass = 0x0000 
   bDeviceProtocol = 0x0000 
   bMaxPacketSize0 = 0x0008 
   idVendor = 0x0430 
   idProduct = 0x00a2 
   bcdDevice = 0x0104 
   iManufacturer = 0x0000  <no string>
   iProduct = 0x0001  <Sun USB Keyboard>
   iSerialNumber = 0x0000  <no string>
   bNumConfigurations = 0x0001 
 
 
  Configuration index 0
 
     bLength = 0x0009 
     bDescriptorType = 0x0002 
     wTotalLength = 0x0022 
     bNumInterfaces = 0x0001 
     bConfigurationValue = 0x0001 
     iConfiguration = 0x0000  <no string>
     bmAttributes = 0x00a0 
     bMaxPower = 0x0032 
 
     Interface 0
       bLength = 0x0009 
       bDescriptorType = 0x0004 
       bInterfaceNumber = 0x0000 
       bAlternateSetting = 0x0000 
       bNumEndpoints = 0x0001 
       bInterfaceClass = 0x0003 
       bInterfaceSubClass = 0x0001 
       bInterfaceProtocol = 0x0001 
       iInterface = 0x0000  <no string>
 
       Additional Descriptor
 
       bLength = 0x09
       bDescriptorType = 0x21
       bDescriptorSubType = 0x10
        RAW dump: 
        0x00 | 0x09, 0x21, 0x10, 0x01, 0x21, 0x01, 0x22, 0x40, 
        0x08 | 0x00
 
      Endpoint 0
         bLength = 0x0007 
         bDescriptorType = 0x0005 
         bEndpointAddress = 0x0081 
         bmAttributes = 0x0003 
         wMaxPacketSize = 0x0008 
         bInterval = 0x000a 
         bRefresh = 0x0000 
         bSynchAddress = 0x0000 
 
 
 
 ugen1.2: <USB Mouse Alcor Micro> at usbus1, cfg=0 md=HOST spd=LOW (1.5Mbps) pwr=ON
 
   bLength = 0x0012 
   bDescriptorType = 0x0001 
   bcdUSB = 0x0110 
   bDeviceClass = 0x0000 
   bDeviceSubClass = 0x0000 
   bDeviceProtocol = 0x0000 
   bMaxPacketSize0 = 0x0008 
   idVendor = 0x0566 
   idProduct = 0x4006 
   bcdDevice = 0x5127 
   iManufacturer = 0x0000  <no string>
   iProduct = 0x0002  <USB Mouse>
   iSerialNumber = 0x0000  <no string>
   bNumConfigurations = 0x0001 
 
 
  Configuration index 0
 
     bLength = 0x0009 
     bDescriptorType = 0x0002 
     wTotalLength = 0x0022 
     bNumInterfaces = 0x0001 
     bConfigurationValue = 0x0001 
     iConfiguration = 0x0000  <no string>
     bmAttributes = 0x00a0 
     bMaxPower = 0x0032 
 
     Interface 0
       bLength = 0x0009 
       bDescriptorType = 0x0004 
       bInterfaceNumber = 0x0000 
       bAlternateSetting = 0x0000 
       bNumEndpoints = 0x0001 
       bInterfaceClass = 0x0003 
       bInterfaceSubClass = 0x0001 
       bInterfaceProtocol = 0x0002 
       iInterface = 0x0000  <no string>
 
       Additional Descriptor
 
       bLength = 0x09
       bDescriptorType = 0x21
       bDescriptorSubType = 0x11
        RAW dump: 
        0x00 | 0x09, 0x21, 0x11, 0x01, 0x00, 0x01, 0x22, 0x34, 
        0x08 | 0x00
 
      Endpoint 0
         bLength = 0x0007 
         bDescriptorType = 0x0005 
         bEndpointAddress = 0x0081 
         bmAttributes = 0x0003 
         wMaxPacketSize = 0x0004 
         bInterval = 0x000a 
         bRefresh = 0x0000 
         bSynchAddress = 0x0000 
 
 and dmesg | grep -i ussb:
 
     root at botelhor.bplab.local:/usr/obj/usr/src/sys/USB2-GARGA
 uhci0: <VIA 83C572 USB controller> port 0xb000-0xb01f irq 21 at device 16.0 on pci0
 usbus0: <VIA 83C572 USB controller> on uhci0
 uhci1: <VIA 83C572 USB controller> port 0xb400-0xb41f irq 21 at device 16.1 on pci0
 usbus1: <VIA 83C572 USB controller> on uhci1
 uhci2: <VIA 83C572 USB controller> port 0xb800-0xb81f irq 21 at device 16.2 on pci0
 usbus2: <VIA 83C572 USB controller> on uhci2
 uhci3: <VIA 83C572 USB controller> port 0xbc00-0xbc1f irq 21 at device 16.3 on pci0
 usbus3: <VIA 83C572 USB controller> on uhci3
 ehci0: <VIA VT6202 USB 2.0 controller> mem 0xdf004000-0xdf0040ff irq 21 at device 16.4 on pci0
 usbus4: EHCI version 1.0
 usbus4: <VIA VT6202 USB 2.0 controller> on ehci0
 usbus0: 12Mbps Full Speed USB v1.0
 usbus1: 12Mbps Full Speed USB v1.0
 usbus2: 12Mbps Full Speed USB v1.0
 usbus3: 12Mbps Full Speed USB v1.0
 usbus4: 480Mbps High Speed USB v2.0
 ugen0.1: <VIA> at usbus0
 ushub0: <VIA UHCI root HUB, class 9/0, rev 1.00/1.00, addr 1> on usbus0
 ugen1.1: <VIA> at usbus1
 ushub1: <VIA UHCI root HUB, class 9/0, rev 1.00/1.00, addr 1> on usbus1
 ugen2.1: <VIA> at usbus2
 ushub2: <VIA UHCI root HUB, class 9/0, rev 1.00/1.00, addr 1> on usbus2
 ugen3.1: <VIA> at usbus3
 ushub3: <VIA UHCI root HUB, class 9/0, rev 1.00/1.00, addr 1> on usbus3
 ugen4.1: <VIA> at usbus4
 ushub4: <VIA EHCI root HUB, class 9/0, rev 2.00/1.00, addr 1> on usbus4
 usb2_alloc_device:1401: set address 2 failed (ignored)
 usb2_alloc_device:1436: getting device descriptor at addr 2 failed!
 usb2_req_re_enumerate:1366: addr=2, set address failed! (ignored)
 usb2_req_re_enumerate:1379: getting device descriptor at addr 2 failed!
 usb2_req_re_enumerate:1366: addr=2, set address failed! (ignored)
 usb2_req_re_enumerate:1379: getting device descriptor at addr 2 failed!
 ugen1.2: <> at usbus1 (disconnected)
 usb2_alloc_device:1401: set address 2 failed (ignored)
 usb2_alloc_device:1436: getting device descriptor at addr 2 failed!
 usb2_req_re_enumerate:1366: addr=2, set address failed! (ignored)
 usb2_req_re_enumerate:1379: getting device descriptor at addr 2 failed!
 usb2_req_re_enumerate:1366: addr=2, set address failed! (ignored)
 usb2_req_re_enumerate:1379: getting device descriptor at addr 2 failed!
 ugen1.2: <> at usbus1 (disconnected)
 usb2_alloc_device:1401: set address 2 failed (ignored)
 usb2_alloc_device:1436: getting device descriptor at addr 2 failed!
 ugen1.2: <Alcor Micro> at usbus1
 ums0: <Alcor Micro USB Mouse, class 0/0, rev 1.10/51.27, addr 2> on usbus1
 Symlink: ums0 -> usb1.2.0.16
 KLD ums.ko: depends on usb - not available
 ugen1.3: <Sun Microsystems> at usbus1
 ushub5: <Sun Microsystems product 0x100e, class 9/0, rev 2.00/1.04, addr 3> on usbus1
 ugen1.4: <Sun Microsystems> at usbus1
 ukbd0: <Sun Microsystems product 0x00a2, class 0/0, rev 2.00/1.04, addr 4> on usbus1
 ugen1.2: <Alcor Micro> at usbus1 (disconnected)
 ugen1.2: <Alcor Micro> at usbus1
 ums0: <Alcor Micro USB Mouse, class 0/0, rev 1.10/51.27, addr 2> on usbus1
 Symlink: ums0 -> usb1.2.0.16
 KLD ums.ko: depends on usb - not available
 
 Do you need any more information?
 
 Thanks
 -- 
 Renato Botelho <garga @ FreeBSD.org>
                <garga @ freebsdbrasil.com.br>
 GnuPG Key: http://www.FreeBSD.org/~garga/pubkey.asc
 
 Some husbands are living proof that a woman can take a joke.


More information about the freebsd-usb mailing list