Commit Graph

93 Commits

Author SHA1 Message Date
Frank Sautter
08aacb02f7 Increased LAN8720 ETH-PHY reset assertion time (IDFGH-6018)
Increase reset assertion time from 100µs (as specified minimum in the datasheet) to 150µs.
Some specimen of the LAN8720 need the reset signal asserted longer than 100µs to initialise properly. Otherwise they are in a zombie state where they are establishing and loosing an Ethernet link once in a seconds interval.
2021-11-05 11:46:58 +01:00
Marius Vikhammer
1eab7a033b ci: update cert used for esp_eth test 2021-10-21 10:06:03 +08:00
David Cermak
609f5ef9a0 esp_eth: Fix dm9051 Rx interrupt processing
* Disable Tx interrupts to fix race condition of missing Rx interrupt
* Check if GPIO interrupt is asserted periodically if the ISR event missed

Closes https://github.com/espressif/esp-idf/issues/6414
2021-09-21 11:10:19 +02:00
Christian Fischerauer
3bd69d296d esp_eth: adapt ksz8041.c to changes from commit 03a6c49
Closes https://github.com/espressif/esp-idf/issues/7570
Merges https://github.com/espressif/esp-idf/pull/7573
2021-09-16 21:39:23 +08:00
morris
b76369ddb6 eth: dont warn nego timeout if link is down 2021-09-08 20:52:26 +08:00
morris
b829fcff3e emac: configure data interface early 2021-09-08 20:52:26 +08:00
David Cermak
d09f6cac24 esp_eth: Improve GPIO interrupt processing in w5500 driver
Increase the interrupt reassert level timing so the chances of missing
two consecutive events are minimal.
Enable only SIR_RECV interrupt event, so the SEND events are not used
for GPIO signal.
2021-06-23 12:41:45 +08:00
David Cermak
1f2af24118 esp_eth: Recover the w5500 driver from missed io interrupt
If the GPIO interrupt is re-asserted too quickly it could be missed. If this happens the driver goes silent and never receives any data. Recover by periodic checks of the IO signal level
2021-06-23 12:41:45 +08:00
David Cermak
2fb93e6a54 esp_eth: Fix w5500 to break from potentially infinite tx loop
The issue typically happens for link-down during Tx. Added two retry levels, one before checking the sanity of the w5500 phy register and another for the Tx done itself (if the device is in the sane state)

Closes https://github.com/espressif/esp-idf/issues/6233
2021-06-22 17:23:07 +08:00
David Cermak
8534799d66 esp_eth: Fix w5500 to correctly read registers on -Os
Reading SPI data may come in 4-byte units and thus result in unwanted
overwrites if smaller size registers read, especially if multiple placed
one after another. Fixed by using direct reads to `trans` structure for
sizes smaller or equal to 4.

Closes https://github.com/espressif/esp-idf/issues/6579
2021-06-22 17:23:07 +08:00
morris
03a6c4975c esp_eth: restart negotiation in esp_eth_start 2021-05-28 08:22:56 +00:00
Omar Chebib
84dc42c4b0 gpio: Disable USB JTAG when setting pins 18 and 19 as GPIOs on ESP32C3
When `DIS_USB_JTAG` eFuse is NOT burned (`False`), it is not possible
to set pins 18 and 19 as GPIOs. This commit solves this by manually
disabling USB JTAG when using pins 18 or 19.
The functions shall use `gpio_hal_iomux_func_sel` instead of
`PIN_FUNC_SELELECT`.
2021-04-12 17:45:06 +08:00
morris
c75a8b11bb eth_phy: fix wrong register bit order in ksz8041 2021-03-15 13:12:17 +08:00
morris
006a87557b esp_eth: added option to disable soft flow control when rx buffer is few 2021-02-01 14:14:54 +08:00
suda-morris
0208810eca esp_eth: fix typo in lan8720 driver
Closes https://github.com/espressif/esp-idf/issues/6469
2021-01-27 23:48:10 +08:00
morris
c010f24d8b esp_eth: deprecate esp_eth_receive
Ethernet driver is interrupt driven only, don't support polling mode.
So deprecate esp_eth_receive API.
2021-01-27 23:48:01 +08:00
Axel Lin
2049aa9f68 esp_eth: Add ioctl command for getting duplex mode
Similar to ETH_CMD_G_SPEED, add ETH_CMD_G_DUPLEX_MODE for getting duplex mode.

Merges https://github.com/espressif/esp-idf/pull/6436
2021-01-25 08:40:47 +00:00
morris
753a929525 global: fix sign-compare warnings 2021-01-12 14:05:08 +08:00
morris
c280dc3ac5 eth: added cert for download test 2021-01-07 11:22:23 +08:00
morris
1e905acacf eth: support W5500 MAC RAW mode
W5500 features an Ethernet MAC+PHY, plus a HW SOCKET implementation.
But in IDF, we only use software TCP/IP stack, which means we have
to bypass the HW TCP/IP stack in W5500.
So we enables the MAC RAW mode in W5500.
2020-11-16 13:30:49 +08:00
Angus Gratton
420aef1ffe Updates for riscv support
* Target components pull in xtensa component directly
* Use CPU HAL where applicable
* Remove unnecessary xtensa headers
* Compilation changes necessary to support non-xtensa gcc types (ie int32_t/uint32_t is no
  longer signed/unsigned int).

Changes come from internal branch commit a6723fc
2020-11-13 07:49:11 +11:00
Angus Gratton
66fb5a29bb Whitespace: Automated whitespace fixes (large commit)
Apply the pre-commit hook whitespace fixes to all files in the repo.

(Line endings, blank lines at end of file, trailing whitespace)
2020-11-11 07:36:35 +00:00
Yorick van Pelt
65707cfb41 esp_eth_mac_esp32: optionally setup SMI GPIO's
This enables passing smi_mdio_gpio_num = -1 to disable that signal

Merges https://github.com/espressif/esp-idf/pull/5903
2020-09-25 19:59:41 +08:00
Renz Bagaporo
6462f9bfe1 esp32, esp32s2: create esp_pm component 2020-09-25 05:24:10 +00:00
morris
9fa06719fa global: enable build uinit test for esp32-s3 2020-09-22 15:15:03 +08:00
Ivan Grokhotkov
b6467257b9 Merge branch 'feature/cmock_component' into 'master'
cmock as component replacing unity

See merge request espressif/esp-idf!9859
2020-09-10 16:06:20 +08:00
Jakob Hasse
f7f46905ec esp_eth: moved extern "C" after includes 2020-09-08 17:44:57 +08:00
morris
31aa16bbe6 unit_test: switch icmp test server to taobao 2020-09-06 09:42:44 +08:00
Jakob Hasse
20c068ef3b cmock: added cmock as component
* changing dependencies from unity->cmock
* added component.mk and Makefile.projbuild
* ignore test dir in gen_esp_err_to_name.py
* added some brief introduction of CMock in IDF
2020-09-02 16:38:37 +08:00
morris
76fe489c58 ethernet: support power on timeout
Closes https://github.com/espressif/esp-idf/issues/5425
2020-08-10 18:54:25 +08:00
morris
f4131b9b42 ethernet: handle early rx interrupt 2020-08-10 18:54:25 +08:00
morris
4e38aab1b0 ethernet: support flow control for esp32 emac 2020-08-10 18:54:25 +08:00
morris
2917651478 esp_rom: extract common ets apis into esp_rom_sys.h 2020-07-27 15:27:01 +08:00
morris
ab0537c079 esp_rom: extract common MD5 hash apis into esp_rom_md5.h 2020-07-21 17:01:28 +08:00
morris
abcea51976 ethernet: insert min assert time for PHY HW reset
Closes https://github.com/espressif/esp-idf/issues/5528
2020-07-09 22:03:17 +08:00
morris
648bcc7a87 ethernet: add ksz8041 in basic ethernet example 2020-07-09 21:49:07 +08:00
Meowthink
62237cf28c Add Microchip KSZ8041 PHY support.
Merges https://github.com/espressif/esp-idf/pull/5452
2020-07-09 21:00:42 +08:00
morris
a4d0033c03 esp_rom: extract common GPIO apis into esp_rom_gpio.h 2020-07-07 11:40:19 +08:00
morris
1184366387 ethernet: support pin emac task to core 2020-05-29 17:51:37 +08:00
morris
d8a9ce14d7 ethernet: fix potential task watch dog timeout 2020-05-13 16:03:00 +08:00
morris
4454b198bb ethernet: better control start/stop/uninstall/install 2020-05-13 15:58:42 +08:00
morris
6020d6a5d4 ethernet: esp_eth_stop API should stop emac hardware 2020-05-13 15:58:42 +08:00
Renz Bagaporo
3d0967a58a test: declare requirements and include dirs private 2020-03-23 10:58:50 +08:00
morris
0a7ccb8095 ethernet: fix potential null pointer dereference
Closes https://github.com/espressif/esp-idf/issues/4890
2020-03-07 12:12:29 +08:00
morris
ea8d6318af add SOC_EMAC_SUPPORTED in soc_caps.h 2020-02-24 11:57:58 +08:00
morris
9e59be1aab ethernet: add enc28j60 example 2020-02-10 12:56:14 +08:00
Henry Gilbert
eda07acc81 Add ENC28J60 Ethernet Driver
Merges https://github.com/espressif/esp-idf/pull/4435
2020-02-10 12:56:14 +08:00
morris
e30cd361a8 global: rename esp32s2beta to esp32s2 2020-01-22 12:14:38 +08:00
morris
cc0459eea2 ethernet: always put eth_driver handle in SRAM
Closes https://github.com/espressif/esp-idf/issues/4635
2020-01-19 16:25:44 +08:00
morris
5ad0bdd8db ethernet: work with cache disabled
add ETH_MAC_FLAG_WORK_WITH_CACHE_DISABLE flag, make ethenret driver
possible to work when cache disabled

Closes https://github.com/espressif/esp-idf/issues/4406
2020-01-19 16:25:24 +08:00