This is the mail archive of the ecos-bugs@sourceware.org mailing list for the eCos project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug 1001024] STM32 USB driver and proposed USB API change


Please do not reply to this email. Use the web interface provided at:
http://bugs.ecos.sourceware.org/show_bug.cgi?id=1001024

John Dallaway <john@dallaway.org.uk> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |fpagliughi@mindspring.com

--- Comment #7 from John Dallaway <john@dallaway.org.uk> 2010-09-17 14:11:01 BST ---
Chris, thank you for the attachments. I've been experimenting with them and
have reached the point where my linux box is recognising the connection of a
serial device:

Sep 17 13:38:35 cog kernel: usb 4-1: new full speed USB device using uhci_hcd
and address 20
Sep 17 13:38:35 cog kernel: usb 4-1: device descriptor read/all, error -71
Sep 17 13:38:35 cog kernel: usb 4-1: new full speed USB device using uhci_hcd
and address 21
Sep 17 13:38:35 cog kernel: usb 4-1: device descriptor read/all, error -71
Sep 17 13:38:35 cog kernel: usb 4-1: new full speed USB device using uhci_hcd
and address 22
Sep 17 13:38:35 cog kernel: usb 4-1: device descriptor read/8, error -71
Sep 17 13:38:35 cog kernel: usb 4-1: configuration #1 chosen from 1 choice

Meanwhile, the STM32 USB driver reports:

### 3:Powered ###
### 4:Reset ###
### 4:Reset ###
### 4:Reset ###
### 4:Reset ###
STM32 USB : Setting USB device address = 20
### 5:Addressed ###
### 4:Reset ###
### 4:Reset ###
STM32 USB : Setting USB device address = 21
### 5:Addressed ###
### 4:Reset ###
STM32 USB : Setting USB device address = 22
### 5:Addressed ###
STM32 USB : Setting USB configuration = 1
### 6:Configured ###

To get this far, I have:

a) set CYGDAT_IO_USB_SLAVE_SERIAL_EP0 == "cyg_usbs_cortexm_stm32_ep0c"
b) commented out references to the static rx/tx/intr endpoint structs in
   usbs_serial.c, and
c) modified the parameters passed into usbs_serial_init():

  void
  usbs_serial_start(void)
  {
    usbs_serial_init(&usbs_ser0,
      usbs_get_tx_endpoint(usbs_serial_ep0, TX_EP_NUM),
      usbs_get_rx_endpoint(usbs_serial_ep0, RX_EP_NUM));
        ......

lsusb reports:

Bus 004 Device 022: ID ffff:0001  
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass            0 (Defined at Interface level)
  bDeviceSubClass         0 
  bDeviceProtocol         0 
  bMaxPacketSize0        64
  idVendor           0xffff 
  idProduct          0x0001 
  bcdDevice            0.00
  iManufacturer           1 eCos
  iProduct                2 eCos USB Serial Device
  iSerial                 0 
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength           32
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          0 
    bmAttributes         0xc0
      Self Powered
    MaxPower              100mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           2
      bInterfaceClass       255 Vendor Specific Class
      bInterfaceSubClass      0 
      bInterfaceProtocol      0 
      iInterface              0 
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x02  EP 2 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               0

"Vendor Specific Class" doesn't look good. Are there any clues here as to the
problem? I am adding Frank Pagliughi (eCos USB slave serial author) to the CC
list in case he has some insights on how to debug this.

-- 
Configure bugmail: http://bugs.ecos.sourceware.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]