Last edited 6 months ago

OP-TEE Calibration PTA overview

Applicable for STM32MP13x lines, STM32MP15x lines, STM32MP25x lines

This article gives information about the OP-TEE OS Calibration PTA.

1. PTA Calibration purpose[edit | edit source]

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[edit | edit source]

Calibration overview

2.1. Components description[edit | edit source]

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[edit | edit source]

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[edit | edit source]

3.1. OP-TEE_OS configuration[edit | edit source]

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[edit | edit source]

Detailed DT configuration for STM32 internal peripherals:

4. How to use the framework[edit | edit source]

A default calibration application is released in the OpenSTLinux ecosystem to give a reference implementation for the calibration service.

5. References[edit | edit source]