Reading from pre-generated, encrypted nvs partition fails on one specific chip revision
Posted: Tue Apr 27, 2021 4:52 pm
I was trying to use nvs encryption with pre-generated data on the ESP-WROOM-32 using the Partition Generator Utility.
My ESP-IDF version is release/v3.3.
It drove me nuts that it didnt't work although I did exactly what the documentation says. It will always give me an error when I try to open the partition using
Until tried the same binaries on a different ESP32, and it worked! That led to some investigation on my side and I noticed that they all had difference chip revisions.I did a clean build and flash 4 different ones with the same binaries, the result is the same.
First, the one which gives me the error (with espefuses.py summary)
Its the oldest I own, and it has this characteristic stain on the left side of the pcb antenna like this one:
Here are the chip revisions of the ones which worked:
Is this a known issue? I couldn't find any hint in the docs or anywhere else actually, except in an answer in this thread indicating the same thing.
If someone wants to reproduce with a 1/0/0/0 chip, I can provide some code. But basically I just initialized an encrypted nvs partition and tried to read a string from it.
Best, bear.
My ESP-IDF version is release/v3.3.
It drove me nuts that it didnt't work although I did exactly what the documentation says. It will always give me an error
Code: Select all
0x1102 Id namespace doesn’t exist yet and mode is NVS_READONLYCode: Select all
nvs_open_from_partitionFirst, the one which gives me the error (with espefuses.py summary)
Code: Select all
CHIP_VER_REV1 Silicon Revision 1 = 1 R/W (0x1)
CHIP_VER_REV2 Silicon Revision 2 = 0 R/W (0x0)
CHIP_VERSION Reserved for future chip versions = 0 R/W (0x0)
CHIP_PACKAGE Chip package identifier = 0 R/W (0x0)
Code: Select all
CHIP_VER_REV1 Silicon Revision 1 = 1 R/W (0x1)
CHIP_VER_REV2 Silicon Revision 2 = 0 R/W (0x0)
CHIP_VERSION Reserved for future chip versions = 2 R/W (0x2)
CHIP_PACKAGE Chip package identifier = 0 R/W (0x0)
Code: Select all
CHIP_VER_REV1 Silicon Revision 1 = 1 R/W (0x1)
CHIP_VER_REV2 Silicon Revision 2 = 0 R/W (0x0)
CHIP_VERSION Reserved for future chip versions = 2 R/W (0x2)
CHIP_PACKAGE Chip package identifier = 1 R/W (0x1)
Code: Select all
CHIP_VER_REV1 Silicon Revision 1 = 0 R/W (0x0)
CHIP_VER_REV2 Silicon Revision 2 = 0 R/W (0x0)
CHIP_VERSION Reserved for future chip versions = 0 R/W (0x0)
CHIP_PACKAGE Chip package identifier = 0 R/W (0x0)If someone wants to reproduce with a 1/0/0/0 chip, I can provide some code. But basically I just initialized an encrypted nvs partition and tried to read a string from it.
Best, bear.