105 lines
8.3 KiB
Plaintext
105 lines
8.3 KiB
Plaintext
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. |
|
|
+---------------------------------------------------+-------------------------------------------------+--------------------------------------------------------------------+ |