ESP_igrr wrote:
Our main concern with this approach is the chances of the nvs becoming erased during firmware changes, there doesnt seem to be documentation that I have found that specifies that it will not be erased or have issues long term after multiple writes (as its being actively used).
One way to ensure that this data doesn't get erased is to have a one more NVS partition, and open it read only. For all settings which can change, use the main NVS partition. Use the read only one to read factory programmed settings.
See
nvs_flash_init_partition and
nvs_open_from_partition functions.
That's a very good idea, I'll look into this one further.
Can you confirm if there is any way to use any of the 3 keys to encrypt/decrypt user provided data (Not in flash) and have their security protection set ?
Encrypted flash sounds ideal, but not an option until tools support this and there is better documentation on these features. Would love to be able to use this, but currently not an option
Could you point us to the gaps you are seeing in the
documentation and tools support? We'll try to improve it.
The biggest thing I find missing is absolutely no process examples for implementing this yourself, for when python is not an option.
You mention that AES is done backwards, but unlike most vendors there are no app notes / examples / implementation details that I can find? This is by far the biggest shortcoming I find with a large number of the documentation on the Read the Docs pages.
If it doesn't exist in the examples folder of the idf, there are no examples / implementation examples. Not saying that you have to make these, just that its one thing I notice in comparison to other vendors.
Also, your comment about the write protect preventing reads from all memory buses except for hardwired encryption peripherals isnt overly noted anywhere, or how these hardware connections are made ?
Another one is in the TRM, there is very little information on how to use the capture sub module for timing events etc. (Less than one page). This is not the only thing, but just one I came across today.
Still love the part though.
Just find it hard with the documentation scattered everywhere.