@@ -40,6 +40,7 @@ static migrationData_t migrationTable[] = {
40
40
{ .migrationGroup = 1 , .migrationFunc = MigrateKvsMap },
41
41
{ .migrationGroup = 2 , .migrationFunc = MigrateDacProvider },
42
42
{ .migrationGroup = 3 , .migrationFunc = MigrateCounterConfigs },
43
+ { .migrationGroup = 4 , .migrationFunc = MigrateHardwareVersion },
43
44
// add any additional migration neccesary. migrationGroup should stay equal if done in the same commit or increment by 1 for
44
45
// each new entry.
45
46
};
@@ -62,6 +63,20 @@ void MigrationManager::applyMigrations()
62
63
}
63
64
SilabsConfig::WriteConfigValue (SilabsConfig::kConfigKey_MigrationCounter , completedMigrationGroup);
64
65
}
66
+
67
+ void MigrationManager::MigrateUint16 (uint32_t old_key, uint32_t new_key)
68
+ {
69
+ uint16_t value = 0 ;
70
+ if (SilabsConfig::ConfigValueExists (old_key) && (CHIP_NO_ERROR == SilabsConfig::ReadConfigValue (old_key, value)))
71
+ {
72
+ if (CHIP_NO_ERROR == SilabsConfig::WriteConfigValue (new_key, value))
73
+ {
74
+ // Free memory of old key location
75
+ SilabsConfig::ClearConfigValue (old_key);
76
+ }
77
+ }
78
+ }
79
+
65
80
void MigrationManager::MigrateUint32 (uint32_t old_key, uint32_t new_key)
66
81
{
67
82
uint32_t value = 0 ;
@@ -90,6 +105,33 @@ MigrationManager & MigrationManager::GetMigrationInstance()
90
105
return sMigrationManager ;
91
106
}
92
107
108
+ void MigrateDacProvider (void )
109
+ {
110
+ constexpr uint32_t kOldKey_Creds_KeyId = SilabsConfigKey (SilabsConfig::kMatterConfig_KeyBase , 0x21 );
111
+ constexpr uint32_t kOldKey_Creds_Base_Addr = SilabsConfigKey (SilabsConfig::kMatterConfig_KeyBase , 0x22 );
112
+ constexpr uint32_t kOldKey_Creds_DAC_Offset = SilabsConfigKey (SilabsConfig::kMatterConfig_KeyBase , 0x23 );
113
+ constexpr uint32_t kOldKey_Creds_DAC_Size = SilabsConfigKey (SilabsConfig::kMatterConfig_KeyBase , 0x24 );
114
+ constexpr uint32_t kOldKey_Creds_PAI_Size = SilabsConfigKey (SilabsConfig::kMatterConfig_KeyBase , 0x26 );
115
+ constexpr uint32_t kOldKey_Creds_PAI_Offset = SilabsConfigKey (SilabsConfig::kMatterConfig_KeyBase , 0x25 );
116
+ constexpr uint32_t kOldKey_Creds_CD_Offset = SilabsConfigKey (SilabsConfig::kMatterConfig_KeyBase , 0x27 );
117
+ constexpr uint32_t kOldKey_Creds_CD_Size = SilabsConfigKey (SilabsConfig::kMatterConfig_KeyBase , 0x28 );
118
+
119
+ MigrationManager::MigrateUint32 (kOldKey_Creds_KeyId , SilabsConfig::kConfigKey_Creds_KeyId );
120
+ MigrationManager::MigrateUint32 (kOldKey_Creds_Base_Addr , SilabsConfig::kConfigKey_Creds_Base_Addr );
121
+ MigrationManager::MigrateUint32 (kOldKey_Creds_DAC_Offset , SilabsConfig::kConfigKey_Creds_DAC_Offset );
122
+ MigrationManager::MigrateUint32 (kOldKey_Creds_DAC_Size , SilabsConfig::kConfigKey_Creds_DAC_Size );
123
+ MigrationManager::MigrateUint32 (kOldKey_Creds_PAI_Offset , SilabsConfig::kConfigKey_Creds_PAI_Offset );
124
+ MigrationManager::MigrateUint32 (kOldKey_Creds_PAI_Size , SilabsConfig::kConfigKey_Creds_PAI_Size );
125
+ MigrationManager::MigrateUint32 (kOldKey_Creds_CD_Offset , SilabsConfig::kConfigKey_Creds_CD_Offset );
126
+ MigrationManager::MigrateUint32 (kOldKey_Creds_CD_Size , SilabsConfig::kConfigKey_Creds_CD_Size );
127
+ }
128
+
129
+ void MigrateHardwareVersion (void )
130
+ {
131
+ constexpr uint32_t kOldKey_HardwareVersion = SilabsConfigKey (SilabsConfig::kMatterConfig_KeyBase , 0x08 );
132
+ MigrationManager::MigrateUint16 (kOldKey_HardwareVersion , SilabsConfig::kConfigKey_HardwareVersion );
133
+ }
134
+
93
135
} // namespace Silabs
94
136
} // namespace DeviceLayer
95
137
} // namespace chip
0 commit comments