Thread (28 messages) flat view 28 messages, 4 authors, 2021-01-20

Re: [PATCH v6 05/11] usb: gadget: composite: Report various SSP sublink speeds

From: Thinh Nguyen <Thinh.Nguyen@synopsys.com>
Date: 2021-01-15 02:57:44

Thinh Nguyen wrote:
Peter Chen wrote:
quoted
On 21-01-14 06:16:18, Thinh Nguyen wrote:
quoted
Hi Peter,

Peter Chen wrote:
quoted
On 21-01-13 18:53:14, Thinh Nguyen wrote:
quoted
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.

quoted
quoted
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.
quoted
quoted
- 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.

Thinh
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help