Firefly Open Source Community

   Login   |   Register   |
New_Topic
Print Previous Topic Next Topic

[Linux] ethernet flow control support

1388

Credits

0

Prestige

0

Contribution

vip

Rank: 6Rank: 6

Credits
1388
Posted at 4/4/2019 17:22:04      1#
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

1388

Credits

0

Prestige

0

Contribution

vip

Rank: 6Rank: 6

Credits
1388
Posted at 4/4/2019 17:28:26      2#
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