> +enum {
> +     HS_MAC_SPEED_100M,
> +     HS_MAC_SPEED_1000M,
> +     HS_MAC_SPEED_2500M,
> +     HS_MAC_SPEED_5000M,
> +     HS_MAC_SPEED_10000M,
> +     HS_MAC_SPEED_25000M,
> +};
> +
> +enum {
> +     MACB_SERDES_RATE_5_PT_15625Gbps = 5,
> +     MACB_SERDES_RATE_10_PT_3125Gbps = 10,
> +};

What do the units mean here? Why would you clock the SERDES at 15Tbps,
or 3Tbps? 3.125Mbps would give you 2.5Gbps when using 8b/10b encoding.

> +     if (bp->phy_interface == PHY_INTERFACE_MODE_USXGMII) {
> +             switch (bp->serdes_rate) {
> +             case MACB_SERDES_RATE_5_PT_15625Gbps:
> +                     rate = 78125000;
> +                     break;
> +             case MACB_SERDES_RATE_10_PT_3125Gbps:
> +                     rate = 156250000;
> +                     break;
> +             default:
> +                     return;
> +             }

Xilinx documentation:
https://www.xilinx.com/support/documentation/ip_documentation/usxgmii/v1_1/pg251-usxgmii.pdf
seems to suggest USXGMII uses a fixed rate of 10.3125Gb/s. So why do
you need to change the rate?

    Andrew

Reply via email to