CC3000 EEPROM user interface
CC3000 uses internal NVMEM (EEPROM) in order to store system related parameters and use them when appropriate. Adding this new feature, it is now possible for a host application to use and manage a part of the CC3000 internal EEPROM for its own purposes. Thus, the EEPROM is divided into two main sections, system files and user files. The system files remain as before. The user files make use of the remaining space.
The end of system files section is address 0x6A30. Taking into account the 32KB EEPROM size, the remaining size for the user files section is 5584 bytes. However, the two first file entries are used for CC3000 internal use as the following table describes:
| File ID
|File ID|| File address(offset)
|| File Size (bytes)
|| Real Used Size (bytes)
|| Parameter |
|0||NVMEM_NVS_FILEID||0x50||0x1A0||0x1A||RF Calibration results table(generated automatically by TX Bip)|
|4||NVMEM_WLAN_DRIVER_SP_FILEID||0x2390||0x2000||variable||WLAN Driver ROM Patches|
|5||NVMEM_WLAN_FW_SP_FILEID||0x4390||0x2000||variable||WLAN FW Patches|
|6||NVMEM_MAC_FILEID||0x6390||0x10||0x10||6 bytes of MAC address|
|12||NVMEM_AES128_KEY_FILEID||0x6A30||0x10||0x10||AES128 key file|
|13||NVMEM_SHARED_MEM_FILEID||0x6A40||0x50||0x44||Host-CC3000 shared memory file|
|14||NVMEM_USER_FILE_1_FILEID||0x6A90||variable||variable||1st user file|
|15||NVMEM_USER_FILE_2_FILEID||variable||variable||variable||2nd user file|
The two first user section files are used as follows:
1. NVMEM_AES128_KEY_FILEID: used by CC3000 to store the AES128 key used during Smart Config procedure in case the procedure is encrypted.
Note:It is advised not to address this file for other purposes even when not using encrypted Smart Config.
2. NVMEM_SHARED_MEM_FILEID: used by CC3000 to interact with the Host during Smart Config procedure.
Note: It is advised not to address this file for other purposes.
Taking all the above into account, the user is left with 5488 bytes divided into up to 2 files.
The API used to create a new file is as follows:
nvmem_create_entry(unsigned long ulFileId, unsigned long ulNewLen);
ulFileId denotes the file ID, i.e. either NVMEM_USER_FILE_1_FILEID or NVMEM_USER_FILE_2_FILEID.
ulNewLen denotes the size of the file in bytes. 0 is used for file deletion.
There are few limitations the user must be aware of when making use of this feature:
• User section contains 4 user files but it is highly recommended to use only the last 2 files, NVMEM_USER_FILE_1_FILEID and NVMEM_USER_FILE_2_FILEID.
• Using the API nvmem_create_entry() to create a new file that is already exists results in data loss of the original file. It applies to NVMEM_USER_FILE_1_FILEID and NVMEM_USER_FILE_2_FILEID as well.
• Deleting a file using the API nvmem_create_entry() requires a reset to CC3000 in order for the unallocated memory to become free (and thus can be reused).