From 097cc8c8a67391a3ef2f2d8d031286fead749d1b Mon Sep 17 00:00:00 2001 From: nuttxs Date: Tue, 10 Mar 2026 10:58:58 +0800 Subject: [PATCH] boards/esp32s3: Fix MAC address byte order in LAN9250 driver Fix MAC address byte order by reversing 6 bytes after reading from eFuse. Adjust offset logic to apply after byte reversal, ensuring Ethernet MAC is base_mac +3. Comply with Espressif's MAC address generation specification for ESP32S3 Signed-off-by: nuttxs --- boards/xtensa/esp32s3/common/src/esp32s3_lan9250.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/boards/xtensa/esp32s3/common/src/esp32s3_lan9250.c b/boards/xtensa/esp32s3/common/src/esp32s3_lan9250.c index 3accb752fce..5eeae968f45 100644 --- a/boards/xtensa/esp32s3/common/src/esp32s3_lan9250.c +++ b/boards/xtensa/esp32s3/common/src/esp32s3_lan9250.c @@ -188,8 +188,8 @@ static int lan9250_getmac(const struct lan9250_lower_s *lower, uint8_t *mac) { int fd; int ret; -#ifndef CONFIG_ESP32S3_UNIVERSAL_MAC_ADDRESSES_FOUR int i; +#ifndef CONFIG_ESP32S3_UNIVERSAL_MAC_ADDRESSES_FOUR uint8_t tmp; #endif @@ -227,6 +227,11 @@ static int lan9250_getmac(const struct lan9250_lower_s *lower, uint8_t *mac) close(fd); + for (i = 0; i < 6; i++) + { + mac[i] = mac[5 - i]; + } + #ifdef CONFIG_ESP32S3_UNIVERSAL_MAC_ADDRESSES_FOUR mac[5] += 3; #else