diff --git a/.github/workflows/examples-efr32.yaml b/.github/workflows/examples-efr32.yaml index 752abbaae5..fbcb25c7f8 100644 --- a/.github/workflows/examples-efr32.yaml +++ b/.github/workflows/examples-efr32.yaml @@ -41,7 +41,7 @@ jobs: if: github.actor != 'restyled-io[bot]' container: - image: ghcr.io/project-chip/chip-build-efr32:95 + image: ghcr.io/project-chip/chip-build-efr32:115 volumes: - "/tmp/bloat_reports:/tmp/bloat_reports" steps: diff --git a/.github/workflows/silabs-common-build.yaml b/.github/workflows/silabs-common-build.yaml index f7b2b19db3..1b2533c7ed 100644 --- a/.github/workflows/silabs-common-build.yaml +++ b/.github/workflows/silabs-common-build.yaml @@ -15,7 +15,7 @@ jobs: runs-on: ubuntu-latest container: - image: ghcr.io/project-chip/chip-build-efr32:95 + image: ghcr.io/project-chip/chip-build-efr32:115 strategy: matrix: diff --git a/.gitmodules b/.gitmodules index fc99670bad..b4934aab2e 100644 --- a/.gitmodules +++ b/.gitmodules @@ -213,17 +213,17 @@ [submodule "third_party/silabs/simplicity_sdk"] path = third_party/silabs/simplicity_sdk url = https://github.com/SiliconLabs/simplicity_sdk.git - branch = v2024.6.2 + branch = v2024.12.1-0 platforms = silabs [submodule "third_party/silabs/wiseconnect-wifi-bt-sdk"] path = third_party/silabs/wiseconnect-wifi-bt-sdk url = https://github.com/SiliconLabs/wiseconnect-wifi-bt-sdk.git - branch = 2.10.3 + branch = 2.11.2 platforms = silabs [submodule "third_party/silabs/wifi_sdk"] path = third_party/silabs/wifi_sdk url = https://github.com/SiliconLabs/wiseconnect.git - branch = v3.3.3 + branch = v3.4.1 platforms = silabs [submodule "editline"] path = third_party/editline/repo diff --git a/examples/platform/silabs/cmp/sl-matter-attribute-storage.cpp b/examples/platform/silabs/cmp/sl-matter-attribute-storage.cpp new file mode 100644 index 0000000000..b0c54c50dd --- /dev/null +++ b/examples/platform/silabs/cmp/sl-matter-attribute-storage.cpp @@ -0,0 +1,54 @@ +/***************************************************************************** + * @file sl-matter-attribute-storage.cpp + * @brief Link zigbee datamodel attribute changes to Matter attribute storage. + ******************************************************************************* + * # License + * Copyright 2024 Silicon Laboratories Inc. + *www.silabs.com + ******************************************************************************* + * + * The licensor of this software is Silicon + *Laboratories Inc. Your use of this software is + *governed by the terms of Silicon Labs Master + *Software License Agreement (MSLA) available at + * www.silabs.com/about-us/legal/master-software-license-agreement. + *This software is distributed to you in Source Code + *format and is governed by the sections of the MSLA + *applicable to Source Code. + * + ******************************************************************************/ + +#include +#include +#include +#include +#include +#include +#include + +namespace { +// This is called from simplicity_sdk/protocol/zigbee/app/framework/util/attribute-storage.c on ZB attribute write +// when GENERATED_MULTI_PROTOCOL_ATTRIBUTE_MAPPING and SL_CATALOG_MULTIPROTOCOL_ZIGBEE_MATTER_COMMON_PRESENT are defined. +extern "C" sl_status_t sli_matter_af_write_attribute(uint16_t endpointId, uint32_t clusterId, uint32_t attributeId, + uint8_t * attributeValue, uint8_t type) +{ + // All type shall be directly applicable. We expect compilation error if type changes. + chip::EndpointId matterEndpointId = endpointId; + chip::ClusterId matterClusterId = clusterId; + chip::AttributeId matterAttributeId = attributeId; + EmberAfAttributeType matterDataType = type; + + chip::Protocols::InteractionModel::Status imStatus = + emberAfWriteAttribute(matterEndpointId, matterClusterId, matterAttributeId, attributeValue, matterDataType); + + // For sl internal use so we return a known status type to our stack + sl_status_t slStatus = SL_STATUS_OK; + if (imStatus != chip::Protocols::InteractionModel::Status::Success) + { + ChipLogError(Zcl, "Failed to write Matter attribute from multiprotocol update. Err:0x%02x", chip::to_underlying(imStatus)); + slStatus = SL_STATUS_FAIL; + } + + return slStatus; +} +} // namespace diff --git a/examples/platform/silabs/cmp/sl-matter-attribute-storage.h b/examples/platform/silabs/cmp/sl-matter-attribute-storage.h new file mode 100644 index 0000000000..ab564cc593 --- /dev/null +++ b/examples/platform/silabs/cmp/sl-matter-attribute-storage.h @@ -0,0 +1,55 @@ +/******************************************************************************* + * @file sl-matter-attribute-storage.h + * @brief Link zigbee datamodel attribute changes to Matter attribute storage. + ******************************************************************************* + * # License + * Copyright 2024 Silicon Laboratories Inc. www.silabs.com + ******************************************************************************* + * + * The licensor of this software is Silicon Laboratories Inc. Your use of this + * software is governed by the terms of Silicon Labs Master Software License + * Agreement (MSLA) available at + * www.silabs.com/about-us/legal/master-software-license-agreement. This + * software is distributed to you in Source Code format and is governed by the + * sections of the MSLA applicable to Source Code. + * + ******************************************************************************/ + +#ifndef SL_MATTER_ATTRIBUTE_STORAGE +#define SL_MATTER_ATTRIBUTE_STORAGE + +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * @brief Writes an attribute value to the Matter attribute storage. + * + * *** This is a Silabs internal api. *** + * + * It exposes the Matter API that writes to the Matter attribute storage to our zigbee datamodel stack, + * implemented in C, for multiprotocol usecases, without exposing matter datamodel elements + * + * This function expect that either the used Zigbee cluster/attributes maps 1 to 1 to the matter counter part + * or that the caller translated the Zigbee attribute parameters to Matter attribute parameters. + * + * The function ultimaly uses those fields in the Matter API to perform the attribute write operation. + * + * @param endpointId Linked ZB/Matter endpoint identifier. + * @param clusterId Linked ZB/Matter cluster identifier. + * @param attributeId Linked ZB/Matter attribute identifier. + * @param attributeValue Pointer to the attribute value to be written. + * @param type The data type of the attribute. Shall match Matters' EmberAfAttributeType + * @return sl_status_t Status of the write operation, SL_STATUS_OK if successful, otherwise SL_STATUS_FAIL. + */ +sl_status_t sli_matter_af_write_attribute(uint16_t endpointId, uint32_t clusterId, uint32_t attributeId, uint8_t * attributeValue, + uint8_t type); + +#ifdef __cplusplus +} +#endif + +#endif // SL_MATTER_ATTRIBUTE_STORAGE diff --git a/examples/platform/silabs/matter-platform.slcp b/examples/platform/silabs/matter-platform.slcp index e4adf0743b..07117d7cb6 100644 --- a/examples/platform/silabs/matter-platform.slcp +++ b/examples/platform/silabs/matter-platform.slcp @@ -113,6 +113,8 @@ configuration: - {name: SL_BT_RTOS_LINK_LAYER_TASK_STACK_SIZE, value: 1024} - {name: SL_BT_RTOS_HOST_STACK_TASK_STACK_SIZE, value: 2048} - {name: SL_BT_RTOS_EVENT_HANDLER_STACK_SIZE, value: 1536} +- {name: SL_MBEDTLS_PSA_ASSUME_EXCLUSIVE_BUFFERS, value: 1} +- {name: SL_OPENTHREAD_ENABLE_SERIAL_TASK, value: 0} template_contribution: - name: mbedtls_ssl_content_len_in_requirement diff --git a/examples/platform/silabs/provision/ProvisionStorageFlash.cpp b/examples/platform/silabs/provision/ProvisionStorageFlash.cpp index 047985a2ac..18ccc7c88d 100644 --- a/examples/platform/silabs/provision/ProvisionStorageFlash.cpp +++ b/examples/platform/silabs/provision/ProvisionStorageFlash.cpp @@ -29,6 +29,10 @@ #include #endif // OTA_ENCRYPTION_ENABLE +#if !SL_MATTER_GN_BUILD +#include +#endif + using namespace chip::Credentials; #if SLI_SI91X_MCU_INTERFACE diff --git a/src/platform/silabs/wifi/BUILD.gn b/src/platform/silabs/wifi/BUILD.gn index d4877fcfd1..ded88553a0 100644 --- a/src/platform/silabs/wifi/BUILD.gn +++ b/src/platform/silabs/wifi/BUILD.gn @@ -139,9 +139,7 @@ source_set("wifi-platform") { "${silabs_platform_dir}/wifi/SiWx/WifiInterface.cpp", "${silabs_platform_dir}/wifi/wiseconnect-abstraction/WiseconnectInterfaceAbstraction.cpp", "${silabs_platform_dir}/wifi/wiseconnect-abstraction/WiseconnectInterfaceAbstraction.h", - - # Wi-Fi Config - Using the file sdk support until the wiseconnect file is fixed - "${matter_support_root}/sdk-copies/components/service/network_manager/src/sl_net_for_lwip.c", + "${wifi_sdk_root}/components/service/network_manager/src/sl_net_for_lwip.c", ] public_deps += [ "${lwip_root}:lwip" ] diff --git a/src/platform/silabs/wifi/SiWx/WifiInterface.cpp b/src/platform/silabs/wifi/SiWx/WifiInterface.cpp index 96a12ab6bc..4978818e7a 100644 --- a/src/platform/silabs/wifi/SiWx/WifiInterface.cpp +++ b/src/platform/silabs/wifi/SiWx/WifiInterface.cpp @@ -100,16 +100,11 @@ bool ps_requirement_added = false; #endif // CHIP_CONFIG_ENABLE_ICD_SERVER bool hasNotifiedWifiConnectivity = false; -bool hasNotifiedIPV6 = false; -#if (CHIP_DEVICE_CONFIG_ENABLE_IPV4) -bool hasNotifiedIPV4 = false; -#endif /* CHIP_DEVICE_CONFIG_ENABLE_IPV4 */ wfx_wifi_scan_ext_t temp_reset; osSemaphoreId_t sScanCompleteSemaphore; osSemaphoreId_t sScanInProgressSemaphore; -osTimerId_t sDHCPTimer; osMessageQueueId_t sWifiEventQueue = nullptr; sl_net_wifi_lwip_context_t wifi_client_context; @@ -134,7 +129,8 @@ const sl_wifi_device_configuration_t config = { #ifdef SLI_SI91X_MCU_INTERFACE (SL_SI91X_FEAT_SECURITY_OPEN | SL_SI91X_FEAT_WPS_DISABLE), #else - (SL_SI91X_FEAT_SECURITY_OPEN | SL_SI91X_FEAT_AGGREGATION), + (SL_SI91X_FEAT_SECURITY_OPEN | SL_SI91X_FEAT_AGGREGATION | SL_SI91X_FEAT_ULP_GPIO_BASED_HANDSHAKE | + SL_SI91X_FEAT_DEV_TO_HOST_ULP_GPIO_1), #endif .tcp_ip_feature_bit_map = (SL_SI91X_TCP_IP_FEAT_DHCPV4_CLIENT | SL_SI91X_TCP_IP_FEAT_DNS_CLIENT | SL_SI91X_TCP_IP_FEAT_SSL | SL_SI91X_TCP_IP_FEAT_BYPASS @@ -207,27 +203,6 @@ constexpr uint8_t kWfxQueueSize = 10; // TODO: Figure out why we actually need this, we are already handling failure and retries somewhere else. constexpr uint16_t kWifiScanTimeoutTicks = 10000; -void DHCPTimerEventHandler(void * arg) -{ - WifiEvent event = WifiEvent::kStationDhcpPoll; - sl_matter_wifi_post_event(event); -} - -void CancelDHCPTimer(void) -{ - VerifyOrReturn(osTimerIsRunning(sDHCPTimer), ChipLogDetail(DeviceLayer, "CancelDHCPTimer: timer not running")); - VerifyOrReturn(osTimerStop(sDHCPTimer) == osOK, ChipLogError(DeviceLayer, "CancelDHCPTimer: failed to stop timer")); -} - -void StartDHCPTimer(uint32_t timeout) -{ - // Cancel timer if already started - CancelDHCPTimer(); - - VerifyOrReturn(osTimerStart(sDHCPTimer, pdMS_TO_TICKS(timeout)) == osOK, - ChipLogError(DeviceLayer, "StartDHCPTimer: failed to start timer")); -} - sl_status_t sl_wifi_siwx917_init(void) { sl_status_t status = SL_STATUS_OK; @@ -356,7 +331,10 @@ sl_status_t SetWifiConfigurations() VerifyOrReturnError(status == SL_STATUS_OK, status, ChipLogError(DeviceLayer, "sl_wifi_set_listen_interval failed: 0x%lx", status)); - sl_wifi_advanced_client_configuration_t client_config = { .max_retry_attempts = 5 }; + // This is be triggered on the disconnect use case, providing the amount of TA tries + // Setting the TA retry to 1 and giving the control to the M4 for improved power efficiency + // When max_retry_attempts is set to 0, TA will retry indefinitely. + sl_wifi_advanced_client_configuration_t client_config = { .max_retry_attempts = 1 }; status = sl_wifi_set_advanced_client_configuration(SL_WIFI_CLIENT_INTERFACE, &client_config); VerifyOrReturnError(status == SL_STATUS_OK, status, ChipLogError(DeviceLayer, "sl_wifi_set_advanced_client_configuration failed: 0x%lx", status)); @@ -513,11 +491,6 @@ sl_status_t sl_matter_wifi_platform_init(void) sWifiEventQueue = osMessageQueueNew(kWfxQueueSize, sizeof(WifiEvent), nullptr); VerifyOrReturnError(sWifiEventQueue != nullptr, SL_STATUS_ALLOCATION_FAILED); - // Create timer for DHCP polling - // TODO: Use LWIP timer instead of creating a new one here - sDHCPTimer = osTimerNew(DHCPTimerEventHandler, osTimerPeriodic, nullptr, nullptr); - VerifyOrReturnError(sDHCPTimer != nullptr, SL_STATUS_ALLOCATION_FAILED); - return status; } @@ -661,7 +634,6 @@ sl_status_t bg_scan_callback_handler(sl_wifi_event_t event, sl_wifi_scan_result_ /// NotifyConnectivity /// @brief Notify the application about the connectivity status if it has not been notified yet. -/// Helper function for HandleDHCPPolling. void NotifyConnectivity(void) { VerifyOrReturn(!hasNotifiedWifiConnectivity); @@ -669,45 +641,22 @@ void NotifyConnectivity(void) hasNotifiedWifiConnectivity = true; } -void HandleDHCPPolling(void) +/// NotifySuccessfulConnection +/// @brief Processing function responsible for notifying the upper layers of a succesful connection attempt. +void NotifySuccessfulConnection(void) { - WifiEvent event; - - // TODO: Notify the application that the interface is not set up or Chipdie here because we are in an unkonwn state struct netif * sta_netif = &wifi_client_context.netif; VerifyOrReturn(sta_netif != nullptr, ChipLogError(DeviceLayer, "HandleDHCPPolling: failed to get STA netif")); - #if (CHIP_DEVICE_CONFIG_ENABLE_IPV4) - uint8_t dhcp_state = dhcpclient_poll(sta_netif); - if (dhcp_state == DHCP_ADDRESS_ASSIGNED && !hasNotifiedIPV4) - { - wfx_dhcp_got_ipv4((uint32_t) sta_netif->ip_addr.u_addr.ip4.addr); - hasNotifiedIPV4 = true; - event = WifiEvent::kStationDhcpDone; - sl_matter_wifi_post_event(event); - NotifyConnectivity(); - } - else if (dhcp_state == DHCP_OFF) - { - wfx_ip_changed_notify(IP_STATUS_FAIL); - hasNotifiedIPV4 = false; - } + wfx_dhcp_got_ipv4((uint32_t) sta_netif->ip_addr.u_addr.ip4.addr); #endif /* CHIP_DEVICE_CONFIG_ENABLE_IPV4 */ - /* Checks if the assigned IPv6 address is preferred by evaluating - * the first block of IPv6 address ( block 0) - */ - if ((ip6_addr_ispreferred(netif_ip6_addr_state(sta_netif, 0))) && !hasNotifiedIPV6) - { - char addrStr[chip::Inet::IPAddress::kMaxStringLength] = { 0 }; - VerifyOrReturn(ip6addr_ntoa_r(netif_ip6_addr(sta_netif, 0), addrStr, sizeof(addrStr)) != nullptr); - ChipLogProgress(DeviceLayer, "SLAAC OK: linklocal addr: %s", addrStr); - wfx_ipv6_notify(GET_IPV6_SUCCESS); - hasNotifiedIPV6 = true; - event = WifiEvent::kStationDhcpDone; - sl_matter_wifi_post_event(event); - NotifyConnectivity(); - } + char addrStr[chip::Inet::IPAddress::kMaxStringLength] = { 0 }; + VerifyOrReturn(ip6addr_ntoa_r(netif_ip6_addr(sta_netif, 0), addrStr, sizeof(addrStr)) != nullptr); + ChipLogProgress(DeviceLayer, "SLAAC OK: linklocal addr: %s", addrStr); + wfx_ipv6_notify(GET_IPV6_SUCCESS); + NotifyConnectivity(); } + void sl_matter_wifi_post_event(WifiEvent event) { sl_status_t status = osMessageQueuePut(sWifiEventQueue, &event, 0, 0); @@ -719,19 +668,14 @@ void sl_matter_wifi_post_event(WifiEvent event) // Chipdie, etc. } } -/// ResetDHCPNotificationFlags +/// ResetConnectivityNotificationFlags /// @brief Reset the flags that are used to notify the application about DHCP connectivity -/// and emits a WifiEvent::kStationDoDhcp event to trigger DHCP polling checks. Helper function for ProcessEvent. -void ResetDHCPNotificationFlags(void) +/// and emits a WifiEvent::kConnectionComplete event to trigger DHCP polling checks. Helper function for ProcessEvent. +void ResetConnectivityNotificationFlags(void) { - -#if (CHIP_DEVICE_CONFIG_ENABLE_IPV4) - hasNotifiedIPV4 = false; -#endif // CHIP_DEVICE_CONFIG_ENABLE_IPV4 - hasNotifiedIPV6 = false; hasNotifiedWifiConnectivity = false; - WifiEvent event = WifiEvent::kStationDoDhcp; + WifiEvent event = WifiEvent::kConnectionComplete; sl_matter_wifi_post_event(event); } @@ -743,7 +687,7 @@ void ProcessEvent(WifiEvent event) case WifiEvent::kStationConnect: ChipLogDetail(DeviceLayer, "WifiEvent::kStationConnect"); wfx_rsi.dev_state.Set(WifiState::kStationConnected); - ResetDHCPNotificationFlags(); + ResetConnectivityNotificationFlags(); break; case WifiEvent::kStationDisconnect: { @@ -756,7 +700,7 @@ void ProcessEvent(WifiEvent event) .Clear(WifiState::kStationDhcpDone); /* TODO: Implement disconnect notify */ - ResetDHCPNotificationFlags(); + ResetConnectivityNotificationFlags(); #if (CHIP_DEVICE_CONFIG_ENABLE_IPV4) wfx_ip_changed_notify(0); // for IPV4 wfx_ip_changed_notify(IP_STATUS_FAIL); @@ -833,20 +777,9 @@ void ProcessEvent(WifiEvent event) JoinWifiNetwork(); break; - case WifiEvent::kStationDoDhcp: - ChipLogDetail(DeviceLayer, "WifiEvent::kStationDoDhcp"); - StartDHCPTimer(WFX_RSI_DHCP_POLL_INTERVAL); - break; - - case WifiEvent::kStationDhcpDone: - ChipLogDetail(DeviceLayer, "WifiEvent::kStationDhcpDone"); - CancelDHCPTimer(); - break; - - case WifiEvent::kStationDhcpPoll: - ChipLogDetail(DeviceLayer, "WifiEvent::kStationDhcpPoll"); - HandleDHCPPolling(); - break; + case WifiEvent::kConnectionComplete: + ChipLogDetail(DeviceLayer, "WifiPlatformEvent::kConnectionComplete"); + NotifySuccessfulConnection(); default: break; diff --git a/src/platform/silabs/wifi/WifiInterfaceAbstraction.h b/src/platform/silabs/wifi/WifiInterfaceAbstraction.h index 623fff85de..3b31de8a2d 100644 --- a/src/platform/silabs/wifi/WifiInterfaceAbstraction.h +++ b/src/platform/silabs/wifi/WifiInterfaceAbstraction.h @@ -87,15 +87,15 @@ enum class WifiState : uint16_t enum class WifiEvent : uint8_t { - kStationConnect = 0, - kStationDisconnect = 1, - kAPStart = 2, - kAPStop = 3, - kScan = 4, /* This is used as scan result and start */ - kStationStartJoin = 5, - kStationDoDhcp = 6, - kStationDhcpDone = 7, - kStationDhcpPoll = 8 + kStationConnect = 0, + kStationDisconnect = 1, + kAPStart = 2, + kAPStop = 3, + kScan = 4, /* This is used as scan result and start */ + kStationStartJoin = 5, + kConnectionComplete = 6, + kStationDhcpDone = 7, + kStationDhcpPoll = 8 }; typedef enum diff --git a/src/platform/silabs/wifi/rs911x/WifiInterface.cpp b/src/platform/silabs/wifi/rs911x/WifiInterface.cpp index 90027eedba..e495af3e64 100644 --- a/src/platform/silabs/wifi/rs911x/WifiInterface.cpp +++ b/src/platform/silabs/wifi/rs911x/WifiInterface.cpp @@ -606,7 +606,7 @@ void HandleDHCPPolling(void) /** ResetDHCPNotificationFlags * @brief Reset the flags that are used to notify the application about DHCP connectivity - * and emits a WifiEvent::kStationDoDhcp event to trigger DHCP polling checks. Helper function for ProcessEvent. + * and emits a WifiEvent::kConnectionComplete event to trigger DHCP polling checks. Helper function for ProcessEvent. */ void ResetDHCPNotificationFlags(void) { @@ -618,7 +618,7 @@ void ResetDHCPNotificationFlags(void) hasNotifiedIPV6 = false; hasNotifiedWifiConnectivity = false; - outEvent = WifiEvent::kStationDoDhcp; + outEvent = WifiEvent::kConnectionComplete; sl_matter_wifi_post_event(outEvent); } @@ -752,7 +752,7 @@ void ProcessEvent(WifiEvent event) sl_wifi_platform_join_network(); } break; - case WifiEvent::kStationDoDhcp: { + case WifiEvent::kConnectionComplete: { StartDHCPTimer(WFX_RSI_DHCP_POLL_INTERVAL); } break; diff --git a/src/platform/silabs/wifi/rs911x/rs9117.gni b/src/platform/silabs/wifi/rs911x/rs9117.gni index 7516584739..0b48db3d8d 100644 --- a/src/platform/silabs/wifi/rs911x/rs9117.gni +++ b/src/platform/silabs/wifi/rs911x/rs9117.gni @@ -44,9 +44,6 @@ rs9117_src_sapi = [ "${wifi_sdk_root}/components/device/silabs/si91x/wireless/ncp_interface/spi/sl_si91x_spi.c", "${wifi_sdk_root}/components/device/silabs/si91x/wireless/ncp_interface/sl_si91x_ncp_driver.c", - # Wi-Fi Config - Using the file sdk support until the wiseconnect file is fixed - "${matter_support_root}/sdk-copies/components/service/network_manager/src/sl_net_for_lwip.c", - # wifi component "${wifi_sdk_root}/components/protocol/wifi/src/sl_wifi_basic_credentials.c", "${wifi_sdk_root}/components/protocol/wifi/src/sl_wifi_callback_framework.c", @@ -55,6 +52,7 @@ rs9117_src_sapi = [ # basic_network_manager component "${wifi_sdk_root}/components/service/network_manager/src/sl_net_credentials.c", "${wifi_sdk_root}/components/service/network_manager/src/sl_net_basic_profiles.c", + "${wifi_sdk_root}/components/service/network_manager/src/sl_net_for_lwip.c", # si91x_basic_buffers component "${wifi_sdk_root}/components/device/silabs/si91x/wireless/memory/malloc_buffers.c", diff --git a/third_party/silabs/efr32_sdk.gni b/third_party/silabs/efr32_sdk.gni index c7793b8e5a..f30f7feff3 100644 --- a/third_party/silabs/efr32_sdk.gni +++ b/third_party/silabs/efr32_sdk.gni @@ -172,6 +172,7 @@ template("efr32_sdk") { "${efr32_sdk_root}/platform/bootloader", "${efr32_sdk_root}/platform/bootloader/config", "${efr32_sdk_root}/platform/bootloader/config/btl_interface", + "${efr32_sdk_root}/platform/bootloader/core/flash", "${efr32_sdk_root}/platform/bootloader/api", "${efr32_sdk_root}/platform/CMSIS/Core/Include", "${efr32_sdk_root}/platform/CMSIS/RTOS2/Include", @@ -733,6 +734,7 @@ template("efr32_sdk") { "${efr32_sdk_root}/platform/CMSIS/RTOS2/Source/os_systick.c", "${efr32_sdk_root}/platform/bootloader/api/btl_interface.c", "${efr32_sdk_root}/platform/bootloader/api/btl_interface_storage.c", + "${efr32_sdk_root}/platform/bootloader/core/flash/btl_internal_flash.c", "${efr32_sdk_root}/platform/bootloader/security/sha/crypto_sha.c", "${efr32_sdk_root}/platform/common/src/sl_core_cortexm.c", "${efr32_sdk_root}/platform/common/src/sl_slist.c", diff --git a/third_party/silabs/matter_support b/third_party/silabs/matter_support index d6d19e512a..4dd871d868 160000 --- a/third_party/silabs/matter_support +++ b/third_party/silabs/matter_support @@ -1 +1 @@ -Subproject commit d6d19e512aa2fe54fb939887c2d0ce0700ae7099 +Subproject commit 4dd871d868695c2c3a196d4ebb41992ba9b1f7ab diff --git a/third_party/silabs/simplicity_sdk b/third_party/silabs/simplicity_sdk index 8627f84825..da661283f3 160000 --- a/third_party/silabs/simplicity_sdk +++ b/third_party/silabs/simplicity_sdk @@ -1 +1 @@ -Subproject commit 8627f8482564dc6d94b56512740a39d6f409a0eb +Subproject commit da661283f301b53eec04d1016009e60bc7e34a1f diff --git a/third_party/silabs/wifi_sdk b/third_party/silabs/wifi_sdk index 9f6db891b3..f675628eef 160000 --- a/third_party/silabs/wifi_sdk +++ b/third_party/silabs/wifi_sdk @@ -1 +1 @@ -Subproject commit 9f6db891b349369a45da7d66f53f9cd83d3ba260 +Subproject commit f675628eefa1ac4990e94146abb75dd08b522571 diff --git a/third_party/silabs/wiseconnect-wifi-bt-sdk b/third_party/silabs/wiseconnect-wifi-bt-sdk index b6d6cb552b..3dbc243390 160000 --- a/third_party/silabs/wiseconnect-wifi-bt-sdk +++ b/third_party/silabs/wiseconnect-wifi-bt-sdk @@ -1 +1 @@ -Subproject commit b6d6cb552beb4ecb6e690e0db4c9d374f8ba1b15 +Subproject commit 3dbc243390a99311968b4d39fe0339b7c8a201ec