4.3.2 eNVM Pages for Special Purpose Storage
A few pages in the final sector (N-1) of the last eNVM module are used for special purpose storage like device certificate and eNVM digest. Some special purpose pages are reserved and protected. Refer below tables for more information on eNVM special purpose storage based on SmartFusion 2 device density. The system controller performs read/write operations on unreserved eNVM pages using system controller services. It only reads data from reserved eNVM pages. 16 pages in the final sector of eNVM_0 module for M2S005, M2S010, M2S025, and M2S050 devices are used for special purpose storage as listed in the following table.
Device | eNVM module | Sector | Page | Type | Usage |
---|---|---|---|---|---|
M2S005/M2S010/M2S025/M2S050 | eNVM_0 | N-1 | 16-24 | Reserved | Reserved for future use |
25-30 | Reserved | Device Certificate | |||
31 | Unreserved | Digest for eNVM_0 |
64 pages of eNVM in the final 2 sectors (private regions) of the last eNVM module for M2S060, M2S090, and M2S150 devices are used as special purpose storage. See the following table for more information. M2S060 device has 2 private regions in eNVM_0 and M2S090/M2S150 device has 2 private regions in eNVM_1.
Sector in eNVM | Page | Type | Usage | Offset in page (Bytes) | Range (Bytes) |
---|---|---|---|---|---|
N-2 | 20-0 | Unreserved | User Key Code#2 to User Key Code #N. N can be maximum 58. Maximum 56 Key Codes (KC#2 to KC#58),each occupies 48 Bytes Minimum 5 Key Codes (KC#2 to KC#7), each occupies 528 Bytes | 0 | 2687:0 |
29-21 | Unreserved | User Activation Code | 0 | 1151:0 | |
30 | Unreserved | User Activation Code (Total 1192 bytes across page 21 to page 30) | 0 | 39:0 | |
30 | Unreserved | User Defined (Key sizes + Exported bit + Valid bit) byte array: 56 bytes holds 56 key sizes along with exported and valid bit flags. | 40 | 55:0 | |
30 | Unreserved | Reserved for future use | 96 | 31:0 | |
31 | Unreserved | User PK-X (384-bit User PUF ECC Public Key) | 0 | 47:0 | |
31 | Unreserved | User PK-Y (384-bit User PUF ECC Public Key) | 48 | 47:0 | |
31 | Unreserved | User Activation Code exported flag (Digests Valid, Activation Code missing) | 96 | 1 byte | |
31 | Unreserved | User Activation Code valid flag | 97 | 1 byte | |
31 | Unreserved | User Key Code #0 exported flag (Digests Valid, Key Code missing) | 98 | 1 byte | |
31 | Unreserved | User Key Code #0 valid flag | 99 | 1 byte | |
31 | Unreserved | User Key Code #1 exported flag (Digests Valid, Key Code missing) | 100 | 1 byte | |
31 | Unreserved | User Key Code #1 valid flag | 101 | 1 byte | |
31 | Unreserved | User Public Key valid flag | 102 | 1 byte | |
31 | Unreserved | Reserved for future use | 103 | 24:0 | |
N-1 | 0 | Unreserved | User Key Code #0 (256-bit User AES Key) | 0 | 43:0 |
0 | Unreserved | User Key Code#1 (384-bit User PUF ECC Key) (76 bytes) | 44 | 75:0 | |
0 | Unreserved | Reserved for future use | 120 | 7:0 | |
9-1 | Reserved | Factory Activation Code | 0 | 1151:0 | |
10 | Reserved | Factory Activation Code (Total 1192 bytes across page 1 to page 10) | 0 | 1191:1152 | |
10 | Reserved | Factory Key Code (384 bit Factory ECC Key Code) | 40 | 75:0 | |
10 | Reserved | Reserved for future use | 116 | 11:0 | |
15-11 | Reserved | Second ECC Key Certificate | 0 | 639:0 | |
21-16 | Reserved | Reserved for future use | 0 | 767:0 | |
22 | Unreserved | eNVM_1 Private User Digest of page 0 of N-1 and all pages of N-2 | 0 | 127:0 | |
23 | Reserved | eNVM_1 Private Factory Digest of pages from 1 to 30 of N-1 except pages 22, 23, and 24 | 0 | 127:0 | |
24 | Unreserved | eNVM_1 Public Digest | 0 | 127:0 | |
30-25 | Reserved | Device Certificate | 0 | 767:0 | |
31 | Unreserved | eNVM_0 Digest | 0 | 127:0 |
- Refer to UG0443: SmartFusion2 SoC FPGA and IGLOO2 FPGA Security Best Practices for more information on the certificates, key codes, and digests.
- The system controller performs read/write operations on unreserved eNVM pages using system controller services. It only reads data from reserved eNVM pages.