XMOS USB Audio Class 2.0 Reference Design

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]


Hello all,

I'm starting a product development using the XMOS USB Audio Class 2.0
Ref Design (http://www.xmos.com/technology/prototype-boards/usbaudio2)
and I'd like to get some help in understanding what support there is,
or will be, for Audio Class 2.0 devices within Linux.

First of all some disclaimers.  I'm new to the Linux kernel and
programming in general having come from a hardware background.  I will
do my best not to spam the mailing list but please don't assume
something is too simple to explain to me.  I'm going to use this
experience as a learning exercise.

I'm running Ubuntu 9.10 x64 : 2.6.31-16-generic.  It is a fresh
install so most things are default.

I currently have the reference design hardware but am still waiting on
XMOS to provide the device firmware.  Once I have the source I should
be able to answer any questions regarding desriptors in more detail.
Until then I have the previously mentioned Ubuntu system and an OS X
machine running 10.4.11.  As far as I understand, 10.6.x is the only
OS that currently supports the Audio Class 2.0 and I'm hoping to have
access to a machine soon, but not yet.

When I connect the device I get zero output.  If I run lsub -v it is
not recognised.  If I check my syslog I get the following:

Dec 10 00:16:00 sjalloq-desktop kernel: [53352.087740] usb 2-1.2.3:
new high speed USB device using ehci_hcd and address 56
Dec 10 00:16:00 sjalloq-desktop kernel: [53352.107747] hub 2-1.2:1.0:
unable to enumerate USB device on port 3
Dec 10 00:16:04 sjalloq-desktop kernel: [53356.286145] hub 2-1.2:1.0:
Cannot enable port 3.  Maybe the USB cable is bad?
Dec 10 00:16:07 sjalloq-desktop kernel: [53359.285099] hub 2-1.2:1.0:
Cannot enable port 3.  Maybe the USB cable is bad?
Dec 10 00:16:10 sjalloq-desktop kernel: [53362.284088] hub 2-1.2:1.0:
Cannot enable port 3.  Maybe the USB cable is bad?
Dec 10 00:16:13 sjalloq-desktop kernel: [53365.282591] hub 2-1.2:1.0:
Cannot enable port 3.  Maybe the USB cable is bad?
Dec 10 00:16:13 sjalloq-desktop kernel: [53365.282884] hub 2-1.2:1.0:
unable to enumerate USB device on port 3

However, on my OS X machine, if I run USB Prober, I get the output
that follows the end of the email.

Is there anything else I can do that would be useful in debugging?

Thanks, Shareef.

__END__

OUTPUT FROM MAC OS X 10.4.11 USB PROBER:

High Speed device @ 3 (0xFD100000): ..............................
...............   Miscellaneous/Common Class device: "XMOS USB Audio 2.0"
    Device Descriptor
        Descriptor Version Number:   0x0200
        Device Class:   239   (Miscellaneous)
        Device Subclass:   2   (Common Class)
        Device Protocol:   1   (Interface Association)
        Device MaxPacketSize:   64
        Device VendorID/ProductID:   0x20B1/0x0002   (unknown vendor)
        Device Version Number:   0x0110
        Number of Configurations:   1
        Manufacturer String:   12 "XMOS "
        Product String:   7 "XMOS USB Audio 2.0"
        Serial Number String:   0 (none)
    Configuration Descriptor
        Length (and contents):   273
            Raw Descriptor (hex)    0000: 09 02 11 01 03 01 00 80  FA
08 0B 00 03 01 00 20
            Raw Descriptor (hex)    0010: 00 09 04 00 00 01 01 01  20
07 09 24 01 00 02 08
            Raw Descriptor (hex)    0020: 7B 00 00 08 24 0A 28 03  07
00 01 11 24 02 02 01
            Raw Descriptor (hex)    0030: 01 00 28 02 03 00 00 00  00
00 00 02 11 24 02 01
            Raw Descriptor (hex)    0040: 03 06 00 28 04 0F 00 00  00
00 00 00 03 0C 24 03
            Raw Descriptor (hex)    0050: 16 01 01 00 0B 28 00 00  04
0C 24 03 14 01 03 00
            Raw Descriptor (hex)    0060: 0A 28 00 00 05 0C 24 03  16
01 03 00 0A 28 00 00
            Raw Descriptor (hex)    0070: 06 12 24 06 0A 02 0F 00  00
00 0F 00 00 00 0F 00
            Raw Descriptor (hex)    0080: 00 00 00 12 24 06 0B 01  0F
00 00 00 0F 00 00 00
            Raw Descriptor (hex)    0090: 0F 00 00 00 00 07 05 83  03
06 00 08 09 04 01 00
            Raw Descriptor (hex)    00a0: 00 01 02 20 08 09 04 01  01
02 01 02 20 09 10 24
            Raw Descriptor (hex)    00b0: 01 02 00 01 01 00 00 00  02
03 00 00 00 00 06 24
            Raw Descriptor (hex)    00c0: 02 01 04 18 07 05 01 05  00
04 01 08 25 01 00 00
            Raw Descriptor (hex)    00d0: 02 08 00 07 05 81 11 04  00
08 09 04 02 00 00 01
            Raw Descriptor (hex)    00e0: 02 20 0A 09 04 02 01 01  01
02 20 0B 10 24 01 16
            Raw Descriptor (hex)    00f0: 00 01 01 00 00 00 02 03  00
00 00 00 06 24 02 01
            Raw Descriptor (hex)    0100: 04 18 07 05 82 05 00 04  01
08 25 01 00 00 02 08
            Raw Descriptor (hex)    0110: 00
        Number of Interfaces:   3
        Configuration Value:   1
        Attributes:   0x80 (bus-powered)
        MaxPower:   500 ma
        Interface Association   Audio/Unknown
            First Interface   0
            Interface Count   3
            Function Class   1   (Audio)
            Function Subclass   0   (Unknown)
            Interface Protocol   32
            Function String   0 (none)
        Interface #0 - Audio/Control
            Alternate Setting   0
            Number of Endpoints   1
            Interface Class:   1   (Audio)
            Interface Subclass;   1   (Control)
            Interface Protocol:   32
            Audio Control Class Specific Header
                Descriptor Version Number:   02.00
                Category:   8
                Class Specific Size:   123
                bmControls:   0
                Dump Contents (hex):   09 24 01 00 02 08 7B 00 00
            Audio Class Specific Clock Source
                Clock ID:   40
                Attributes:   Internal Programmable Clock
                Controls:   7
                Associated Terminal:   0
                Terminal Name String Index:   1
                Dump Contents (hex):   08 24 0A 28 03 07 00 01
            Audio Class Specific Input Terminal
                Terminal ID:   2
                Input Terminal Type:   0x101 (USB streaming)
                OutTerminal ID:   0 [NONE]
                Number of Channels:   2
                Spatial config of channels:   0000000000000011
                   (null)
                   (null)
                String index for first logical channel:   0
                Terminal Name String Index:   2
                Dump Contents (hex):   11 24 02 02 01 01 00 28 02 03
00 00 00 00 00 00 02
            Audio Class Specific Input Terminal
                Terminal ID:   1
                Input Terminal Type:   0x603 (Line connector)
                OutTerminal ID:   0 [NONE]
                Number of Channels:   4
                Spatial config of channels:   0000000000001111
                   (null)
                   (null)
                   (null)
                   (null)
                String index for first logical channel:   0
                Terminal Name String Index:   3
                Dump Contents (hex):   11 24 02 01 03 06 00 28 04 0F
00 00 00 00 00 00 03
            Audio Class Specific Ouput Terminal
                Terminal ID:   22
                Output Terminal Type:   0x101 (USB Isochronous Stream)
                InTerminal ID:   0 [NONE]
                Source ID:   11
                Terminal Name String Index:   4
                Dump Contents (hex):   0C 24 03 16 01 01 00 0B 28 00 00 04
            Audio Class Specific Ouput Terminal
                Terminal ID:   20
                Output Terminal Type:   0x301 (Speaker)
                InTerminal ID:   0 [NONE]
                Source ID:   10
                Terminal Name String Index:   5
                Dump Contents (hex):   0C 24 03 14 01 03 00 0A 28 00 00 05
            Audio Class Specific Ouput Terminal
                Terminal ID:   22
                Output Terminal Type:   0x301 (Speaker)
                InTerminal ID:   0 [NONE]
                Source ID:   10
                Terminal Name String Index:   6
                Dump Contents (hex):   0C 24 03 16 01 03 00 0A 28 00 00 06
            Audio Class Specific Feature
                Unit ID:   10
                Source ID:   2
                Number of Channels (ch):   2
                    Master Channel:......................... ( Mute:RW
Volume:RW  )
                    Channel 1:............................. ( Mute:RW
Volume:RW  )
                    Channel 2:............................. ( Mute:RW
Volume:RW  )
                Feature Unit Name String Index:   0
                Dump Contents (hex):   12 24 06 0A 02 0F 00 00 00 0F
00 00 00 0F 00 00 00 00
            Audio Class Specific Feature
                Unit ID:   11
                Source ID:   1
                Number of Channels (ch):   2
                    Master Channel:......................... ( Mute:RW
Volume:RW  )
                    Channel 1:............................. ( Mute:RW
Volume:RW  )
                    Channel 2:............................. ( Mute:RW
Volume:RW  )
                Feature Unit Name String Index:   0
                Dump Contents (hex):   12 24 06 0B 01 0F 00 00 00 0F
00 00 00 0F 00 00 00 00
            Endpoint 0x83 - Interrupt Input
                Address:   0x83  (IN)
                Attributes:   0x03  (Interrupt no synchronization data endpoint)
                Max Packet Size:   6  (6 x 1  transactions
opportunities per microframe)
                Polling Interval:   8 (128 microframes (16 msecs) )
        Interface #1 - Audio/Streaming
            Alternate Setting   0
            Number of Endpoints   0
            Interface Class:   1   (Audio)
            Interface Subclass;   2   (Streaming)
            Interface Protocol:   32
        Interface #1 - Audio/Streaming (#1)
            Alternate Setting   1
            Number of Endpoints   2
            Interface Class:   1   (Audio)
            Interface Subclass;   2   (Streaming)
            Interface Protocol:   32
            Audio Control Class Specific Header
                Audio Stream General
                    Endpoint Terminal ID:   2
                    Format Type:   1
                    Formats   PCM
                    Number of Channels   2
                    Channel Configuration   3
                    Dump Contents (hex):   10 24 01 02 00 01 01 00 00
00 02 03 00 00 00 00
            Audio Class Specific Audio Data Format
                Audio Stream Format Type Desc.
                    Format Type:   1
                    Slot Size:   4
                    Bit Resolution:   24
                    Dump Contents (hex):   06 24 02 01 04 18
            Endpoint 0x01 - Isochronous Output
                Address:   0x01  (OUT)
                Attributes:   0x05  (Isochronous asynchronous data endpoint)
                Max Packet Size:   1024  (1024 x 1  transactions
opportunities per microframe)
                Polling Interval:   1 (1 microframe (125 microsecs) )
            Class-Specific AS Audio EndPoint - Control output
                Attributes:   0x00
                bLockDelayUnits:   0x00  (UNDEFINED)
                wLockDelay:   2050
            Endpoint 0x81 - Isochronous Input
                Address:   0x81  (IN)
                Attributes:   0x11  (Isochronous no synchronization
feedback endpoint)
                Max Packet Size:   4  (4 x 1  transactions
opportunities per microframe)
                Polling Interval:   8 (128 microframes (16 msecs) )
        Interface #2 - Audio/Streaming
            Alternate Setting   0
            Number of Endpoints   0
            Interface Class:   1   (Audio)
            Interface Subclass;   2   (Streaming)
            Interface Protocol:   32
        Interface #2 - Audio/Streaming (#1)
            Alternate Setting   1
            Number of Endpoints   1
            Interface Class:   1   (Audio)
            Interface Subclass;   2   (Streaming)
            Interface Protocol:   32
            Audio Control Class Specific Header
                Audio Stream General
                    Endpoint Terminal ID:   22
                    Format Type:   1
                    Formats   PCM
                    Number of Channels   2
                    Channel Configuration   3
                    Dump Contents (hex):   10 24 01 16 00 01 01 00 00
00 02 03 00 00 00 00
            Audio Class Specific Audio Data Format
                Audio Stream Format Type Desc.
                    Format Type:   1
                    Slot Size:   4
                    Bit Resolution:   24
                    Dump Contents (hex):   06 24 02 01 04 18
            Endpoint 0x82 - Isochronous Input
                Address:   0x82  (IN)
                Attributes:   0x05  (Isochronous asynchronous data endpoint)
                Max Packet Size:   1024  (1024 x 1  transactions
opportunities per microframe)
                Polling Interval:   1 (1 microframe (125 microsecs) )
            Class-Specific AS Audio EndPoint - Control output
                Attributes:   0x00
                bLockDelayUnits:   0x00  (UNDEFINED)
                wLockDelay:   2050
    Device Qualifier Descriptor
        Descriptor Version Number:   0x0200
        Device Class   239   (Miscellaneous)
        Device Subclass   2   (Common Class)
        Device Protocol   1   (Interface Association)
        Device MaxPacketSize:   64
        Number of Configurations:   1
        bReserved:   0
    Other Speed Configuration Descriptor
        Length (and contents):   18
            Raw Descriptor (hex)    0000: 09 07 12 00 01 00 00 C0  32
09 04 00 00 00 00 00
            Raw Descriptor (hex)    0010: 00 00
        Number of Interfaces:   1
        Configuration Value:   0
        Attributes:   0xC0 (self-powered)
        MaxPower:   100 ma
        Interface #0 - Unknown
            Alternate Setting   0
            Number of Endpoints   0
            Interface Class:   0   (Unknown)
            Interface Subclass;   0
            Interface Protocol:   0
_______________________________________________
Alsa-devel mailing list
Alsa-devel@xxxxxxxxxxxxxxxx
http://mailman.alsa-project.org/mailman/listinfo/alsa-devel


[ALSA User]     [Linux Audio Users]     [Kernel Archive]     [Asterisk PBX]     [Photo Sharing]     [Linux Sound]     [Video 4 Linux]     [Gimp]     [Yosemite News]

Add to Google Powered by Linux