15AH, San Francisco

California, United States.

Send Your Mail At:

tianyingkejishe@sina.cn

Working Hours

Mon-Sat: 9.30am To 7.00pm

【LX2160】增加SGMII新网口支持

一、Uboot支持网卡

1、修改设备树

vim components/firmware/uboot/arch/arm/dts/fsl-lx2160a-rdb.dts

&dpmac11 {
        status = "okay";
        phy-handle = <&sgmii_phy1>;
        phy-connection-type = "sgmii";
};

sgmii_phy1: ethernet-phy@3 {
                // RTL8211F PHY
                compatible = "ethernet-phy-id001c.c916", "ethernet-phy-id004d.d072";
                reg = <0x3>;
        };

2、修改驱动

vim components/firmware/uboot/board/freescale/lx2160a/eth_lx2160ardb.c

/*Begin:add by zhaobaoxing for sgmii*/
        srds_s2 = in_le32(&gur->rcwsr[28]) &
                  FSL_CHASSIS3_RCWSR28_SRDS2_PRTCL_MASK;
        srds_s2 >>= FSL_CHASSIS3_RCWSR28_SRDS2_PRTCL_SHIFT;
        /*End:add by zhaobaoxing for sgmii*/

/*Begin:add by zhaobaoxing for sgmii*/
        if (get_board_rev() == 'C') {
                setup_eth_rev_c(srds_s2);
                goto next;
        }
        /*End:add by zhaobaoxing for sgmii*/

/*Begin:add by zhaobaoxing for sgmii*/
        switch (srds_s2){
        case 10:
                wriop_set_phy_address(WRIOP1_DPMAC11, 0,
                                      SGMII_PHY_ADDR1);
                printf("warning: zhaobaoxing for serdes2\r\n");
                break;
        default:
                printf("SerDes2 protocol 0x%x is not supported on LX2160ARDB\n",
                               srds_s2);
                //goto next;
                break;
        }
        /*End:add by zhaobaoxing for sgmii*/

3、修改功能宏定义

vim components/firmware/uboot/configs/lx2160ardb_tfa_defconfig

#CONFIG_DM_ETH=y

二、Linux支持网卡

1、修改设备树

&dpmac11 {
          phy-handle = <&sgmii_phy1>;
          phy-connection-type = "sgmii";
};

sgmii_phy1: ethernet-phy@3 {
     // RTL8211F PHY
     compatible = "ethernet-phy-id001c.c916", "ethernet-phy-id004d.d072";
     reg = <0x3>;
};

三、板卡配置

1、修改rcw文件

vim components/firmware/rcw/lx2160ardb_rev2/XGGFF_PP_HHHH_RR_19_5_2/rcw_2200_750_3200_19_5_2.rcw

SRDS_PRTCL_S1=3 #10G 8  #25G 17 CPRI-10G=3
SRDS_PRTCL_S2=10 #10 #CPRI 5 #-5GC #3#-BBU #5
SRDS_PRTCL_S3=3 #2

2、修改DPC文件

vim components/firmware/mc_utils/config/lx2160a/LX2160A-RDB/dpc-usxgmii.dts

 ports {
                        mac@3 {
                                /*Begin:changed by zhaobaoxing for 10G sfp+*/
                                /*link_type = "MAC_LINK_TYPE_PHY";
                                enet_if = "USXGMII";
                                */
                                /*End:changed by zhaobaoxing for 10G sfp+*/
                                link_type = "MAC_LINK_TYPE_FIXED";
                                enet_if = "XFI";
                        };

                        mac@4 {
                                /*Begin:changed by zhaobaoxing for 10G sfp+*/
                                /*link_type = "MAC_LINK_TYPE_PHY";
                                enet_if = "USXGMII";
                                */
                                /*End:changed by zhaobaoxing for 10G sfp+*/
                                link_type = "MAC_LINK_TYPE_FIXED";
                                enet_if = "XFI";
                        };

                        mac@11 {
                                link_type = "MAC_LINK_TYPE_PHY";
                        };

                        mac@17 {
                                link_type = "MAC_LINK_TYPE_PHY";
                        };
                        mac@18 {
                                link_type = "MAC_LINK_TYPE_PHY";
                        };
                };

3、修改dpl文件

vim components/firmware/mc_utils/config/lx2160a/LX2160A-RDB/dpl-eth.19.dts

connections {

                connection@1{
                        endpoint1 = "dpni@0";
                        endpoint2 = "dpmac@3";
                };

                connection@2{
                        endpoint1 = "dpni@1";
                        endpoint2 = "dpmac@4";
                };

                connection@3{
                        endpoint1 = "dpni@2";
                        endpoint2 = "dpmac@5";
                };

                connection@4{
                        endpoint1 = "dpni@3";
                        endpoint2 = "dpmac@6";
                };

                connection@5{
                        endpoint1 = "dpni@4";
                        endpoint2 = "dpmac@7";
                };

                connection@6{
                        endpoint1 = "dpni@5";
                        endpoint2 = "dpmac@8";
                };

                connection@7{
                        endpoint1 = "dpni@6";
                        endpoint2 = "dpmac@9";
                };

                connection@8{
                        endpoint1 = "dpni@7";
                        endpoint2 = "dpmac@10";
                };

                connection@9{
                        endpoint1 = "dpni@8";
                        endpoint2 = "dpmac@11";
                };

                connection@10{
                        endpoint1 = "dpni@9";
                        endpoint2 = "dpmac@12";
                };

                connection@11{
                        endpoint1 = "dpni@10";
                        endpoint2 = "dpmac@17";
                };

                connection@12{
                        endpoint1 = "dpni@11";
                        endpoint2 = "dpmac@18";
                };
        };

anyShare分享到:
本站的文章和资源来自互联网或者站长的原创,按照 CC BY -NC -SA 3.0 CN协议发布和共享,转载或引用本站文章应遵循相同协议。如果有侵犯版权的资源请尽快联系站长,我们会在24h内删除有争议的资源。欢迎大家多多交流,期待共同学习进步。
stormwind