Commit Graph

275 Commits

Author SHA1 Message Date
Ondrej Kosta
a93d53aadb fix(esp_eth): various Ethernet driver fixes
ksz8851snl: enabled reception of multicast frames

Internal EMAC: fixed APLL CLK deinitialization

DM9051 and KSZ80xx: fixed speed configuration when not in loopback mode

phy_802_3: added multiple attempts when autodetecting PHY address
2023-10-12 07:23:51 +00:00
Bogdan Kolendovskyy
fac7cb4b78 Merge branch 'bugfix/rtl8201_reset_timing' into 'master'
esp_eth: rtl8201 timing fix

Closes IDFGH-10170

See merge request espressif/esp-idf!25814
2023-10-04 03:00:23 +08:00
Bogdan Kolendovskyy
c75fab3fa4 esp_eth: change rtl8201 reset timing to match datasheet
In esp_eth_phy_rtl8201.c:
Add 150ms delay after hardware reset, chage reset assertion time to 10ms

In esp_eth_phy_802_3.c:
Change reset function to use vTaskDelay for long (>=10ms) reset assertion time
Change esp_eth_phy_802_3_detect_phy_addr to check range 0-31 instead of 0-15.
2023-10-02 10:10:25 +02:00
Ondrej Kosta
e0c225b4f7 Merge branch 'feature/eth_spi_abstraction' into 'master'
Abstraction of SPI driver for SPI Ethernet modules

Closes IDF-7645

See merge request espressif/esp-idf!24429
2023-09-27 18:36:25 +08:00
Ondrej Kosta
ecd1759a0b feat(esp_eth): abstraction of SPI driver for SPI Ethernet modules 2023-09-26 07:58:05 +00:00
Bogdan Kolendovskyy
303d2c2dc6 fix(esp_eth): Add model number 0x13 to list of suported models
Add model number 0x13 to KSZ80xx driver's list of supported models
corresonding to KSZ8041RLNI.
2023-09-25 11:24:52 +02:00
Chen Yudong
2e11919f70 fix(ci): change build-test-rules files folder 2023-09-20 19:17:06 +08:00
Ondrej Kosta
380b83d7a1 Merge branch 'feature/eth_iram_optimization' into 'master'
feat(esp_eth): added IRAM optimization option for internal EMAC

Closes WIFI-6226

See merge request espressif/esp-idf!25704
2023-09-07 00:35:56 +08:00
Ondrej Kosta
0ff10c3e06 feat(esp_eth): added IRAM optimization option for internal EMAC 2023-09-05 07:42:30 +02:00
morris
0b970a8dfe refactor(emac): add LL functions for bus clock control 2023-09-04 10:52:03 +08:00
Omar Chebib
3e9d2155eb feat(esp_eth): add opencores ethernet support for ESP32-C3 (QEMU) target 2023-08-24 10:32:46 +08:00
Bogdan Kolendovskyy
224ba396f1 esp_eth: add loopback test, change chip drivers to reflect chip specific behaviour
In esp_eth_test_apps.c:
Add test of loopback functionality. Change speed/duplex/autonegotiation test - remove need to enable loopback (required
for it to work on some phys supported by ESP-IDF)

In Kconfig.projbuild:
Add parameters to select which configuration is used - standard or custom.
Add for custom configuration parameters to select MDC and MDIO pins (required to work with WESP-32 and other boards that
use non-standard pin assignments).

In esp_eth_test_common.c:
Add code to support changes made in Kconfig

In sdkconfig.ci.default_rtl8201:
Change config which is used. Now custom is used and MDC is gpio 16, MDIO is gpio 17. Reuqired to work with WESP-32

In esp_eth_phy_802_3.h:
Make 802.3 API public.

In esp_eth_phy_802_3.c:
Add loopback check in eth_phy_802_3_set_duplex(). Now ESP_ERR_INVALID_STATE is invoked on attempt to set duplex to half
when loopback is enabled.
Remove static property from esp_eth_phy_802_3_autonego_ctrl and esp_eth_phy_802_3_loopback.

In esp_eth_phy_dm9051.c:
Add dm9051_loopback() because DM9051 requires setting additional bit to enable auto-negotiation loopback for data to be
received. Add dm9051_set_speed() which invokes ESP_ERR_INVALID_STATE on attempt to set speed to 10 Mbps when loopback is
enabled because such speed configuration is unsupported.

In esp_eth_phy_ksz80xx.c:
Add ksz80xx_set_speed() which invokes ESP_ERR_INVALID_STATE on attempt to set speed to 10 Mbps when loopback is enabled
because such speed configuration is unsupported.

In esp_eth_phy_ksz8851snl.c:
Change phy_ksz8851_set_duplex() to invoke ESP_ERR_INVALID_STATE on attempt to set duplex to half when loopback is enabled.

In  esp_eth_phy_dp83848.c, esp_eth_phy_rtl8201.c:
Add autonego_ctrl implementation which prevents enabling autonegotiation when loopback is enabled.
Add loopback implementation which disables autonegotiation prior to enabling loopback.

In esp_eth_phy_lan87xx.c:
Add autonego_ctrl implementation which prevents enabling autonegotiation when loopback is enabled.
Add loopback implementation which disables autonegotiation prior to enabling loopback.
Fix link indicating being down when loopback is enabled by force setting link up.
2023-08-03 13:18:44 +02:00
Bogdan Kolendovskyy
a28d87e72a fix(eth_netif_glue): Move reporting speed to action connected
esp_eth_netif_glue.c:
Moved reporting link speed to action connected, removed speed reportg code from action start.
2023-07-27 13:15:42 +02:00
Ondrej Kosta
5ebe6b51d8 esp_eth: fixed esp_eth_transmit_vargs to transmit only when link is up
esp_eth test: clear unicast Rx event before wait
2023-05-23 08:23:34 +02:00
Ondrej Kosta
5da56ea361 Merge branch 'contrib/github_pr_11337' into 'master'
w5500: mac: poll VERSIONR to ensure the chip is initialised (GitHub PR)

Closes IDFGH-10061

See merge request espressif/esp-idf!23792
2023-05-23 13:23:51 +08:00
Jackson Ming Hu
896a07e5d6 w5500: rework version check to avoid a false alarm on fault detection
See: https://github.com/espressif/esp-idf/issues/11331
2023-05-19 15:33:22 +02:00
Mahavir Jain
2688dfe982
tests: update Root certificate for the test endpoints
Use Root certificate (`DigiCert Global Root G2`) for the
`dl.espressif.com` and `espressif.com` test endpoints.

This fixes the test failure introduced due to renewal of
the intermediate certificate.
2023-05-16 15:56:29 +05:30
Marius Vikhammer
bca026455c ci: remove redundent ci configs for chip support and network components
CI would build psram config test apps even for target with no psram.
2023-04-26 09:54:29 +08:00
Ondrej Kosta
c231c79fc8 HAL: wrapped emac_ll functions to emac_hal
Closes #9934
2023-04-19 12:46:45 +00:00
Ondrej Kosta
34850de22b Merge branch 'bugfix/eth_l2_test_switch' into 'master'
LAN8720 & IP101 L2 Test Fix

Closes IDFCI-1624 and IDFCI-1567

See merge request espressif/esp-idf!22907
2023-04-14 20:53:08 +08:00
Ondrej Kosta
f6715c9c29 esp_eth pytest: increased robustness of the L2 test
Added filtering frames based on MAC address
2023-04-13 08:26:45 +02:00
Ondrej Kosta
3d66a10114 Ethernet driver and documentation clean-up 2023-04-04 11:33:08 +00:00
Ondrej
2ec7fc8f10 esp_eth: allowed DM9051 to receive multicast packets
Removed extra PHY status link checks from DM9051 MAC layer
2023-03-14 13:59:27 +00:00
Omar Chebib
5e5343d429 TWDT: Use the new TWDT Kconfig options in the examples and tests 2023-02-17 11:22:25 +08:00
Ondrej Kosta
05510e67d1 Merge branch 'bugfix/eth_lan8720_ci' into 'master'
esp_eth: start/stop and L2 test stability improvements

See merge request espressif/esp-idf!21898
2023-02-09 15:36:12 +08:00
Ondrej Kosta
51ea57f5b8 esp_eth: improved L2 test stability 2023-02-03 10:48:39 +01:00
Ondrej Kosta
256d457969 esp_eth: possible start/stop issue fixed
ESP32 EMAC could hang when stopped/started multiple times at 10Mbps speed mode
2023-02-03 10:48:39 +01:00
Ondrej
5fdb49698a esp_eth: fixed copyright for W5500 2023-01-19 07:56:22 +00:00
Reinis Muiznieks
bb2f346e55 Verify w5500 chip properly 2023-01-17 11:52:51 +02:00
Ondrej Kosta
84ab32b4ef Merge branch 'bugfix/emac_memory_leak' into 'master'
Fixed false positive emac rx memory leak reported by Coverity

Closes IDF-6363

See merge request espressif/esp-idf!21341
2022-12-05 20:04:15 +08:00
Ondrej Kosta
600788da6a Merge branch 'contrib/github_pr_10292' into 'master'
fix small bug when logging eth error (GitHub PR)

Closes IDFGH-8869

See merge request espressif/esp-idf!21407
2022-12-05 17:58:37 +08:00
Ondrej
647a9dfde3 Improved emac rx task code to suppress Coverity false positive memory leak indication 2022-12-02 12:57:43 +00:00
Alexander Hübener
93a8510dc5 fixed args order 2022-12-01 21:36:13 +01:00
Ondrej
2bf7255285 Ethernet related tests improvements
esp_eth: tests migrated to pytest and added support of multiple Ethernet devices

esp_netif: l2tap test migrated to pytest
2022-11-28 11:34:34 +00:00
Ondrej
c40e4eb499 esp_eth: DM9051 stop/start issue fixed 2022-11-28 10:54:43 +00:00
Ondrej Kosta
785f154f56 Merge branch 'feature/emac_buff' into 'master'
esp_eth: receive buffer allocation optimization

Closes IDFGH-7769

See merge request espressif/esp-idf!19977
2022-11-24 00:48:19 +08:00
Omar Chebib
cd21058097 C/Cxx: unify static assertions with the macro ESP_STATIC_ASSERT
Closes https://github.com/espressif/esp-idf/issues/9938
2022-11-21 16:18:08 +08:00
Ondrej
6fff81d970 esp_eth: receive buffer allocation optimization
Receive buffers are allocated with a size equal to actual received frame size
2022-11-15 10:44:12 +00:00
Ondrej Kosta
f6b2414bb5 Merge branch 'bugfix/esp_eth_test_rx' into 'master'
component_ut_pytest_esp32_ip101 fix

Closes IDFCI-1313

See merge request espressif/esp-idf!18526
2022-08-05 14:02:39 +08:00
Ivan Grokhotkov
401c10ecfb build system: re-add -Wno-format as private flag for some components 2022-08-03 16:42:47 +04:00
Ondrej Kosta
2a09f887f3 eth test_apps: fixes problem with 'traffic_gen' process hanging 2022-08-03 07:42:38 +00:00
Guillaume Souchere
6005cc9163 hal: Deprecate interrupt_controller_hal.h, cpu_hal.h and cpu_ll.h interfaces
This commit marks all functions in interrupt_controller_hal.h, cpu_ll.h and cpu_hal.h as deprecated.
Users should use functions from esp_cpu.h instead.
2022-07-22 00:06:06 +08:00
David Cermak
5c383d7b73 esp_netif/lwip: Fix deps cycles to "lwip -> esp_netif -> phy-drivers"
Fix dependency tree so that lwip doesn't depend on any specific network
interface component.
Network interface drivers shall depend on esp_netif.
esp_netif shall depend on lwip (but not on any specific interface
driver) -- it optionally depends on vfs and esp_eth (need ethernet
header for L2/bridge mode)
2022-07-20 14:59:07 +02:00
Ondrej Kosta
c0312e3242 Merge branch 'feature/improve_spi_ethernet_init' into 'master'
esp_eth: SPI Ethernet modules initialization simplification

Closes IDF-3902

See merge request espressif/esp-idf!18663
2022-07-15 00:02:23 +08:00
Ondrej Kosta
bb6c6aff36 esp_eth: SPI Ethernet modules initialization simplification 2022-07-14 08:46:22 +02:00
Fu Hanxi
05d2357062 feat: use standalone project idf-build-apps for find/build apps utils 2022-07-14 08:26:31 +08:00
Ondrej Kosta
ed7afd8b73 Merge branch 'feature/eth_phy_common' into 'master'
ESP PHY structure refactor

Closes IDF-5149

See merge request espressif/esp-idf!18158
2022-06-28 23:25:12 +08:00
Ondrej Kosta
08f421a091 esp_eth: pytest_esp_eth CI timeout hotfix 2022-06-27 11:21:31 +02:00
Ondrej Kosta
43f3904304 esp_eth: IEEE 802.3 PHY MII Management Interface functionality grouped to one common file 2022-06-24 05:51:44 +00:00
Ivan Grokhotkov
a2ca5d03c5
examples, components: remove C/C++ standard overrides
...where they are not necessary after switching to C17 and C++20.
2022-06-17 16:44:17 +02:00
David Cermak
fd366fac9e esp_eth: Remove deprecated esp_eth_receive() 2022-06-09 07:55:40 +00:00
David Cermak
343cf2696e esp_eth: Reduce internal deps onto netif-glue 2022-06-09 07:55:40 +00:00
David Cermak
5e19b9c951 esp-netif: Make dependency on esp-eth optional
* esp-netif to optionally depend on esp-eth (only for l2tap config)
* esp_eth.h now includes the original ethernet header and the
ethernet-netif glue layer
* Updated examples and test to explicitely use esp-eth dependency if
needed
2022-06-09 07:55:40 +00:00
David Cermak
680f3a50c2 esp_eth: Rename drivers main header to esp_eth_driver
The original  would be used as API header bringing both driver and netif related includes
2022-06-09 07:55:40 +00:00
David Čermák
46e599c56d Merge branch 'feature/lwip_rework_patches' into 'master'
lw-IP: Reworked patches

Closes IDFGH-6197

See merge request espressif/esp-idf!17388
2022-06-03 15:26:55 +08:00
Djordje Nedic
facab8c5a7 tools: Increase the minimal supported CMake version to 3.16
This updates the minimal supported version of CMake to 3.16, which in turn enables us to use more CMake features and have a cleaner build system.
This is the version that provides most new features and also the one we use in our latest docker image for CI.
2022-06-01 06:35:02 +00:00
David Cermak
5b471a1848 esp_netif/lwip: Implement basic support for vanilla-lwip (2.1.3-REL)
* Reference lwip-2.1.3-REL vanilla lwip version
* Use inherent NETIF callbacks instead of dhcp/ipv6/autoip
2022-05-18 17:10:42 +02:00
Marius Vikhammer
c8617fe965 docs: fix all doxygen warnings
Doxygen warnings would previously not result in a failed pipeline.
Fixed this as well as all current warnings.
2022-05-12 14:50:03 +08:00
morris
cc71e645be Merge branch 'feature/ksz8863rll_support' into 'master'
ESP IDF infrastructure preparation for ksz8863rll support

See merge request espressif/esp-idf!17203
2022-04-14 10:51:27 +08:00
Ondrej Kosta
e4217ff868 esp_eth/test_apps: fixed byte order of EthType during raw socket creation 2022-04-12 12:33:57 +00:00
Ondrej Kosta
4051b80b4d esp_netif: remove dependency of L2 TAP Interface from netif_lwip
esp_eth: extended infrastructure to optionally provide more advanced access to MAC/PHY layers
2022-04-08 16:40:29 +02:00
David Cermak
c63c8d4df1 esp_eth: Fix open-cores explicit inclusion 2022-03-23 09:05:30 +01:00
Ondrej Kosta
c69b4c817b Fixed Ethernet lwIP netif error indication 2022-03-22 07:17:40 +00:00
Ondrej Kosta
0e0c5f93e3 Merge branch 'bugfix/test_esp_eth_ip101' into 'master'
esp_eth/test_apps: test stability/performance improvement

Closes IDFCI-1150

See merge request espressif/esp-idf!17411
2022-03-11 12:03:30 +08:00
David Cermak
795b7ed993 esp_netif: Remove tcpip_adapter compatibility layer 2022-03-10 08:19:43 +01:00
Ondrej Kosta
be24d90e14 esp_eth/test_apps: test stability/performance improvement 2022-03-10 08:16:18 +01:00
Sagar Bijwe
6501eff7f5 Remove legacy system event framework. 2022-03-09 15:53:45 +05:30
Sudeep Mohanty
a9fda54d39 esp_hw_support/esp_system: Re-evaluate header inclusions and include directories
This commit updates the visibility of various header files and cleans up
some unnecessary inclusions. Also, this commit removes certain header
include paths which were maintained for backward compatibility.
2022-03-07 11:18:08 +05:30
Omar Chebib
2571aaf3c9 G0: target component (components/esp32*) doesn't depend on driver anymore 2022-03-02 04:21:00 +00:00
David Cermak
25dbf35867 ci/esp_eth: Fix incorrect esp32 emac init
Regression from 8da2e4088c
2022-02-15 18:38:40 +01:00
Ondrej Kosta
7512bdecfe Merge branch 'feature/emac_start_stop_test' into 'master'
test_emac: extended Ethernet start/stop stress test

Closes IDF-4540

See merge request espressif/esp-idf!16755
2022-02-15 13:23:01 +00:00
David Čermák
412fb564ca Merge branch 'bugfix/emac_config_dma_burst_len' into 'master'
esp_eth: Make EMAC DMA burst size configurable (GitHub PR)

Closes IDFGH-6199 and IDFGH-5658

See merge request espressif/esp-idf!16412
2022-02-15 10:36:51 +00:00
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