PCOMP_EN and Expanders

Elliott, Robert Robert.Elliott at COMPAQ.com
Sat Sep 8 16:14:37 PDT 2001

* From the T10 Reflector (t10 at t10.org), posted by:
* "Elliott, Robert" <Robert.Elliott at compaq.com>
> * From the T10 Reflector (t10 at t10.org), posted by:
> * Mike Kosco <Mike at ChipCraft.com>
> *
> I have a couple questions regarding precomp and expanders relating to
> the ECP annex in SPI-4.
> Assuming the given IT nexus passes through the expander:
> 1. Is the expander's precomp assumed to be enabled via the passing of
> ppr messages for the current IT assuming the IT both agree?  
> If so, I'm
> assuming precomp is enabled on the near and far (target) port?

In this example:
initiator/bus segment/(near port) expander (far port)/bus segment/target

there are four possible precomp settings:
a) initiator to near port
b) near port to initiator
c) far port to target
d) target to far port

Although the initiator and target think they are negotiating with each 
other with PPR, the expander really needs to get involved on its own
behalf.  The expander needs to modify the PCOMP_EN bit during both
PPR IN and PPR OUT on each port to represent its own capabilities.

For example, if the expander does not want the initiator to enable 
precomp when driving into it, it should force PCOMP_EN to 0 in the 
PPR IN message on the near port.  If it does want precomp enabled, 
it should force PCOMP_EN to 1.

> 2. If precomp is not negotiated between a given IT, should the Margin
> Control SEDB fields describing Driver Precompensation essentially be
> disabled, as precomp is not enabled?

The meaning of the margin control fields is defined in 01-149r1.  

The Driver Precomp field definition says is it controls the relative 
difference between the weak driver and the strong driver.  If precomp 
has been negotiated off, then neither of those terms applies; you
just have a plain driver.  The field becomes a don't-care.

> 3.  In the Report Capabilities SEDB, why is bit 7 in the "protocol
> option bits supported" field marked as reserved and not used 
> to indicate the expander's precomp support?

A single bit is not enough to represent all the interesting 
combinations (see below), so it was essentially moved to another SEDB.

> 4. What is the use of the Near/Far/Sent/Recieved Pcomp_en bits defined
> in the Report Current Status SEDB?

These expand bit 7 above.  They report the incoming PCOMP_EN values on
port, plus the PCOMP_EN values that were sent out on each port.
Rob Elliott, Compaq Server Storage
Robert.Elliott at compaq.com

* For T10 Reflector information, send a message with
* 'info t10' (no quotes) in the message body to majordomo at t10.org

More information about the T10 mailing list