Skip to content

Commit 554c578

Browse files
[Silabs] First Refactor of the SiWx917 Wi-Fi Interface (project-chip#36305)
* Rename efr32_sdk_build_root to silabs_sdk_build_root * Remove wifi_config.h and move standard to C++ * Refactor SiW917 Wi-Fi application implementation * remove commented source file * fix ICD build issues * rename file * continue clean up * Set working wifi_sdk hash * Finish clean up * Update submodules * update comment * Adress review comments
1 parent f59ec38 commit 554c578

File tree

60 files changed

+612
-1448
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

60 files changed

+612
-1448
lines changed

build_overrides/efr32_sdk.gni

+1-1
Original file line numberDiff line numberDiff line change
@@ -14,5 +14,5 @@
1414

1515
declare_args() {
1616
# Root directory for efr32 SDK build files.
17-
efr32_sdk_build_root = "//third_party/silabs"
17+
silabs_sdk_build_root = "//third_party/silabs"
1818
}

examples/air-quality-sensor-app/silabs/BUILD.gn

+2-2
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ import("//build_overrides/efr32_sdk.gni")
1818
import("//build_overrides/pigweed.gni")
1919

2020
import("${build_root}/config/defaults.gni")
21-
import("${efr32_sdk_build_root}/silabs_executable.gni")
21+
import("${silabs_sdk_build_root}/silabs_executable.gni")
2222

2323
import("${chip_root}/examples/common/pigweed/pigweed_rpcs.gni")
2424
import("${chip_root}/src/platform/device.gni")
@@ -38,7 +38,7 @@ if (wifi_soc) {
3838
import("${chip_root}/third_party/silabs/SiWx917_sdk.gni")
3939
examples_plat_dir = "${chip_root}/examples/platform/silabs/SiWx917"
4040
} else {
41-
import("${efr32_sdk_build_root}/efr32_sdk.gni")
41+
import("${silabs_sdk_build_root}/efr32_sdk.gni")
4242
examples_plat_dir = "${chip_root}/examples/platform/silabs/efr32"
4343
}
4444

examples/build_overrides/efr32_sdk.gni

+1-1
Original file line numberDiff line numberDiff line change
@@ -14,5 +14,5 @@
1414

1515
declare_args() {
1616
# Root directory for erf32 SDK.
17-
efr32_sdk_build_root = "//third_party/connectedhomeip/third_party/silabs"
17+
silabs_sdk_build_root = "//third_party/connectedhomeip/third_party/silabs"
1818
}

examples/chef/silabs/BUILD.gn

+2-2
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,8 @@ import("//build_overrides/efr32_sdk.gni")
1818
import("//build_overrides/pigweed.gni")
1919

2020
import("${build_root}/config/defaults.gni")
21-
import("${efr32_sdk_build_root}/efr32_sdk.gni")
22-
import("${efr32_sdk_build_root}/silabs_executable.gni")
21+
import("${silabs_sdk_build_root}/efr32_sdk.gni")
22+
import("${silabs_sdk_build_root}/silabs_executable.gni")
2323

2424
import("${chip_root}/examples/common/pigweed/pigweed_rpcs.gni")
2525
import("${chip_root}/src/platform/device.gni")

examples/dishwasher-app/silabs/BUILD.gn

+2-2
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ import("//build_overrides/efr32_sdk.gni")
1818
import("//build_overrides/pigweed.gni")
1919

2020
import("${build_root}/config/defaults.gni")
21-
import("${efr32_sdk_build_root}/silabs_executable.gni")
21+
import("${silabs_sdk_build_root}/silabs_executable.gni")
2222

2323
import("${chip_root}/examples/common/pigweed/pigweed_rpcs.gni")
2424
import("${chip_root}/src/platform/device.gni")
@@ -39,7 +39,7 @@ if (wifi_soc) {
3939
import("${chip_root}/third_party/silabs/SiWx917_sdk.gni")
4040
examples_plat_dir = "${chip_root}/examples/platform/silabs/SiWx917"
4141
} else {
42-
import("${efr32_sdk_build_root}/efr32_sdk.gni")
42+
import("${silabs_sdk_build_root}/efr32_sdk.gni")
4343
examples_plat_dir = "${chip_root}/examples/platform/silabs/efr32"
4444
}
4545

examples/energy-management-app/silabs/BUILD.gn

+2-2
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ import("//build_overrides/efr32_sdk.gni")
1818
import("//build_overrides/pigweed.gni")
1919

2020
import("${build_root}/config/defaults.gni")
21-
import("${efr32_sdk_build_root}/silabs_executable.gni")
21+
import("${silabs_sdk_build_root}/silabs_executable.gni")
2222

2323
import("${chip_root}/examples/common/pigweed/pigweed_rpcs.gni")
2424
import("${chip_root}/src/platform/device.gni")
@@ -38,7 +38,7 @@ if (wifi_soc) {
3838
import("${chip_root}/third_party/silabs/SiWx917_sdk.gni")
3939
examples_plat_dir = "${chip_root}/examples/platform/silabs/SiWx917"
4040
} else {
41-
import("${efr32_sdk_build_root}/efr32_sdk.gni")
41+
import("${silabs_sdk_build_root}/efr32_sdk.gni")
4242
examples_plat_dir = "${chip_root}/examples/platform/silabs/efr32"
4343
}
4444

examples/light-switch-app/silabs/BUILD.gn

+2-2
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ import("//build_overrides/efr32_sdk.gni")
1818
import("//build_overrides/pigweed.gni")
1919

2020
import("${build_root}/config/defaults.gni")
21-
import("${efr32_sdk_build_root}/silabs_executable.gni")
21+
import("${silabs_sdk_build_root}/silabs_executable.gni")
2222

2323
import("${chip_root}/examples/common/pigweed/pigweed_rpcs.gni")
2424
import("${chip_root}/src/platform/device.gni")
@@ -38,7 +38,7 @@ if (wifi_soc) {
3838
import("${chip_root}/third_party/silabs/SiWx917_sdk.gni")
3939
examples_plat_dir = "${chip_root}/examples/platform/silabs/SiWx917"
4040
} else {
41-
import("${efr32_sdk_build_root}/efr32_sdk.gni")
41+
import("${silabs_sdk_build_root}/efr32_sdk.gni")
4242
examples_plat_dir = "${chip_root}/examples/platform/silabs/efr32"
4343
}
4444

examples/lighting-app/silabs/BUILD.gn

+2-2
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ import("//build_overrides/efr32_sdk.gni")
1818
import("//build_overrides/pigweed.gni")
1919

2020
import("${build_root}/config/defaults.gni")
21-
import("${efr32_sdk_build_root}/silabs_executable.gni")
21+
import("${silabs_sdk_build_root}/silabs_executable.gni")
2222

2323
import("${chip_root}/examples/common/pigweed/pigweed_rpcs.gni")
2424
import("${chip_root}/src/platform/device.gni")
@@ -38,7 +38,7 @@ if (wifi_soc) {
3838
import("${chip_root}/third_party/silabs/SiWx917_sdk.gni")
3939
examples_plat_dir = "${chip_root}/examples/platform/silabs/SiWx917"
4040
} else {
41-
import("${efr32_sdk_build_root}/efr32_sdk.gni")
41+
import("${silabs_sdk_build_root}/efr32_sdk.gni")
4242
examples_plat_dir = "${chip_root}/examples/platform/silabs/efr32"
4343
}
4444

examples/lit-icd-app/silabs/BUILD.gn

+2-2
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ import("//build_overrides/efr32_sdk.gni")
1919
import("//build_overrides/pigweed.gni")
2020

2121
import("${build_root}/config/defaults.gni")
22-
import("${efr32_sdk_build_root}/silabs_executable.gni")
22+
import("${silabs_sdk_build_root}/silabs_executable.gni")
2323

2424
import("${chip_root}/examples/common/pigweed/pigweed_rpcs.gni")
2525
import("${chip_root}/src/platform/device.gni")
@@ -39,7 +39,7 @@ if (wifi_soc) {
3939
import("${chip_root}/third_party/silabs/SiWx917_sdk.gni")
4040
examples_plat_dir = "${chip_root}/examples/platform/silabs/SiWx917"
4141
} else {
42-
import("${efr32_sdk_build_root}/efr32_sdk.gni")
42+
import("${silabs_sdk_build_root}/efr32_sdk.gni")
4343
examples_plat_dir = "${chip_root}/examples/platform/silabs/efr32"
4444
}
4545

examples/lock-app/silabs/BUILD.gn

+2-2
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ import("//build_overrides/efr32_sdk.gni")
1818
import("//build_overrides/pigweed.gni")
1919

2020
import("${build_root}/config/defaults.gni")
21-
import("${efr32_sdk_build_root}/silabs_executable.gni")
21+
import("${silabs_sdk_build_root}/silabs_executable.gni")
2222

2323
import("${chip_root}/examples/common/pigweed/pigweed_rpcs.gni")
2424
import("${chip_root}/src/platform/device.gni")
@@ -38,7 +38,7 @@ if (wifi_soc) {
3838
import("${chip_root}/third_party/silabs/SiWx917_sdk.gni")
3939
examples_plat_dir = "${chip_root}/examples/platform/silabs/SiWx917"
4040
} else {
41-
import("${efr32_sdk_build_root}/efr32_sdk.gni")
41+
import("${silabs_sdk_build_root}/efr32_sdk.gni")
4242
examples_plat_dir = "${chip_root}/examples/platform/silabs/efr32"
4343
}
4444

examples/platform/silabs/FreeRTOSConfig.h

-2
Original file line numberDiff line numberDiff line change
@@ -103,8 +103,6 @@
103103
extern "C" {
104104
#endif
105105

106-
#include <CHIPProjectConfig.h>
107-
108106
#include <stdint.h>
109107
#include <stdio.h>
110108

examples/platform/silabs/MatterConfig.cpp

+18-21
Original file line numberDiff line numberDiff line change
@@ -40,9 +40,9 @@
4040
#include "MemMonitoring.h"
4141
#endif
4242

43-
#ifdef SLI_SI91X_MCU_INTERFACE
43+
#if defined(SLI_SI91X_MCU_INTERFACE) && SLI_SI91X_MCU_INTERFACE == 1
4444
#include "wfx_rsi.h"
45-
#endif /* SLI_SI91X_MCU_INTERFACE */
45+
#endif // SLI_SI91X_MCU_INTERFACE
4646

4747
#include <crypto/CHIPCryptoPAL.h>
4848
// If building with the EFR32-provided crypto backend, we can use the
@@ -121,7 +121,7 @@ void UnlockOpenThreadTask(void)
121121

122122
CHIP_ERROR SilabsMatterConfig::InitOpenThread(void)
123123
{
124-
SILABS_LOG("Initializing OpenThread stack");
124+
ChipLogProgress(DeviceLayer, "Initializing OpenThread stack");
125125
ReturnErrorOnFailure(ThreadStackMgr().InitThreadStack());
126126

127127
#if CHIP_DEVICE_CONFIG_THREAD_FTD
@@ -138,7 +138,7 @@ CHIP_ERROR SilabsMatterConfig::InitOpenThread(void)
138138
#endif // CHIP_CONFIG_ENABLE_ICD_SERVER
139139
#endif // CHIP_DEVICE_CONFIG_THREAD_FTD
140140

141-
SILABS_LOG("Starting OpenThread task");
141+
ChipLogProgress(DeviceLayer, "Starting OpenThread task");
142142
return ThreadStackMgrImpl().StartThreadTask();
143143
}
144144
#endif // CHIP_ENABLE_OPENTHREAD
@@ -171,7 +171,7 @@ void ApplicationStart(void * unused)
171171
SetDeviceAttestationCredentialsProvider(&Provision::Manager::GetInstance().GetStorage());
172172
chip::DeviceLayer::PlatformMgr().UnlockChipStack();
173173

174-
SILABS_LOG("Starting App Task");
174+
ChipLogProgress(DeviceLayer, "Starting App Task");
175175
err = AppTask::GetAppTask().StartAppTask();
176176
if (err != CHIP_NO_ERROR)
177177
appError(err);
@@ -185,13 +185,13 @@ void SilabsMatterConfig::AppInit()
185185
{
186186
GetPlatform().Init();
187187
sMainTaskHandle = osThreadNew(ApplicationStart, nullptr, &kMainTaskAttr);
188-
SILABS_LOG("Starting scheduler");
188+
ChipLogProgress(DeviceLayer, "Starting scheduler");
189189
VerifyOrDie(sMainTaskHandle); // We can't proceed if the Main Task creation failed.
190190
GetPlatform().StartScheduler();
191191

192192
// Should never get here.
193193
chip::Platform::MemoryShutdown();
194-
SILABS_LOG("Start Scheduler Failed");
194+
ChipLogProgress(DeviceLayer, "Start Scheduler Failed");
195195
appError(CHIP_ERROR_INTERNAL);
196196
}
197197

@@ -204,9 +204,9 @@ CHIP_ERROR SilabsMatterConfig::InitMatter(const char * appName)
204204
// initialization.
205205
mbedtls_platform_set_calloc_free(CHIPPlatformMemoryCalloc, CHIPPlatformMemoryFree);
206206
#endif
207-
SILABS_LOG("==================================================");
208-
SILABS_LOG("%s starting", appName);
209-
SILABS_LOG("==================================================");
207+
ChipLogProgress(DeviceLayer, "==================================================");
208+
ChipLogProgress(DeviceLayer, "%s starting", appName);
209+
ChipLogProgress(DeviceLayer, "==================================================");
210210

211211
#if PW_RPC_ENABLED
212212
chip::rpc::Init();
@@ -219,7 +219,7 @@ CHIP_ERROR SilabsMatterConfig::InitMatter(const char * appName)
219219
//==============================================
220220
// Init Matter Stack
221221
//==============================================
222-
SILABS_LOG("Init CHIP Stack");
222+
ChipLogProgress(DeviceLayer, "Init CHIP Stack");
223223

224224
#ifdef SL_WIFI
225225
// Init Chip memory management before the stack
@@ -309,16 +309,13 @@ CHIP_ERROR SilabsMatterConfig::InitWiFi(void)
309309
// Start wfx bus communication task.
310310
wfx_bus_start();
311311
#ifdef SL_WFX_USE_SECURE_LINK
312-
wfx_securelink_task_start(); // start securelink key renegotiation task
313-
#endif // SL_WFX_USE_SECURE_LINK
314-
#endif /* WF200_WIFI */
315-
316-
#ifdef SLI_SI91X_MCU_INTERFACE
317-
sl_status_t status;
318-
if ((status = wfx_wifi_rsi_init()) != SL_STATUS_OK)
319-
{
320-
ReturnErrorOnFailure((CHIP_ERROR) status);
321-
}
312+
// start securelink key renegotiation task
313+
wfx_securelink_task_start();
314+
#endif // SL_WFX_USE_SECURE_LINK
315+
#endif // WF200_WIFI
316+
317+
#if defined(SLI_SI91X_MCU_INTERFACE) && SLI_SI91X_MCU_INTERFACE == 1
318+
VerifyOrReturnError(sl_matter_wifi_platform_init() == SL_STATUS_OK, CHIP_ERROR_INTERNAL);
322319
#endif // SLI_SI91X_MCU_INTERFACE
323320

324321
return CHIP_NO_ERROR;

examples/platform/silabs/MatterConfig.h

+1
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
* See the License for the specific language governing permissions and
1717
* limitations under the License.
1818
*/
19+
#pragma once
1920

2021
#include <lib/support/CHIPMem.h>
2122
#include <lib/support/CHIPPlatformMemory.h>

examples/platform/silabs/SiWx917/BUILD.gn

+8-9
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ import("${chip_root}/src/lib/lib.gni")
1919
import("${chip_root}/src/platform/device.gni")
2020
import("${chip_root}/src/platform/silabs/wifi_args.gni")
2121
import("${chip_root}/third_party/silabs/silabs_board.gni")
22-
import("${efr32_sdk_build_root}/SiWx917_sdk.gni")
22+
import("${silabs_sdk_build_root}/SiWx917_sdk.gni")
2323

2424
declare_args() {
2525
enable_heap_monitoring = false
@@ -167,18 +167,17 @@ config("silabs-wifi-config") {
167167
source_set("siwx917-common") {
168168
deps = [ "${silabs_common_plat_dir}/provision:storage" ]
169169
defines = []
170-
public_deps = []
170+
public_deps = [ "${lwip_root}:lwip" ]
171171
public_configs = [
172172
":siwx917-common-config",
173-
"${efr32_sdk_build_root}:silabs_config",
173+
"${silabs_sdk_build_root}:silabs_config",
174174
":chip_examples_project_config",
175175
]
176176

177177
include_dirs = [
178-
".",
179-
"SiWx917/",
180178
"${silabs_plat_dir}/wifi",
181179
"${silabs_plat_si91x_wifi_dir}",
180+
"${silabs_common_plat_dir}",
182181
]
183182

184183
#TO-DO Cleanup to be done for all the wifi files into common folder
@@ -191,10 +190,10 @@ source_set("siwx917-common") {
191190
"${silabs_common_plat_dir}/syscalls_stubs.cpp",
192191
"${silabs_common_plat_dir}/wifi/wfx_notify.cpp",
193192
"${silabs_common_plat_dir}/wifi/wfx_rsi_host.cpp",
194-
"${silabs_plat_dir}/wifi/dhcp_client.cpp",
195-
"${silabs_plat_si91x_wifi_dir}/ethernetif.cpp",
196-
"${silabs_plat_si91x_wifi_dir}/lwip_netif.cpp",
197-
"SiWx917/sl_wifi_if.cpp",
193+
"SiWxWifiInterface.cpp",
194+
195+
# Wi-Fi Config - Using the file sdk support until the wiseconnect file is fixed
196+
"${sdk_support_root}/components/service/network_manager/src/sl_net_for_lwip.c",
198197
]
199198

200199
if (chip_enable_pw_rpc || chip_build_libshell || sl_uart_log_output) {

0 commit comments

Comments
 (0)