Registered User m (Keep systemd) |
Registered User mNo edit summary Tag: 2017 source edit |
||
(3 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
<noinclude>{{ApplicableFor | |||
|MPUs list=STM32MP13x, STM32MP15x, STM32MP25x | |||
|MPUs checklist=STM32MP13x, STM32MP15x, STM32MP25x | |||
}}</noinclude> | |||
This article gives information about the OP-TEE OS Calibration PTA. | This article gives information about the OP-TEE OS Calibration PTA. | ||
==PTA Calibration purpose== | ==PTA Calibration purpose== | ||
Line 7: | Line 12: | ||
The service provides a way to calibrate the oscillator based on [[TIM_internal_peripheral|timer]] comparison between an oscillator and a refence clock derived from the HSE clock that is considered always accurate. | The service provides a way to calibrate the oscillator based on [[TIM_internal_peripheral|timer]] comparison between an oscillator and a refence clock derived from the HSE clock that is considered always accurate. | ||
Refer to [[STM32MP13 resources#Reference manuals|STM32MP13 reference manuals]] | Refer to reference manuals for detailed information on the timer channels that can be used for HSI or CSI calibration input: | ||
* [[STM32MP13 resources#Reference manuals|STM32MP13 reference manuals]] | |||
* [[STM32MP15 resources#Reference manuals|STM32MP15 reference manuals]] | |||
* [[STM32MP25 resources#Reference manuals|STM32MP25 reference manuals]] | |||
==System overview== | ==System overview== | ||
Line 31: | Line 39: | ||
==Configuration== | ==Configuration== | ||
===OP-TEE_OS configuration=== | ===OP-TEE_OS configuration=== | ||
Activate '''Calibration PTA''' in OP-TEE configuration {{CodeSource | OP-TEE_OS | core/arch/arm/plat-stm32mp1/conf.mk}}: | Activate '''Calibration PTA''' in OP-TEE configuration {{CodeSource | OP-TEE_OS | core/arch/arm/plat-stm32mp1/conf.mk}} or {{CodeSource | OP-TEE_OS | core/arch/arm/plat-stm32mp2/conf.mk}}: | ||
CFG_STM32_CLKCALIB ?=y | CFG_STM32_CLKCALIB ?=y | ||
Line 48: | Line 56: | ||
<noinclude> | <noinclude> | ||
{{ArticleBasedOnModel | Framework overview article model}} | {{ArticleBasedOnModel | Framework overview article model}} | ||
{{PublicationRequestId | 24113 | 2022-07-27 | {{PublicationRequestId | 24113 | 2022-07-27 }} | ||
[[Category:OP-TEE_Clock]] | [[Category:OP-TEE_Clock]] | ||
</noinclude> | </noinclude> |
Latest revision as of 11:30, 17 June 2024
This article gives information about the OP-TEE OS Calibration PTA.
1. PTA Calibration purpose
The purpose of this article is to explain how to access the HSI and CSI oscillators calibration service.
These internal oscillators are initially calibrated at chip production level. However, they can be affected by temperature and voltage variations. It is important to provide a mechanism to compensate the effects of these variations to achieve a good frequency accuracy.
The service provides a way to calibrate the oscillator based on timer comparison between an oscillator and a refence clock derived from the HSE clock that is considered always accurate.
Refer to reference manuals for detailed information on the timer channels that can be used for HSI or CSI calibration input:
2. System overview
2.1. Components description
Non secure world:
- Calibration Timer (User Space): User space service (systemd based) that calls the calibration binary at every chosen timer expiration. See How to activate HSI and CSI oscillators calibration to manage the service.
- Calibration (User Space): User space client application that connects to the calibration PTA over a session to request the calibration execution.
Find these calibration features at : stm32mp-calibration/
- TEE Core API Lib (User Space): Library called by the client application to access to the kernel space.
- OP-TEE driver (Kernel Space): Generic driver that send the message to the OP-TEE OS.
Secure world:
- Calibration PTA (OP-TEE core): Interface that exposes the calibration specific services.
- Calibration driver (OP-TEE core): Specific calibration driver that controls and calculates the calibration values.
- TIM driver (OP-TEE core): Timer driver using the OP-TEE counter framework.
- STM32 peripherals (Hardware): Access to hardware specific peripherals (RCC, TIM) under firewall access control.
2.2. API description
The calibration PTA offers a single interface to request a calibration. The calibration is started on HSI and/or CSI depending the calibration driver initialization defined using the Calibration_device_tree_configuration.
3. Configuration
3.1. OP-TEE_OS configuration
Activate Calibration PTA in OP-TEE configuration core/arch/arm/plat-stm32mp1/conf.mk or core/arch/arm/plat-stm32mp2/conf.mk :
CFG_STM32_CLKCALIB ?=y
3.2. Device tree configuration
Detailed DT configuration for STM32 internal peripherals:
4. How to use the framework
A default calibration application is released in the OpenSTLinux ecosystem to give a reference implementation for the calibration service.
5. References