Home › SDK migration

SDK upgrade guide

Zephyr 4.3 to Zephyr 4.4: what needs attention

Migratorisk's knowledge base lists 37 documented changes between Zephyr 4.3 and Zephyr 4.4. 36 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.

37documented changes
36rated will or likely to break
11review checks on this path

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 zephyr-4.3.0 --to zephyr-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 instead

Where the changes are

Build settings · 27Hardware description · 6Application code · 3Custom board support · 1

What changes between Zephyr 4.3 and Zephyr 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.

Likely to break

Devicetree compatibles microchip,ksz8463 and 2 more were removed

Hardware description · Zephyr 4.4.0 · Source

CONFIG_NET_DSA_DEPRECATED has been removed. The drivers for the compatibles microchip,ksz8463, microchip,ksz8794 and microchip,ksz8863 were removed, as they haven't been migrated to the new DSA subsystem. Covers 3 names.

Likely to break

Devicetree compatibles solomon,ssd1327fb and 2 more were renamed

Hardware description · Zephyr 4.4.0 · Source

solomon,ssd1327fb, solomon,ssd1306fb and solomon,ssd1309fb devicetree compatibles have been renamed solomon,ssd1327, solomon,ssd1306 and solomon,ssd1309 respectively, to harmonize with other display controllers and eliminate the zephyr-irrelevant fb suffix. Covers 3 names.

Likely to break

Kconfig options CONFIG_CAN_MAX_FILTER and 2 more were replaced

Build settings · Zephyr 4.4.0 · Source

Removed CONFIG_CAN_MAX_FILTER, CONFIG_CAN_MAX_STD_ID_FILTER, CONFIG_CAN_MAX_EXT_ID_FILTER. These are replaced by the following driver-specific Kconfig symbols, some of which have had their default value increased to meet typical software needs:. Covers 3 names.

Likely to break

Kconfig options CONFIG_LINKER_USE_PINNED_SECTION and 1 more were removed

Build settings · Zephyr 4.4.0 · Source

The __pinned_* attribute family and the CONFIG_LINKER_USE_PINNED_SECTION / CONFIG_LINKER_GENERIC_SECTIONS_PRESENT_AT_BOOT Kconfig options are gone. The kernel image is now always resident in physical memory; demand paging applies only to anonymous mappings created via k_mem_map and to symbols placed in the __ondemand_* linker sections via CONFIG_LINKER_USE_ONDEMAND_SECTION. Covers 2 names.

Likely to break

Kconfig options CONFIG_SDL_DISPLAY_DEFAULT_PIXEL_FORMAT_BGR_565 and 1 more were renamed

Build settings · Zephyr 4.4.0 · Source

The Kconfig options CONFIG_SDL_DISPLAY_DEFAULT_PIXEL_FORMAT_BGR_565 and CONFIG_ST7789V_BGR565 have been renamed to CONFIG_SDL_DISPLAY_DEFAULT_PIXEL_FORMAT_RGB_565X and CONFIG_ST7789V_RGB565X respectively. Covers 2 names.

Likely to break

API http_data_status was renamed

Application code · Zephyr 4.4.0 · Source

The enum for HTTP server transaction status has been renamed from http_data_status to http_transaction_status to better reflect its purpose.

Likely to break

API uvc_add_format was renamed

Application code · Zephyr 4.4.0 · Source

uvc_add_format has been renamed to uvc_device_add_format.

Likely to break

API uvc_set_video_dev was renamed

Application code · Zephyr 4.4.0 · Source

uvc_set_video_dev has been renamed to uvc_device_init.

Likely to break

Devicetree compatible ilitek,ili9806e-dsi was renamed

Hardware description · Zephyr 4.4.0 · Source

The devicetree compatible ilitek,ili9806e-dsi was renamed. Use ilitek,ili9806e instead.

Likely to break

Devicetree compatible st,refresh was removed

Hardware description · Zephyr 4.4.0 · Source

st,stm32-xspi-psram and st,stm32-ospi-psram compatible nodes now need to include the st,refresh property to specify the PSRAM refresh rate in number of memory clock cycles. Hard-coded default values in drivers, of 320 (st,stm32-xspi-psram) and 129 (st,stm32-ospi-psram), have been removed.

Likely to break

Devicetree compatible waveshare,7inch-dsi-lcd-c was replaced

Hardware description · Zephyr 4.4.0 · Source

waveshare,7inch-dsi-lcd-c devicetree compatible has been replaced by waveshare,dsi2dpi, and CONFIG_WAVESHARE_7INCH_DSI_LCD_C option has been replaced by CONFIG_WAVESHARE_DSI2DPI.

Likely to break

Kconfig option CONFIG_ARCH_HAS_COHERENCE was renamed

Build settings · Zephyr 4.4.0 · Source

Renamed CONFIG_ARCH_HAS_COHERENCE to CONFIG_CACHE_CAN_SAY_MEM_COHERENCE as the feature is cache related so move it under cache.

Likely to break

Kconfig option CONFIG_BT_TBS_SUPPORTED_FEATURES was removed

Build settings · Zephyr 4.4.0 · Source

CONFIG_BT_TBS_SUPPORTED_FEATURES has been removed. Applications should use the defined macros BT_TBS_FEATURE_HOLD and BT_TBS_FEATURE_JOIN to set their supported features.

Likely to break

Kconfig option CONFIG_CAN_MAX_MB was replaced

Build settings · Zephyr 4.4.0 · Source

Replaced Kconfig option CONFIG_CAN_MAX_MB for nxp,flexcan and nxp,flexcan-fd with per-instance a number-of-mb devicetree property.

Likely to break

Kconfig option CONFIG_CAN_MCUX_MCAN was renamed

Build settings · Zephyr 4.4.0 · Source

Renamed the NXP LPC family MCAN driver Kconfig option CONFIG_CAN_MCUX_MCAN to CONFIG_CAN_NXP_LPC_MCAN as this driver is not based on the NXP MCUXpresso HAL.

Likely to break

Kconfig option CONFIG_CSPRNG_AVAILABLE was renamed

Build settings · Zephyr 4.4.0 · Source

CONFIG_CSPRNG_AVAILABLE has been renamed to CONFIG_ENTROPY_NODE_ENABLED.

Likely to break

Kconfig option CONFIG_ETH_SAM_GMAC_MAC_I2C_EEPROM was removed

Build settings · Zephyr 4.4.0 · Source

Removed CONFIG_ETH_SAM_GMAC_MAC_I2C_EEPROM.

Likely to break

Kconfig option CONFIG_ETH_SAM_GMAC_MAC_I2C_INT_ADDRESS was removed

Build settings · Zephyr 4.4.0 · Source

Removed CONFIG_ETH_SAM_GMAC_MAC_I2C_INT_ADDRESS.

Likely to break

Kconfig option CONFIG_ETH_SAM_GMAC_MAC_I2C_INT_ADDRESS_SIZE was removed

Build settings · Zephyr 4.4.0 · Source

Removed CONFIG_ETH_SAM_GMAC_MAC_I2C_INT_ADDRESS_SIZE.

Likely to break

Kconfig option CONFIG_FLASH_AREA_CHECK_INTEGRITY_MBEDTLS was removed

Build settings · Zephyr 4.4.0 · Source

Previously deprecated CONFIG_FLASH_AREA_CHECK_INTEGRITY_MBEDTLS is now removed.

Likely to break

Kconfig option CONFIG_FLASH_AREA_CHECK_INTEGRITY_PSA was removed

Build settings · Zephyr 4.4.0 · Source

CONFIG_FLASH_AREA_CHECK_INTEGRITY_PSA is also removed since there is now no alternative for the crypto library backend.

Likely to break

Kconfig option CONFIG_HAWKBIT_DDI_NO_SECURITY was removed

Build settings · Zephyr 4.4.0 · Source

The deprecated Kconfig option CONFIG_HAWKBIT_DDI_NO_SECURITY has been removed.

Likely to break

Kconfig option CONFIG_JWT_SIGN_RSA_LEGACY was removed

Build settings · Zephyr 4.4.0 · Source

Previously deprecated CONFIG_JWT_SIGN_RSA_LEGACY is removed. This removal occurred before the usual deprecation period of 2 releases because it has been agreed that Mbed TLS is an external module, so normal deprecation rules do not apply in this case.

Likely to break

Kconfig option CONFIG_MBEDTLS_ENTROPY_POLL_ZEPHYR was renamed

Build settings · Zephyr 4.4.0 · Source

CONFIG_MBEDTLS_ENTROPY_POLL_ZEPHYR has been renamed to CONFIG_MBEDTLS_PSA_DRIVER_GET_ENTROPY.

Likely to break

Kconfig option CONFIG_MBEDTLS_PEM_CERTIFICATE_FORMAT was replaced

Build settings · Zephyr 4.4.0 · Source

CONFIG_MBEDTLS_PEM_CERTIFICATE_FORMAT has been replaced by the underlying options it used to enable: CONFIG_MBEDTLS_PEM_PARSE_C, CONFIG_MBEDTLS_PEM_WRITE_C and CONFIG_MBEDTLS_BASE64_C.

Likely to break

Kconfig option CONFIG_MBEDTLS_SERVER_NAME_INDICATION was renamed

Build settings · Zephyr 4.4.0 · Source

CONFIG_MBEDTLS_SERVER_NAME_INDICATION has been renamed to CONFIG_MBEDTLS_SSL_SERVER_NAME_INDICATION.

Likely to break

Kconfig option CONFIG_MBEDTLS_TEST was renamed

Build settings · Zephyr 4.4.0 · Source

CONFIG_MBEDTLS_TEST has been renamed to CONFIG_MBEDTLS_DEBUG_C.

Likely to break

Kconfig option CONFIG_NET_DSA_DEPRECATED was removed

Build settings · Zephyr 4.4.0 · Source

CONFIG_NET_DSA_DEPRECATED has been removed. The drivers for the compatibles microchip,ksz8463, microchip,ksz8794 and microchip,ksz8863 were removed, as they haven't been migrated to the new DSA subsystem.

Likely to break

Kconfig option CONFIG_OPENTHREAD_CRYPTO_LEGACY_MBEDTLS_CONFIG was removed

Build settings · Zephyr 4.4.0 · Source

Following Mbed TLS bump to version 4.1.0, legacy crypto support is no longer available in Zephyr. Therefore CONFIG_OPENTHREAD_CRYPTO_LEGACY_MBEDTLS_CONFIG has been removed. CONFIG_OPENTHREAD_CRYPTO_PSA_CONFIG was already the default choice for crypto support and it is now the only supported crypto option.

Likely to break

Kconfig option CONFIG_SETTINGS_TFM_ITS was renamed

Build settings · Zephyr 4.4.0 · Source

CONFIG_SETTINGS_TFM_ITS has been renamed to CONFIG_SETTINGS_TFM_PSA.

Likely to break

Kconfig option CONFIG_SPI_STM32_USE_HW_SS was removed

Build settings · Zephyr 4.4.0 · Source

The Kconfig option CONFIG_SPI_STM32_USE_HW_SS has been removed. SPI operation mode is now selected automatically based on devicetree configuration: instances with either of the cs-gpios or new st,soft-nss property operate in "Soft NSS" mode, while all other instances operate in "Hard NSS" mode.

Likely to break

Kconfig option CONFIG_SSD1327 was renamed

Build settings · Zephyr 4.4.0 · Source

CONFIG_SSD1327 symbol has been renamed to CONFIG_SSD1327_5 to include SSD1325 as well.

Likely to break

Kconfig option CONFIG_VIDEO_HIMAX_HM01B0 was renamed

Build settings · Zephyr 4.4.0 · Source

CONFIG_VIDEO_HIMAX_HM01B0 has been renamed to CONFIG_VIDEO_HM01B0.

Likely to break

Kconfig option CONFIG_VIDEO_OV7670 was replaced

Build settings · Zephyr 4.4.0 · Source

CONFIG_VIDEO_OV7670 is now gone and replaced by CONFIG_VIDEO_OV767X. This allows supporting both the OV7670 and 0V7675.

Likely to break

Kconfig option CONFIG_WAVESHARE_7INCH_DSI_LCD_C was replaced

Build settings · Zephyr 4.4.0 · Source

waveshare,7inch-dsi-lcd-c devicetree compatible has been replaced by waveshare,dsi2dpi, and CONFIG_WAVESHARE_7INCH_DSI_LCD_C option has been replaced by CONFIG_WAVESHARE_DSI2DPI.

Likely to break

board.yml entries must declare full_name

Custom board support · Zephyr 4.4.0 · Source

Zephyr 4.4 makes the full_name property of board entries in board.yml required; board lookup fails with 'Malformed board YAML file' otherwise.

Worth checking

Devicetree compatible zephyr,code-partition is deprecated

Hardware description · Zephyr 4.4.0 · Source

Boards that use CONFIG_USE_DT_CODE_PARTITION or have a zephyr,code-partition chosen node set should now use the new zephyr,mapped-partition compatible.

What a scan of this path also reviews

Beyond the documented changes, Migratorisk reviews these upgrade risks for Zephyr projects on this path. Each one is reported only when the project shows the trigger.

Zephyr build logs need first-error triage after version changes

When it applies: Build logs often contain the highest-confidence migration breakage evidence.

Why it matters: First errors identify missing headers, renamed APIs, devicetree binding errors, and Kconfig failures.

What to do: Fix the first build error before chasing downstream compile or linker failures.

Zephyr devicetree and board files need target-version review

When it applies: Custom board and overlay files may depend on bindings or hardware model conventions from the source release.

Why it matters: Devicetree binding and board model changes commonly block Zephyr upgrades.

What to do: Validate custom board files, overlays, chosen nodes, and bindings against the target Zephyr release.

Zephyr Kconfig symbols need target-version review

When it applies: Project Kconfig files may contain symbols renamed, removed, or moved across Zephyr releases.

Why it matters: Zephyr version jumps often expose configuration drift before source changes compile.

What to do: Compare project Kconfig symbols against the target Zephyr release notes and build output.

Devicetree binding error in build log

When it applies: The build log reports a devicetree binding error.

Why it matters: Compatibles and bindings are renamed or split between releases; overlay and board errors must be fixed before source errors are meaningful.

What to do: Update overlays and board files to the target release bindings before addressing source errors.

Undefined Kconfig symbol in build log

When it applies: The build log reports an assignment to an undefined Kconfig symbol.

Why it matters: Zephyr renames and removes Kconfig options between releases, and Kconfig warnings abort the build before later errors appear.

What to do: Look up each undefined symbol in the migration guide of every release on the path and replace or remove it.

Zephyr source APIs need migration review

When it applies: Application source may use APIs whose signatures or headers changed between Zephyr releases.

Why it matters: Source API drift is common across major and multi-minor jumps.

What to do: Review source includes, driver APIs, Bluetooth APIs, kernel APIs, and subsystem-specific migration notes.

Zephyr west manifest revisions need target-version review

When it applies: Project manifests may pin modules that are incompatible with the target Zephyr release.

Why it matters: Module revisions, imports, and remotes can silently keep old APIs in the workspace.

What to do: Align manifest remotes, imports, and module revisions to the target Zephyr baseline.

Custom board needs the target Zephyr release devicetree and Kconfig review

When it applies: The project contains a custom board definition.

Why it matters: Board files track SoC devicetree, pinctrl, Kconfig and hardware model changes between releases.

What to do: Compare the custom board with a similar in-tree board in the target release (board.yml, chosen nodes, pinctrl, partitions, SoC Kconfig).

Verify OTA from the current field firmware

When it applies: The project uses MCUboot, so devices in the field keep their current bootloader after the upgrade.

Why it matters: The upgraded image must still be accepted by the existing bootloader (signature type, key, slot layout and image header).

What to do: Keep the signing key, signature type and slot layout unchanged, and test an OTA update from the current production image on hardware.

West manifest pins an older Zephyr revision

When it applies: west.yml pins a Zephyr or module revision.

Why it matters: The manifest must point at the target release, and pinned modules (HALs, MCUboot, Mbed TLS) must match it.

What to do: Update the zephyr revision in west.yml to the target tag, re-check pinned modules, then run west update.

Fix the first build error first

When it applies: The build log contains errors.

Why it matters: Later errors in an SDK upgrade are often caused by the first configuration or devicetree failure.

What to do: Resolve the first reported error, rebuild, and re-run the scan with the new build log.

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 call

The initial discussion is free. Implementation is quoted separately.

Related upgrade paths

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.