Commit Graph

203 Commits

Author SHA1 Message Date
David Cermak
8da2e4088c esp_eth: Update esp32's EMAC API to decouple driver and vendor config 2022-02-14 16:17:29 +00:00
David Cermak
1dc60730ee esp_eth: ESP32 EMAC to use common DMA busrt size for both Tx and Rx 2022-02-14 16:17:29 +00:00
David Cermak
2553fb5845 esp_eth: Make EMAC DMA burst size configurable
Merges https://github.com/espressif/esp-idf/pull/7874
Closes  https://github.com/espressif/esp-idf/issues/7380
2022-02-14 16:17:29 +00:00
AndriiFilippov
d69c11e017 ci/esp_eth: Replaced ethernet download task with ethernet download function
Rename eth_download_task to eth_start_download. Remove eth_event_group's
download bit

Delete unused variables
2022-02-14 16:02:45 +01:00
Ondrej Kosta
57225f99c7 Created EMAC start/stop stress test under heavy traffic 2022-02-14 08:21:43 +01:00
Ondrej Kosta
e97fd4b076 esp_eth: EMAC start/stop optimization 2022-02-14 08:21:43 +01:00
Anton Maklakov
8bb06df68f components: correct abs() use for unsigned and 64-bit arguments 2022-01-29 12:07:16 +07:00
Fu Hanxi
62a397a9b5 ci: add flaky test 2022-01-24 16:37:23 +08:00
Fu Hanxi
a801555299 ci: replace all component ut with pytest-embedded 2022-01-24 16:37:23 +08:00
Laukik Hase
ca84d2d6c9 esp_http_client: Added event for HTTP redirect
- Allows users to manually intercept and process the HTTP redirection
 when disable_auto_redirect (from the esp_http_client handle) is set to true

Closes https://github.com/espressif/esp-idf/issues/8029
2022-01-12 11:40:32 +05:30
Ondrej Kosta
fa9cc49b9e Merge branch 'bugfix/esp_eth_start_tx_buff' into 'master'
Fixed ESP32 EMAC driver `insufficient TX buffer size`

Closes WIFI-4194

See merge request espressif/esp-idf!16457
2022-01-05 09:40:12 +00:00
laokaiyao
4f28b33bbc apll: add lock for apll 2021-12-29 10:13:13 +08:00
Ondrej Kosta
1150a11c56 Fixed ESP32 EMAC driver insufficient TX buffer size which could followed esp_eth_stop and esp_eth_start sequence 2021-12-23 10:48:38 +01:00
Ondrej Kosta
30e03e2c1d netif_glue: removal of unused global variable 2021-12-14 15:23:07 +01:00
David Cermak
f181c3c23a esp_eth/CI: Fix app-test to start recv test after sock bound 2021-12-09 16:27:37 +01:00
David Čermák
5c33570524 Merge branch 'bugfix/eth_test_app_regex' into 'master'
esp_eth/CI: Fix app-test regex for parsing DUT's MAC

Closes IDFCI-989

See merge request espressif/esp-idf!16327
2021-12-09 12:03:55 +00:00
David Cermak
d1dee48b2d CI: Use Console.logs instead of prints in eth test apps 2021-12-09 07:37:26 +01:00
David Cermak
caae336f6e esp_eth/CI: Fix app-test regex for parsing DUT's MAC 2021-12-09 07:28:11 +01:00
Ondrej Kosta
7e864d6856 netif_glue: Removed deprecated esp_eth_set_default_handlers and esp_eth_clear_default_handlers 2021-12-08 09:21:30 +01:00
Ondrej Kosta
914eafe2db Merge branch 'feature/ksz80xx_support_extension' into 'master'
esp_eth: rework KSZ80xx implementation and add more KSZ80xx PHYs

Closes IDFGH-6203 and IDF-3522

See merge request espressif/esp-idf!16024
2021-12-06 08:54:33 +00:00
Ondrej Kosta
970986e5b6 Added KSZ8041/81 and LAN8720 Driver IDF v5.0 migration description
LAN8720 function call clean up
2021-12-03 14:28:52 +01:00
Fischerauer Christian
3fb83f2866 esp_eth: rework KSZ80xx implementation and add more KSZ80xx PHYs
* add support for KSZ8001, KSZ8021, KSZ8031, KSZ8051 and KSZ8061
* remove duplicate code
* simplify architecture to make the code base extensible (for future work)
2021-12-02 11:56:08 +01:00
Ondrej Kosta
fcd634faec Merge branch 'contrib/github_pr_7958' into 'master'
fix: missing initializer waring in esp_eth

Closes IDFGH-6293

See merge request espressif/esp-idf!16178
2021-11-29 13:24:58 +00:00
Vladimir Chistyakov
2b944ca056 fix: missing initializer warning in esp_eth
remove auto_nego_en member from esp_eth_config_t as it is not used
 anywhere
2021-11-26 17:42:38 +07:00
Ondrej Kosta
3a7a67f174 netif: added ESP-NETIF L2 TAP interface 2021-11-23 11:17:22 +01:00
Ondrej Kosta
6d4ff2c05e Merge branch 'feature/eth_ioctl_speed_duplex' into 'master'
esp_eth:  esp_eth_ioctl update

Closes IDF-1240 and IDF-4060

See merge request espressif/esp-idf!15607
2021-11-16 11:56:18 +00:00
Ondrej Kosta
d1f2a3dfcc esp_eth: added ioctl options to set Ethernet speed and duplex mode
esp_eth_ioctl third argument always acts as untyped pointer to memory now
2021-11-16 08:34:07 +01:00
Roland Dobai
766aa57084 Build & config: Remove leftover files from the unsupported "make" build system 2021-11-11 15:32:36 +01:00
David Čermák
f788c337b1 Merge branch 'bugfix/esp_eth_test_deinit' into 'master'
esp_eth: Update test_emac.c (GitHub PR)

Closes IDFGH-6178 and IDFGH-6177

See merge request espressif/esp-idf!15873
2021-11-11 07:45:42 +00:00
Tian Sen Wen
c6ba84e5cd esp_eth: optimize dm9051 Tx throughput 2021-11-09 14:04:11 +08:00
lisekt84
474073c0a9
Update test_emac.c
Test of uninstall driver always return ESP_OK (IDFGH-6177) #7854
2021-11-08 19:45:11 +01:00
morris
16677b0d3c global: make periph enable/disable APIs private
peripheral enable/disable usually should be managed by driver itself,
so make it as espressif private APIs, not recommended for user to use it
in application code.
However, if user want to re-write the driver or ports to other platform,
this is still possible by including the header in this way:
"esp_private/peripheral_ctrl.h"
2021-11-08 10:37:47 +08:00
Ondrej Kosta
cb8432e0f2 esp_eth: KSZ8851SNL, enable Rx multicast in MAC filter
Closes https://github.com/espressif/esp-idf/issues/7750
2021-11-04 16:17:45 +00:00
David Čermák
9466fd1e16 Merge branch 'bugfix/LAN8720_reset_assertion' into 'master'
Increased LAN8720 ETH-PHY reset assertion time

Closes IDFGH-6132 and IDFGH-6018

See merge request espressif/esp-idf!15636
2021-11-03 16:29:09 +00:00
Ondrej Kosta
380864861f Copyright message fix for 'Increased LAN8720 ETH-PHY reset assertion time' 2021-11-02 09:57:03 +01:00
Frank Sautter
5e7df077d6 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-01 22:03:30 +01:00
ma-lalonde
0f754551dd Add support for Eth PHY KSZ8091 2021-11-01 11:11:18 -04:00
Marius Vikhammer
142bb32c50 ci: update cert used for esp_eth test 2021-10-20 11:34:12 +08:00
David Čermák
d1ac84e68e Merge branch 'bugfix/lwip_move_icmp_tests_from_eth' into 'master'
CI/lw-ip: Move ICMP test cases from eth component

Closes IDF-3863

See merge request espressif/esp-idf!15200
2021-10-01 07:06:32 +00:00
David Cermak
8b45ac0fbc lwip: Add ping test case (moved from eth component) 2021-09-22 15:22:18 +02:00
Ondrej Kosta
76326e8268 esp_eth: add PHY loopback control via esp_eth_ioctl
Fixed esp_eth_ioctl command's data argument non-standard handling
2021-09-14 09:13:54 +02:00
morris
54abf1d0b9 Merge branch 'ci/esp_eth_new_runners' into 'master'
feature/ci/esp_eth: new app_test and runner

Closes IDF-3561 and IDFGH-1736

See merge request espressif/esp-idf!14392
2021-09-09 04:16:08 +00:00
David Čermák
39b7d3e13f Merge branch 'bugfix/eth_dm9051_not_responding' into 'master'
esp_eth: Fix dm9051 Rx interrupt processing

Closes IDFGH-4598

See merge request espressif/esp-idf!15073
2021-09-08 14:25:27 +00:00
SalimTerryLi
14a6ab4a8e
esp_eth: new test_app: emac layer tests 2021-09-08 20:00:14 +08:00
David Cermak
676cd99c42 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-07 16:38:43 +02:00
laokaiyao
04970fe487 iperfUtility: add udp rx bandwidth scan 2021-09-01 19:11:28 +08:00
laokaiyao
8d18a9c614 emac: optimise iperf performane 2021-09-01 19:11:28 +08:00
morris
ab0c5fed25 eth: dont warn nego timeout if link is down 2021-08-27 15:30:46 +08:00
Ondrej Kosta
300618e5be Merge branch 'feature/dual_eth' into 'master'
esp_eth: add support for multiple Ethernets modules at a time

Closes IDFGH-5596

See merge request espressif/esp-idf!14640
2021-08-27 06:11:48 +00:00
Ondrej Kosta
ef30384902 esp_eth: add support for multiple Ethernets modules at a time
Ethernet driver events properly bounded with ESP NETIF actions to support multiple Ethernet modules used at a time.

Components using Ethernet updated to conform with new API.

Closes https://github.com/espressif/esp-idf/issues/7318
2021-08-24 17:10:36 +02:00
Ondrej Kosta
a37e4b18c6 phy_lan87xx: extended Vendor Specific Registers definition
Extended Vendor Specific Registers definition to include definitions for LAN8740A/LAN8741A/LAN8742A

Closes https://github.com/espressif/esp-idf/pull/7269
2021-08-10 15:54:32 +02:00
Ondrej Kosta
404905d5f1 esp_eth: Add support to LAN87xx family
Merges/Related-to https://github.com/espressif/esp-idf/pull/7097
2021-07-28 19:34:05 +08:00
Ondrej Kosta
02a432b8d3 Fix invalid ETH_MAC_DEFAULT_CONFIG macro in C++ 2021-07-19 09:56:07 +02:00
morris
8e069dd755 emac: configure data interface early
Related to https://github.com/espressif/esp-idf/issues/7227
2021-07-13 15:10:23 +08:00
Ondrej Kosta
a6db3a5e77 esp_eth: Change clock mode setting
RMII clock mode is made to be run-time configurable.

Closes https://github.com/espressif/esp-idf/issues/6564
Closes https://github.com/espressif/esp-idf/issues/7107
2021-07-08 14:27:31 +02:00
laokaiyao
fe354f1c50 hal/emac_hal: refactord emac_hal 2021-06-16 09:48:21 +08:00
David Cermak
45846f06cf 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-05-25 04:52:46 +00:00
David Cermak
0cd021adb1 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-05-25 04:52:46 +00:00
morris
0c25793b06 esp_eth: restart negotiation in esp_eth_start 2021-05-18 11:16:32 +08:00
morris
83f2d802ce esp_eth: fix default PHY reset gpio
Closes https://github.com/espressif/esp-idf/issues/7034
2021-05-18 11:16:05 +08:00
Jon Shallow
154ad2e0e1 esp_eth_mac_openeth.c: Fix issue created by generic check macros update
Merges https://github.com/espressif/esp-idf/pull/6936
2021-04-26 08:40:07 +00:00
David Cermak
1e674f1d20 esp_eth: Update KSZ8851SNL driver to use global error checkers
Also updated KSZ8851SNL per internal code review:
* Removed Link status change interrupt as it's handled with polling
* Added auto negotiation timeout
* Updated typedefs, moved types to appropriate source, updated
  components/esp_eth/src/ksz8851.h to use only inherent device types
* Applied IDF code formatting
* Updated header file order to include first the most generic to more
  specific
2021-04-22 13:55:51 +00:00
Vladimir Chistyakov
c4f131e6ee esp_eth: Add a KSZ8851SNL SPI Ethernet driver
Implement the PHY and MAC layers in the driver similar to
the W5500 driver.

Update Kconfig, CMakeLists.txt, and component.mk to incorporate
the changes.

Resolves: #6542

Merges https://github.com/espressif/esp-idf/pull/6636
Closes https://github.com/espressif/esp-idf/issues/6542
2021-04-22 13:55:51 +00:00
morris
0733adab5e esp_eth: using esp_timer to check link status 2021-04-21 13:08:07 +08:00
morris
537617aec7 esp_eth: support user customized PHY io function
Closes https://www.github.com/espressif/esp-idf/issues/6745
2021-04-21 13:08:07 +08:00
morris
ef344d89ae esp_eth: apply generic error check macros 2021-04-13 10:54:33 +08:00
David Čermák
0f36a2dd16 Merge branch 'bugfix/eth_w5500_4byte_corruption' into 'master'
esp_eth: Fix w5500 read register operations

Closes IDFGH-4776 and IDFGH-4400

See merge request espressif/esp-idf!13060
2021-04-12 14:26:30 +00:00
David Cermak
7af358ed93 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-04-12 07:59:40 +00:00
David Cermak
dfe9580967 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-04-12 07:59:40 +00:00
Omar Chebib
cd79f3907d 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-08 14:01:18 +08:00
morris
2a34b0496c esp_eth: refactor ksz8041 driver into ksz80xx 2021-03-30 08:53:15 +00:00
Patrick Wieder
98a4c70af9 Added support for Ethernet PHY KSZ8081
Merges https://github.com/espressif/esp-idf/pull/6578
2021-03-30 08:53:15 +00:00
morris
9d7ba4c49a eth_phy: fix wrong register bit order in ksz8041 2021-03-30 08:53:15 +00: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