Skip to content

Commit da91d46

Browse files
jmartinez-silabsPeterC1965
authored andcommitted
[Silabs]Provision storage sourceset (project-chip#34929)
* Create a separte source_set for the provision storage implementation * Fix efr32 build using provision flash storage * fix argument duplication which is not needed. * apply suggested renames
1 parent e3cadb8 commit da91d46

File tree

5 files changed

+69
-15
lines changed

5 files changed

+69
-15
lines changed

examples/platform/silabs/SiWx917/BUILD.gn

+1-9
Original file line numberDiff line numberDiff line change
@@ -115,12 +115,6 @@ source_set("siwx917-matter-shell") {
115115

116116
config("siwx917-common-config") {
117117
defines = [ "OTA_PERIODIC_TIMEOUT=${ota_periodic_query_timeout_sec}" ]
118-
if (sl_si91x_crypto_flavor == "psa") {
119-
libs =
120-
[ "${sdk_support_root}/matter/provision/lib/libProvisionPSA_si917.a" ]
121-
} else {
122-
libs = [ "${sdk_support_root}/matter/provision/lib/libProvision_si917.a" ]
123-
}
124118

125119
if (!disable_lcd) {
126120
include_dirs = [ "${silabs_common_plat_dir}/display" ]
@@ -177,7 +171,7 @@ config("silabs-wifi-config") {
177171
}
178172

179173
source_set("siwx917-common") {
180-
deps = [ "${chip_root}/src/platform/silabs/provision:provision-headers" ]
174+
deps = [ "${silabs_common_plat_dir}/provision:storage" ]
181175
defines = []
182176
public_deps = []
183177
public_configs = [
@@ -197,8 +191,6 @@ source_set("siwx917-common") {
197191
"${silabs_common_plat_dir}/LEDWidget.cpp",
198192
"${silabs_common_plat_dir}/MatterConfig.cpp",
199193
"${silabs_common_plat_dir}/SoftwareFaultReports.cpp",
200-
"${silabs_common_plat_dir}/provision/ProvisionStorageCustom.cpp",
201-
"${silabs_common_plat_dir}/provision/ProvisionStorageFlash.cpp",
202194
"${silabs_common_plat_dir}/silabs_utils.cpp",
203195
"${silabs_common_plat_dir}/syscalls_stubs.cpp",
204196
"${silabs_plat_si91x_wifi_dir}/dhcp_client.cpp",

examples/platform/silabs/efr32/BUILD.gn

+1-6
Original file line numberDiff line numberDiff line change
@@ -148,9 +148,6 @@ source_set("efr-matter-shell") {
148148

149149
config("efr32-common-config") {
150150
defines = [ "OTA_PERIODIC_TIMEOUT=${ota_periodic_query_timeout_sec}" ]
151-
libs = [
152-
"${sdk_support_root}/matter/provision/lib/libProvision_${silabs_family}.a",
153-
]
154151

155152
if (!disable_lcd) {
156153
include_dirs = [ "${silabs_common_plat_dir}/display" ]
@@ -212,7 +209,7 @@ config("silabs-wifi-config") {
212209
}
213210

214211
source_set("efr32-common") {
215-
deps = [ "${chip_root}/src/platform/silabs/provision:provision-headers" ]
212+
deps = [ "${silabs_common_plat_dir}/provision:storage" ]
216213
defines = []
217214
public_deps = []
218215
public_configs = [
@@ -241,8 +238,6 @@ source_set("efr32-common") {
241238
"${silabs_common_plat_dir}/LEDWidget.cpp",
242239
"${silabs_common_plat_dir}/MatterConfig.cpp",
243240
"${silabs_common_plat_dir}/SoftwareFaultReports.cpp",
244-
"${silabs_common_plat_dir}/provision/ProvisionStorageCustom.cpp",
245-
"${silabs_common_plat_dir}/provision/ProvisionStorageDefault.cpp",
246241
"${silabs_common_plat_dir}/silabs_utils.cpp",
247242
"${silabs_common_plat_dir}/syscalls_stubs.cpp",
248243
]
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
# Copyright (c) 2024 Project CHIP Authors
2+
#
3+
# Licensed under the Apache License, Version 2.0 (the "License");
4+
# you may not use this file except in compliance with the License.
5+
# You may obtain a copy of the License at
6+
#
7+
# http://www.apache.org/licenses/LICENSE-2.0
8+
#
9+
# Unless required by applicable law or agreed to in writing, software
10+
# distributed under the License is distributed on an "AS IS" BASIS,
11+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12+
# See the License for the specific language governing permissions and
13+
# limitations under the License.
14+
15+
import("//build_overrides/chip.gni")
16+
import("//build_overrides/efr32_sdk.gni")
17+
import("${efr32_sdk_build_root}/silabs_board.gni")
18+
19+
if (wifi_soc) {
20+
import("${efr32_sdk_build_root}/SiWx917_sdk.gni")
21+
} else {
22+
import("${efr32_sdk_build_root}/efr32_sdk.gni")
23+
}
24+
25+
source_set("storage") {
26+
sources = [ "ProvisionStorageCustom.cpp" ]
27+
28+
if (use_provision_flash_storage) {
29+
sources += [ "ProvisionStorageFlash.cpp" ]
30+
} else {
31+
sources += [ "ProvisionStorageDefault.cpp" ]
32+
}
33+
34+
if (wifi_soc) {
35+
if (sl_si91x_crypto_flavor == "psa") {
36+
libs =
37+
[ "${sdk_support_root}/matter/provision/lib/libProvisionPSA_si917.a" ]
38+
} else {
39+
libs = [ "${sdk_support_root}/matter/provision/lib/libProvision_si917.a" ]
40+
}
41+
} else {
42+
if (use_provision_flash_storage) {
43+
libs = [ "${sdk_support_root}/matter/provision/lib/libProvisionFlash_${silabs_family}.a" ]
44+
} else {
45+
libs = [ "${sdk_support_root}/matter/provision/lib/libProvision_${silabs_family}.a" ]
46+
}
47+
}
48+
49+
deps = [ "${chip_root}/src/lib" ]
50+
public_deps =
51+
[ "${chip_root}/src/platform/silabs/provision:provision-headers" ]
52+
}

src/platform/silabs/efr32/efr32-chip-mbedtls-config.h

+6
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,12 @@
8787
#define PSA_WANT_ALG_SOME_PAKE
8888
#endif // SL_USE_COAP_CONFIG
8989

90+
#if SL_MATTER_PROVISION_FLASH
91+
#define MBEDTLS_SHA256_C
92+
#define MBEDTLS_HMAC_DRBG_C
93+
#define MBEDTLS_ECDSA_DETERMINISTIC
94+
#endif // SL_MATTER_PROVISION_FLASH
95+
9096
#define MBEDTLS_PLATFORM_SNPRINTF_MACRO snprintf
9197

9298
#define MBEDTLS_AES_ROM_TABLES

third_party/silabs/efr32_sdk.gni

+9
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,9 @@ declare_args() {
8282
chip_enable_multi_ota_requestor = false
8383
chip_enable_multi_ota_encryption = false
8484
chip_enable_ota_custom_tlv_testing = false
85+
86+
# Factory Provision storage
87+
use_provision_flash_storage = wifi_soc
8588
}
8689

8790
examples_plat_dir = "${chip_root}/examples/platform/silabs/efr32"
@@ -469,6 +472,12 @@ template("efr32_sdk") {
469472
defines += [ "SL_USE_COAP_CONFIG=0" ]
470473
}
471474

475+
if (use_provision_flash_storage) {
476+
defines += [ "SL_MATTER_PROVISION_FLASH=1" ]
477+
} else {
478+
defines += [ "SL_MATTER_PROVISION_FLASH=0" ]
479+
}
480+
472481
if (chip_enable_ble_rs911x) {
473482
defines += [
474483
"RSI_BLE_ENABLE=1",

0 commit comments

Comments
 (0)