From 489701eb2d424790f85fee1d84b2665769274405 Mon Sep 17 00:00:00 2001 From: shangke Date: Fri, 6 Jan 2017 13:49:42 +0800 Subject: [PATCH 1/2] ethernet : fix sometimes ethernet init fail bug --- components/ethernet/emac_main.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/components/ethernet/emac_main.c b/components/ethernet/emac_main.c index 20d428cf7..06e641453 100644 --- a/components/ethernet/emac_main.c +++ b/components/ethernet/emac_main.c @@ -628,6 +628,7 @@ static void emac_start(void *param) cmd->err = EMAC_CMD_OK; emac_enable_clk(true); + emac_reset(); emac_macaddr_init(); emac_check_mac_addr(); @@ -839,7 +840,9 @@ esp_err_t IRAM_ATTR emac_post(emac_sig_t sig, emac_par_t par) } } } else { + portENTER_CRITICAL(&g_emac_mux); emac_sig_cnt[sig]++; + portEXIT_CRITICAL(&g_emac_mux); emac_event_t evt; evt.sig = sig; evt.par = par; @@ -898,10 +901,8 @@ esp_err_t esp_eth_init(eth_config_t *config) emac_xqueue = xQueueCreate(EMAC_EVT_QNUM, sizeof(emac_event_t)); xTaskCreate(emac_task, "emacT", 2048, NULL, EMAC_TASK_PRIORITY, &emac_task_hdl); - esp_intr_alloc(ETS_ETH_MAC_INTR_SOURCE, 0, emac_process_intr, NULL, NULL); - - emac_reset(); emac_enable_clk(false); + esp_intr_alloc(ETS_ETH_MAC_INTR_SOURCE, 0, emac_process_intr, NULL, NULL); emac_config.emac_status = EMAC_RUNTIME_INIT; From 6e1150473e0267a6378708d2cc0a6b87ddfd9d45 Mon Sep 17 00:00:00 2001 From: shangke Date: Fri, 6 Jan 2017 14:16:34 +0800 Subject: [PATCH 2/2] ethernet: update docs --- docs/api/esp_eth.rst | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/docs/api/esp_eth.rst b/docs/api/esp_eth.rst index d6d98e43d..1fcb1c235 100644 --- a/docs/api/esp_eth.rst +++ b/docs/api/esp_eth.rst @@ -21,14 +21,20 @@ Macros Type Definitions ^^^^^^^^^^^^^^^^ -.. doxygentypedef:: eth_phy_fun -.. doxygentypedef:: eth_tcpip_input_fun +.. doxygentypedef:: eth_phy_check_link_func +.. doxygentypedef:: eth_phy_check_init_func +.. doxygentypedef:: eth_phy_get_speed_mode_func +.. doxygentypedef:: eth_phy_get_duplex_mode_func +.. doxygentypedef:: eth_phy_func +.. doxygentypedef:: eth_tcpip_input_func .. doxygentypedef:: eth_gpio_config_func Enumerations ^^^^^^^^^^^^ .. doxygenenum:: eth_mode_t +.. doxygenenum:: eth_speed_mode_t +.. doxygenenum:: eth_duplex_mode_t .. doxygenenum:: eth_phy_base_t Structures @@ -48,4 +54,4 @@ Functions .. doxygenfunction:: esp_eth_get_mac .. doxygenfunction:: esp_eth_smi_write .. doxygenfunction:: esp_eth_smi_read - +.. doxygenfunction:: esp_eth_free_rx_buf