Author Topic: Problem enumerating a composite device  (Read 9457 times)

wlcolman

  • Member
  • ***
  • Posts: 3
Problem enumerating a composite device
« on: October 13, 2010, 12:10:04 pm »
Hello,

I'm developing an embedded host using the LPC1758. It uses the OHCI specification. My device is the Nokia CS-18 Internet modem.

When I request the configuration the device only returns the mass-storage interface and related endpoint descriptors. I tried setting the configuration and then requesting the configuration again hoping that the other interfaces would be enabled. I get the same result.

I must be missing something. How do I get the complete configuration?

Thanks.

Jan Axelson

  • Administrator
  • Frequent Contributor
  • *****
  • Posts: 3033
    • Lakeview Research
Re: Problem enumerating a composite device
« Reply #1 on: October 13, 2010, 01:03:23 pm »
Does the device descriptor report multiple interfaces? If so, do you request enough bytes to hold all of the data?

Jan

wlcolman

  • Member
  • ***
  • Posts: 3
Re: Problem enumerating a composite device
« Reply #2 on: October 13, 2010, 06:42:01 pm »
I've snooped the bus while attaching the device to a Windows computer. Windows requests device and configuration descriptors. I've attached the first device and configuration descriptors (A). The only interface available at connection is the mass storage interface. Windows selects the configuration and chatters with the mass storage function. 8 seconds later Windows seems to restart the device. It again requests device and configuration descriptors. I've attached the second device and configuration descriptors (B). At this time the configuration returned is complete.

When used with Windows this device will attempt to auto load device drivers. There seems to be a special sequence to make the complete configuration available. Otherwise, only the mass storage is available.

Thanks.

[attachment deleted by admin]

Jan Axelson

  • Administrator
  • Frequent Contributor
  • *****
  • Posts: 3033
    • Lakeview Research
Re: Problem enumerating a composite device
« Reply #3 on: October 13, 2010, 10:18:56 pm »
So the device supports two device descriptors, each with one configuration. Device A's configuration has a mass-storage interface. Device B's configuration has mass-storage and CDC interfaces.

It looks like the host enumerates device A, communicates via the mass-storage interface (maybe writing something to the drive?) to tell the device to enumerate next time as device B, and re-enumerates the device. If you want to do the same with your host, you need to decode and duplicate the communications with device A, or obtain documentation from the device vendor about how to do it.

Jan

« Last Edit: October 13, 2010, 10:33:44 pm by Jan Axelson »