Firefly Open Source Community

   Login   |   Register   |

ethernet flow control support

5

Credits

0

Prestige

0

Contribution

new registration

Rank: 1

Credits
5
Posted at 4/3/2019 14:13:07     
Is there possibility to switch on flow control on ethernet interface? Now is the ethernet PHY layer chip RTL8211E set after hw reset to default without flow control announcement. There is no activated control driver in the Linux kernel to set it. Thanks. Vaclav.
Reply

Use props Report

639

Credits

0

Prestige

0

Contribution

advanced

Rank: 4

Credits
639
Posted at 4/4/2019 17:22:04     
In drivers/net/ethernet/stmicro/stmmac/stmmac_main.c , there is a flow control module parameter.

  1. static int flow_ctrl = FLOW_OFF;                                                                                                                  
  2. module_param(flow_ctrl, int, S_IRUGO | S_IWUSR);                                                                                                   
  3. MODULE_PARM_DESC(flow_ctrl, "Flow control ability [on/off]");                                                                                      
Copy the code


It defaults to FLOW_OFF. You can modify it and recompile the kernel to check if it works.
Reply

Use props Report

639

Credits

0

Prestige

0

Contribution

advanced

Rank: 4

Credits
639
Posted at 4/4/2019 17:28:26     
Or follow the commands below to have a hot fix:

  1. cd /sys/bus/platform/drivers/rk_gmac-dwmac

  2. # unbind the ethernet device from the driver
  3. echo fe300000.ethernet > unbind

  4. # turn on flow_ctrl
  5. echo 1 > /sys/module/stmmac/parameters/flow_ctrl

  6. # bind the ethernet device back
  7. echo fe300000.ethernet > bind
Copy the code


After these commands, there're messages from the kernel:

  1. [11547.465973] force_sf_dma_mode is ignored if force_thresh_dma_mode is set.[11547.466691] rk_gmac-dwmac fe300000.ethernet: Looking up phy-supply from device tree
  2. [11547.467826] rk_gmac-dwmac fe300000.ethernet: clock input or output? (input).
  3. [11547.468510] rk_gmac-dwmac fe300000.ethernet: TX delay(0x28).
  4. [11547.469033] rk_gmac-dwmac fe300000.ethernet: RX delay(0x1b).
  5. [11547.469635] rk_gmac-dwmac fe300000.ethernet: integrated PHY? (no).
  6. [11547.470722] rk_gmac-dwmac fe300000.ethernet: cannot get clock clk_mac_speed
  7. [11547.471349] rk_gmac-dwmac fe300000.ethernet: clock input from PHY
  8. [11547.476958] rk_gmac-dwmac fe300000.ethernet: init for RGMII
  9. [11547.486003] stmmac - user ID: 0x10, Synopsys ID: 0x35
  10. [11547.486561]  Ring mode enabled
  11. [11547.486844]  DMA HW capability register supported
  12. [11547.487250]  Normal descriptors
  13. [11547.487688]  RX Checksum Offload Engine supported (type 2)
  14. [11547.488177]  Wake-Up On Lan supported
  15. [11547.488617]  Enable RX Mitigation via HW Watchdog Timer
  16. [11547.491855] of_get_named_gpiod_flags: parsed 'snps,reset-gpio' property of node '/ethernet@fe300000[0]' - status (0)
  17. [11547.492826] gpio-111 (mdio-reset): gpiod_request: status -16
  18. [11547.509629] libphy: stmmac: probed
  19. [11547.509949] eth%d: PHY ID 001cc915 at 0 IRQ POLL (stmmac-0:00) active
  20. [11547.510616] eth%d: PHY ID 001cc915 at 1 IRQ POLL (stmmac-0:01)
  21. root@firefly:/sys/bus/platform/drivers/rk_gmac-dwmac# [11547.615421] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready

  22. root@firefly:/sys/bus/platform/drivers/rk_gmac-dwmac# [11550.624270] rk_gmac-dwmac fe300000.ethernet eth0: Link is Up - 100Mbps/Full - flow control rx/tx
Copy the code


The last line is indicating flow control enabled, right?  Plz check
Reply

Use props Report

You need to log in before you can reply Login | Register

This forum Credits Rules

Quick Reply Back to top Back to list