Przeglądaj źródła

feat(esp_eth): add opencores ethernet support for ESP32-C3 (QEMU) target

Omar Chebib 2 lat temu
rodzic
commit
3e9d2155eb

+ 2 - 1
components/esp_eth/CMakeLists.txt

@@ -44,7 +44,8 @@ if(CONFIG_ETH_ENABLED)
     endif()
 
     if(CONFIG_ETH_USE_OPENETH)
-        list(APPEND srcs "src/esp_eth_mac_openeth.c")
+        list(APPEND srcs "src/esp_eth_mac_openeth.c"
+                         "src/esp_eth_phy_dp83848.c")
     endif()
 endif()
 

+ 24 - 0
components/esp_eth/src/esp_openeth.h

@@ -0,0 +1,24 @@
+/*
+ * SPDX-FileCopyrightText: 2023 Espressif Systems (Shanghai) CO LTD
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ */
+#pragma once
+
+#include "sdkconfig.h"
+#include "soc/interrupts.h"
+
+#if CONFIG_IDF_TARGET_ESP32C3
+
+/**
+ * @brief Since ESP32-C3 target in QEMU doesn't support Wifi, re-use its interrupt source for ethernet
+ */
+#define ETS_ETH_MAC_INTR_SOURCE     ETS_WIFI_MAC_INTR_SOURCE
+
+
+/**
+ * @brief Use an empty I/O range for the ethernet registers
+ */
+#define DR_REG_EMAC_BASE            0x600CD000
+
+#endif // CONFIG_IDF_TARGET_ESP32C3

+ 1 - 0
components/esp_eth/src/openeth.h

@@ -10,6 +10,7 @@
 #include <assert.h>
 #include "sdkconfig.h"
 #include "soc/soc.h"
+#include "esp_openeth.h"
 #include "esp_assert.h"
 
 #ifdef __cplusplus