Skip to content

[silabs] Add zephyr examples platform code #40001

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged

Conversation

jepenven-silabs
Copy link
Contributor

Summary

Add the base platform code needed to support Zephyr with Silabs parts

not able to compile yet on CSA repo as this is PR 3 of 4

Related issues

None

Testing

Tested internally at Silicon Labs

Copy link
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request adds the base platform code for supporting Zephyr with Silicon Labs parts. This includes base classes for application tasks and CLI, a device manager, and callback handlers. The changes are extensive as they introduce a new platform layer.

My review focuses on correctness, maintainability, and adherence to the project's style. I've found a critical issue that will cause a compilation failure due to a re-defined variable. I've also pointed out several typos in comments and a function name, a potential robustness issue in CLI command parsing, and some unreachable code. Applying these suggestions should improve the quality and robustness of the new platform code.

Copy link

github-actions bot commented Jul 14, 2025

PR #40001: Size comparison from 1283920 to 4498114

Full report (11 builds for cc13x4_26x4, cc32xx, qpg, stm32, tizen)
platform target config section 1283920 4498114 change % change
cc13x4_26x4 lighting-app LP_EM_CC1354P10_6 FLASH 765048 765048 0 0.0
RAM 103336 103336 0 0.0
lock-ftd LP_EM_CC1354P10_6 FLASH 776420 776420 0 0.0
RAM 108504 108504 0 0.0
pump-app LP_EM_CC1354P10_6 FLASH 722752 722752 0 0.0
RAM 96908 96908 0 0.0
pump-controller-app LP_EM_CC1354P10_6 FLASH 707044 707044 0 0.0
RAM 97116 97116 0 0.0
cc32xx air-purifier CC3235SF_LAUNCHXL FLASH 548818 548818 0 0.0
RAM 205104 205104 0 0.0
lock CC3235SF_LAUNCHXL FLASH 581794 581794 0 0.0
RAM 205304 205304 0 0.0
qpg lighting-app qpg6200+debug FLASH 744184 744184 0 0.0
RAM 94252 94252 0 0.0
lock-app qpg6200+debug FLASH 753804 753804 0 0.0
RAM 94280 94280 0 0.0
stm32 light STM32WB5MM-DK FLASH 465236 465236 0 0.0
RAM 141336 141336 0 0.0
tizen all-clusters-app arm unknown 5096 5096 0 0.0
FLASH 1695632 1695632 0 0.0
RAM 91404 91404 0 0.0
chip-tool-ubsan arm unknown 20800 20800 0 0.0
FLASH 21098370 21098370 0 0.0
RAM 9178412 9178412 0 0.0

@jepenven-silabs jepenven-silabs force-pushed the zephyr_examples_platform_code branch from 4498114 to 9672f62 Compare July 14, 2025 16:27
Copy link

github-actions bot commented Jul 14, 2025

PR #40001: Size comparison from e560a10 to 9672f62

Full report (70 builds for bl602, bl702, bl702l, cc13x4_26x4, cc32xx, efr32, esp32, linux, nrfconnect, nxp, psoc6, qpg, stm32, telink, tizen)
platform target config section e560a10 9672f62 change % change
bl602 lighting-app bl602+mfd+littlefs+rpc FLASH 1102628 1102628 0 0.0
RAM 178970 178970 0 0.0
bl702 lighting-app bl702+eth FLASH 656030 656030 0 0.0
RAM 134929 134929 0 0.0
bl702+wifi FLASH 833218 833218 0 0.0
RAM 124469 124469 0 0.0
bl706+mfd+rpc+littlefs FLASH 1065336 1065336 0 0.0
RAM 117341 117341 0 0.0
bl702l contact-sensor-app bl702l+mfd+littlefs FLASH 894882 894882 0 0.0
RAM 105628 105628 0 0.0
lighting-app bl702l+mfd+littlefs FLASH 978600 978600 0 0.0
RAM 109820 109820 0 0.0
cc13x4_26x4 lighting-app LP_EM_CC1354P10_6 FLASH 765048 765048 0 0.0
RAM 103336 103336 0 0.0
lock-ftd LP_EM_CC1354P10_6 FLASH 776420 776420 0 0.0
RAM 108504 108504 0 0.0
pump-app LP_EM_CC1354P10_6 FLASH 722752 722752 0 0.0
RAM 96908 96908 0 0.0
pump-controller-app LP_EM_CC1354P10_6 FLASH 707044 707044 0 0.0
RAM 97116 97116 0 0.0
cc32xx air-purifier CC3235SF_LAUNCHXL FLASH 548818 548818 0 0.0
RAM 205104 205104 0 0.0
lock CC3235SF_LAUNCHXL FLASH 581794 581794 0 0.0
RAM 205304 205304 0 0.0
efr32 lock-app BRD4187C FLASH 956600 956600 0 0.0
RAM 126532 126532 0 0.0
BRD4338a FLASH 751132 751132 0 0.0
RAM 251880 251880 0 0.0
window-app BRD4187C FLASH 1049512 1049512 0 0.0
RAM 122728 122728 0 0.0
esp32 all-clusters-app c3devkit DRAM 102232 102232 0 0.0
FLASH 1780566 1780566 0 0.0
IRAM 83862 83862 0 0.0
m5stack DRAM 121116 121116 0 0.0
FLASH 1747870 1747870 0 0.0
IRAM 117071 117071 0 0.0
linux air-purifier-app debug unknown 4856 4856 0 0.0
FLASH 2793704 2793704 0 0.0
RAM 117192 117192 0 0.0
all-clusters-app debug unknown 5672 5672 0 0.0
FLASH 6195744 6195744 0 0.0
RAM 532016 532016 0 0.0
all-clusters-minimal-app debug unknown 5536 5536 0 0.0
FLASH 5470648 5470648 0 0.0
RAM 227848 227848 0 0.0
bridge-app debug unknown 5568 5568 0 0.0
FLASH 4804860 4804860 0 0.0
RAM 207552 207552 0 0.0
camera-app debug unknown 8976 8976 0 0.0
FLASH 6945307 6945307 0 0.0
RAM 230592 230592 0 0.0
camera-controller debug unknown 9216 9216 0 0.0
FLASH 14388171 14388171 0 0.0
RAM 662456 662456 0 0.0
chip-tool debug unknown 6272 6272 0 0.0
FLASH 14760385 14760385 0 0.0
RAM 656096 656096 0 0.0
chip-tool-ipv6only arm64 unknown 40736 40736 0 0.0
FLASH 12730631 12730631 0 0.0
RAM 702360 702360 0 0.0
closure-app debug unknown 5536 5536 0 0.0
FLASH 4787716 4787716 0 0.0
RAM 200424 200424 0 0.0
fabric-admin debug unknown 5952 5952 0 0.0
FLASH 12803205 12803205 0 0.0
RAM 655128 655128 0 0.0
fabric-bridge-app debug unknown 4816 4816 0 0.0
FLASH 4590190 4590190 0 0.0
RAM 193264 193264 0 0.0
fabric-sync debug unknown 5064 5064 0 0.0
FLASH 5738957 5738957 0 0.0
RAM 492528 492528 0 0.0
lighting-app debug+rpc+ui unknown 6280 6280 0 0.0
FLASH 5691649 5691649 0 0.0
RAM 209816 209816 0 0.0
lock-app debug unknown 5496 5496 0 0.0
FLASH 4833572 4833572 0 0.0
RAM 197032 197032 0 0.0
ota-provider-app debug unknown 4856 4856 0 0.0
FLASH 4444046 4444046 0 0.0
RAM 185952 185952 0 0.0
ota-requestor-app debug unknown 4736 4736 0 0.0
FLASH 4516210 4516210 0 0.0
RAM 188824 188824 0 0.0
shell debug unknown 4288 4288 0 0.0
FLASH 3073436 3073436 0 0.0
RAM 147184 147184 0 0.0
thermostat-no-ble arm64 unknown 9832 9832 0 0.0
FLASH 4233599 4233599 0 0.0
RAM 233192 233192 0 0.0
tv-app debug unknown 5832 5832 0 0.0
FLASH 6103805 6103805 0 0.0
RAM 616808 616808 0 0.0
tv-casting-app debug unknown 5352 5352 0 0.0
FLASH 12906653 12906653 0 0.0
RAM 772592 772592 0 0.0
nrfconnect all-clusters-app nrf52840dk_nrf52840 FLASH 888064 888064 0 0.0
RAM 166122 166122 0 0.0
nrf7002dk_nrf5340_cpuapp FLASH 897204 897204 0 0.0
RAM 145060 145060 0 0.0
all-clusters-minimal-app nrf52840dk_nrf52840 FLASH 858388 858388 0 0.0
RAM 141014 141014 0 0.0
light-switch-app nrf52840dk_nrf52840 FLASH 793316 793316 0 0.0
RAM 131218 131218 0 0.0
nrf7002dk_nrf5340_cpuapp FLASH 958732 958732 0 0.0
RAM 113916 113916 0 0.0
lighting-app nrf52840dk_nrf52840+rpc FLASH 849740 849740 0 0.0
RAM 142338 142338 0 0.0
nrf52840dongle_nrf52840 FLASH 788176 788176 0 0.0
RAM 150157 150157 0 0.0
nrf5340dk_nrf5340_cpuapp FLASH 747000 747000 0 0.0
RAM 141633 141633 0 0.0
nrf7002dk_nrf5340_cpuapp FLASH 958732 958732 0 0.0
RAM 113916 113916 0 0.0
lock-app nrf52840dk_nrf52840 FLASH 782700 782700 0 0.0
RAM 131763 131763 0 0.0
nrf5340dk_nrf5340_cpuapp FLASH 710284 710284 0 0.0
RAM 132206 132206 0 0.0
nrf7002dk_nrf5340_cpuapp FLASH 949068 949068 0 0.0
RAM 114461 114461 0 0.0
pump-app nrf52840dk_nrf52840 FLASH 761120 761120 0 0.0
RAM 130465 130465 0 0.0
pump-controller-app nrf52840dk_nrf52840 FLASH 746732 746732 0 0.0
RAM 130224 130224 0 0.0
nxp contact mcxw71+release FLASH 624744 624744 0 0.0
RAM 63132 63132 0 0.0
lock mcxw71+release FLASH 775952 775952 0 0.0
RAM 67788 67788 0 0.0
psoc6 all-clusters cy8ckit_062s2_43012 FLASH 1632452 1632452 0 0.0
RAM 211064 211064 0 0.0
all-clusters-minimal cy8ckit_062s2_43012 FLASH 1576644 1576644 0 0.0
RAM 208432 208432 0 0.0
light cy8ckit_062s2_43012 FLASH 1449436 1449436 0 0.0
RAM 197152 197152 0 0.0
lock cy8ckit_062s2_43012 FLASH 1481692 1481692 0 0.0
RAM 224872 224872 0 0.0
qpg lighting-app qpg6200+debug FLASH 744184 744184 0 0.0
RAM 94252 94252 0 0.0
lock-app qpg6200+debug FLASH 753804 753804 0 0.0
RAM 94280 94280 0 0.0
stm32 light STM32WB5MM-DK FLASH 465236 465236 0 0.0
RAM 141336 141336 0 0.0
telink bridge-app tl7218x FLASH 702278 702278 0 0.0
RAM 93564 93564 0 0.0
light-app-ota-compress-lzma-shell-factory-data tl3218x FLASH 794006 794006 0 0.0
RAM 43980 43980 0 0.0
light-app-ota-shell-factory-data tl7218x FLASH 782412 782412 0 0.0
RAM 100876 100876 0 0.0
light-switch-app-ota-compress-lzma-factory-data tl7218x_retention FLASH 709528 709528 0 0.0
RAM 54204 54204 0 0.0
light-switch-app-ota-compress-lzma-shell-factory-data tlsr9528a FLASH 746122 746122 0 0.0
RAM 77368 77368 0 0.0
light-switch-app-ota-factory-data tl3218x_retention FLASH 722848 722848 0 0.0
RAM 36960 36960 0 0.0
lighting-app-ota-factory-data tlsr9118bdk40d FLASH 602948 602948 0 0.0
RAM 112496 112496 0 0.0
lighting-app-ota-rpc-factory-data-4mb tlsr9518adk80d FLASH 817966 817970 4 0.0
RAM 99128 99128 0 0.0
tizen all-clusters-app arm unknown 5096 5096 0 0.0
FLASH 1695632 1695632 0 0.0
RAM 91404 91404 0 0.0
chip-tool-ubsan arm unknown 20800 20800 0 0.0
FLASH 21098370 21098370 0 0.0
RAM 9178412 9178412 0 0.0

Copy link
Contributor

@andy31415 andy31415 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Approving platofmr-specific example directory with platform maintainer approval. Left some comments though - I am unclear on the building, layout (do we want include/source separation and given zephy why do we separate what seems to try to be more generic) and usage of app-specific defines in code that seems to want to be more general.

@jepenven-silabs jepenven-silabs force-pushed the zephyr_examples_platform_code branch from 9672f62 to ccaf507 Compare July 17, 2025 00:50
Copy link

github-actions bot commented Jul 17, 2025

PR #40001: Size comparison from bad5961 to ccaf507

Full report (64 builds for bl602, bl702, bl702l, cc13x4_26x4, cc32xx, efr32, esp32, linux, nrfconnect, nxp, psoc6, qpg, stm32, telink, tizen)
platform target config section bad5961 ccaf507 change % change
bl602 lighting-app bl602+mfd+littlefs+rpc FLASH 1102666 1102666 0 0.0
RAM 178970 178970 0 0.0
bl702 lighting-app bl702+eth FLASH 656064 656064 0 0.0
RAM 134929 134929 0 0.0
bl702+wifi FLASH 833252 833252 0 0.0
RAM 124469 124469 0 0.0
bl706+mfd+rpc+littlefs FLASH 1065370 1065370 0 0.0
RAM 117341 117341 0 0.0
bl702l contact-sensor-app bl702l+mfd+littlefs FLASH 894916 894916 0 0.0
RAM 105628 105628 0 0.0
lighting-app bl702l+mfd+littlefs FLASH 978634 978634 0 0.0
RAM 109820 109820 0 0.0
cc13x4_26x4 lighting-app LP_EM_CC1354P10_6 FLASH 765104 765104 0 0.0
RAM 103336 103336 0 0.0
lock-ftd LP_EM_CC1354P10_6 FLASH 776468 776468 0 0.0
RAM 108504 108504 0 0.0
pump-app LP_EM_CC1354P10_6 FLASH 722832 722832 0 0.0
RAM 96908 96908 0 0.0
pump-controller-app LP_EM_CC1354P10_6 FLASH 707108 707108 0 0.0
RAM 97116 97116 0 0.0
cc32xx air-purifier CC3235SF_LAUNCHXL FLASH 549506 549506 0 0.0
RAM 205104 205104 0 0.0
lock CC3235SF_LAUNCHXL FLASH 581842 581842 0 0.0
RAM 205304 205304 0 0.0
efr32 lock-app BRD4187C FLASH 956624 956624 0 0.0
RAM 126532 126532 0 0.0
BRD4338a FLASH 751140 751132 -8 -0.0
RAM 251880 251880 0 0.0
window-app BRD4187C FLASH 1049536 1049528 -8 -0.0
RAM 122728 122728 0 0.0
esp32 all-clusters-app c3devkit DRAM 102232 102232 0 0.0
FLASH 1781248 1781248 0 0.0
IRAM 83862 83862 0 0.0
m5stack DRAM 121116 121116 0 0.0
FLASH 1748614 1748614 0 0.0
IRAM 117071 117071 0 0.0
linux air-purifier-app debug unknown 4856 4856 0 0.0
FLASH 2797962 2797962 0 0.0
RAM 117192 117192 0 0.0
all-clusters-app debug unknown 5672 5672 0 0.0
FLASH 6207054 6207054 0 0.0
RAM 532480 532480 0 0.0
all-clusters-minimal-app debug unknown 5536 5536 0 0.0
FLASH 5474518 5474518 0 0.0
RAM 227768 227768 0 0.0
bridge-app debug unknown 5568 5568 0 0.0
FLASH 4803322 4803322 0 0.0
RAM 207456 207456 0 0.0
camera-app debug unknown 8976 8976 0 0.0
FLASH 6943819 6943819 0 0.0
RAM 230496 230496 0 0.0
camera-controller debug unknown 9216 9216 0 0.0
FLASH 14387355 14387355 0 0.0
RAM 662584 662584 0 0.0
chip-tool debug unknown 6272 6272 0 0.0
FLASH 14759903 14759903 0 0.0
RAM 656224 656224 0 0.0
chip-tool-ipv6only arm64 unknown 40744 40744 0 0.0
FLASH 12729623 12729623 0 0.0
RAM 702488 702488 0 0.0
closure-app debug unknown 5536 5536 0 0.0
FLASH 4786210 4786210 0 0.0
RAM 200344 200344 0 0.0
fabric-admin debug unknown 5952 5952 0 0.0
FLASH 12802435 12802435 0 0.0
RAM 655256 655256 0 0.0
fabric-bridge-app debug unknown 4816 4816 0 0.0
FLASH 4588024 4588024 0 0.0
RAM 193200 193200 0 0.0
fabric-sync debug unknown 5064 5064 0 0.0
FLASH 5736829 5736829 0 0.0
RAM 492576 492576 0 0.0
lighting-app debug+rpc+ui unknown 6280 6280 0 0.0
FLASH 5690145 5690145 0 0.0
RAM 209720 209720 0 0.0
lock-app debug unknown 5496 5496 0 0.0
FLASH 4832066 4832066 0 0.0
RAM 196936 196936 0 0.0
ota-provider-app debug unknown 4856 4856 0 0.0
FLASH 4442234 4442234 0 0.0
RAM 185952 185952 0 0.0
ota-requestor-app debug unknown 4736 4736 0 0.0
FLASH 4514430 4514430 0 0.0
RAM 188824 188824 0 0.0
shell debug unknown 4288 4288 0 0.0
FLASH 3077332 3077332 0 0.0
RAM 147088 147088 0 0.0
thermostat-no-ble arm64 unknown 9840 9840 0 0.0
FLASH 4246527 4246527 0 0.0
RAM 233632 233632 0 0.0
tv-app debug unknown 5832 5832 0 0.0
FLASH 6102317 6102317 0 0.0
RAM 616856 616856 0 0.0
tv-casting-app debug unknown 5352 5352 0 0.0
FLASH 12905597 12905597 0 0.0
RAM 772592 772592 0 0.0
nrfconnect all-clusters-app nrf52840dk_nrf52840 FLASH 890608 890608 0 0.0
RAM 152731 152731 0 0.0
nrf5340dk_nrf5340_cpuapp FLASH 661508 661508 0 0.0
RAM 153254 153254 0 0.0
light-switch-app nrf52840dk_nrf52840 FLASH 795228 795228 0 0.0
RAM 117827 117827 0 0.0
lighting-app nrf52840dk_nrf52840+rpc FLASH 852980 852980 0 0.0
RAM 133043 133043 0 0.0
nrf52840dongle_nrf52840 FLASH 789592 789592 0 0.0
RAM 140862 140862 0 0.0
lock-app nrf52840dk_nrf52840 FLASH 784612 784612 0 0.0
RAM 118372 118372 0 0.0
pump-app nrf52840dk_nrf52840 FLASH 763404 763404 0 0.0
RAM 117074 117074 0 0.0
pump-controller-app nrf52840dk_nrf52840 FLASH 748672 748672 0 0.0
RAM 116833 116833 0 0.0
nxp contact mcxw71+release FLASH 626312 626312 0 0.0
RAM 64020 64020 0 0.0
lock mcxw71+release FLASH 777528 777528 0 0.0
RAM 68676 68676 0 0.0
psoc6 all-clusters cy8ckit_062s2_43012 FLASH 1633388 1633388 0 0.0
RAM 211064 211064 0 0.0
all-clusters-minimal cy8ckit_062s2_43012 FLASH 1577564 1577564 0 0.0
RAM 208432 208432 0 0.0
light cy8ckit_062s2_43012 FLASH 1449460 1449460 0 0.0
RAM 197152 197152 0 0.0
lock cy8ckit_062s2_43012 FLASH 1481716 1481716 0 0.0
RAM 224872 224872 0 0.0
qpg lighting-app qpg6200+debug FLASH 744224 744224 0 0.0
RAM 94252 94252 0 0.0
lock-app qpg6200+debug FLASH 753844 753844 0 0.0
RAM 94280 94280 0 0.0
stm32 light STM32WB5MM-DK FLASH 465300 465300 0 0.0
RAM 141336 141336 0 0.0
telink bridge-app tl7218x FLASH 702292 702292 0 0.0
RAM 93564 93564 0 0.0
light-app-ota-compress-lzma-shell-factory-data tl3218x FLASH 794018 794018 0 0.0
RAM 43980 43980 0 0.0
light-app-ota-shell-factory-data tl7218x FLASH 782424 782424 0 0.0
RAM 100876 100876 0 0.0
light-switch-app-ota-compress-lzma-factory-data tl7218x_retention FLASH 709540 709540 0 0.0
RAM 54204 54204 0 0.0
light-switch-app-ota-compress-lzma-shell-factory-data tlsr9528a FLASH 746134 746134 0 0.0
RAM 77368 77368 0 0.0
light-switch-app-ota-factory-data tl3218x_retention FLASH 722860 722860 0 0.0
RAM 36960 36960 0 0.0
lighting-app-ota-factory-data tlsr9118bdk40d FLASH 603108 603108 0 0.0
RAM 112532 112532 0 0.0
lighting-app-ota-rpc-factory-data-4mb tlsr9518adk80d FLASH 817980 817984 4 0.0
RAM 99128 99128 0 0.0
tizen all-clusters-app arm unknown 5092 5092 0 0.0
FLASH 1697096 1697096 0 0.0
RAM 91360 91360 0 0.0
chip-tool-ubsan arm unknown 20804 20804 0 0.0
FLASH 21097618 21097618 0 0.0
RAM 9176636 9176636 0 0.0

@mergify mergify bot merged commit 9cc8702 into project-chip:master Jul 17, 2025
70 checks passed
miduggan24 pushed a commit to miduggan24/connectedhomeip that referenced this pull request Jul 17, 2025
* add zephyr examples platform code

* apply comments

* fix comments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants