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