]> granicus.if.org Git - esp-idf/commitdiff
ethernet: limit rx buf num when flow ctrl enable.
authorshangke <shangke@espressif.com>
Thu, 19 Jan 2017 08:45:30 +0000 (16:45 +0800)
committershangke <shangke@espressif.com>
Thu, 19 Jan 2017 08:45:30 +0000 (16:45 +0800)
components/ethernet/Kconfig
components/ethernet/emac_main.c

index 663871f2a0cbc165901e6e77176d910570782d7b..46e86cc60ec7b6dbce78f3f210b7a5351db53d3e 100644 (file)
@@ -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
index 067d1a8ed723eca26cb7fb2c8394f644bd943b37..853887cfc5ea251840f91abf366144b207bd2812 100644 (file)
@@ -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;
 }