Navigation

    全志在线开发者论坛

    • Register
    • Login
    • Search
    • Categories
    • Tags
    • 在线文档
    • 社区主页

    【FAQ】全志H616芯片 以太网模块初始化失败如何解决?

    H/F/TV Series
    h616 h6 r329 faq 技术支持
    5
    11
    5109
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • q1215200171
      budbool LV 9 last edited by

      1.【问题现象】

      执行ifconfig -a/ifconfig eth0/ifconfig eth0 up命令,找不到eth0设备,有如下类似打印:

      root@TinaLinux:/# ifconfig -a
      lo        Link encap:Local Loopback  
                inet addr:127.0.0.1  Mask:255.0.0.0
                inet6 addr: ::1/128 Scope:Host
                UP LOOPBACK RUNNING  MTU:65536  Metric:1
                RX packets:6480 errors:0 dropped:0 overruns:0 frame:0
                TX packets:6480 errors:0 dropped:0 overruns:0 carrier:0
                collisions:0 txqueuelen:1 
                RX bytes:505440 (493.5 KiB)  TX bytes:505440 (493.5 KiB)
      
      root@TinaLinux:/# 
      root@TinaLinux:/# ifconfig eth0
      ifconfig: eth0: error fetching interface information: Device not found
      root@TinaLinux:/# 
      root@TinaLinux:/# ifconfig eth0 up
      ifconfig: SIOCGIFFLAGS: No such device
      

      2.【问题分析】

      以太网模块配置未生效或存在GPIO冲突

      3.【排查步骤】

      • 步骤1:抓取内核启动log,搜索"gmac"关键字段,检查gmac驱动是否probe成功;

      • 步骤2:若内核启动log显示probe失败,常见原因是GPIO资源冲突导致,有如下类似打印:

      sun50iw10p1-pinctrl pio: pin PH0 already requested by twi0; cannot claim for gmac0
      sun50iw10p1-pinctrl pio: pin-224 (gmac0) status -22
      sun50iw10p1-pinctrl pio: could not request pin 224 (PH0) from group PH0  on device pio
      sunxi-gmac gmac0: Error applying setting, reverse things back
      sunxi-gmac: probe of gmac0 failed with error -22
      
      • 步骤3:若内核启动log无gmac相关打印,则需要确认以太网配置是否生效。

      4.【解决办法】

      4.1 GPIO冲突
      (1) 首先,结合内核启动log定位与哪个模块存在GPIO冲突,有如下类似打印:

      sun50iw10p1-pinctrl pio: pin PH0 already requested by twi0; cannot claim for gmac0
      

      (2) 然后,确认该模块GPIO配置是否有误或者是否可以关闭该模块。

      4.2 以太网配置未生效
      (1) 首先,确认内核menuconfig以太网模块配置是否打开,路径及截图如下:

      menuconfig -> Device Drivers -> Network device support -> Ethernet driver support
      

      3dcc7d980e5444a7974c067edefb4933.jpg

      (2) 然后,确认board.dts/sys_config.fex中GMAC模块是否打开,board.dts配置示例如下:

      gmac0: eth@05020000{
          phy-mode = "rgmii";
          use_ephy25m = <1>;
          tx-delay = <7>;
          rx-delay = <0>;
          status = "okay";
      };
      

      注:

      • status = “okay"代表打开该模块,status = “disabled"代表关闭该模块;

      • 确保PHY与GMAC之间物理接口与软件配置相匹配,对于RGMII接口phy-mode配置为"rgmii”,RMII接口phy-mode配置为"rmii”;
        © use_ephy25m=1代表PHY使用SOC内部EPHY_25M时钟,use_ephy25m=0或者不配置该参数,代表PHY不使用SOC内部EPHY_25M时钟,
        需外挂25M晶振为PHY提供时钟;

      1 Reply Last reply Reply Quote Share 1
      • C
        chzfmx LV 4 last edited by

        你好,我用的100ask-T113-pro开发板, 按照的你的方法解决了IO口冲突,能够找到eth0设备了,但是执行ifconfig eth0 up时提示硬件初始化失败,会是什么原因?

        79ea6f3e-fa91-443a-8740-8a1ea1c37052-image.png

        5ade131b-60e8-419b-a62d-cba3239d8514-image.png

        F 1 Reply Last reply Reply Quote Share 0
        • A
          Apollo5520 LV 5 last edited by

          一般是PHY没有输出时钟信号给CPU

          C 2 Replies Last reply Reply Quote Share 0
          • C
            chzfmx LV 4 @Apollo5520 last edited by

            @apollo5520 看了下linux5.4下的board.dts, phy_rst(PE13)脚跟原理图不一致,原理图是PE10,改成PE10后重新编译后运行又有新问题:
            8eba2f29-48c5-40ef-abe9-72adc9ca6957-image.png
            f43d398d-06be-43c0-81c5-63ca489c7732-image.png
            a1df4644-ae87-460a-b0f6-ad60f36b58ce-image.png

            A 1 Reply Last reply Reply Quote Share 0
            • A
              Apollo5520 LV 5 @chzfmx last edited by

              @chzfmx 看看dts 或引用的 dtsi 文件里面以太网相关配置里面是不是有 PE10了,有冲突

              C 2 Replies Last reply Reply Quote Share 0
              • C
                chzfmx LV 4 @Apollo5520 last edited by

                @apollo5520
                board.dts

                3050380a-e0a6-4e19-80c0-859014ac0d00-image.png
                2c5212c9-f6c3-41c6-a221-300478026eab-image.png

                sun8iw20p1.dtsi

                6249057e-955d-4cc0-ac3b-488e54ec8d37-image.png

                e47ee84f-a72a-40d8-802a-05421050c96c-image.png

                看了下dts,在sun8iw20p1.dtsi里面找到gmac0的配置里确实有PE10,那在board.dts里应该怎么改呢,我试了把sun8iw20p1.dtsi的PE10删掉,或者把gmac0的status改成disabled,也不行

                A 1 Reply Last reply Reply Quote Share 0
                • C
                  chzfmx LV 4 @Apollo5520 last edited by

                  @apollo5520

                  e2000404-5528-434b-b95d-e30d2d5bdb29-image.png
                  我把phy-rst = <&pio PE 11 GPIO_ACTIVE_HIGH>屏蔽掉了
                  0c84f88d-8338-4bc6-854f-da1231dcaf72-image.png

                  6dd953a9-a549-4852-a603-e4a5a28e8208-image.png

                  #ifconfig -a
                  #ifconfig eth0 up
                  居然起来了
                  ff0a9ab2-8c3b-4666-b4af-8e45edba0e7f-image.png
                  #udhcp
                  获取到IP
                  6f8211dd-1367-4471-824c-024b4739970b-image.png
                  PC端 ping 开发板通了
                  4467ec49-025c-4e40-9b06-50f89752678d-image.png
                  开发板ping PC端不通
                  08cdbc59-f226-429f-b26f-87ece3be8f14-image.png

                  1 Reply Last reply Reply Quote Share 0
                  • C
                    chzfmx LV 4 @Apollo5520 last edited by

                    @apollo5520 把PC系统防火墙关了之后,开发板ping PC端也通了
                    482eb709-bc58-4b2a-9ee6-9880d3ea7619-image.png

                    然后突然想起来,我把开发板上PE10和PHY_RSTN的跳帽拔掉了,
                    b65e6d32-e3d4-4fd7-8f8e-f824c2cfdec2-image.png
                    ccc179e1-f66b-4b84-825c-baed0e8cf54c-image.png
                    这样就是PHY_RSTN脚没有控制,一直拉高的

                    1 Reply Last reply Reply Quote Share 0
                    • A
                      Apollo5520 LV 5 @chzfmx last edited by

                      @chzfmx
                      board.dts 里面引用的是 gmac0_pins_a 和 gmac0_pins_b,应该就跟dtsi文件里的定义没什么关系了,可以把dtsi里面的gmac_pins_a 和 gmac_pins_b 和引用的地方直接删除,另外再找找有没有其他地方用PE10。
                      修改后最好清理一下编译过程文件,再重新编译

                      Y 1 Reply Last reply Reply Quote Share 0
                      • Y
                        YiXinTai LV 5 @Apollo5520 last edited by

                        @apollo5520 开机的时候进入uboot 输入 fdt print 检查一下gpio复用

                        1 Reply Last reply Reply Quote Share 0
                        • F
                          fans168168 LV 4 @chzfmx last edited by

                          @chzfmx 大佬,你用网卡芯片是rtl8363nb的吗?我也在用,你用的是哪个板子,能参考一下吗

                          1 Reply Last reply Reply Quote Share 0
                          • 1 / 1
                          • First post
                            Last post

                          Copyright © 2024 深圳全志在线有限公司 粤ICP备2021084185号 粤公网安备44030502007680号

                          行为准则 | 用户协议 | 隐私权政策