On 21-01-15 02:56:37, Thinh Nguyen wrote: > Thinh Nguyen wrote: > > Peter Chen wrote: > >> On 21-01-14 06:16:18, Thinh Nguyen wrote: > >>> Hi Peter, > >>> > >>> Peter Chen wrote: > >>>> On 21-01-13 18:53:14, Thinh Nguyen wrote: > >>>>> If a gadget supports SuperSpeed Plus, then it may operate in different > >>>>> sublink speeds. For example, if the gadget supports SuperSpeed Plus > >>>>> gen2x2, then it can support 2 sublink speeds gen1 and gen2. Inform the > >>>>> host of these speeds in the BOS descriptor. > >>>>> > >>>> Hi Thinh, > >>>> > >>>> I read USB 3.2 spec: ch9.6.2.5 SuperSpeedPlus USB Device Capability > >>>> > >>>> Symmetric. Rx and Tx Sublinks have the same number of lanes and operate > >>>> at the same speed. > >>>> Asymmetric. Rx and Tx Sublink have different number of lanes and/or > >>>> operate at different speeds. > >>>> > >>>> Why your below cases are all for symmetric, at least, the example 3 > >>>> is asymmetric, it has different speed for sublink pairs? > >>>> Does your below cases are specification defined or user defined? > >>> USB 3.2 spec section 8.5.6.7: > >>> Asymmetric lane types are only for SuperSpeed Interchip (SSIC). IMO, > >>> It's unlikely that SSIC user will use Linux kernel. We can extend and > >>> update the gadget framework if there's any use case for that. > >>> > >>> > >>>>> Use 1 SSID if the gadget supports up to gen2x1, or not specified: > >>>>> - SSID 0 for symmetric RX/TX sublink speed of 10 Gbps. > >>>>> > >>>>> Use 1 SSID if the gadget supports up to gen1x2: > >>>>> - SSID 0 for symmetric RX/TX sublink speed of 5 Gbps. > >>>>> > >>>>> Use 2 SSIDs if the gadget supports up to gen2x2: > >>>>> - SSID 0 for symmetric RX/TX sublink speed of 5 Gbps. > >>>> Why SSID 0 is not 10Gbps? > >>> SSID 0 and 1 are arbitrary, we can do 0 for 10Gbps. There's no > >>> constraint or standard from the USB 3.2 spec. However, you need to set > >>> the descriptor wFunctionalitySupport.SSID to be the minimum lane speed > >>> SSID it supports. Using SSID 0 makes it easier since we don't have to > >>> condition it for multiple SSIDs. > >>> > >>>>> - SSID 1 for symmetric RX/TX sublink speed of 10 Gbps. > >>>> Besides, would you give me an example what kinds of system design > >>>> will use below sublink speed? > >>>> - SSID 0 for symmetric RX/TX sublink speed of 5 Gbps. > >>>> - SSID 1 for symmetric RX/TX sublink speed of 10 Gbps. > >>>> > >>>> Peter > >>> These 2 SSIDs indicate that the device is capable of running in gen1 and > >>> gen2 in SSP. > >>> > >> Hi Thinh, > >> > >> I am puzzled, GEN2 is back compatible for GEN1. Then, what's the usage > >> of this descriptor, what kinds of specific information the host wants to get? > >> I think the host wants to get if two pairs of tx/rx are supported, that > >> is what USB 3.2 adds. > >> > > Hi Peter, > > > > Yes, it's backward compatible. However Gen1x2 uses SuperSpeed Plus Link > > Protocol. Single lane Gen 1 doesn't. This additional RX/TX sublink speed > > attribute pair is telling the host that the device is capable of running > > at Gen1x2 and Gen2x2. Host can use this information to know that the > > device supports Gen 1 as SSP, and it can infer that the device supports > > dual-lane. Otherwise, the host can only check for dual-lane support > > after it receives a port status or sublink speed device notification TP. > > Regardless, the gadget should describe all the sublink speeds the device > > is capable of in the SSP capability descriptor. > > > > Regarding checking port status and sublink speed device notification, I > meant it as "connected" status and not capability. > Thanks for explaining it, Thinh -- Thanks, Peter Chen