Commit Graph

365 Commits

Author SHA1 Message Date
Scramble Tools
4bc48f3ac4 fix(esp_eth): avoid per-frame descriptor ring scan in RX task
The RX task's drain loop called emac_esp_dma_get_remain_frames()
after every received frame, an O(backlog) walk of the descriptor
ring with a cache invalidate per descriptor. Under sustained load
the scan cost grows with the backlog, so the deeper the backlog
gets, the more time goes into scanning instead of draining, until
the task can no longer keep up and the DMA drops frames
continuously (measured ~3000 missed frames/s at 16k pkt/s
bidirectional on ESP32-P4 with 20 descriptors).

The loop only needs to know whether at least one more complete
frame is waiting, which emac_esp_dma_alloc_recv_buf() already
answers by checking a single descriptor, so exit the loop on that
instead. The full remain-frames count is kept only under
CONFIG_ETH_SOFT_FLOW_CONTROL, which genuinely needs it for the
pause-frame watermarks.

Related to https://github.com/espressif/esp-idf/issues/18800
2026-08-25 15:02:55 -07:00
Dhimas Ardinata
5e35383c54 fix(esp_eth): make openeth ISR log DRAM-safe
Keep the ISR from touching flash-resident log strings while cache is disabled.

Closes #18644
2026-08-15 09:11:44 +08:00
Euripedes Rocha
2bb7d92b5e Merge branch 'contrib/github_pr_18972' into 'master'
docs(esp_eth): drop unreachable return code from esp_eth_phy_802_3_reset_hw (GitHub PR)

Closes IDFGH-18139

See merge request espressif/esp-idf!51776
2026-08-14 15:43:21 +02:00
Ondrej Kosta
2e79c3fd69 feat(esp_eth): add Ethernet sublayer with optional VLAN and switch
Introduce the experimental Ethernet sublayer (parent/child VLAN, optional
switch path, iodriver provider), restructure eth test apps, and document
the new APIs.
2026-08-13 13:56:57 +02:00
Daniel M'BOUYOU
17cca03943 docs(esp_eth): drop unreachable return code from esp_eth_phy_802_3_reset_hw
esp_eth_phy_802_3_reset_hw() documented ESP_ERR_NOT_ALLOWED for the case where
no reset GPIO is configured, but that path returns ESP_OK: ret is set to ESP_OK
at components/esp_eth/src/phy/esp_eth_phy_802_3.c:489 and never reassigned, so
reset_gpio_num < 0 falls through to `return ret` at line 506.

ESP_ERR_NOT_ALLOWED occurred nowhere else under components/esp_eth.

Documentation comment only; no functional change.
2026-08-13 12:45:57 +02:00
Ondrej Kosta
8b77c649c2 ci(esp_eth): add S31 coverage and drop external driver test_apps
Add YT8531/S31 tests for esp_eth, eth basic, and iperf. Remove
test_apps coverage of drivers maintained outside IDF.
2026-08-12 13:07:42 +08:00
Ondrej Kosta
0b7b3ae8f8 feat(esp_eth): enable openeth register mapping for 1000M GMAC 2026-08-12 13:07:42 +08:00
Ondrej Kosta
72a35d0f08 feat(esp_eth): add ioctl for 1G PHY master/slave mode
Needed when forcing 1000 Mbps with autonegotiation disabled.
2026-08-12 13:07:42 +08:00
Ondrej Kosta
39d7a6a022 fix(esp_eth): fixed Ethernet PHY HW reset timing in common PHY code 2026-08-11 13:57:08 +02:00
Ondrej Kosta
fb07be93ba ci(esp_eth): use fixed version of eth_test_app 2026-08-06 15:03:08 +08:00
morris
70ddc14d4f refactor(emac): move sleep retention config into driver layer
Keep the EMAC regdma retention definitions in esp_eth so the backup
layout stays aligned with driver-owned sleep retention behavior.
2026-07-10 16:01:41 +08:00
Ondrej Kosta
4431bce564 Merge branch 'feat/eth_test_component' into 'master'
feat(esp_eth): updated test_apps to use Ethernet test component

See merge request espressif/esp-idf!48977
2026-06-08 15:35:38 +08:00
Li Shuai
6ead5cb8a7 fix(esp_eth): emac sleep retention runtime attach and detach 2026-06-05 16:32:34 +08:00
Ondrej Kosta
2be2a1370e feat(esp_eth): update test_apps to use Ethernet test component
Move test logic into the eth_test_app managed component and slim down
the test_apps main target and pytest suite accordingly.
2026-06-04 12:59:18 +02:00
Ondrej Kosta
2fbc3fb588 feat(esp_eth): generic 802.3 driver to check if 1000M is supported 2026-05-27 11:47:12 +02:00
Ondrej Kosta
edbf8856ae feat(esp_eth): add ESP32-S31 EMAC support
Add internal EMAC support for ESP32-S31, including:
- HAL/LL layer: emac_ll, emac_hal, emac_clk, emac_periph for S31
- SOC layer: register structs, soc_caps, peripherals linker script,
  interrupt definitions
- MAC driver: clock source configuration via Kconfig, GPIO/DMA
  adaptations, PHY register defs for clause-45 MDIO
- Ethernet examples updated for S31 (basic, build-test-rules, PTP
  readme)
- Refactored existing ESP32/ESP32-P4 EMAC code for shared patterns
  (emac_clk extraction, struct alignment, periph descriptor cleanup)
2026-05-21 15:59:42 +08:00
Chen Jichang
6e206dd173 refactor(clk_tree): use general api to enable the clk 2026-04-16 20:03:06 +08:00
Guilherme Ferreira
ad06708ab3 ci(esp_eth): Add public DNS fallback for ethernet download test
- Set 8.8.8.8 as primary DNS when DHCP provides no DNS server
- Set 8.8.4.4 as backup DNS in both cases
- Avoids intermittent failures in ethernet download test on CI runners
  where the DHCP server does not supply a valid DNS address
2026-04-09 10:43:16 -03:00
Euripedes Rocha
099d7ee8ce Merge branch 'trim-common-components-networking-manifests' into 'master'
fix: Component depends rules for networking and protocols

See merge request espressif/esp-idf!46961
2026-04-02 08:54:05 +02:00
Euripedes Rocha Filho
985af4a130 fix: Component depends rules for networking and protocols
Reduces the scope of testing to the direct dependencies.
2026-04-01 12:43:03 +02:00
Ondrej Kosta
b8c28abd0e ci(esp_eth): changed runner to balance load in CI 2026-04-01 10:36:37 +02:00
Ondrej Kosta
b67ee93a87 Merge branch 'fix/clock_ptp' into 'master'
Adding PTP_CLOCK instance to IDF Clock system

Closes IDF-13906

See merge request espressif/esp-idf!45962
2026-04-01 13:31:00 +08:00
Ondrej Kosta
ed2e6735ff feat(esp_libc): refactored POSIX timers get/set functions
- Added sys/timex.h and clock_adjtime API
2026-03-31 22:32:33 +08:00
Guilherme Ferreira
7451fe4766 ci(esp_eth): add C++ regression guard for ethernet macros 2026-03-31 11:19:59 -03:00
heianto
254e967db2 fix(esp_eth): Fixed designated initializer order in ETH_ESP32_EMAC_DEFAULT_CONFIG
Merges https://github.com/espressif/esp-idf/pull/18275

Signed-off-by: Guilherme Ferreira <guilherme.ferreira@espressif.com>
2026-03-31 11:19:59 -03:00
Fu Hanxi
4f92cfd077 ci: rename eco tags to revision 2026-03-26 12:24:59 +01:00
Ondrej Kosta
505a96964a docs(esp_eth): added test to verify A/MPLL configuration)
Updated docs to state there could be conflict between PSRAM MPLL configuration and EMAC
2026-03-16 17:05:50 +08:00
Evgeny Torbin
d0f062c018 ci: remove unused test cases 2026-03-12 12:02:10 +01:00
Ondrej Kosta
d3d5b239fb feat(esp_eth): Ethernet test refactor
ETH tests use setUp-tearDown to init/deinit resources
2026-02-25 08:42:49 +01:00
morris
ab16c09947 refactor(hints): move driver migration hints to own components 2026-02-14 15:51:18 +08:00
Igor Udot
f4cb052666 Merge branch 'ci/base_components' into 'master'
ci: use common_components in depends_components

See merge request espressif/esp-idf!45070
2026-01-26 09:08:11 +08:00
morris
0469db2f83 refactor(rcc): unify the usage of clock control macros for peripherals
- Removed conditional definitions for various RCC_ATOMIC macros across
multiple files, replacing them with a unified PERIPH_RCC_ATOMIC() macro.
- Updated instances where specific RCC_ATOMIC macros were used to ensure
consistent usage of PERIPH_RCC_ATOMIC().
- Deleted unused uart_share_hw_ctrl.h file as its functionality is now
integrated into the new structure.
2026-01-23 18:28:13 +08:00
igor.udot
4c26ab876b ci: update build-test-rules to use common_components 2026-01-23 10:14:09 +08:00
Song Ruo Jing
ce6e80c129 Merge branch 'refactor/esp_hal_clock' into 'master'
refactor(clk): split clock HAL into separate component

Closes IDF-14108

See merge request espressif/esp-idf!44768
2026-01-19 11:33:35 +08:00
Ondrej Kosta
a45f42de7c Merge branch 'feat/esp32p4_eco5_emac' into 'master'
Added PTP PPS Feature

Closes IDF-13513

See merge request espressif/esp-idf!44345
2026-01-13 16:24:09 +08:00
Song Ruo Jing
62511d61e9 refactor(clk): split clock HAL into separate component 2026-01-13 15:50:20 +08:00
He Binglin
7f98da97d3 Merge branch 'bugfix/esp_idf_c5_eco3_cpu_lockup' into 'master'
change: support top pd during sleep for esp32c5 eco3 and remove sleep mmu related flow

Closes IDF-13953

See merge request espressif/esp-idf!43587
2026-01-13 11:04:59 +08:00
Ondrej Kosta
f8b055bd11 feat(esp_eth): added PTP EMAC PPS0 support on ESP32P4v3
feat(esp_eth): added options to configure PTP module

feat(esp_eth): removed all PTP ioctl commands and created API
2026-01-12 17:13:25 +08:00
hebinglin
4756d62584 change(esp_driver): set cases with toppd check only run in esp32c5eco3 rather than eco2 2026-01-12 14:30:57 +08:00
Ondrej Kosta
30b61e8d76 fix(esp_eth): made 10M loopback test less strict 2026-01-07 16:29:31 +01:00
Ashish Sharma
b5d05d3e7c feat: migrates esp-eth to PSA APIs 2025-12-30 09:31:49 +05:30
Ondrej Kosta
c16c4abfda Merge branch 'fix/enable_p4v3_tests' into 'master'
fix(ci): re-enabled ESP32P4 tests on different HW vers

Closes ITOPS-204

See merge request espressif/esp-idf!44167
2025-12-22 16:10:41 +08:00
Ondrej Kosta
2659271994 fix(ci): re-enabled ESP32P4 tests on different HW vers 2025-12-15 09:44:39 +01:00
Ondrej Kosta
ae3fbe1ada fix(esp_eth): fixes EMAC MDC out of the range issue
Closes https://github.com/espressif/esp-idf/issues/17984
2025-12-11 17:30:30 +01:00
igor.udot
8c233aa9bd ci: temp_skip_ci for p4 2025-12-04 18:08:33 +08:00
morris
580d9bca57 Merge branch 'refactor/esp_hal_gpio' into 'master'
refactor(gpio): split GPIO HAL into separate component

Closes IDF-14089

See merge request espressif/esp-idf!43215
2025-12-01 10:40:07 +08:00
Song Ruo Jing
1862fdec74 refactor(gpio): split GPIO HAL into separate component
cleaned up some includes in GPIO peripheral files
2025-11-26 15:35:07 +08:00
Ondrej Kosta
4e6b35ca9e feat(ci): updated Ethernet tests to align with new runners 2025-11-25 17:26:49 +01:00
Ondrej Kosta
1e6f49d178 Merge branch 'chore/update-protocol-eth-connect' into 'master'
feat(protocol_examples_common): Use Ethernet Init component

Closes IDF-14227

See merge request espressif/esp-idf!42265
2025-11-20 17:28:17 +08:00
glmfe
f398594982 feat(protocol_examples_common): Use Ethernet Init component
- Refactored protocol_examples_common to use ethernet_init component
2025-11-19 15:58:12 +01:00