New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 870745 link

Starred by 1 user

Issue metadata

Status: Assigned
Owner:
Last visit > 30 days ago
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Chrome
Pri: 3
Type: Bug



Sign in to add a comment

USB-C PD Renegotiation after soft reset should request same voltage

Project Member Reported by jettrink@chromium.org, Aug 3

Issue description

Upon EC startup (after sysjump) if we notice that we had a PD contract in place previously, we try to maintain Vbus by performing a soft reset and renegotiating the PD contract.

When the EC is initially establishing a PD contract (not soft reset case), it first negotiates to 5V, then requests the max voltage after the port has been selected as the charging port.

When we do a soft request, we go through the negotiation again. The PD communication looks like this (EC is SNK)

EC  -> Soft_reset (SRC -> GoodCRC)
SRC -> Accept (EC -> GoodCRC)
SRC -> Source_Cap (EC -> GoodCRC)
EC  -> Request 

In the soft reset case, the current flow will request for 5V then later request max voltage, which is slight undesirable since Vbus was already at max and drops down to 5V for just a little bit. It would be nice if we knew that the previous contract had already requested the "max voltage," and then we could do the same after soft reset without going through the transient 5V drop


 
 
Why is going down to 5V undesirable? 
Any time we change the voltage level, we are required to drop our current level to Sink Standby during the transient, effectively transferring some of our load to battery.  Usually it isn't a problem, but at a low state of charge it may be, especially since the boot sequence draws so much power.  Ref USB-PD section 7.3


If the battery is less than MIN_BAT_PCT_FOR_POWER_ON we allow the boot if the charger supplies greater than MIN_POWER_MW_FOR_POWER_ON.  However, during the voltage negotiation transient the charger will not be providing that much power.
That's a good point. However, SrcCaps may change, so I'm not sure how we'd reliably do that. For example, I think the Apple 87W USB PD Charger has a soft start feature where it's initial source cap tops out at 5V 2.4A. Only after requesting that (and I think with CapMismatch set) will it offer the full SrcCaps up to 87W. So not only the power offered changes, but the PDOs too.

** tried it out **

It seems after a SoftReset it still offers the last offered PDOs.

I still think that the PDOs could change, but maybe it's not likely when we're sending our SoftRst.

I guess adding another BBRAM flag to indicate that the "max voltage" was requested/active would work. But, it should only be used if the port is starting off in this new SoftRst flow.

Sign in to add a comment