Commit Graph

270 Commits

Author SHA1 Message Date
morris
96e1fe5029
test(emac): register are not read/write by half-word 2024-06-19 22:39:50 +08:00
Ivan Grokhotkov
aad9ab02e8
feat(esp_eth): enable openeth in QEMU for ESP32-S3 2024-06-12 10:50:13 +02:00
Ondrej Kosta
e9adde3485 Merge branch 'bugfix/yeat_another_memory_leak' into 'master'
fix(esp_eth): Fixed another memory leak ESP MAC

Closes IDF-10079

See merge request espressif/esp-idf!31336
2024-06-06 18:48:09 +08:00
Bogdan Kolendovskyy
75222cc6b7 Merge branch 'feature/emac_insufficient_tx_buffer_debug_log' into 'master'
feat(esp_eth): Do not produce error when insufficient TX buffer size happens

See merge request espressif/esp-idf!31175
2024-06-05 19:29:06 +08:00
Ondrej Kosta
f9071cfce1 fix(esp_eth): Fixed another memory leak ESP MAC 2024-06-05 11:30:04 +02:00
Bogdan Kolendovskyy
514d8cb51d feat(esp_eth): Do not produce error when insufficient TX buffer size happens 2024-06-04 12:06:59 +02:00
morris
e5b7987e21 refactor(emac): use heap component API to allocate cached aligned DMA buffer 2024-06-02 22:19:46 +08:00
Ondrej Kosta
a558e94952 fix(esp_eth): fixing memory leak and invalid bit shift 2024-05-15 09:27:37 +02:00
Ondrej Kosta
d15a9c2c48 feat(esp_eth): a new folder structure of the driver and other improvements
Fixed memory leak in emac_esp_new_dma function.

Polished ESP EMAC cache management.

Added emac_periph definitions based on SoC features and improved(generalized) ESP EMAC GPIO
initialization.

Added ESP EMAC GPIO reservation.

Added check for frame error condition indicated by EMAC DMA and created a target test.
2024-05-14 08:23:31 +02:00
Ondrej Kosta
7843c51ec4 Merge branch 'contrib/github_pr_13560' into 'master'
esp_eth: DP83848: correct link detection to use BMSR (GitHub PR)

Closes IDFGH-12557

See merge request espressif/esp-idf!30361
2024-04-24 14:22:45 +08:00
Karl Palsson
e2945871b7 fix(esp_eth): dp83848: correct link detection to use BMSR
Reading the link state via PHYSTS was incorrect, as it only reflects the
link state bit from BMSR.  BMSR latches link down events, and are not
cleared without being read.  (See 802.3-2008 section 2, section 22.2.4.2.13)
This leads to the original DP828xx code only supporting link up, then a
single link down event.

Switch to reading the link state via BMSR, but continuing to read the
negotiation results via PHYSTS and ANLPAR.  This is inline with
LAN8720x, RTL8201, KSZ80xx phy drivers, and other opensource drivers for
the DP838xx family of devices.

Tested on a private board with a DP83825i PHY.  No publically available
boards using the original DP83848 are known of for testing.

Signed-off-by: Karl Palsson <karl.palsson@marel.com>
2024-04-16 11:08:48 +00:00
Ondrej Kosta
60384d4fc0 fix(esp_eth): made access to PHY registers for DM9051 more robust 2024-04-15 15:39:23 +08:00
gaoxu
c3303c0096 fix(eth): fix defaultip101 tests error on ci 2024-04-02 16:17:10 +08:00
gaoxu
40f38bea6f feat(dma): refactor dma calloc function 2024-04-02 14:30:14 +08:00
Armando
78f96c4466 change(eth): use new esp_dma_calloc 2024-04-02 14:30:14 +08:00
Ondrej Kosta
f7984936e3 Merge branch 'bugfix/eth_l2_test_conn_wait_tmo' into 'master'
ci(esp_eth): increased L2 test wait for connection timeout

See merge request espressif/esp-idf!29576
2024-03-22 17:49:53 +08:00
Ondrej Kosta
9d0b8d62b0 Merge branch 'feature/emac_intr_prio' into 'master'
feat(esp_eth): added option to configure interrupt priority

Closes IDF-7969

See merge request espressif/esp-idf!29300
2024-03-19 21:09:30 +08:00
Ondrej Kosta
93db5a609a fix(esp_eth): fixed build for openeth due to incorrect printf format 2024-03-14 09:44:53 +01:00
Ondrej Kosta
2d290e5d69 ci(esp_eth): increased L2 test wait for connection timeout 2024-03-12 09:09:40 +01:00
Ondrej Kosta
6a09d98089 feat(esp_eth): added option to configure interrupt priority 2024-03-07 10:30:32 +01:00
Ondrej Kosta
edf49a92b7 fix(esp_eth): Removed -Wno-format in esp_eth component 2024-03-01 17:01:28 +01:00
Ondrej Kosta
4ddc947d1c Merge branch 'bugfix/eth_link_reset' into 'master'
fix(esp_eth): Fixed Ethernet link reset when Ethernet is stopped

Closes IDF-9195

See merge request espressif/esp-idf!29058
2024-02-28 20:26:29 +08:00
Bogdan Kolendovskyy
f02fadda87 Merge branch 'bugfix/ip101_hw_reset_include' into 'master'
fix(esp_eth): explicitly include FreeRTOS headers into ip101 driver

See merge request espressif/esp-idf!29063
2024-02-28 16:20:35 +08:00
Bogdan Kolendovskyy
eb8985886d fix(esp_eth): explicitly include FreeRTOS headers into ip101 driver to ensure availability of vTaskDelay 2024-02-27 18:13:07 +08:00
gaoxu
e9ce63532b feat(gpio): add gpio fun sellect api 2024-02-27 17:01:53 +08:00
Ondrej Kosta
1ae315e1ed fix(esp_eth): Fixed Ethernet link reset when Ethernet is stopped 2024-02-16 16:36:26 +01:00
Ondrej Kosta
dee34c2a48 Merge branch 'bugfix/spi_eth_recv_alloc' into 'master'
fix(esp_eth): improved SPI Ethernet _alloc_recv_buf error handling

Closes IDF-8601

See merge request espressif/esp-idf!29040
2024-02-16 19:52:48 +08:00
Ondrej Kosta
b0259f59c2 fix(esp_eth): improved SPI Ethernet _alloc_recv_buf error handling 2024-02-14 12:40:04 +01:00
Bogdan Kolendovskyy
748c215c63 fix(esp_eth): Use uint32_t in mmd access functions 2024-02-13 12:53:11 +01:00
Bogdan Kolendovskyy
91630fab36 Merge branch 'bugfix/ip101_reset_timing' into 'master'
fix(esp_eth): ip101-specific reset_hw to match reset timings from datasheet

Closes IDF-9160

See merge request espressif/esp-idf!28906
2024-02-09 16:44:24 +08:00
Ondrej Kosta
5df5f0cf80 Merge branch 'feature/spi_eth_no_int' into 'master'
feat(esp_eth): added SPI Ethernet module polling mode

Closes IDFGH-11561

See merge request espressif/esp-idf!28782
2024-02-08 22:34:47 +08:00
Bogdan Kolendovskyy
222f67f043 fix(esp_eth): ip101-specific reset_hw to match reset timings from datasheet
IP101 requires 10ms reset assertion time and 10ms post-reset delay to properly initialize.
2024-02-07 11:24:17 +01:00
Ondrej Kosta
fd0a1dc53c feat(esp_eth): added SPI Ethernet module polling mode
Closes https://github.com/espressif/esp-idf/issues/12682
2024-02-07 11:21:57 +01:00
Bogdan Kolendovskyy
d9e1d69b4e esp_eth: Add functions to access PHY using MDIO
Specifically:
  - Set/get address
  - Read/write data at address with specified MDIO access function
  - Read/write both address and data with a single call
2024-01-30 12:08:18 +01:00
Ondrej Kosta
f732c3b7fd ci(esp_eth): enable Ethernet tests 2024-01-22 09:30:24 +01:00
Ondrej Kosta
ce388a4111 feat(esp_eth): Added support of internal EMAC for ESP32P4
Refactored internal EMAC DMA access.

Added MPLL acquire to manage access to the MPLL by multiple periphs.
2024-01-16 14:29:25 +01:00
Fu Hanxi
a98923bc85
test: temp disable ip101 test cases 2024-01-10 15:37:34 +01:00
Ivan Grokhotkov
88fa79fcc7
feat(unity): upgrade to 2.6.0-RC1 2023-11-28 20:22:02 +01:00
Ondrej Kosta
383bb46298 ci(esp_eth): addressed LAN8720 errata in CI test 2023-11-08 12:40:28 +00:00
Ondrej Kosta
78f791d4d5 feat(esp_eth): added ioctl option to read/write PHY registers
LAN87xx: Added extra delay after setting PHY speed
2023-11-08 12:40:28 +00:00
Song Ruo Jing
9461993ec5 refactor(gpio): make gpio driver as component, and fix astyle 2023-11-03 15:42:23 +08:00
morris
d78750306d refactor(emac): use clock_output driver for configuring RMII reference clock 2023-10-31 14:24:48 +08:00
Ondrej
58b6add55c ci(esp_eth): make additional Ethernet chips test as nightly run 2023-10-26 11:38:28 +00:00
Jakob Hasse
548022fbe6 refactor(linux): excluded all non-Linux components from build
* All components which won't build (yet) on Linux are excluded.
  This enables switching to Linux in an application without
  explicitly setting COMPONENTS to main in the main
  CMakeLists.txt.
* ESP Timer provides headers for Linux now
* automatically disabling LWIP in Kconfig if it is not available

doc(linux): brought section
  "Component Linux/Mock Support Overview" up to date
2023-10-16 17:06:54 +08:00
Ondrej
3a3656ba38 ci(esp_eth): added tests of all supported Etherent chips 2023-10-12 07:23:51 +00:00
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