This repository contains the Silicon Labs SDK for Zephyr, which is Silicon Labs' primary downstream enablement for Zephyr.
Silicon Labs is a Platinum Member of the Zephyr Project, and is committed to providing upstream support for Silicon Labs hardware. In addition to upstream support, Silicon Labs provides this downstream manifest repository to provide access to features that are not yet available upstream, such as new hardware support, as well as features that cannot be upstreamed, such as content that does not have an open source license compatible with the upstream. The downstream repository also enables additional quality assurance of releases for Silicon Labs platforms.
Silicon Labs is committed to an upstream-first development methodology. We strive to keep the number of patches applied in Silicon Labs SDK for Zephyr down by basing the downstream release on upstream stable releases.
This repository is the top-level manifest repository for the Silicon Labs SDK for Zephyr. The SDK uses the West tool to check out and organize the different repositories that are part of it. The manifest file tells West which repositories to check out at which revision. Important repos include:
- zephyr-silabs - The manifest repository for Silicon Labs SDK for Zephyr. Functions as the entry point for the SDK, and points to a mix of upstream repositories, downstream forks and additional downstream repositories. Filters out HAL repositories not related to Silicon Labs targets to optimize the download size and disk usage of the SDK.
- zephyr - Silicon Labs fork of the Zephyr repository. Kept in sync with the upstream for every release. May add additional patches that are not yet available upstream.
- hal_silabs - Silicon Labs fork of the Silicon Labs HAL for Zephyr. Includes the parts of Simplicity SDK and WiSeConnect used by Zephyr.
The workspace directory structure looks like this, with additional modules as specified by the manifest:
workspace/
├── modules/
│ ├── crypto/
│ │ └── mbedtls/ # Silicon Labs fork with hardware acceleration
│ └── hal/
│ ├── cmsis_6/ # Upstream CMSIS 6 repository
│ └── silabs/ # Silicon Labs HAL
├── zephyr/ # Silicon Labs downstream fork of Zephyr
└── zephyr-silabs/ # Silicon Labs SDK for Zephyr manifest repository
To get started with Silicon Labs SDK for Zephyr, follow the
Getting Started Guide from the Zephyr Project.
Instead of doing west init
to initialize a workspace based on the upstream
manifest, use the following commands, where silabs_zephyr
is an example name
for your workspace directory:
west init -m https://github.com/SiliconLabsSoftware/zephyr-silabs silabs_zephyr
cd silabs_zephyr
west update
west blobs fetch
It is also possible to clone the repository manually, and use west init -l
to
perform initialization from local sources.
The Getting Started Guide covers setting up the build environment, as well as building and flashing an example.
To use Zephyr with Silicon Labs devices, certain pre-built libraries are
required for the radio. The west blobs fetch
command downloads these
libraries.
For Linux users, see also the more detailed Getting Started on Linux guide.