Просмотр исходного кода

ethernet: limit rx buf num when flow ctrl enable.

shangke 9 лет назад
Родитель
Сommit
2ea4d7fd02
2 измененных файлов с 10 добавлено и 2 удалено
  1. 3 2
      components/ethernet/Kconfig
  2. 7 0
      components/ethernet/emac_main.c

+ 3 - 2
components/ethernet/Kconfig

@@ -6,17 +6,18 @@ menuconfig ETHERNET
 
 config DMA_RX_BUF_NUM
     int "Number of DMA RX buffers"
-    range 1 10
+    range 3 20
     default 10
     depends on ETHERNET
     help
         Number of DMA receive buffers. Each buffer is 1600 bytes.
         Buffers are allocated statically.
         Larger number of buffers increases throughput.
+        If enable flow ctrl, the num must be above 9 .
 
 config DMA_TX_BUF_NUM
     int "Number of DMA RX buffers"
-    range 1 10
+    range 3 20
     default 10
     depends on ETHERNET
     help

+ 7 - 0
components/ethernet/emac_main.c

@@ -216,7 +216,14 @@ static void emac_set_user_config_data(eth_config_t *config )
     emac_config.emac_phy_check_init = config->phy_check_init;
     emac_config.emac_phy_get_speed_mode = config->phy_get_speed_mode;
     emac_config.emac_phy_get_duplex_mode = config->phy_get_duplex_mode;
+#if DMA_RX_BUF_NUM > 9
     emac_config.emac_flow_ctrl_enable = config->flow_ctrl_enable;
+#else 
+    if(config->flow_ctrl_enable == true) {
+        ESP_LOGE(TAG, "eth flow ctrl init err!!! Please run make menuconfig and make sure DMA_RX_BUF_NUM > 9 .");
+    }
+    emac_config.emac_flow_ctrl_enable = false;
+#endif
     emac_config.emac_phy_get_partner_pause_enable = config->phy_get_partner_pause_enable;
 }