Page 1 of 1

Not able to read the eFuse ESP_EFUSE_USER_DATA

Posted: Wed Apr 22, 2026 12:58 pm
by RogerDavisWork
I want to use Secure Boot without Flash Encryption on the esp32s3. I also want to be able to read (at a minimum) ESP_EFUSE_USER_DATA in block 3. (it would be nice to be able to read other things as well after it SB is enabled, but I will settle for just this one field).
By reading it, I mean from within the code using calls like :
esp_efuse_read_field_blob(ESP_EFUSE_USER_DATA, user_key, 256);

But every time that I put the device into Secure Boot mode, it locks down ALL of the eFuses to make them unreadable from both espefuse.py and from within my code (it returns all 0's from the esp_efuse_read_field_blob() as shown when I dump out the first 4 bytes here:

I (466) APP: key[0]=0x0 0x0 0x0 0x0

What combination of eFuses / menuconfig options do I need to pick to be able to do what I need (enable SB yet be able to read block 3 from the code)? (at a minimum to be able to use what I burned into the user block 3 from the code by reading it back out in the code). I have burned the eFuses of 5 devices so far trying to figure this out and would like not to waste any more. It would be nice to be able to read out other things from the code as well, but Block 3 is the important thing.