This is an automated email from the ASF dual-hosted git repository.
xiaoxiang781216 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/nuttx.git
The following commit(s) were added to refs/heads/master by this push:
new bda2251669f boards/esp32s3-xiao: wire up esp_openeth_initialize()
bda2251669f is described below
commit bda2251669fc998548ec2633f06e019262cb6d12
Author: Felipe Moura <[email protected]>
AuthorDate: Tue Sep 15 20:29:19 2026 -0300
boards/esp32s3-xiao: wire up esp_openeth_initialize()
esp32s3-devkit, esp32s3-ws-lcd128, lckfb-szpi-esp32s3 and esp32-devkitc
all call esp_openeth_initialize() from their bring-up to register the
openeth MAC (the NIC QEMU's esp32s3 machine provides); esp32s3-xiao
never did, so CONFIG_ESP32S3_OPENETH built but no wlan/eth netdev ever
registered under QEMU -- same shape of gap as the IMU, SD, console,
Wi-Fi and SPI-flash wiring already fixed for this board.
Confirmed under QEMU's esp32s3 machine, combined with the esp_openeth
RX-interrupt fix (merged in 88c8623cedb): the netdev registers and the
guest genuinely sends and receives.
Signed-off-by: Felipe Moura <[email protected]>
Assisted-by: Claude:claude-sonnet-5
---
boards/xtensa/esp32s3/esp32s3-xiao/src/esp32s3-xiao.h | 17 +++++++++++++++++
.../xtensa/esp32s3/esp32s3-xiao/src/esp32s3_bringup.c | 12 ++++++++++++
2 files changed, 29 insertions(+)
diff --git a/boards/xtensa/esp32s3/esp32s3-xiao/src/esp32s3-xiao.h
b/boards/xtensa/esp32s3/esp32s3-xiao/src/esp32s3-xiao.h
index 71b188871b0..1413c4ac227 100644
--- a/boards/xtensa/esp32s3/esp32s3-xiao/src/esp32s3-xiao.h
+++ b/boards/xtensa/esp32s3/esp32s3-xiao/src/esp32s3-xiao.h
@@ -98,5 +98,22 @@ int board_i2c_init(void);
int board_lsm6ds3trc_initialize(int devno, int busno);
#endif
+/****************************************************************************
+ * Name: esp_openeth_initialize
+ *
+ * Description:
+ * Register the openeth MAC driver, the NIC emulated by QEMU's esp32s3
+ * machine. Implemented by the shared Espressif code in
+ * arch/xtensa/src/common/espressif/esp_openeth.c.
+ *
+ * Returned Value:
+ * Zero (OK) on success; a negated errno value on failure.
+ *
+ ****************************************************************************/
+
+#ifdef CONFIG_ESP32S3_OPENETH
+int esp_openeth_initialize(void);
+#endif
+
#endif /* __ASSEMBLY__ */
#endif /* __BOARDS_XTENSA_ESP32S3_ESP32S3_XIAO_SRC_ESP32S3_XIAO_H */
diff --git a/boards/xtensa/esp32s3/esp32s3-xiao/src/esp32s3_bringup.c
b/boards/xtensa/esp32s3/esp32s3-xiao/src/esp32s3_bringup.c
index f2818899e60..6dc222264d9 100644
--- a/boards/xtensa/esp32s3/esp32s3-xiao/src/esp32s3_bringup.c
+++ b/boards/xtensa/esp32s3/esp32s3-xiao/src/esp32s3_bringup.c
@@ -181,6 +181,18 @@ int esp32s3_bringup(void)
# endif
#endif
+#ifdef CONFIG_ESP32S3_OPENETH
+ /* The NIC QEMU's esp32s3 machine provides; compiles away on real
+ * hardware, where CONFIG_ESP32S3_OPENETH is never set.
+ */
+
+ ret = esp_openeth_initialize();
+ if (ret < 0)
+ {
+ syslog(LOG_ERR, "ERROR: Failed to initialize openeth: %d\n", ret);
+ }
+#endif
+
/* If we got here then perhaps not all initialization was successful, but
* at least enough succeeded to bring-up NSH with perhaps reduced
* capabilities.