1. Article purpose[edit source]
The purpose of this article is to:
- briefly introduce the XXX peripheral and its main features
- indicate the level of security supported by this hardware block
- explain how each instance (or "it" instead of "each instance" if the peripheral is not instantiated) can be allocated to the three runtime contexts and linked to the corresponding software components
- explain, when necessary, how to configure the XXX peripheral.
2. Peripheral overview[edit source]
The XXX peripheral is used to ... .
2.1. Features[edit source]
In addition to the generic sentence below , the peripheral main features can be introduced and briefly described here. e.g. DAC_internal_peripheral#Features
Refer to the STM32MP15 reference manuals for the complete list of features, and to the software components, introduced below, to see which features are implemented.
2.2. Security support[edit source]
Please adapt the sentence below to your peripheral:
The XXX is a non-secure / secure peripheral (under ETZPC control).
3. Peripheral usage and associated software[edit source]
3.1. Boot time[edit source]
In this chapter, use one of the sentences or both depending your peripheral case
XXX instances are boot devices that support serial boot for Flash programming with STM32CubeProgrammer.
or / and
The XXX is not used at boot time.
3.2. Runtime[edit source]
3.2.1. Overview[edit source]
XXX instances can be allocated to:
- the Arm® Cortex®-A7 secure core to be controlled in OP-TEE by the XXX OP-TEE driver
or
- the Arm® Cortex®-A7 non-secure core to be controlled in Linux® by the YYY framework
or
- the Arm® Cortex®-M4 to be controlled in STM32Cube MPU Package by STM32Cube XXX driver
Chapter Peripheral assignment describes which peripheral instance can be assigned to which context.
3.2.2. Software frameworks[edit source]
Domain | Peripheral | Software components | Comment | ||
---|---|---|---|---|---|
OP-TEE | Linux | STM32Cube | |||
Domain | Peripheral (XXX internal peripheral) | OP-TEE XXX driver | Linux YYY framework | STM32Cube XXX driver |
3.2.3. Peripheral configuration[edit source]
The configuration is applied by the firmware running in the context to which the peripheral is assigned. The configuration can be done alone via the STM32CubeMX tool for all internal peripherals, and then manually completed (particularly for external peripherals), according to the information given in the corresponding software framework article.
If necessary, adapt this section to add more information about the peripheral configuration for given runtime contexts. The user must be able to easily understand how to configure the peripheral by reading this paragraph or the software framework overview. A good approach can be to put all the information related to Linux® device tree in a dedicated article that will be referenced from the peripheral overview and from the framework overview
3.2.4. Peripheral assignment[edit source]
Check boxes illustrate the possible peripheral allocations supported by STM32 MPU Embedded Software:
- ☐ means that the peripheral can be assigned (☑) to the given runtime context.
- ✓ is used for system peripherals that cannot be unchecked because they are statically connected in the device.
Refer to How to assign an internal peripheral to a runtime context for more information on how to assign peripherals manually or via STM32CubeMX.
The present chapter describes STMicroelectronics recommendations or choice of implementation. Additional possiblities might be described in STM32MP15 reference manuals.
Domain | Peripheral | Runtime allocation | Comment | |||
---|---|---|---|---|---|---|
Instance | Cortex-A7 secure (OP-TEE) |
Cortex-A7 non-secure (Linux) |
Cortex-M4 (STM32Cube) | |||
Domain | Peripheral (XXX internal peripheral) | Instance1 | ☐ | |||
Instance2 | ✓ |
4. How to go further[edit source]
Use this paragraph to provide additional information or to refer to other documents such as application notes (AN)
5. References[edit source]