PHY driver configuration ------------------------ MvPhyDxe provides basic initialization and status routines for Marvell PHYs. Currently only 1512 series PHYs are supported. Following PCDs are required: gMarvellTokenSpaceGuid.PcdPhyConnectionTypes (list of values corresponding to PHY_CONNECTION enum) gMarvellTokenSpaceGuid.PcdPhyStartupAutoneg (boolean - if true, driver waits for autonegotiation on startup) gMarvellTokenSpaceGuid.PcdPhyDeviceIds (list of values corresponding to MV_PHY_DEVICE_ID enum) PHY_CONNECTION enum type is defined as follows: typedef enum { 0 PHY_CONNECTION_RGMII, 1 PHY_CONNECTION_RGMII_ID, 2 PHY_CONNECTION_RGMII_TXID, 3 PHY_CONNECTION_RGMII_RXID, 4 PHY_CONNECTION_SGMII, 5 PHY_CONNECTION_RTBI, 6 PHY_CONNECTION_XAUI, 7 PHY_CONNECTION_RXAUI } PHY_CONNECTION; MV_PHY_DEVICE_ID: typedef enum { 0 MV_PHY_DEVICE_1512, } MV_PHY_DEVICE_ID; It should be extended when adding support for other PHY models. Thus in order to set RGMII for 1st PHY and SGMII for 2nd, PCD should be: gMarvellTokenSpaceGuid.PcdPhyConnectionTypes|{ 0x0, 0x4 } with disabled autonegotiation: gMarvellTokenSpaceGuid.PcdPhyStartupAutoneg|FALSE assuming, that PHY models are 1512: gMarvellTokenSpaceGuid.PcdPhyDeviceIds|{ 0x0, 0x0 }