Skip to content

Commit 4714707

Browse files
Jerry-ESPpull[bot]
authored andcommitted
add KVS configuration feature for esp32 platform (#21825)
1 parent afb6da5 commit 4714707

File tree

4 files changed

+13
-4
lines changed

4 files changed

+13
-4
lines changed

config/esp32/components/chip/Kconfig

+6
Original file line numberDiff line numberDiff line change
@@ -835,6 +835,12 @@ menu "CHIP Device Layer"
835835
default "nvs"
836836
help
837837
Label of the partition to store key-values in the "chip-counters" namespace.
838+
839+
config CHIP_KVS_NAMESPACE_PARTITION_LABEL
840+
string "chip-kvs namespace partition label"
841+
default "nvs"
842+
help
843+
Label of the partition to store key-values in the "chip-kvs" namespace.
838844

839845
endmenu
840846

src/platform/ESP32/CHIPDevicePlatformConfig.h

+1
Original file line numberDiff line numberDiff line change
@@ -97,4 +97,5 @@
9797
#define CHIP_DEVICE_CONFIG_CHIP_FACTORY_NAMESPACE_PARTITION CONFIG_CHIP_FACTORY_NAMESPACE_PARTITION_LABEL
9898
#define CHIP_DEVICE_CONFIG_CHIP_CONFIG_NAMESPACE_PARTITION CONFIG_CHIP_CONFIG_NAMESPACE_PARTITION_LABEL
9999
#define CHIP_DEVICE_CONFIG_CHIP_COUNTERS_NAMESPACE_PARTITION CONFIG_CHIP_COUNTERS_NAMESPACE_PARTITION_LABEL
100+
#define CHIP_DEVICE_CONFIG_CHIP_KVS_NAMESPACE_PARTITION CONFIG_CHIP_KVS_NAMESPACE_PARTITION_LABEL
100101
#define CHIP_DEVICE_CONFIG_ENABLE_DEVICE_INSTANCE_INFO_PROVIDER CONFIG_ENABLE_ESP32_DEVICE_INSTANCE_INFO_PROVIDER

src/platform/ESP32/ConfigurationManagerImpl.cpp

+2
Original file line numberDiff line numberDiff line change
@@ -119,6 +119,8 @@ CHIP_ERROR ConfigurationManagerImpl::Init()
119119
SuccessOrExit(MapConfigError(esp_err));
120120
esp_err = nvs_flash_init_partition(CHIP_DEVICE_CONFIG_CHIP_COUNTERS_NAMESPACE_PARTITION);
121121
SuccessOrExit(MapConfigError(esp_err));
122+
esp_err = nvs_flash_init_partition(CHIP_DEVICE_CONFIG_CHIP_KVS_NAMESPACE_PARTITION);
123+
SuccessOrExit(MapConfigError(esp_err));
122124
#endif
123125

124126
// Force initialization of NVS namespaces if they doesn't already exist.

src/platform/ESP32/KeyValueStoreManagerImpl.cpp

+4-4
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ CHIP_ERROR KeyValueStoreManagerImpl::_Get(const char * key, void * value, size_t
7575
VerifyOrReturnError(offset_bytes == 0, CHIP_ERROR_NOT_IMPLEMENTED);
7676

7777
Internal::ScopedNvsHandle handle;
78-
ReturnErrorOnFailure(handle.Open(kNamespace, NVS_READONLY));
78+
ReturnErrorOnFailure(handle.Open(kNamespace, NVS_READONLY, CHIP_DEVICE_CONFIG_CHIP_KVS_NAMESPACE_PARTITION));
7979

8080
char keyHash[NVS_KEY_NAME_MAX_SIZE];
8181
VerifyOrDo(HashIfLongKey(key, keyHash) == false, key = keyHash);
@@ -95,7 +95,7 @@ CHIP_ERROR KeyValueStoreManagerImpl::_Put(const char * key, const void * value,
9595
VerifyOrReturnError(value, CHIP_ERROR_INVALID_ARGUMENT);
9696

9797
Internal::ScopedNvsHandle handle;
98-
ReturnErrorOnFailure(handle.Open(kNamespace, NVS_READWRITE));
98+
ReturnErrorOnFailure(handle.Open(kNamespace, NVS_READWRITE, CHIP_DEVICE_CONFIG_CHIP_KVS_NAMESPACE_PARTITION));
9999

100100
char keyHash[NVS_KEY_NAME_MAX_SIZE];
101101
VerifyOrDo(HashIfLongKey(key, keyHash) == false, key = keyHash);
@@ -112,7 +112,7 @@ CHIP_ERROR KeyValueStoreManagerImpl::_Delete(const char * key)
112112
{
113113
Internal::ScopedNvsHandle handle;
114114

115-
ReturnErrorOnFailure(handle.Open(kNamespace, NVS_READWRITE));
115+
ReturnErrorOnFailure(handle.Open(kNamespace, NVS_READWRITE, CHIP_DEVICE_CONFIG_CHIP_KVS_NAMESPACE_PARTITION));
116116

117117
char keyHash[NVS_KEY_NAME_MAX_SIZE];
118118
VerifyOrDo(HashIfLongKey(key, keyHash) == false, key = keyHash);
@@ -129,7 +129,7 @@ CHIP_ERROR KeyValueStoreManagerImpl::EraseAll(void)
129129
{
130130
Internal::ScopedNvsHandle handle;
131131

132-
ReturnErrorOnFailure(handle.Open(kNamespace, NVS_READWRITE));
132+
ReturnErrorOnFailure(handle.Open(kNamespace, NVS_READWRITE, CHIP_DEVICE_CONFIG_CHIP_KVS_NAMESPACE_PARTITION));
133133
ReturnMappedErrorOnFailure(nvs_erase_all(handle));
134134
ReturnMappedErrorOnFailure(nvs_commit(handle));
135135

0 commit comments

Comments
 (0)