COMPHY configuration
---------------------------
In order to configure ComPhy library, following PCDs are available:

  gMarvellTokenSpaceGuid.PcdComPhyChipCount

Indicates how many different chips are placed on board. So far, up to 4 chips
are supported.

Every ComPhy PCD has <Num> part where <Num> stands for chip ID (order is not
important, but configuration will be set for first PcdComPhyChipCount chips).

Every chip has 8 ComPhy PCDs and three of them concern lanes settings for this
chip. Below is example for the first chip (Chip0).

General PCDs:

  gMarvellTokenSpaceGuid.PcdChip0Compatible

Unicode string indicating type of chip - currently supported is
{ L"Cp110" }

  gMarvellTokenSpaceGuid.PcdChip0ComPhyBaseAddress

Indicates COMPHY unit base address.

  gMarvellTokenSpaceGuid.PcdChip0Hpipe3BaseAddress

Indicates Hpipe3 unit base address.

  gMarvellTokenSpaceGuid.PcdChip0ComPhyMuxBitCount

Indicates number of bits that are allocated for every MUX in the
COMPHY-selector register.

  gMarvellTokenSpaceGuid.PcdChip0ComPhyMaxLanes

Indicates maximum ComPhy lanes number.

Next three PCDs are in unicode string format containing settings for up to 10
lanes. Setting for each one is separated with semicolon. These PCDs form
structure describing outputs of PHY integrated in simple cihp.
Below is example for the first chip (Chip0).

  gMarvellTokenSpaceGuid.PcdChip0ComPhyTypes

Unicode string indicating PHY types. Currently supported are:

{ L"unconnected", L"PCIE0", L"PCIE1", L"PCIE2", L"PCIE3",
L"SATA0", L"SATA1", L"SATA2", L"SATA3", L"SGMII0",
L"SGMII1", L"SGMII2", L"SGMII3", L"QSGMII",
L"USB3_HOST0", L"USB3_HOST1", L"USB3_DEVICE",
L"XAUI0", L"XAUI1", L"XAUI2", L"XAUI3", L"RXAUI0",
L"RXAUI1", L"KR" }

Below documents describes some of above interfaces' types:

SGMII, QSGMII, XAUI - IEEE 802.3
KR - IEEE 802.3a
RXAUI - RXAUI Interface and RXAUI Adapter Specification, Marvell

  gMarvellTokenSpaceGuid.PcdChip0ComPhySpeeds

Indicates PHY speeds in MHz. Currently supported are:

{ 1250, 1500, 2500, 3000, 3125, 5000, 6000, 6250, 10310 }

  gMarvellTokenSpaceGuid.PcdChip0ComPhyInvFlags

Indicates lane polarity invert.

Example
-------
  #ComPhy
  gMarvellTokenSpaceGuid.PcdComPhyChipCount|1

  gMarvellTokenSpaceGuid.PcdChip0ComPhyMaxLanes|6
  gMarvellTokenSpaceGuid.PcdChip0ComPhyBaseAddress|0xF2441000
  gMarvellTokenSpaceGuid.PcdChip0Hpipe3BaseAddress|0xF2120000
  gMarvellTokenSpaceGuid.PcdChip0ComPhyMuxBitCount|4
  gMarvellTokenSpaceGuid.PcdChip0Compatible|L"Cp110"

  gMarvellTokenSpaceGuid.PcdChip0ComPhyTypes|L"SGMII2;USB3_HOST0;SGMII0;SATA1;USB3_HOST1;PCIE2"
  gMarvellTokenSpaceGuid.PcdChip0ComPhySpeeds|L"1250;5000;1250;5000;5000;5000"