OP-TEE Calibration PTA overview

Revision as of 08:21, 28 September 2022 by Lionel Debieve (talk | contribs) (Keep systemd)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

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

1 PTA Calibration purpose[edit]

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 STM32MP13 reference manuals or STM32MP15 reference manuals for detailed information on the timer channels that can be used for HSI or CSI calibration input.

2 System overview[edit]

Calibration overview

2.1 Components description[edit]

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]

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]

3.1 OP-TEE_OS configuration[edit]

Activate Calibration PTA in OP-TEE configuration core/arch/arm/plat-stm32mp1/conf.mk :

CFG_STM32_CLKCALIB ?=y

3.2 Device tree configuration[edit]

Detailed DT configuration for STM32 internal peripherals:

4 How to use the framework[edit]

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

5 References[edit]