CC3000 EEPROM user interface

From Texas Instruments Wiki
Jump to: navigation, search

Overview

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.

 

Structure

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
(numerical)
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)
1 NVMEM_NVS_SHADOW_FILEID 0x1F0 0x1A0 0x1A  
2 NVMEM_WLAN_CONFIG_FILEID 0x390 0x1000 0x64 WLAN configuration
3 NVMEM_WLAN_CONFIG_SHADOW_FILEID 0x1390 0x1000 0x64  
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
7 NVMEM_FRONTEND_VARS_FILEID 0x63A0 0x10 0x10  
8 NVMEM_IP_CONFIG_FILEID 0x63B0 0x40 0x40 IP configuration
9 NVMEM_IP_CONFIG_SHADOW_FILEID 0x63F0 0x40 0x40  
10 NVMEM_BOOTLOADER_SP_FILEID 0x6430 0x400 variable Bootloader Patches
11 NVMEM_RM_FILEID 0x6830 0x200 0x7F Radio parameters
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.

API

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.

Limitation

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).



Site Map