SDK upgrade guide
Gecko SDK 4.2 to Gecko SDK 4.4: what needs attention
Migratorisk's knowledge base lists 66 documented changes between Gecko SDK 4.2 and Gecko SDK 4.4 across 3 releases. 39 of them are rated likely to break code, configuration or builds that use them. Below is each change, what a scan also reviews on this path, and how to see which ones apply to your project.
Find which of these affect your firmware
Migratorisk scans your project on your own computer and reports only the changes your code, configuration and build actually touch. Your source code is not uploaded.
python -m pip install migratorisk migratorisk scan --project ./your-firmware --from simplicity-sdk-4.2.0 --to simplicity-sdk-4.4.0 --out report.html
Requires Python 3.12 or newer. Results are free and complete without sign-up; sharing a report with us is optional.
Set up the local scanOr answer a few questions insteadWhere the changes are
What changes between Gecko SDK 4.2 and Gecko SDK 4.4
Ordered by impact. Each item names the release that introduced it and links to the official source. A change only matters if your project uses what changed; the scan checks that.
Zigbee (EmberZNet): functions removed in Gecko SDK 4.3.0
Gecko SDK 4.3.0 no longer declares these functions from Gecko SDK 4.2.0: embGpClearAdditionalInfoBlockTable, emberAfPluginCommandHandlerPermitHostToNcpFrameCallback, emberAfPluginCommandHandlerPermitNcpToHostFrameCallback, emberAfPluginGreenPowerClientChannelEventHandler, emberAfPluginGreenPowerClientExitCommissioningEventHandler, emberBecomeTrustCenter… Code using them fails to compile or link. Covers 253 names.
Zigbee (EmberZNet): functions removed in Gecko SDK 4.4.0
Gecko SDK 4.4.0 no longer declares these functions from Gecko SDK 4.3.0: SecureEzspRandomNumberContents, SecureEzspSessionIdContents, appendSecureEzspRandomNumber, backchannelCheckConnection, backchannelClientConnectionCleanup, backchannelClientPrintf… Code using them fails to compile or link. Covers 149 names.
Zigbee (EmberZNet): constants removed in Gecko SDK 4.4.0
Gecko SDK 4.4.0 no longer declares these constants from Gecko SDK 4.3.0: CCM_STAR_HEADER, CONNECTION_ERROR, CONNECTION_EXISTS, CREATOR_SECURE_EZSP_SECURITY_KEY, EMBER_AF_PLUGIN_BINDING_TABLE_LIBRARY, EMBER_AF_PLUGIN_INSTALL_CODE_LIBRARY… Code using them fails to compile or link. Covers 78 names.
Bluetooth LE: constants removed in Gecko SDK 4.4.0
Gecko SDK 4.4.0 no longer declares these constants from Gecko SDK 4.3.0: ADVERTISER_USE_DEVICE_IDENTITY_IN_PRIVACY, ADVERTISER_USE_FILTER_FOR_CONNECTION_REQUESTS, ADVERTISER_USE_FILTER_FOR_SCAN_REQUESTS, ADVERTISER_USE_NONRESOLVABLE_ADDRESS, CONNECTION_TX_POWER_CHANGE_UNAVAILABLE, CONNECTION_TX_POWER_UNAVAILABLE… Code using them fails to compile or link. Covers 56 names.
Bluetooth LE: types removed in Gecko SDK 4.4.0
Gecko SDK 4.4.0 no longer declares these types from Gecko SDK 4.3.0: advertiser_adv_address_type_t, advertiser_connection_mode_t, advertiser_discovery_mode_t, advertiser_packet_type_t, coex_option_t, connection_power_reporting_mode_t… Code using them fails to compile or link. Covers 56 names.
RAIL radio: functions removed in Gecko SDK 4.3.0
Gecko SDK 4.3.0 no longer declares these functions from Gecko SDK 4.2.0: RAIL_GetFemProtectionConfig, RAIL_GetSetClpcEnable, RAIL_GetSetClpcFastLoop, RAIL_GetSetClpcFastLoopCal, RAIL_GetSetClpcFastLoopCalSlp, RAIL_GetSetEffBypassDwellTimeMs… Code using them fails to compile or link. Covers 45 names.
Zigbee (EmberZNet): types removed in Gecko SDK 4.3.0
Gecko SDK 4.3.0 no longer declares these types from Gecko SDK 4.2.0: EmAddressTableEntry, EmAfCryptoStatus, EmAfGbzPayloadHeader, EmAfGbzUseCaseSpecificComponent, EmAfOtaStorageLinuxConfig, EmAfPageRequestClientStatus… Code using them fails to compile or link. Covers 25 names.
Zigbee (EmberZNet): constants removed in Gecko SDK 4.3.0
Gecko SDK 4.3.0 no longer declares these constants from Gecko SDK 4.2.0: ATTRIBUTE_STORAGE_CONFIGURATION, EMBER_AF_FRAGMENTATION_EVENTS, EMBER_AF_FRAGMENTATION_EVENT_STRINGS, EMBER_INCOMPATIBLE_STATIC_MEMORY_DEFINITIONS, EZSP_BECOME_TRUST_CENTER, GP_ENDPOINT… Code using them fails to compile or link. Covers 24 names.
Zigbee (EmberZNet): headers removed in Gecko SDK 4.4.0
These headers exist in Gecko SDK 4.3.0 and are gone in Gecko SDK 4.4.0: 802-15-4-ccm.h, aes-cmac.h, backchannel.h, ccm-star.h, command-interpreter2.h, command-relay-local.h, command-relay.h, fragment.h… Code that includes them stops compiling. Covers 17 names.
Bluetooth LE: functions removed in Gecko SDK 4.4.0
Gecko SDK 4.4.0 no longer declares these functions from Gecko SDK 4.3.0: fifo_define, sl_btctrl_init_cs_initiator, sl_btctrl_init_cs_reflector, sl_hci_fifo_buffer, sl_hci_fifo_dma_reserve, sl_hci_fifo_dma_set_tail… Code using them fails to compile or link. Covers 16 names.
Peripheral drivers: functions removed in Gecko SDK 4.4.0
Gecko SDK 4.4.0 no longer declares these functions from Gecko SDK 4.3.0: CMU_AUXHFRCOFreqGet, CMU_AUXHFRCOFreqSet, CMU_HFRCOFreqGet, CMU_HFRCOFreqSet, CMU_Log2ToDiv, GPIO_IntConfig… Code using them fails to compile or link. Covers 15 names.
Zigbee (EmberZNet): components removed from Gecko SDK 4.4.0
These SLC components are removed from Gecko SDK 4.4.0: zigbee_aes_cmac, zigbee_binding_table_library, zigbee_ccm_software, zigbee_command_relay, zigbee_end_device_bind_library, zigbee_install_code_library… A project that lists them no longer generates. Covers 15 names.
Zigbee (EmberZNet): types removed in Gecko SDK 4.4.0
Gecko SDK 4.4.0 no longer declares these types from Gecko SDK 4.3.0: BackchannelState, EmberAfPluginCommandRelayDeviceEndpoint, EmberAfPluginCommandRelayEntry, EmberCommandStatus, SecureEzspFrameCounter, SecureEzspMic… Code using them fails to compile or link. Covers 10 names.
Application utilities: headers removed in Gecko SDK 4.3.0
These headers exist in Gecko SDK 4.2.0 and are gone in Gecko SDK 4.3.0: audio_provider.h, command_responder.h, feature_provider.h, main_functions.h, micro_features_generator.h, micro_model_settings.h, micro_speech_model_data.h, tflite_micro_micro_speech.h. Code that includes them stops compiling. Covers 8 names.
Bluetooth Mesh: constants removed in Gecko SDK 4.4.0
Gecko SDK 4.4.0 no longer declares these constants from Gecko SDK 4.3.0: sl_btmesh_cmd_node_clear_statistics_id, sl_btmesh_cmd_node_get_statistics_id, sl_btmesh_cmd_test_get_local_config_id, sl_btmesh_cmd_test_set_local_config_id, sl_btmesh_rsp_node_clear_statistics_id, sl_btmesh_rsp_node_get_statistics_id… Code using them fails to compile or link. Covers 8 names.
Bluetooth LE: functions removed in Gecko SDK 4.3.0
Gecko SDK 4.3.0 no longer declares these functions from Gecko SDK 4.2.0: sl_btctrl_hci_reset, sl_btctrl_hci_reset_events_pending, sl_btctrl_hci_reset_reason_is_sys_reset, sl_hci_uart_get_port_pin, sli_simple_timer_is_ok_to_sleep, sli_simple_timer_sleep_on_isr_exit… Code using them fails to compile or link. Covers 7 names.
Bluetooth LE: components removed from Gecko SDK 4.3.0
These SLC components are removed from Gecko SDK 4.3.0: bluetooth_apploader_migration_util, bluetooth_feature_default, bluetooth_feature_dfu, simple_timer, simple_timer_freertos, simple_timer_freertos_static. A project that lists them no longer generates. Covers 6 names.
Bluetooth Mesh: functions removed in Gecko SDK 4.4.0
Gecko SDK 4.4.0 no longer declares these functions from Gecko SDK 4.3.0: sl_btmesh_factory_reset_on_event, sl_btmesh_node_clear_statistics, sl_btmesh_node_get_statistics, sl_btmesh_set_temperature, sl_btmesh_test_get_local_config, sl_btmesh_test_set_local_config. Code using them fails to compile or link. Covers 6 names.
RAIL radio: types removed in Gecko SDK 4.3.0
Gecko SDK 4.3.0 no longer declares these types from Gecko SDK 4.2.0: EmMacTxMode, HalPtaOptions, RAIL_FemProtectionConfig_t, halPtaGpioIndex_t, halPtaStackEvent_t, halPtaStackStatus_t. Code using them fails to compile or link. Covers 6 names.
SDK: components removed from Gecko SDK 4.4.0
These SLC components are removed from Gecko SDK 4.4.0: btmesh_updating_node, sl_wisun_empty, sl_wisun_lfn_device_support, sl_wisun_socket, zw_appshw_keyfob, zw_role_type_portable_controller. A project that lists them no longer generates. Covers 6 names.
Peripheral drivers: headers removed in Gecko SDK 4.3.0
These headers exist in Gecko SDK 4.2.0 and are gone in Gecko SDK 4.3.0: rtcdriver.h, sl_mvp_math.h, sl_mvp_power.h, sleep.h. Code that includes them stops compiling. Covers 4 names.
SDK: components removed from Gecko SDK 4.3.0
These SLC components are removed from Gecko SDK 4.3.0: ot_remote_cli, zw_cc_multichannelcontrol, zw_cc_multichannelsupport, zw_controller. A project that lists them no longer generates. Covers 4 names.
Security: constants removed in Gecko SDK 4.3.0
Gecko SDK 4.3.0 no longer declares these constants from Gecko SDK 4.2.0: PSA_ERROR_CONNECTION_BUSY, PSA_ERROR_CONNECTION_REFUSED, PSA_ERROR_PROGRAMMER_ERROR, PSA_ERROR_SERVICE_FAILURE. Code using them fails to compile or link. Covers 4 names.
Platform services: components removed from Gecko SDK 4.3.0
These SLC components are removed from Gecko SDK 4.3.0: cmsis_dsp, cpc_config_vcom_eusart, cpc_config_vcom_usart. A project that lists them no longer generates. Covers 3 names.
Platform services: functions removed in Gecko SDK 4.3.0
Gecko SDK 4.3.0 no longer declares these functions from Gecko SDK 4.2.0: sl_iostream_uart_is_ok_to_sleep, emDebugInit, emPrintfInternal. Code using them fails to compile or link. Covers 3 names.
RAIL radio: functions removed in Gecko SDK 4.4.0
Gecko SDK 4.4.0 no longer declares these functions from Gecko SDK 4.3.0: RAIL_BLE_GetHadmIQCaptureBufferLength, RAIL_BLE_SetHadmPacketConfig, RAIL_SetHadmBoardRttOffset. Code using them fails to compile or link. Covers 3 names.
Zigbee (EmberZNet): headers removed in Gecko SDK 4.3.0
These headers exist in Gecko SDK 4.2.0 and are gone in Gecko SDK 4.3.0: ember-static-struct.h, tokens.h, uc-temp-macros.h. Code that includes them stops compiling. Covers 3 names.
Peripheral drivers: components removed from Gecko SDK 4.3.0
These SLC components are removed from Gecko SDK 4.3.0: rtcdrv, sleep. A project that lists them no longer generates. Covers 2 names.
Platform services: constants removed in Gecko SDK 4.4.0
Gecko SDK 4.4.0 no longer declares these constants from Gecko SDK 4.3.0: SL_CPC_APP_DATA_MAX_LENGTH, SLI_MVP_FAULT_FLAG. Code using them fails to compile or link. Covers 2 names.
Platform services: functions removed in Gecko SDK 4.4.0
Gecko SDK 4.4.0 no longer declares these functions from Gecko SDK 4.3.0: halStackRadioPowerMainControl, sli_mvp_util_offset_nhwc. Code using them fails to compile or link. Covers 2 names.
Bluetooth LE: headers removed in Gecko SDK 4.3.0
These headers exist in Gecko SDK 4.2.0 and are gone in Gecko SDK 4.3.0: hci_reset_interface.h. Code that includes them stops compiling.
Bluetooth LE: headers removed in Gecko SDK 4.4.0
These headers exist in Gecko SDK 4.3.0 and are gone in Gecko SDK 4.4.0: sl_hci_fifo.h. Code that includes them stops compiling.
Bluetooth LE: types removed in Gecko SDK 4.3.0
Gecko SDK 4.3.0 no longer declares these types from Gecko SDK 4.2.0: sl_bt_cs_sync_random_t. Code using them fails to compile or link.
Bluetooth Mesh: components removed from Gecko SDK 4.4.0
These SLC components are removed from Gecko SDK 4.4.0: btmesh_stack_advertiser_deprecated. A project that lists them no longer generates.
Gecko Bootloader: functions removed in Gecko SDK 4.4.0
Gecko SDK 4.4.0 no longer declares these functions from Gecko SDK 4.3.0: gbl_getData. Code using them fails to compile or link.
Peripheral drivers: types removed in Gecko SDK 4.4.0
Gecko SDK 4.4.0 no longer declares these types from Gecko SDK 4.3.0: EMU_DcdcModeSetStatus_TypeDef. Code using them fails to compile or link.
Platform services: types removed in Gecko SDK 4.3.0
Gecko SDK 4.3.0 no longer declares these types from Gecko SDK 4.2.0: sl_iostream_descriptor_t. Code using them fails to compile or link.
RAIL radio: types removed in Gecko SDK 4.4.0
Gecko SDK 4.4.0 no longer declares these types from Gecko SDK 4.3.0: RAIL_BLE_HadmPacketConfig_t. Code using them fails to compile or link.
Security: headers removed in Gecko SDK 4.3.0
These headers exist in Gecko SDK 4.2.0 and are gone in Gecko SDK 4.3.0: tfm_nvm3_include.h. Code that includes them stops compiling.
Zigbee (EmberZNet): functions renamed in Gecko SDK 4.3.0
Gecko SDK 4.3.0 renames these functions: emAfAbortPageRequest -> sli_zigbee_af_abort_page_request, emAfApplyDisableDefaultResponse -> sli_zigbee_af_apply_disable_default_response, emAfApplyRetryOverride -> sli_zigbee_af_apply_retry_override, emAfAssertNetworkIndexStackIsEmpty -> sli_zigbee_af_assert_network_index_stack_is_empty, emAfBootloadSendByte -> sli_zigbee_af_bootload_send_byte… Code using the old names no longer compiles. Covers 302 names.
Peripheral drivers: names kept only for compatibility in Gecko SDK 4.4.0
Gecko SDK 4.4.0 keeps these names only in a compatibility header: sl_dcdc_coulomb_counter_cal_init, sl_dcdc_coulomb_counter_cal_start, sl_dcdc_coulomb_counter_cal_stop, sl_dcdc_coulomb_counter_calhalt_is_set, sl_dcdc_coulomb_counter_calibration_config_t, sl_dcdc_coulomb_counter_calibration_load_level_t… They still build, but Silicon Labs' own code moved to the new names and compatibility layers are removed in later releases. Covers 103 names.
Gecko Bootloader: configuration options removed in Gecko SDK 4.3.0
These component configuration options exist in Gecko SDK 4.2.0 and are gone in Gecko SDK 4.3.0: SL_BTL_BUTTON_PIN, SL_BTL_BUTTON_PORT, SL_EUSART_EXTFLASH_CS_LOC, SL_EUSART_EXTFLASH_CS_PIN, SL_EUSART_EXTFLASH_CS_PORT, SL_EUSART_EXTFLASH_PERIPHERAL… Values set for them in the project's config headers or .slcp are ignored, so the behaviour they controlled is silently lost. Covers 64 names.
Platform services: configuration options removed in Gecko SDK 4.4.0
These component configuration options exist in Gecko SDK 4.3.0 and are gone in Gecko SDK 4.4.0: SL_CPC_DRV_SPI_INSTANCE_CLK_LOC, SL_CPC_DRV_SPI_INSTANCE_CLK_PIN, SL_CPC_DRV_SPI_INSTANCE_CLK_PORT, SL_CPC_DRV_SPI_INSTANCE_CS_LOC, SL_CPC_DRV_SPI_INSTANCE_CS_PIN, SL_CPC_DRV_SPI_INSTANCE_CS_PORT… Values set for them in the project's config headers or .slcp are ignored, so the behaviour they controlled is silently lost. Covers 32 names.
RAIL radio: configuration options removed in Gecko SDK 4.3.0
These component configuration options exist in Gecko SDK 4.2.0 and are gone in Gecko SDK 4.3.0: RAIL_UTIL_EFF_MAX_TX_CONTINUOUS_POWER_DBM, RAIL_UTIL_EFF_MAX_TX_DUTY_CYCLE, SL_RAIL_UTIL_EFF_CLPC_FSK_1_CAL1, SL_RAIL_UTIL_EFF_CLPC_FSK_1_CAL1_DDBM, SL_RAIL_UTIL_EFF_CLPC_FSK_1_CAL2, SL_RAIL_UTIL_EFF_CLPC_FSK_1_CAL2_DDBM… Values set for them in the project's config headers or .slcp are ignored, so the behaviour they controlled is silently lost. Covers 18 names.
Bluetooth Mesh: configuration options removed in Gecko SDK 4.4.0
These component configuration options exist in Gecko SDK 4.3.0 and are gone in Gecko SDK 4.4.0: SL_BTMESH_BLOB_TRANSFER_CLIENT_RETRY_MAX_DEFAULT_CFG_VAL, SL_BTMESH_BLOB_TRANSFER_CLIENT_RETRY_TIME_MS_DEFAULT_CFG_VAL, SL_BTMESH_BLOB_TRANSFER_SERVER_LPN_HIGH_THROUGHPUT_MODE_CFG_VAL, SL_BTMESH_BLOB_TRANSFER_SERVER_LPN_MODE_CFG_VAL, SL_BTMESH_BLOB_TRANSFER_SERVER_LPN_POLL_DELAY_MS_CFG_VAL, SL_BTMESH_BLOB_TRANSFER_SERVER_LPN_POLL_LOGGING_CFG_VAL… Values set for them in the project's config headers or .slcp are ignored, so the behaviour they controlled is silently lost. Covers 15 names.
Bluetooth LE: functions deprecated in Gecko SDK 4.4.0
Gecko SDK 4.4.0 marks these functions as deprecated: sl_bt_connection_get_rssi, sl_bt_rtos_event_wait, sl_bt_rtos_get_event, sl_bt_rtos_has_event_waiting, sl_bt_rtos_set_event_handled. They still build with a warning and are removed in a later release. Covers 5 names.
Zigbee (EmberZNet): configuration options removed in Gecko SDK 4.4.0
These component configuration options exist in Gecko SDK 4.3.0 and are gone in Gecko SDK 4.4.0: EMBER_AF_PLUGIN_COMMAND_RELAY_RELAY_TABLE_SIZE, EMBER_AF_PLUGIN_GREEN_POWER_SERVER_HIDDEN_PROXY_ZCL_MESSAGE_SRC_ENDPOINT, EMBER_AF_PLUGIN_SECURE_EZSP_PERMANENT_SECURITY_KEY, EMBER_AF_PLUGIN_SECURE_EZSP_SETUP_SECURITY_ON_INIT, EMBER_END_DEVICE_BIND_TIMEOUT. Values set for them in the project's config headers or .slcp are ignored, so the behaviour they controlled is silently lost. Covers 5 names.
Bluetooth LE: functions deprecated in Gecko SDK 4.3.0
Gecko SDK 4.3.0 marks these functions as deprecated: sl_bt_gap_enable_whitelisting, sl_bt_sm_add_to_whitelist, sl_bt_sync_open, sl_bt_sync_set_parameters. They still build with a warning and are removed in a later release. Covers 4 names.
Peripheral drivers: functions removed in Gecko SDK 4.3.0
Gecko SDK 4.3.0 no longer declares these functions from Gecko SDK 4.2.0: SLI_MVP_ALUIN, sli_mvp_config, sli_mvp_execute, sli_mvp_wait_for_completion. Code using them fails to compile or link. Covers 4 names.
Platform services: configuration options removed in Gecko SDK 4.3.0
These component configuration options exist in Gecko SDK 4.2.0 and are gone in Gecko SDK 4.3.0: SL_CPC_DRV_SPI_INSTANCE_BITRATE, SL_CPC_DRV_SPI_INSTANCE_CS_FALLING_EDGE_INT_NO, SL_CPC_DRV_SPI_INSTANCE_CS_RISING_EDGE_INT_NO, SL_POWER_MANAGER_LOWEST_EM_ALLOWED. Values set for them in the project's config headers or .slcp are ignored, so the behaviour they controlled is silently lost. Covers 4 names.
Bluetooth Mesh: functions deprecated in Gecko SDK 4.4.0
Gecko SDK 4.4.0 marks these functions as deprecated: sl_btmesh_node_get_networks, sl_btmesh_test_set_sar_config, sl_btmesh_test_set_segment_send_delay. They still build with a warning and are removed in a later release. Covers 3 names.
RAIL radio: configuration options removed in Gecko SDK 4.4.0
These component configuration options exist in Gecko SDK 4.3.0 and are gone in Gecko SDK 4.4.0: OPENTHREAD_SPINEL_CONFIG_TX_WAIT_TIME_SECS, SL_RAIL_UTIL_INIT_BLE_SUPPORT_INSTANCE_ENABLE, SL_RAIL_UTIL_INIT_SCHEDULER_SUPPORT_INSTANCE_ENABLE. Values set for them in the project's config headers or .slcp are ignored, so the behaviour they controlled is silently lost. Covers 3 names.
Peripheral drivers: configuration options removed in Gecko SDK 4.3.0
These component configuration options exist in Gecko SDK 4.2.0 and are gone in Gecko SDK 4.3.0: EMDRV_RTCDRV_NUM_TIMERS, EMDRV_RTCDRV_USE_LFRCO. Values set for them in the project's config headers or .slcp are ignored, so the behaviour they controlled is silently lost. Covers 2 names.
Bluetooth LE: components deprecated in Gecko SDK 4.3.0
These SLC components are deprecated in Gecko SDK 4.3.0: bluetooth_feature_whitelisting. They still work but are removed in a later release.
Component ot_thirdparty replaced by ot_mbedtls in Gecko SDK 4.4.0
The ot_thirdparty component has been deprecated. Replacing with ot_mbedtls directly.
Component psa_its changed in Gecko SDK 4.2.1
Disabled the V3 ITS driver by default. See 'SL_PSA_ITS_SUPPORT_V3_DRIVER' 'psa_crypto_config.h' and consider opting in manually.
Component simple_timer_micriumos replaced by app_timer_micriumos in Gecko SDK 4.3.0
The Simple Timer (Micrium RTOS) component has been modified and moved.
Configuration option EMBER_GP_PROXY_TABLE_TOKEN_SIZE removed in Gecko SDK 4.4.0
EMBER_GP_PROXY_TABLE_TOKEN_SIZE is no longer used from Gecko SDK 4.4.0.
Configuration option EMBER_GP_SINK_TABLE_TOKEN_SIZE removed in Gecko SDK 4.4.0
EMBER_GP_SINK_TABLE_TOKEN_SIZE is no longer used from Gecko SDK 4.4.0.
Peripheral drivers: functions deprecated in Gecko SDK 4.4.0
Gecko SDK 4.4.0 marks these functions as deprecated: SE_readPubkey. They still build with a warning and are removed in a later release.
And 6 more changes, all checked by the scan.
What a scan of this path also reviews
Beyond the documented changes, Migratorisk reviews these upgrade risks for Silicon Labs SDK projects on this path. Each one is reported only when the project shows the trigger.
Field updates must still be accepted by the bootloader on deployed devices
When it applies: The application updates itself in the field (OTA DFU, AppLoader, Zigbee OTA or Mesh DFU) through the Gecko Bootloader already on each device.
Why it matters: New releases change stack sizes and defaults, often growing the image; the new application must still fit the bootloader's download slot and use the same signing keys.
What to do: Keep the GBL signing and encryption keys, the storage slot layout and the application start address; check the new image size against the download slot; rehearse an update from the production firmware and bootloader.
SDK extensions must move to versions built for the target SDK
When it applies: The project uses SDK extensions (for example Matter, WiSeConnect or AI/ML) on top of the Silicon Labs SDK.
Why it matters: Each extension release is built and tested against one SDK release. Mixing versions fails to generate or builds an untested combination.
What to do: Pick the extension release that names the target SDK in its release notes and upgrade it together with the SDK.
A copy of the SDK lives inside the project
When it applies: The project contains a copied Gecko or Simplicity SDK folder instead of linking to an installed SDK.
Why it matters: An upgrade does not touch the copy. Local patches to it are easily lost or silently kept, and the build may mix old and new SDK files.
What to do: List local changes to the copied SDK (diff it against the matching release), then replace the copy with the target SDK and re-apply only the changes still needed.
Zigbee host and NCP must be upgraded together
When it applies: The project is a Zigbee host application that talks to an NCP over EZSP.
Why it matters: EZSP versions change between SDK releases; a host only talks to an NCP built with a compatible stack.
What to do: Upgrade host and NCP firmware as one release, and make sure the host can still reflash an NCP that runs the old firmware.
Updating the Gecko Bootloader itself
When it applies: The repository builds a Gecko Bootloader with the SDK.
Why it matters: A new bootloader must keep the storage layout, keys and application interface of the one on deployed devices, and it can only be replaced in the field if the bootloader upgrade path was planned.
What to do: Decide whether deployed devices keep their current bootloader (usual) or receive a bootloader upgrade; if so, test the upgrade image on production devices before release.
The project must be upgraded and regenerated with SLC
When it applies: Silicon Labs projects are generated from the .slcp by SLC (Simplicity Studio or slc-cli).
Why it matters: New releases rename, split and remove components and configuration options (Silicon Labs' upgrade rules apply most of these automatically), and regenerate autogen/ and config headers.
What to do: Run the project upgrade (Simplicity Studio's Upgrade, or slc upgrade) on a clean branch, regenerate, then review the diff of config/ and the .slcp before touching application code. Never keep hand edits in autogen/.
Stored data must survive the update
When it applies: The firmware keeps data in NVM3 or tokens (network keys, bonding data, Mesh provisioning, application settings).
Why it matters: Stack releases occasionally change stored data formats (for example the Bluetooth Mesh model storage format in 2025.6); data written by the old firmware must still be read correctly.
What to do: Update a device that has real stored data (joined network, bonded phone, provisioned node) from the production firmware and check it keeps working without re-pairing or re-commissioning.
Check the Secure Engine firmware required by the target SDK
When it applies: The project targets a Series 2 device, whose Secure Engine runs its own firmware.
Why it matters: Newer SDKs are released with a matching Secure Engine firmware version; security features and some PSA Crypto behaviour depend on it, and devices in the field keep the SE firmware they shipped with unless it is updated.
What to do: Compare the SE firmware version on production devices with the one in the target SDK's platform release notes, and decide whether the update must include an SE firmware upgrade.
VelocityCreate
Want us to handle the upgrade?
VelocityCreate can review your assessment, agree on the migration scope, and carry out the firmware changes and agreed verification. Discuss your deadline, hardware, and requirements with an embedded engineer.
Discuss my migrationBook a technical callThe initial discussion is free. Implementation is quoted separately.
Related upgrade paths
- Gecko SDK 4.4 to Simplicity SDK 2024.6
- Gecko SDK 4.2 to Simplicity SDK 2024.6
- Gecko SDK 4.4 to Simplicity SDK 2025.6
Generated from the rule catalog of Migratorisk 0.3.0. This is an automated summary of published SDK changes, not a review of your project, and it does not replace builds and device tests. How the scanner is validated.