]> mj.ucw.cz Git - pciutils.git/commit
pcilmr: Add new grading option
authorNikita Proshkin <n.proshkin@yadro.com>
Wed, 22 May 2024 16:06:31 +0000 (19:06 +0300)
committerMartin Mares <mj@ucw.cz>
Mon, 27 May 2024 12:35:56 +0000 (14:35 +0200)
commit390902d6e426920e804dc84e34d09fab562bb5c0
tree39f04a924703a2ef2c0bb09e1fa5cf2ff9d5f2b7
parent26359ed36e516982cc1b3a9984c047e42099ddb5
pcilmr: Add new grading option

Original version of the utility used values from the Table 8-11 of the
PCIe Base Spec Rev 5.0 to evaluate lanes. But it seems that these values
relate only to the margining equipment and are not relevant to evaluating
the quality of connections.

The PCIe Base Spec Rev 5.0 sets the minimum values for the eye in the
section 8.4.2. Change default grading values in the utility according to
this section.

The specification uses the values of the full width and height of the eye,
so add these values to the output of the utility.

In addition, manufacturers can provide criteria for their devices that
differ from the standard ones. Usually this information falls under the
NDA, so add an option to the utility that will allow the user to set
necessary criteria for evaluating the quality of lanes.

Implement the following syntax for the -g(rading) option:
-g 1t=15ps,f | -g 6v=20

Use passed per link receiver criteria for the eye width (timing - t) or
height (voltage - v) in the utility results.

Additional flag f is for situations when port doesn't support two side
independent margining. In such cases by default calculate EW or EH as a
double one side result. User can add f flag for -g option to tell the
utility that the result in one direction is actually the measurement of
the full eye (for example, Ice Lake RC ports work in this way) and it does
not need to be multiplied.

Signed-off-by: Nikita Proshkin <n.proshkin@yadro.com>
lmr/lmr.h
lmr/margin_args.c
lmr/margin_results.c
pcilmr.c