The Toshiba neutrino ethernet bridge + AR8033 issue

博客详细记录了Toshiba Neutrino以太网桥在1000M模式下无法ping通PC的问题,包括测试步骤、日志分析、同事讨论和PHY寄存器检查。问题在于1000M时收发数据失败,通过调整SerDes测试和系统模式控制寄存器解决,并发现EEE功能可能导致的包丢失问题。解决方案是禁用EEE特性,从而在1000M速度下实现稳定通信。

1 Issue:

The Toshiba neutrino ethernet driver cann't ping PC:

Add dts node "qcom,ntn_avb" in our dts, ping success on 100M.


But it ping fail on 1000MHz.

1.1 Test step:
  1.  push the Neutrino firmware(DWC_ETH_QOS_fw.bin) to /tmp:

  2. overlay the /lib/firmware/ by tmp

    cd /tmp

    mkdir upper work

    mount -t overlay overlay -olowerdir=/lib,upperdir=/tmp/upper,workdir=/tmp/work /lib

    cp /tmp/DWC_ETH_QOS_fw.bin  /lib/firmware/

  3. insmod the driver:

    modprobe DWC_ETH_QOS.ko fw_filename=DWC_ETH_QOS_fw.bin

  4.  config device and PC ip on same subnet

    ifconfig eth0 192.168.225.3 up

1.2 Test status:
  1. Use Usb-Ethernet adapter(100M) connect PC, DUT connect  the adapter, DUT can ping PC success each other .
  2. DUT connect PC, ping fail.
  3. Use 100M SWITCH connect our DUT and PC, DUT can ping PC success each other .
  4. Use 1000M SWITCH connect our DUT and PC, ping fail.
  5. change network cable ,the same result.
  6. use toshiba release driver, the same test result.

2 investigate  method

2.1 adjust between 100M and 1000M

from the 100M dmesg log:
DWC_ETH_QOS 0000:01:00.0 eth0: Link is Up - 100Mbps/Full - flow control rx/tx
But from 1000M dmesg log:
DWC_ETH_QOS 0000:01:00.0 eth0: Link is Up - 1Gbps/Full - flow control of


This log from kernel/drivers/net/phy/phy.c phy_print_status() ,and be called by DWC_ETH_QOS_adjust_link.
In DWC_ETH_QOS_adjust_link():

case SPEED_1000:

                hw_if->set_gmii_speed(pdata);

                hw_if->ntn_set_tx_clk_125MHz(pdata);

                break;

            case SPEED_100:

                hw_if->set_mii_speed_100(pdata);

                hw_if→ntn_set_tx_clk_25MHz(pdata);


Eth0 related attribute node:

root@swi-mdm9x40:~# cd /sys/class/net/eth0
root@swi-mdm9x40:/sys/devices/80000.qcom,pcie/pci0000:00/0000:00:00.0/0000:01:00.0/net/eth0# ls
addr_assign_type  device            mtu               statistics
addr_len          dormant           name_assign_type  subsystem
address           duplex            netdev_group      tx_queue_len
broadcast         flags             operstate         type
carrier           ifalias           phys_port_id      uevent
carrier_changes   ifindex           power
dev_id            iflink      

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值