From 60b843b7ea338c0dc196e574bbf6df3e717ebfb3 Mon Sep 17 00:00:00 2001 From: Meet Patel Date: Mon, 10 Aug 2026 20:16:13 +0530 Subject: [PATCH] fix(efuse): correct MAC_EXT byte order on ESP32-C5 and ESP32-H21 A single 16-bit MAC_EXT field was read little-endian, reversing FF:FE used for IEEE 802.15.4 EUI 64 extension. Closes https://github.com/espressif/esp-idf/issues/18955 --- components/efuse/esp32c5/esp_efuse_table.c | 8 +++++--- components/efuse/esp32c5/esp_efuse_table.csv | 3 ++- components/efuse/esp32c5/include/esp_efuse_table.h | 2 +- 3 files changed, 8 insertions(+), 5 deletions(-) diff --git a/components/efuse/esp32c5/esp_efuse_table.c b/components/efuse/esp32c5/esp_efuse_table.c index d6c8a5cebcd..00acc14ee48 100644 --- a/components/efuse/esp32c5/esp_efuse_table.c +++ b/components/efuse/esp32c5/esp_efuse_table.c @@ -9,7 +9,7 @@ #include #include "esp_efuse_table.h" -// md5_digest_table e18555ab3140262c47fb3f6a03944676 +// md5_digest_table 9f3a487e680d0c4219890b2df1abdca8 // This file was generated from the file esp_efuse_table.csv. DO NOT CHANGE THIS FILE MANUALLY. // If you want to change some fields, you need to change esp_efuse_table.csv file // then run `efuse_common_table` or `efuse_custom_table` command it will generate this file. @@ -706,7 +706,8 @@ static const esp_efuse_desc_t MAC[] = { }; static const esp_efuse_desc_t MAC_EXT[] = { - {EFUSE_BLK1, 48, 16}, // [] Represents the extended bits of MAC address, + {EFUSE_BLK1, 56, 8}, // [] Stores the extended bits of MAC address, + {EFUSE_BLK1, 48, 8}, // [] Stores the extended bits of MAC address, }; static const esp_efuse_desc_t WAFER_VERSION_MINOR[] = { @@ -1779,7 +1780,8 @@ const esp_efuse_desc_t* ESP_EFUSE_MAC[] = { }; const esp_efuse_desc_t* ESP_EFUSE_MAC_EXT[] = { - &MAC_EXT[0], // [] Represents the extended bits of MAC address + &MAC_EXT[0], // [] Stores the extended bits of MAC address + &MAC_EXT[1], // [] Stores the extended bits of MAC address NULL }; diff --git a/components/efuse/esp32c5/esp_efuse_table.csv b/components/efuse/esp32c5/esp_efuse_table.csv index 7be5debfcf7..89046e6e972 100644 --- a/components/efuse/esp32c5/esp_efuse_table.csv +++ b/components/efuse/esp32c5/esp_efuse_table.csv @@ -188,7 +188,8 @@ MAC, EFUSE_BLK1, 40, 8, [MAC_FACT , EFUSE_BLK1, 16, 8, [MAC_FACTORY] MAC address , EFUSE_BLK1, 8, 8, [MAC_FACTORY] MAC address , EFUSE_BLK1, 0, 8, [MAC_FACTORY] MAC address -MAC_EXT, EFUSE_BLK1, 48, 16, [] Represents the extended bits of MAC address +MAC_EXT, EFUSE_BLK1, 56, 8, [] Stores the extended bits of MAC address +, EFUSE_BLK1, 48, 8, [] Stores the extended bits of MAC address WAFER_VERSION_MINOR, EFUSE_BLK1, 64, 4, [] Minor chip version WAFER_VERSION_MAJOR, EFUSE_BLK1, 68, 2, [] Minor chip version DISABLE_WAFER_VERSION_MAJOR, EFUSE_BLK1, 70, 1, [] Disables check of wafer version major diff --git a/components/efuse/esp32c5/include/esp_efuse_table.h b/components/efuse/esp32c5/include/esp_efuse_table.h index 856cae0b422..ce5a9baabd8 100644 --- a/components/efuse/esp32c5/include/esp_efuse_table.h +++ b/components/efuse/esp32c5/include/esp_efuse_table.h @@ -10,7 +10,7 @@ extern "C" { #include "esp_efuse.h" -// md5_digest_table e18555ab3140262c47fb3f6a03944676 +// md5_digest_table 9f3a487e680d0c4219890b2df1abdca8 // This file was generated from the file esp_efuse_table.csv. DO NOT CHANGE THIS FILE MANUALLY. // If you want to change some fields, you need to change esp_efuse_table.csv file // then run `efuse_common_table` or `efuse_custom_table` command it will generate this file.