NVM3 key space regions#
MACRO's for NVM3 Default Instance Key Space Regions.
The NVM3 default instance is used for storing dynamic tokens.
NVM3 is used for Non-Volatile storage across all our device types (zigbee, Bluetooth, MCU...). Each object in the NVM3 is addressed by a 20-bit key. These keys need to be unique within an NVM3 instance to avoid collisions. Such collisions can for instance occur if a user application writes to an object that the RF stack is using for a different purpose. For multi-protocol applications we also risk collisions when where two stacks inadvertently use the same object key in a non compatible way. By default an NVM3 default instance will be shared among all stacks and application code. To avoid collisions it is proposed to use the 4 MSBs of the default instance NVM3 key to split the NVM3 ID space into the regions in the table below. Each stack team is responsible for managing the keys within their regions. A user should be able to use the keys in the User region as they wish. If any configurator tools use any keys in the User region these keys should be made clearly visible to the user so they can avoid using the same keys for NVM3 objects created manually in the application code. Refer application note 'AN1135: Using Third Generation Non-Volatile Memory (NVM3) Data Storage' for more details.
Note
NVM3 key region 0x8E000-0x8EFFF and 0x8F000-0x8FFFF are used for static tokens, which are stored as override tokens in NVM3. The key region 0xC0000 to 0xF0000 are reserved.
Macros#
Macro Definition Documentation#
SL_TOKEN_NVM3_REGION_ZIGBEE#
#define SL_TOKEN_NVM3_REGION_ZIGBEEValue:
(0x10000)
NVM3 Key Region for Zigbee EmberZnet Stack.
SL_TOKEN_NVM3_REGION_THREAD#
#define SL_TOKEN_NVM3_REGION_THREADValue:
(0x20000)
NVM3 Key Region for OpenThread Stack.
SL_TOKEN_NVM3_REGION_CONNECT#
#define SL_TOKEN_NVM3_REGION_CONNECTValue:
(0x30000)
NVM3 Key Region for Connect Stack.
SL_TOKEN_NVM3_REGION_BT#
#define SL_TOKEN_NVM3_REGION_BTValue:
(0x40000)
NVM3 Key Region for Bluetooth Stack.
SL_TOKEN_NVM3_REGION_ZWAVE#
#define SL_TOKEN_NVM3_REGION_ZWAVEValue:
(0x50000)
NVM3 Key Region for Z-Wave Stack.
SL_TOKEN_NVM3_REGION_BTMESH#
#define SL_TOKEN_NVM3_REGION_BTMESHValue:
(0x60000)
NVM3 Key Region for Bluetooth Mesh Stack.
SL_TOKEN_NVM3_REGION_APPLE_HK#
#define SL_TOKEN_NVM3_REGION_APPLE_HKValue:
(0x80000)
NVM3 Key Region for Apple Homekit.
SL_TOKEN_NVM3_REGION_ZCL#
#define SL_TOKEN_NVM3_REGION_ZCLValue:
(0x81000)
NVM3 Key Region for Zigbee Cluster Library (ZCL).
SL_TOKEN_NVM3_REGION_DOTDOT#
#define SL_TOKEN_NVM3_REGION_DOTDOTValue:
(0x82000)
NVM3 Key Region for DotDot.
SL_TOKEN_NVM3_REGION_PLT_CLISM#
#define SL_TOKEN_NVM3_REGION_PLT_CLISMValue:
(0x83000)
NVM3 Key Region for Platform CLI SM.
SL_TOKEN_NVM3_REGION_PLT_CRYPTO#
#define SL_TOKEN_NVM3_REGION_PLT_CRYPTOValue:
(0x83100)
NVM3 Key Region for Platform Crypto.
SL_TOKEN_NVM3_REGION_BTL#
#define SL_TOKEN_NVM3_REGION_BTLValue:
(0x87100)
NVM3 Key Region for Bootloader.
SL_TOKEN_NVM3_REGION_MATTER#
#define SL_TOKEN_NVM3_REGION_MATTERValue:
(0x87200)
NVM3 Key Region for Matter.
SL_TOKEN_NVM3_REGION_AWS_LATE_PRN#
#define SL_TOKEN_NVM3_REGION_AWS_LATE_PRNValue:
(0x88000)
NVM3 Key Region for AWS Late Provisioning.
SL_TOKEN_NVM3_REGION_KNX_IOT#
#define SL_TOKEN_NVM3_REGION_KNX_IOTValue:
(0x89000)
NVM3 Key Region for KNX IoT.
SL_TOKEN_NVM3_REGION_ANT_CAL_PLT#
#define SL_TOKEN_NVM3_REGION_ANT_CAL_PLTValue:
(0x89800)
NVM3 Key Region for Antenna Calibration (Platform).
SL_TOKEN_NVM3_REGION_ANT_CAL_RAIL#
#define SL_TOKEN_NVM3_REGION_ANT_CAL_RAILValue:
(0x89880)
NVM3 Key Region for Antenna Calibration (RAIL).
SL_TOKEN_NVM3_REGION_WISUN#
#define SL_TOKEN_NVM3_REGION_WISUNValue:
(0x90000)
NVM3 Key Region for Wi-SUN.
SL_TOKEN_NVM3_REGION_WIFI#
#define SL_TOKEN_NVM3_REGION_WIFIValue:
(0xB0000)
NVM3 Key Region for Wi-Fi.