嵌入式爱好者

查看: 8563|回复: 4

[Ubuntu] LS1028设置双SGMII

[复制链接]

3

主题

15

帖子

150

积分

RK3568通行证RK3588通行证LS1028A通行证LS1012A通行证LS1043A\46A通行证D9360通行证

扫一扫,手机访问本帖
发表于 2022-3-8 17:30:04 | 显示全部楼层 |阅读模式
我们现在需要使用ls1028双SGMII,phy地址分别为1和3,我做了以下改动,编译后网卡可以正常启动,link状态也能正常识别但是两个网卡都无法进行ping操作,我试了将rcw中改动恢复默认8 5 11 14后eno0可以正常ping,这是不是哪里改的有问题?
改动如下:

1. packages/firmware/u-boot/arch/arm/dts/fsl-ls1028a-rdb.dts中更改默认smii phy为1并且增加phy3
图片1.jpg

图片2.jpg
2. 更改packages/linux/linux/arch/arm64/boot/dts/freescale/OK1028A-C.dts中,仿照默认sgmii添加phy3相关
图片3.jpg
3.改packages/firmware/rcw/ls1028ardb/R_SQPP_0x85bb/rcw_1500_gpu600.rcw中总线为 9  9  11 11双SGMII模式
图片4.jpg



回复

使用道具 举报

3

主题

15

帖子

150

积分

RK3568通行证RK3588通行证LS1028A通行证LS1012A通行证LS1043A\46A通行证D9360通行证

 楼主| 发表于 2022-3-8 17:35:03 | 显示全部楼层
两个网口分别插拔网线,都能正常显示link状态。路由表看了没问题,为了避免冲突,也试了单独只启动一个网卡, 但是仍无法ping通。
Catch472B(02-28-19-19-47).jpg
点评回复 支持 反对

使用道具 举报

0

主题

471

帖子

919

积分

发表于 2022-3-22 11:53:28 | 显示全部楼层
本帖最后由 djh 于 2022-3-30 10:07 编辑

这样修改试试,之前的修改ENETC 的port口有问题;
修改uboot设备树:packages/firmware/u-boot/arch/arm/dts/fsl-ls1028a-rdb.dts
&enetc0 {
-       status = "okay";
-       phy-mode = "sgmii";
-       phy-handle = <&rdb_phy0>;
+       status = "disabled";
};

&ethsw_ports {
        port@0 {
                status = "okay";
-               phy-mode = "qsgmii";
+               phy-mode = "sgmii";
                phy-handle = <&sw_phy0>;
        };
        port@1 {
                status = "okay";
-               phy-mode = "qsgmii";
+               phy-mode = "sgmii";
                phy-handle = <&sw_phy1>;
        };
-       port@2 {
-                status = "okay";
-               phy-mode = "qsgmii";
-                phy-handle = <&sw_phy2>;
-        };
-        port@3 {
-                status = "okay";
-               phy-mode = "qsgmii";
-               phy-mode = "sgmii";
-                phy-handle = <&sw_phy3>;
-        };
};

&mdio0 {
        status = "okay";
-       rdb_phy0: phy@2 {
-               reg = <2>;
-       };

-       sw_phy0: phy@8 {
-               reg = <0x08>;
+       sw_phy0: phy@1 {
+               reg = <0x01>;
        };
-       sw_phy1: phy@9 {
-               reg = <0x09>;
+       sw_phy1: phy@2 {
+               reg = <0x02>;
        };
-       sw_phy2: phy@a {
-               reg = <0x0a>;
        };
-       sw_phy3: phy@b {
-               reg = <0x0b>;

        };
};
修改内核设备树:packages/firmware/u-boot/arch/arm/dts/fsl-ls1028a-rdb.dts
-&enetc_port0 {
-        phy-handle = <&sgmii_phy0>;
-        phy-connection-type = "sgmii";
-        mdio {
-                #address-cells = <1>;
-                #size-cells = <0>;
-                sgmii_phy0: ethernet-phy@2 {
-                        reg = <0x2>;
-                };
-        };
-};
&enetc_mdio_pf3 {
-        qsgmii_phy1: ethernet-phy@08 {
-                reg = <0x08>;
-        };

-        qsgmii_phy2: ethernet-phy@09 {
-                reg = <0x09>;
-        };

-        qsgmii_phy3: ethernet-phy@0a {
-                reg = <0x0a>;
-        };

-       qsgmii_phy4: ethernet-phy@0b {
-                reg = <0x0b>;
-        };

sgmii_phy1: ethernet-phy@01 {
                reg = <0x01>;
        };

sgmii_phy2: ethernet-phy@02 {
                reg = <0x02>;
        };

};
/* l2switch ports */
&mscc_felix_ports {
        port@0 {
                status = "okay";
                phy-handle = <&sgmii_phy1>;
                phy-mode = "sgmii";
                managed = "in-band-status";
        };

        port@1 {
                status = "okay";
                phy-handle = <&sgmii_phy2>;
                phy-mode = "sgmii";
                managed = "in-band-status";
        };

-        port@2 {
-                status = "okay";
-                phy-handle = <&qsgmii_phy3>;
-                phy-mode = "qsgmii";
-                managed = "in-band-status";
-        };

-        port@3 {
-                status = "okay";
-                phy-handle = <&qsgmii_phy4>;
-                phy-mode = "qsgmii";
-                managed = "in-band-status";
-        };
};



点评回复 支持 反对

使用道具 举报

2

主题

6

帖子

18

积分

发表于 2022-3-31 09:54:52 | 显示全部楼层
兄弟,你的问题后来解决了嘛?我在1012a的板子上也遇到了差不多这样的情况

点评

解决了,得感谢上面的技术支持djh,解答很详细。步骤为: 1.修改rcw为 9 9 B B 2.修改设备树,路径:packages/firmware/u-boot/arch/arm/dts/fsl-ls1028a-rdb.dts 3.修改内核设备树 内核设备树路径:packages/li  详情 回复 发表于 2022-4-6 16:23
点评回复 支持 反对

使用道具 举报

3

主题

15

帖子

150

积分

RK3568通行证RK3588通行证LS1028A通行证LS1012A通行证LS1043A\46A通行证D9360通行证

 楼主| 发表于 2022-4-6 16:23:50 | 显示全部楼层
jonker 发表于 2022-3-31 09:54
兄弟,你的问题后来解决了嘛?我在1012a的板子上也遇到了差不多这样的情况

解决了,得感谢上面的技术支持djh,解答很详细。步骤为:
1.修改rcw为 9 9 B B
2.修改设备树,路径:packages/firmware/u-boot/arch/arm/dts/fsl-ls1028a-rdb.dts
  1. &enetc0 {
  2. -       status = "okay";
  3. -       phy-mode = "sgmii";
  4. -       phy-handle = <&rdb_phy0>;
  5. +       status = "disabled";
  6. };

  7. esw_ports {
  8.         port@0 {
  9.                 status = "okay";
  10. -               phy-mode = "qsgmii";
  11. +               phy-mode = "sgmii";
  12.                 phy-handle = <&sw_phy0>;
  13.         };
  14.         port@1 {
  15.                 status = "okay";
  16. -               phy-mode = "qsgmii";
  17. +               phy-mode = "sgmii";
  18.                 phy-handle = <&sw_phy1>;
  19.         };
  20. -       port@2 {
  21. -                status = "okay";
  22. -               phy-mode = "qsgmii";
  23. -                phy-handle = <&sw_phy2>;
  24. -        };
  25. -        port@3 {
  26. -                status = "okay";
  27. -               phy-mode = "qsgmii";
  28. -               phy-mode = "sgmii";
  29. -                phy-handle = <&sw_phy3>;
  30. -        };


  31. &mdio0 {
  32.         status = "okay";
  33. -       rdb_phy0: phy@2 {
  34. -               reg = <2>;
  35. -       };

  36. -       sw_phy0: phy@8 {
  37. -               reg = <0x08>;
  38. +       sw_phy0: phy@1 {
  39. +               reg = <0x01>;
  40.         };
  41. -       sw_phy1: phy@9 {
  42. -               reg = <0x09>;
  43. +       sw_phy1: phy@2 {
  44. +               reg = <0x02>;
  45.         };
  46. -       sw_phy2: phy@a {
  47. -               reg = <0x0a>;
  48.         };
  49. -       sw_phy3: phy@b {
  50. -               reg = <0x0b>;

  51.         };
  52. };
复制代码
3.修改内核设备树
内核设备树路径:packages/linux/linux/arch/arm64/boot/dts/freescale/OK1028A-C.dts
  1. -&enetc_port0 {
  2. -        phy-handle = <&sgmii_phy0>;
  3. -        phy-connection-type = "sgmii";
  4. -        mdio {
  5. -                #address-cells = <1>;
  6. -                #size-cells = <0>;
  7. -                sgmii_phy0: ethernet-phy@2 {
  8. -                        reg = <0x2>;
  9. -                };
  10. -        };
  11. -};
  12. &enetc_mdio_pf3 {
  13. -        qsgmii_phy1: ethernet-phy@08 {
  14. -                reg = <0x08>;
  15. -        };

  16. -        qsgmii_phy2: ethernet-phy@09 {
  17. -                reg = <0x09>;
  18. -        };

  19. -        qsgmii_phy3: ethernet-phy@0a {
  20. -                reg = <0x0a>;
  21. -        };

  22. -       qsgmii_phy4: ethernet-phy@0b {
  23. -                reg = <0x0b>;
  24. -        };
  25.       
  26. sgmii_phy1: ethernet-phy@01 {
  27.                 reg = <0x01>;
  28.         };
  29.       
  30. sgmii_phy2: ethernet-phy@02 {
  31.                 reg = <0x02>;
  32.         };

  33. };
  34. /* l2switch ports */
  35. &mscc_felix_ports {
  36.         port@0 {
  37.                 status = "okay";
  38.                 phy-handle = <&sgmii_phy1>;
  39.                 phy-mode = "sgmii";
  40.                 managed = "in-band-status";
  41.         };

  42.         port@1 {
  43.                 status = "okay";
  44.                 phy-handle = <&sgmii_phy2>;
  45.                 phy-mode = "sgmii";
  46.                 managed = "in-band-status";
  47.         };

  48. -        port@2 {
  49. -                status = "okay";
  50. -                phy-handle = <&qsgmii_phy3>;
  51. -                phy-mode = "qsgmii";
  52. -                managed = "in-band-status";
  53. -        };

  54. -        port@3 {
  55. -                status = "okay";
  56. -                phy-handle = <&qsgmii_phy4>;
  57. -                phy-mode = "qsgmii";
  58. -                managed = "in-band-status";
  59. -        };
  60. };
复制代码


点评回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋| 飞凌嵌入式 ( 冀ICP备12004394号-1 )

GMT+8, 2024-11-22 06:15

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表