Przeglądaj źródła

esp32s3: fixed bug chip v0.0 detected as vX.0

A typical value is 2.0.
Michael (XIAO Xufeng) 3 lat temu
rodzic
commit
32ef2b321a
1 zmienionych plików z 9 dodań i 1 usunięć
  1. 9 1
      components/hal/esp32s3/efuse_hal.c

+ 9 - 1
components/hal/esp32s3/efuse_hal.c

@@ -17,7 +17,15 @@
 
 IRAM_ATTR uint32_t efuse_hal_get_major_chip_version(void)
 {
-    return efuse_ll_get_chip_wafer_version_major();
+    uint32_t ret = efuse_ll_get_chip_wafer_version_major();
+    //Workaround: The major version field was allocated to other purposes when block version is v1.1.
+    //Luckily only chip v0.0 have this kind of block version and efuse usage.
+    if (efuse_ll_get_chip_wafer_version_minor() == 0 &&
+        efuse_ll_get_blk_version_major() == 1 &&
+        efuse_ll_get_blk_version_minor() == 1) {
+        ret = 0;
+    }
+    return ret;
 }
 
 IRAM_ATTR uint32_t efuse_hal_get_minor_chip_version(void)