|
| 1 | +# Zephyr HAL for Silicon Labs |
| 2 | + |
| 3 | +This module provides the HAL content needed to build Zephyr applications for Silicon Labs devices. |
| 4 | + |
| 5 | +The following SDKs are imported: |
| 6 | + |
| 7 | +* `gecko` - Gecko SDK for EFM32 and EFR32 Series 0 and 1 devices |
| 8 | +* `si32` - Precision32 HAL for SiM3U devices |
| 9 | +* `simplicity_sdk` - Simplicity SDK for EFM32 and EFR32 Series 2 devices |
| 10 | +* `wiseconnect` - WiSeConnect SDK for SiWx91x devices |
| 11 | + |
| 12 | +## Simplicity SDK |
| 13 | + |
| 14 | +### Updating Simplicity SDK |
| 15 | + |
| 16 | +Updates to Simplicity SDK are performed using the scripts available in the `scripts` directory. |
| 17 | +To import a new version of Simplicity SDK, run |
| 18 | +`./scripts/update_simplicity_sdk.py --src <path/to/simplicity_sdk> --signoff`, |
| 19 | +where `path/to/simplicity_sdk` points to a checked out copy of the Simplicity SDK git repo. |
| 20 | + |
| 21 | +This will revert any Zephyr-specific patches, import the new version of Simplicity SDK, and |
| 22 | +reapply any patches that still apply. Patches that don't apply cleanly are called out by the |
| 23 | +script and skipped, and should be investigated to see if the patch is no longer needed, or if |
| 24 | +it needs to be adapted to changes in the HAL. Patches are discovered by searching the git history |
| 25 | +backwards until the first commit message starting with `simplicity_sdk: Import [...]` is |
| 26 | +encountered. |
| 27 | + |
| 28 | +Zephyr-specific patches to Simplicity SDK must have a commit message that starts with |
| 29 | +`simplicity_sdk: Patch [...]` in order to be automatically identified by the update script. |
| 30 | + |
| 31 | +The script `import_simplicity_sdk.py` does the job of importing the content and updating blobs in |
| 32 | +module.yml, and contains the file list used to filter Simplicity SDK content needed in Zephyr. |
| 33 | +This script is called internally by `update_simplicity_sdk.py`, but can also be run standalone. |
| 34 | + |
| 35 | +If new content is imported from Simplicity SDK, update the file list in one commit, and use the |
| 36 | +prefix `simplicity_sdk: Add [...]` in the commit message of a separate commit that adds the |
| 37 | +additional content. Strive to use the same revision of Simplicity SDK as pre-existing content to |
| 38 | +keep the HAL consistent. If the scripts listed above are used to assist in adding the new content, |
| 39 | +ensure that patches aren't accidentally undone -- the commit should only contain new files, no |
| 40 | +modified files. If patches are needed, add these in separate commits with the |
| 41 | +`simplicity_sdk: Patch [...]` prefix. |
| 42 | + |
| 43 | +### Generating Devicetree Bindings |
| 44 | + |
| 45 | +Python scripts named `scripts/gen_*.py` are used to generate Devicetree bindings for devices |
| 46 | +supported by Simplicity SDK. See the help text of each script for usage details. |
0 commit comments