hal_silabs/gecko
Piotr Dymacz 442d0fb1d0 gecko/cmake: replace 'SOC_GECKO_SERIESx' with 'SOC_FAMILY_SILABS_Sx'
The 'SOC_GECKO_SERIESx' Kconfig symbol no longer exists in Zephyr and
was replaced with 'SOC_FAMILY_SILABS_Sx' during migration to hwmv2.

Signed-off-by: Piotr Dymacz <pepe2k@gmail.com>
2024-03-13 14:17:19 +00:00
..
Device gecko: doc: Update the copyright line in Licence | Update to GSDK 4.4.0 2024-02-01 11:43:40 +01:00
common gecko: emlib files updated | Update to GSDK 4.4.0 2024-01-10 13:36:01 +01:00
emlib gecko: emlib: Fix ramfunc 2024-03-01 15:47:23 +01:00
platform/radio/rail_lib zephyr: Kconfig: Add CONFIG_SOC_GECKO_CUSTOM_RADIO_PHY 2023-11-17 15:06:33 +01:00
protocol/bluetooth/bgstack/ll/inc modules: hal_silabs: adaptations for BLE support in Zephyr 2023-04-20 09:39:35 +02:00
se_manager gecko: se_manager files updated | Update to GSDK 4.4.0 2024-01-15 09:17:32 +01:00
service gecko: service files updated | Update to GSDK 4.4.0 2024-01-23 14:09:44 +01:00
util modules: hal_silabs: adaptations for BLE support in Zephyr 2023-04-20 09:39:35 +02:00
CMakeLists.txt gecko/cmake: replace 'SOC_GECKO_SERIESx' with 'SOC_FAMILY_SILABS_Sx' 2024-03-13 14:17:19 +00:00
License.txt modules: hal_silabs: Update SiLabs Gecko HAL to version 2.7.3 2020-04-03 12:34:07 -05:00
README gecko: doc: Update the copyright line in Licence | Update to GSDK 4.4.0 2024-02-01 11:43:40 +01:00

README

Silicon Labs Gecko HAL
######################

Origin:
   Silicon Labs Gecko SDK
   https://www.silabs.com/products/development-tools/software/simplicity-studio

Version:
   v4.4.0

Purpose:
   Add support for Silicon Labs EXX32 SoCs

Description:
   This code component is used to add Zephyr support for Silicon Labs EXX32 SoCs.
   To speed up the development process it is based on the Silicon Labs HAL.

   The Silicon Labs HAL is split into SoC specific folders. They share the
   Peripheral Support library.

   The following folders are imported:
   platform/Device/SiliconLabs/$(GECKO_DEVICE)
   platform/emlib
   platform/security/sl_component/se_manager
   platform/common
   platform/service/device_init
   platform/service/hfxo_manager
   platform/service/power_manager
   platform/service/sleeptimer
   hardware/board

Dependencies:
   This source code depends on headers and sources from Zephyr:
   modules/hal/cmsis

URL:
   https://www.silabs.com/products/development-tools/software/simplicity-studio

Maintained-by:
   External

License:
   Zlib

How to update
+++++++++++++

  * Start Simplicity Studio
  * Start the Package Manager
  * Install the 32-bit MCU SDK with the version you want to update to
  * The installation directory is <Simplicity Studio Path>/developer/sdks/gecko_sdk_suite/<version>
  * Replace the necessary files in modules/hal/silabs/gecko/Device, modules/hal/silabs/gecko/emlib and modules/hal/silabs/gecko/se_manager
  * Replace the files in modules/hal/silabs/gecko/common, modules/hal/silabs/gecko/service, and modules/hal/silabs/gecko/board for EFR32BG22 SoCs.
  * Ensure that the CMakeLists and Kconfig files match the new version of the Gecko SDK
  
What is different in EFR32BG22
++++++++++++++++++++++++++++++
  * To keep the device initialization similar to the sequence in simplicity studio, following directories are imported from GSDK.
    platform/service/device_init
    hardware/board
  * sl_board_default_init.c file is generated from hardware/board/src/sl_board_default_init.c.jinja file.
  * These .c files are generated from .jinja file using simplicity studio and are available under "autogen" folder
    inside the project.
  * Create <board directory> (e.g., brd4184b for EFR32BG22) under hardware/board/src/ and platform/service/device_init/src/
  * sl_board_default_init.c should be copied to hardware/board/src/<board directory>/
  * sl_device_init_clocks.c in platform/service/device_init/src is generated from .jinja file
    available in platform/service/device_init/template.
  * sl_device_init_clocks.c should be copied to platform/service/device_init/src/<board directory>/
  * platform/service/power_manager and platform/service/hfxo_manager are used for power management functionality.
  * platform/service/sleeptimer is used in power management functionality. This is built on top of RTCC driver for EFR32BG22 SoCs.
  
The following folders are used in this HAL:

+---------------------------------------------------+-------------------------------------------------+--------------------------------------------------------------------+
| Gecko SDK                                         | Zephyr                                          | Comments                                                           |
+---------------------------------------------------+-------------------------------------------------+--------------------------------------------------------------------+
| platform/Device/                                  | modules/hal/silabs/gecko/Device                 | Contains the device-specific files in SiliconLabs/$(GECKO_DEVICE). |
|                                                   |                                                 | The files are not modified.                                        |
+---------------------------------------------------+-------------------------------------------------+--------------------------------------------------------------------+
| platform/emlib/                                   | modules/hal/silabs/gecko/emlib                  | Contains the Silabs Peripheral Support library for the EXX32 SoCs. |
|                                                   |                                                 | All files are copied over. The files are not modified.             |
+---------------------------------------------------+-------------------------------------------------+--------------------------------------------------------------------+
| platform/security/sl_component/se_manager         | modules/hal/silabs/gecko/se_manager             | Contains the Silabs SE Manager library for the EXX32 SoCs.         |
|                                                   |                                                 | The files sl_se_manager_check_config.h, sl_se_manager_config.h,    |
|                                                   |                                                 | sl_se_manager, and sli_se_manager_osal.h are modified.             |
+---------------------------------------------------+-------------------------------------------------+--------------------------------------------------------------------+
| platform/common/                                  | modules/hal/silabs/gecko/common                 | Contains the miscellaneous platform components for the EXX32 SoCs. |
|                                                   |                                                 | All files are copied over. The files are not modified.             |
+---------------------------------------------------+-------------------------------------------------+--------------------------------------------------------------------+
| platform/service/device_init/                     | modules/hal/silabs/gecko/service/device_init    | Contains files related to device initialization for EXX32 SoCs.    |
|                                                   |                                                 | All files are copied over. The files are not modified.             |
+---------------------------------------------------+-------------------------------------------------+--------------------------------------------------------------------+
| platform/service/hfxo_manager/                    | modules/hal/silabs/gecko/service/hfxo_manager   | Contains hfxo_manager code for the EXX32 SoCs.                     |
|                                                   |                                                 | All files are copied over. The files are not modified.             |
+---------------------------------------------------+-------------------------------------------------+--------------------------------------------------------------------+
| platform/service/power_manager/                   | modules/hal/silabs/gecko/service/power_manager  | Contains power_manager code for the EXX32 SoCs.                    |
|                                                   |                                                 | All files are copied over. The files are not modified.             |
+---------------------------------------------------+-------------------------------------------------+--------------------------------------------------------------------+
| platform/service/sleeptimer/                      | modules/hal/silabs/gecko/service/sleeptimer     | Contains sleeptimer code for the EXX32 SoCs.                       |
|                                                   |                                                 | All files are copied over. The files are not modified.             |
+---------------------------------------------------+-------------------------------------------------+--------------------------------------------------------------------+
| hardware/board/                                   | modules/hal/silabs/gecko/board                  | Contains board configuration and metadata files in                 |
|                                                   |                                                 | config/$(GECKO_BOARD) for the EXX32 SoCs.                          |
|                                                   |                                                 | All files are copied over. The files are not modified.             |
+---------------------------------------------------+-------------------------------------------------+--------------------------------------------------------------------+