Skip to content

Commit 14b9b0c

Browse files
authored
Merge branch 'master' into telink_image_update
2 parents 474607b + d71a363 commit 14b9b0c

File tree

176 files changed

+15330
-2632
lines changed

Some content is hidden

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

176 files changed

+15330
-2632
lines changed

.github/workflows/examples-linux-tv-casting-app.yaml

+1-1
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ jobs:
6161
- name: Build Linux tv-casting-app
6262
run: |
6363
./scripts/run_in_build_env.sh \
64-
"scripts/examples/gn_build_example.sh examples/tv-casting-app/linux/ out/tv-casting-app"
64+
"scripts/examples/gn_build_example.sh examples/tv-casting-app/linux/ out/tv-casting-app chip_casting_simplified=true"
6565
6666
- name: Test casting from Linux tv-casting-app to Linux tv-app
6767
run: |

.github/workflows/tests.yaml

+2
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,8 @@ jobs:
9191
--no-print \
9292
--log-level info \
9393
src/app/zap-templates/zcl/data-model/chip/global-attributes.xml \
94+
src/app/zap-templates/zcl/data-model/chip/global-structs.xml \
95+
src/app/zap-templates/zcl/data-model/chip/semantic-tag-namespace-enums.xml \
9496
src/app/zap-templates/zcl/data-model/chip/access-control-definitions.xml \
9597
src/app/zap-templates/zcl/data-model/chip/access-control-cluster.xml \
9698
src/app/zap-templates/zcl/data-model/chip/account-login-cluster.xml \

.gitmodules

+5-5
Original file line numberDiff line numberDiff line change
@@ -231,10 +231,10 @@
231231
url = https://github.com/SiliconLabs/sdk_support.git
232232
branch = main
233233
platforms = silabs,silabs_docker
234-
[submodule "third_party/silabs/gecko_sdk"]
235-
path = third_party/silabs/gecko_sdk
236-
url = https://github.com/SiliconLabs/gecko_sdk.git
237-
branch = v4.4.2
234+
[submodule "third_party/silabs/simplicity_sdk"]
235+
path = third_party/silabs/simplicity_sdk
236+
url = https://github.com/SiliconLabs/simplicity_sdk.git
237+
branch = v2024.6.0
238238
platforms = silabs
239239
[submodule "third_party/silabs/wiseconnect-wifi-bt-sdk"]
240240
path = third_party/silabs/wiseconnect-wifi-bt-sdk
@@ -244,7 +244,7 @@
244244
[submodule "third_party/silabs/wifi_sdk"]
245245
path = third_party/silabs/wifi_sdk
246246
url = https://github.com/SiliconLabs/wiseconnect.git
247-
branch = v3.1.3-matter-hotfix.4
247+
branch = v3.3.0
248248
platforms = silabs
249249
[submodule "editline"]
250250
path = third_party/editline/repo

docs/zap_clusters.md

+1
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,7 @@ Generally regenerate using one of:
9090
| 257 | 0x101 | DoorLock |
9191
| 258 | 0x102 | WindowCovering |
9292
| 259 | 0x103 | BarrierControl |
93+
| 336 | 0x150 | ServiceArea |
9394
| 512 | 0x200 | PumpConfigurationAndControl |
9495
| 513 | 0x201 | Thermostat |
9596
| 514 | 0x202 | FanControl |

examples/chip-tool/commands/pairing/Commands.h

+9
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,14 @@ class PairCodeThread : public PairingCommand
6969
{}
7070
};
7171

72+
class PairCodeWiFiThread : public PairingCommand
73+
{
74+
public:
75+
PairCodeWiFiThread(CredentialIssuerCommands * credsIssuerConfig) :
76+
PairingCommand("code-wifi-thread", PairingMode::Code, PairingNetworkType::WiFiOrThread, credsIssuerConfig)
77+
{}
78+
};
79+
7280
class PairOnNetwork : public PairingCommand
7381
{
7482
public:
@@ -231,6 +239,7 @@ void registerCommandsPairing(Commands & commands, CredentialIssuerCommands * cre
231239
make_unique<PairCodePase>(credsIssuerConfig),
232240
make_unique<PairCodeWifi>(credsIssuerConfig),
233241
make_unique<PairCodeThread>(credsIssuerConfig),
242+
make_unique<PairCodeWiFiThread>(credsIssuerConfig),
234243
make_unique<PairBleWiFi>(credsIssuerConfig),
235244
make_unique<PairBleThread>(credsIssuerConfig),
236245
make_unique<PairSoftAP>(credsIssuerConfig),

examples/chip-tool/commands/pairing/PairingCommand.cpp

+4
Original file line numberDiff line numberDiff line change
@@ -111,6 +111,10 @@ CommissioningParameters PairingCommand::GetCommissioningParameters()
111111
case PairingNetworkType::Thread:
112112
params.SetThreadOperationalDataset(mOperationalDataset);
113113
break;
114+
case PairingNetworkType::WiFiOrThread:
115+
params.SetWiFiCredentials(Controller::WiFiCredentials(mSSID, mPassword));
116+
params.SetThreadOperationalDataset(mOperationalDataset);
117+
break;
114118
case PairingNetworkType::None:
115119
break;
116120
}

examples/chip-tool/commands/pairing/PairingCommand.h

+6
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ enum class PairingNetworkType
4444
None,
4545
WiFi,
4646
Thread,
47+
WiFiOrThread,
4748
};
4849

4950
class PairingCommand : public CHIPCommand,
@@ -85,6 +86,11 @@ class PairingCommand : public CHIPCommand,
8586
case PairingNetworkType::Thread:
8687
AddArgument("operationalDataset", &mOperationalDataset);
8788
break;
89+
case PairingNetworkType::WiFiOrThread:
90+
AddArgument("ssid", &mSSID);
91+
AddArgument("password", &mPassword);
92+
AddArgument("operationalDataset", &mOperationalDataset);
93+
break;
8894
}
8995

9096
switch (mode)

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

+1-1
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ check_system_includes = true
2323
default_args = {
2424
target_cpu = "arm"
2525
target_os = "freertos"
26-
chip_openthread_ftd = true
26+
chip_openthread_ftd = false
2727

2828
import("//openthread.gni")
2929
}

examples/platform/silabs/BaseApplication.cpp

+10-3
Original file line numberDiff line numberDiff line change
@@ -24,20 +24,21 @@
2424
#include "AppConfig.h"
2525
#include "AppEvent.h"
2626
#include "AppTask.h"
27-
2827
#include <app/server/Server.h>
2928

29+
#define APP_ACTION_BUTTON 1
30+
3031
#ifdef DISPLAY_ENABLED
3132
#include "lcd.h"
3233
#ifdef QR_CODE_ENABLED
3334
#include "qrcodegen.h"
3435
#endif // QR_CODE_ENABLED
3536
#endif // DISPLAY_ENABLED
3637

37-
#include "SilabsDeviceDataProvider.h"
3838
#if CHIP_CONFIG_ENABLE_ICD_SERVER == 1
3939
#include <app/icd/server/ICDNotifier.h> // nogncheck
4040
#endif
41+
#include <ProvisionManager.h>
4142
#include <app/server/OnboardingCodesUtil.h>
4243
#include <app/util/attribute-storage.h>
4344
#include <assert.h>
@@ -744,6 +745,11 @@ void BaseApplication::DispatchEvent(AppEvent * aEvent)
744745
void BaseApplication::ScheduleFactoryReset()
745746
{
746747
PlatformMgr().ScheduleWork([](intptr_t) {
748+
// Press both buttons to request provisioning
749+
if (GetPlatform().GetButtonState(APP_ACTION_BUTTON))
750+
{
751+
Provision::Manager::GetInstance().SetProvisionRequired(true);
752+
}
747753
PlatformMgr().HandleServerShuttingDown();
748754
ConfigurationMgr().InitiateFactoryReset();
749755
});
@@ -765,7 +771,8 @@ void BaseApplication::OutputQrCode(bool refreshLCD)
765771
char setupPayloadBuffer[chip::QRCodeBasicSetupPayloadGenerator::kMaxQRCodeBase38RepresentationLength + 1];
766772
chip::MutableCharSpan setupPayload(setupPayloadBuffer);
767773

768-
if (Silabs::SilabsDeviceDataProvider::GetDeviceDataProvider().GetSetupPayload(setupPayload) == CHIP_NO_ERROR)
774+
CHIP_ERROR err = Provision::Manager::GetInstance().GetStorage().GetSetupPayload(setupPayload);
775+
if (CHIP_NO_ERROR == err)
769776
{
770777
// Print setup info on LCD if available
771778
#ifdef QR_CODE_ENABLED

examples/platform/silabs/MatterConfig.cpp

+8-8
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@
5656
static chip::DeviceLayer::Internal::Efr32PsaOperationalKeystore gOperationalKeystore;
5757
#endif
5858

59-
#include "SilabsDeviceDataProvider.h"
59+
#include <ProvisionManager.h>
6060
#include <app/InteractionModelEngine.h>
6161
#include <app/TimerDelegates.h>
6262

@@ -80,8 +80,6 @@ static chip::DeviceLayer::Internal::Efr32PsaOperationalKeystore gOperationalKeys
8080

8181
#include <DeviceInfoProviderImpl.h>
8282
#include <app/server/Server.h>
83-
#include <credentials/DeviceAttestationCredsProvider.h>
84-
#include <examples/platform/silabs/SilabsDeviceAttestationCreds.h>
8583

8684
#include <platform/silabs/platformAbstraction/SilabsPlatform.h>
8785

@@ -92,7 +90,7 @@ static chip::DeviceLayer::Internal::Efr32PsaOperationalKeystore gOperationalKeys
9290
using namespace ::chip;
9391
using namespace ::chip::Inet;
9492
using namespace ::chip::DeviceLayer;
95-
using namespace ::chip::Credentials::Silabs;
93+
using namespace ::chip::Credentials;
9694
using namespace chip::DeviceLayer::Silabs;
9795

9896
#if CHIP_ENABLE_OPENTHREAD
@@ -174,7 +172,7 @@ void ApplicationStart(void * unused)
174172

175173
chip::DeviceLayer::PlatformMgr().LockChipStack();
176174
// Initialize device attestation config
177-
SetDeviceAttestationCredentialsProvider(Credentials::Silabs::GetSilabsDacProvider());
175+
SetDeviceAttestationCredentialsProvider(&Provision::Manager::GetInstance().GetStorage());
178176
chip::DeviceLayer::PlatformMgr().UnlockChipStack();
179177

180178
SILABS_LOG("Starting App Task");
@@ -190,7 +188,6 @@ void ApplicationStart(void * unused)
190188
void SilabsMatterConfig::AppInit()
191189
{
192190
GetPlatform().Init();
193-
194191
sMainTaskHandle = osThreadNew(ApplicationStart, nullptr, &kMainTaskAttr);
195192
SILABS_LOG("Starting scheduler");
196193
VerifyOrDie(sMainTaskHandle); // We can't proceed if the Main Task creation failed.
@@ -257,8 +254,11 @@ CHIP_ERROR SilabsMatterConfig::InitMatter(const char * appName)
257254

258255
ReturnErrorOnFailure(PlatformMgr().InitChipStack());
259256

260-
SetDeviceInstanceInfoProvider(&Silabs::SilabsDeviceDataProvider::GetDeviceDataProvider());
261-
SetCommissionableDataProvider(&Silabs::SilabsDeviceDataProvider::GetDeviceDataProvider());
257+
// Provision Manager
258+
Silabs::Provision::Manager & provision = Silabs::Provision::Manager::GetInstance();
259+
ReturnErrorOnFailure(provision.Init());
260+
SetDeviceInstanceInfoProvider(&provision.GetStorage());
261+
SetCommissionableDataProvider(&provision.GetStorage());
262262

263263
chip::DeviceLayer::ConnectivityMgr().SetBLEDeviceName(appName);
264264

examples/platform/silabs/SiWx917/BUILD.gn

+6-56
Original file line numberDiff line numberDiff line change
@@ -59,13 +59,8 @@ config("chip_examples_project_config") {
5959
include_dirs = [ "project_include" ]
6060

6161
# Link options that provide a replacement for dynamic memory operations in standard
62-
# library with the FreeRTOS malloc in platform code.
62+
# library with the sl_memory_manager in platform code.
6363
ldflags = [
64-
# memory allocation -- these must be re-entrant and do locking
65-
"-Wl,--wrap=malloc",
66-
"-Wl,--wrap=free",
67-
"-Wl,--wrap=realloc",
68-
"-Wl,--wrap=calloc",
6964
"-Wl,--wrap=MemoryAlloc",
7065

7166
# Wrap these in case internal newlib call them (e.g. strdup will)
@@ -91,10 +86,9 @@ source_set("test-event-trigger") {
9186
"${silabs_common_plat_dir}/SilabsTestEventTriggerDelegate.h",
9287
]
9388

89+
deps = [ "${chip_root}/src/platform/silabs/provision:provision-headers" ]
9490
public_configs = [ ":test-event-trigger-config" ]
95-
9691
public_deps = [
97-
":silabs-factory-data-provider",
9892
"${chip_root}/src/app:test-event-trigger",
9993
"${chip_root}/src/lib/core",
10094
"${chip_root}/src/lib/support",
@@ -119,46 +113,9 @@ source_set("siwx917-matter-shell") {
119113
}
120114
}
121115

122-
config("attestation-credentials-config") {
123-
include_dirs = [ "${chip_root}" ]
124-
}
125-
126-
source_set("siwx917-attestation-credentials") {
127-
sources = [
128-
"${silabs_common_plat_dir}/SilabsDeviceAttestationCreds.cpp",
129-
"${silabs_common_plat_dir}/SilabsDeviceAttestationCreds.h",
130-
]
131-
132-
public_deps = [
133-
"${chip_root}/src/credentials",
134-
"${chip_root}/src/platform:platform_base",
135-
]
136-
137-
public_configs = [ ":attestation-credentials-config" ]
138-
}
139-
140-
source_set("silabs-factory-data-provider") {
141-
sources = [
142-
"${silabs_common_plat_dir}/SilabsDeviceDataProvider.cpp",
143-
"${silabs_common_plat_dir}/SilabsDeviceDataProvider.h",
144-
]
145-
146-
public_deps = [
147-
"${chip_root}/src/credentials",
148-
"${chip_root}/src/lib/support",
149-
"${chip_root}/src/platform:platform_base",
150-
"${chip_root}/src/setup_payload",
151-
]
152-
153-
public_configs = [ ":siwx917-common-config" ]
154-
155-
if (sl_enable_test_event_trigger) {
156-
public_configs += [ ":test-event-trigger-config" ]
157-
}
158-
}
159-
160116
config("siwx917-common-config") {
161117
defines = [ "OTA_PERIODIC_TIMEOUT=${ota_periodic_query_timeout_sec}" ]
118+
libs = [ "${sdk_support_root}/matter/provision/lib/libProvision_si917.a" ]
162119

163120
if (!disable_lcd) {
164121
include_dirs = [ "${silabs_common_plat_dir}/display" ]
@@ -215,7 +172,7 @@ config("silabs-wifi-config") {
215172
}
216173

217174
source_set("siwx917-common") {
218-
deps = []
175+
deps = [ "${chip_root}/src/platform/silabs/provision:provision-headers" ]
219176
defines = []
220177
public_deps = []
221178
public_configs = [
@@ -234,7 +191,8 @@ source_set("siwx917-common") {
234191
"${silabs_common_plat_dir}/LEDWidget.cpp",
235192
"${silabs_common_plat_dir}/MatterConfig.cpp",
236193
"${silabs_common_plat_dir}/SoftwareFaultReports.cpp",
237-
"${silabs_common_plat_dir}/heap_4_silabs.c",
194+
"${silabs_common_plat_dir}/provision/ProvisionStorageCustom.cpp",
195+
"${silabs_common_plat_dir}/provision/ProvisionStorageFlash.cpp",
238196
"${silabs_common_plat_dir}/silabs_utils.cpp",
239197
"${silabs_common_plat_dir}/syscalls_stubs.cpp",
240198
"${silabs_plat_si91x_wifi_dir}/dhcp_client.cpp",
@@ -288,14 +246,6 @@ source_set("siwx917-common") {
288246
]
289247
}
290248

291-
# Attestation Credentials
292-
deps += [ ":siwx917-attestation-credentials" ]
293-
294-
# Factory Data Provider
295-
if (use_efr32_factory_data_provider) {
296-
public_deps += [ ":silabs-factory-data-provider" ]
297-
}
298-
299249
public_deps += [
300250
"${chip_root}/examples/providers:device_info_provider",
301251
"${chip_root}/src/lib",

0 commit comments

Comments
 (0)