Re: Mass Storage Gadget Device Falls from SuperSpeed to High Speed

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

 



Hi,

Rob Weber <rob@xxxxxxxxxxx> writes:
>> >> > them to the Tx path between the SoC and the redriver. We only have these
>> >> > caps on the Tx path between the redriver and the connector. Our EE will
>> >> > be running a test to add coupling caps to see if this helps the issue.
>> >> >
>> >> > After further analysis of this issue, we think this might cause the
>> >> > differential pairs to get out of sync. We also thing this might cause
>> >> 
>> >> It could be, sure. Please re-verify your length matching and
>> >> differential impedance (should be 90-ohm +- 15%)
>> >
>> > We received a report from the raw PCB manufacturer that shows the SS
>> > traces are well within our specified tolerances. We specified 85-ohm +-
>> > 10% based on Intel's recommendation, and the average differential
>> > impedances from several samples is somewhere around 85-86 ohms. We are
>> > acqiuring a couple of raw PCBs now to confirm, but so far the data is
>> > looking good.
>> 
>> That's great too, also can be ruled out.
>
> Yeah, overall we're feeling relatively confident in our design. A nice
> eye diagram would be the last piece of evidence we need to rule out
> hardware.

indeed, I agree with you.

>> >> > the host controller in the SoC to be sinking a bit of current, causing
>> >> > the link to fail in some way.
>> >> >
>> >> > I'll follow up with some more detail tomorrow as well as the results of
>> >> > the disabled LPM test. If there's a way to disable LPM from the device,
>> >> > please let me know :)
>> >> 
>> >> See above, but I don't know whether that will work :-)
>> >
>> > So I used your approach to disable LPM from the host and it seems to
>> > prevent the fall from SS to HS. Thank you for that suggestion. We also
>> 
>> Great! Now we can confirm that the problem is indeed because of a
>> failure in U2 exit.
>> 
>> > reached out to Cypress and Intel about the issue and they noticed the
>> > same issue and asked about the same recommendation. The unfortunate part
>> 
>> Interesting. Who are you in touch with?
>
> We usually just open up support tickets with our FAE. A different
> support engineer usually responds to our questions for each issue.
> Jerry, a support specialist, responded to this particular request.
> I do not have Jerry's email or other identifier. If you would like
> to find out, I could send you our Intel Premiere Support Case number
> In a private thread if that helps you find our who it is.

please do. You can use felipe.balbi@xxxxxxxxx for that :-)

>> > about this is that it doesn't seem to be a valid solution for devices in
>> > the field. We won't be able to control the host computers the devices
>> > are connected to and won't be able to disable LPM from the device.
>> 
>> Completely agree. That was just a simple test to pin-point the problem
>> area.
>> 
>> > Do you have any thoughts on why our board might be experiencing issues
>> > with exiting U2? Does it seem like a timeout issue? The possibility of a
>> > timeout is all I can come up with at the moment.
>> 
>> If I were to guess, I'd say the PHY is getting confused.
>
> Which PHY are you referring to? The dwc3?

That's correct

>> > Intel also provided several other recommendations (this list is a direct quote):
>> >
>> >    - Check if CHT client system use BIOS FRC 1.2.0 version or the latest
>> >    BIOS FRC (as I remembered Modphy power gating should be disable in FRC
>> >    1.2.0 or later, however it is better to confirm it again.)
>> >    - Check if CHT(client) system can pass USB3.0 TX/RX test to make sure no
>> >    EV issue on CHT board
>> 
>> This is something you have already done. Your board seems to be fine
>> from a signal quality perspective.
>> 
>> >    - Check if the host system(Win, or others) customer used can pass USB3.0
>> >    TX/RX test to make sure no EV issue on host system
>> 
>> I'd say this is pretty pointless. We can't expect you to provide a list
>> of which hosts your product will work against.
>> 
>> >    - Check if Modphy power gating if disable as default in customer's CHT
>> >    system, not sure if host(XHCI) and client(XDCI) mode are same setting for
>> >    Modphy from BIOS setting. It might check with BIOS team for this.
>> >
>> > I've asked this same question to our BIOS vendor, but do you know what
>> > "modphy power gating" is and how it might be related to this issue?
>> 
>> modphy is the USB PHY integrated in your SoC. There's no control for
>> that from OS side, only BIOS unfortunately. There is, however, one thing
>> we can try. DWC3 has several quirk flags for known quirky PHYs; perhaps
>> CHT needs one of those. Can you try with this patch and let me know
>> whether it helps?
>
> Sure thing, I will try tomorrow. Could you possibly explain what a quirk
> is as it relates to the kernel? I see this all over the source tree but
> never knew how it was used. Does the dwc3 also know about "quirks" and
> these particular flags? or are these flags just specific to the kernel
> and its functionality?
>
>> modified   drivers/usb/dwc3/dwc3-pci.c
>> @@ -105,6 +105,8 @@ static int dwc3_byt_enable_ulpi_refclock(struct pci_dev *pci)
>>  static const struct property_entry dwc3_pci_intel_properties[] = {
>>  	PROPERTY_ENTRY_STRING("dr_mode", "peripheral"),
>>  	PROPERTY_ENTRY_BOOL("linux,sysdev_is_parent"),
>> +	PROPERTY_ENTRY_BOOL("snps,dis_u3_susphy_quirk"),
>> +	PROPERTY_ENTRY_BOOL("snps,dis_u2_susphy_quirk"),
>>  	{}
>>  };
>>  
>> These two quirks will PHY suspend. There are other relevant quirk flags
                    ^^^^^^^^
                    will DISABLE phy suspend :-)

> What do you mean by PHY suspend? Will it disable U2/U3 for the dwc3? I

No, no. DWC3 can still enter U1/U2/U3, but the PHY will not enter the
matching P1/P2/P3 state.

> see it modified the DWC3_GUSB2PHYCFG_SUSPHY bit in the configuration
> register, but I don't have access to the dwc3 databook to dig deeper
> into this.

The second quirk flag (snps,dis_u2_susphy_quirk) will tell dwc3 to *NOT*
request USB2 PHY to enter low power state. While the first flag
(snps,dis_u3_susphy_quirk) will tell dwc3 to *NOT* request USB3 PHY to
enter low power state.

In reality, they are a single block of HW but they _can_ be different
and even if they are a single block, they _can_ have separate clock
domains and we _may_ be able to control them separately. I haven't read
documentation for modphy because the OS doesn't touch that. If
necessary, I can try to find out more details about it, but I will
probably take some time to find the correct documentation.

>> which we can try in case these two don't help. I'd like to figure out
>> exactly which quirk flag helps (if any). After that, we would need to
>> check if a similar problem happens on any CHT system or just your
>> design.
>> 
>> If it happens on any other system, then I can make sure we add a quirk
>> flag to all CHTs.
>
> Sounds good!
>
> Thanks for taking the time to answer my questions! It's definitely
> helpful for my understanding of USB. I'm learning quite a bit of
> new information with each email and it's pretty awesome.

No problems at all, happy to help.

-- 
balbi

Attachment: signature.asc
Description: PGP signature


[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux