EXTI internal peripheral

Revision as of 12:05, 20 November 2023 by Registered User
Applicable for STM32MP13x lines, STM32MP15x lines, STM32MP25x lines

Warning white.png Warning
Concerning the STM32MP25x linesย More info.png, only the boot time assignment table and the runtime assignment table have been updated.
The other chapters have not been updated yet.

1. Article purpose[edit source]

The purpose of this article is to:

  • briefly introduce the EXTI peripheral and its main features,
  • indicate the peripheral instances assignment at boot time and their assignment at runtime (including whether instances can be allocated to secure contexts),
  • list the software frameworks and drivers managing the peripheral,
  • explain how to configure the peripheral.

2. Peripheral overview[edit source]

The EXTI peripheral is used to get an interrupt when a GPIO is toggling. It can also wake up the system from Stop low power mode, by means of the PWR internal peripheral when a wake up event occurs, before (eventualy - see the note below) propagating an interrupt to the client processor (Cortex-A7 GIC or Cortex-M4 NVIC in case of STM32MP15). The wake up events can be internal (from other IPs clocked by the LSE, LSI or HSI from RCC), or external (from GPIO).

Notice that:

  • Up to 16 GPIO pins can be configured as external interrupts: for each index between 0 and 15, one EXTI can be selected among all banks (EXTI<index> = GPIO<one_bank><index>).
  • On STM32MP13x linesย More info.png: The 16 GPIO and one internal peripheral events ( AVD/PVD), can generate interrupts connected to the GIC. All the other internal peripheral events can wake up the system, but the EXTI does not generate any interrupt to the GIC; in such cases, another peripheral interrupt has to be used as a trigger via the GIC.
  • On STM32MP15x linesย More info.png: The 16 GPIO and 5 internal peripheral events (AVD/PVD, CPU1 SEV, CPU2 SEV, WWDG1 reset, CPU2 SYSRESETREQ) can generate interrupts connected to the GIC and NVIC. All the other internal peripheral events can wake up the system, but the EXTI does not generate any interrupt to the GIC or NVIC for them; in such cases, another peripheral interrupt has to be used as a trigger via the GIC or NVIC.
  • By default, at reset, all EXTI wake up events are non-secure.

Refer to the STM32 MPU reference manuals for the complete list of features, and to the software frameworks and drivers, introduced below, to see which features are implemented.

3. Peripheral usage[edit source]

This chapter is applicable in the scope of the OpenSTLinux BSP running on the Armยฎ Cortexยฎ-A processor(s), and the STM32CubeMPU Package running on the Armยฎ Cortexยฎ-M processor.

3.1. Boot time assignment[edit source]

3.1.1. On STM32MP13x linesย More info.png[edit source]

The EXTI peripheral is not used at boot time, but is configured during Linux initialization.

3.1.2. On STM32MP15x linesย More info.png[edit source]

The EXTI peripheral is not used at boot time, but is configured during Linux initialization.

Since wake-up event configuration is done via register bit-field reads and writes, concurrent accesses from Linux and the coprocessor are not possible at boot time:

  • Linux configures all EXTI events during their respective consumer driver probing
  • The coprocessor uses the resource management mechanisms to request and configure the EXTI events it needs.

3.1.3. On STM32MP2ย series[edit source]

Click on How to.png to expand or collapse the legend...

  • โ˜ means that the peripheral can be assigned to the given boot time context.
  • โ˜‘ means that the peripheral is assigned by default to the given boot time context and that the peripheral is mandatory for the STM32 MPU Embedded Software distribution.
  • โฌš means that the peripheral can be assigned to the given boot time context, but this configuration is not supported in STM32 MPU Embedded Software distribution.
  • โœ“ is used for system peripherals that cannot be unchecked because they are hardware connected in the device.

The present chapter describes STMicroelectronics recommendations or choice of implementation. Additional possibilities might be described in STM32MP25 reference manuals.

Domain Peripheral Boot time allocation Comment How to.png
Instance Cortex-A35
secure
(ROM code)
Cortex-A35
secure
(TF-A BL2)
Cortex-A35
non-secure
(U-Boot)
Core/Interrupts EXTI Info.png EXTI1 โ˜ โ˜ โ˜ Shareable at internal peripheral level thanks to the RIF: see the boot time allocation per feature
EXTI2 โ˜ โ˜ โ˜ Shareable at internal peripheral level thanks to the RIF: see the boot time allocation per feature

The below table shows the possible boot time allocations for the features of the EXTI1 instance.

Feature Boot time allocation Info.png Comment
Cortex-A35
secure
(ROM code)
Cortex-A35
secure
(TF-A BL2)
Cortex-A35
non-secure
(U-Boot)
EXTI1[0] โฌš
EXTI1[1] โฌš
EXTI1[2] โฌš
EXTI1[3] โฌš
EXTI1[4] โฌš
EXTI1[5] โฌš
EXTI1[6] โฌš
EXTI1[7] โฌš
EXTI1[8] โฌš
EXTI1[9] โฌš
EXTI1[10] โฌš
EXTI1[11] โฌš
EXTI1[12] โฌš
EXTI1[13] โฌš
EXTI1[14] โฌš
EXTI1[15] โฌš
PVD โฌš
PVM โฌš
VDDGPU_VD โฌš
RCC_HSI_FMON โฌš
I2C1 โฌš
I2C2 โฌš
I2C3 โฌš
I2C4 โฌš
I2C5 โฌš
USART1 โฌš
USART2 โฌš
USART3 โฌš
USART6 โฌš
UART4 โฌš
UART5 โฌš
UART7 โฌš
UART8 โฌš
UART9 โฌš
SPI1 โฌš
SPI2 โฌš
SPI3 โฌš
SPI4 โฌš
SPI5 โฌš
SPI6 โฌš
SPI7 โฌš
USBH โฌš
USB3DR โฌš
COMBOPHY โฌš
UCPD โฌš
LPTIM1 โฌš
LPTIM2 โฌš
I2C6 โฌš
I2C7 โฌš
WKUP1 wakeup โฌš
WKUP2 wakeup โฌš
WKUP3 wakeup โฌš
WKUP4 wakeup โฌš
WKUP5 wakeup โฌš
WKUP6 wakeup โฌš
IPCC1 non secure interrupt CPU1 โฌš
IPCC1 non secure interrupt CPU2
IPCC1 secure interrupt CPU1
IPCC1 secure interrupt CPU2
CPU2 SEV interrupt โฌš
CPU1 SEV interrupt
WWDG1 Reset โฌš
ETH1_PMT wakeup โฌš
ETH1_SBD โฌš
ETH2_PMT wakeup โฌš
ETH2_SBD โฌš
DTS โฌš
CPU2 SYSRESETREQ local CPU2 reset
I3C1
I3C2
I3C3
HPDMA1 Channel 0 to 15 CPU1 irq โฌš
HPDMA2 Channel 0 to 15 CPU1 irq โฌš
HPDMA3 Channel 0 to 15 CPU1 irq โฌš
HPDMA1 Channel 0 to 15 CPU2 irq
HPDMA2 Channel 0 to 15 CPU2 irq
HPDMA3 Channel 0 to 15 CPU2 irq
UCPD VBUS DETECT โฌš
UCPD VBUS VSAFE5V โฌš

The below table shows the possible boot time allocations for the features of the EXTI2 instance.

Feature Boot time allocation Info.png Comment
Cortex-A35
secure
(ROM code)
Cortex-A35
secure
(TF-A BL2)
Cortex-A35
non-secure
(U-Boot)
EXTI2[0] โฌš
EXTI2[1] โฌš
EXTI2[2] โฌš
EXTI2[3] โฌš
EXTI2[4] โฌš
EXTI2[5] โฌš
EXTI2[6] โฌš
EXTI2[7] โฌš
EXTI2[8] โฌš
EXTI2[9] โฌš
EXTI2[10] โฌš
EXTI2[11] โฌš
EXTI2[12] โฌš
EXTI2[13] โฌš
EXTI2[14] โฌš
EXTI2[15] โฌš
TAMP non secure tamper CPU1 โฌš
RTC global non secure Wakeup CPU1 โฌš
TAMP non secure tamper CPU2
RTC global non secure Wakeup CPU2
TAMP non secure tamper CPU3
TAMP secure tamper CPU1
RTC global secure Wakeup CPU1
TAMP secure tamper CPU2
RTC global secure Wakeup CPU2
I2C8 โฌš
LPUART1 โฌš
SPI8 โฌš
LPTIM3 โฌš
LPTIM4 โฌš
LPTIM5 โฌš
ADF1 โฌš
IPCC2 non secure interrupt CPU1 โฌš
IPCC2 non secure interrupt CPU2
IPCC2 non secure interrupt CPU3
IPCC2 secure interrupt CPU1
IPCC2 secure interrupt CPU2
HSEM1 non secure interrupt โฌš
HSEM2 non secure interrupt
HSEM3 non secure interrupt
HSEM1 secure interrupt
HSEM2 secure interrupt
WWDG2 reset โฌš
IWDG1 reset
IWDG2 reset
IWDG3 reset โฌš
IWDG4 reset โฌš
IWDG5 reset โฌš
IWDG1 early wake โฌš
IWDG2 early wake โฌš
IWDG3 early wake
IWDG4 early wake
IWDG5 early wake
CM33 SEV interrupt to CPU3
CA35 SEV interrupt to CPU3
CM0 SEV interrupt โฌš
IAC interrupt CPU1
IAC interrupt CPU2
VDDCPU_VD โฌš
VDDCORE_VD โฌš
RETRAM CRC error wakeup
lpdma_ch0123_cpu1_irq โฌš
lpdma_ch0123_cpu2_irq
lpdma_ch0123_cpu3_irq
I3C4 โฌš
CDBGPWRUPREQ โฌš

3.2. Runtime assignment[edit source]

3.2.1. On STM32MP13x linesย More info.png[edit source]

Click on How to.png to expand or collapse the legend...

STM32MP13 internal peripherals

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.
  • โ˜‘ means that the peripheral is assigned by default to the given runtime context and that the peripheral is mandatory for the STM32 MPU Embedded Software distribution.
  • โฌš means that the peripheral can be assigned to the given runtime context, but this configuration is not supported in STM32 MPU Embedded Software distribution.
  • โœ“ is used for system peripherals that cannot be unchecked because they are hardware connected in the device.

Refer to How to assign an internal peripheral to an execution context for more information on how to assign peripherals manually or via STM32CubeMX.
The present chapter describes STMicroelectronics recommendations or choice of implementation. Additional possibilities might be described in STM32MP13 reference manuals.

Domain Peripheral Runtime allocation Comment How to.png
Instance Cortex-A7
secure
(OP-TEE)
Cortex-A7
non-secure
(Linux)
Core/Interrupts EXTI EXTI โ˜ โ˜

3.2.2. On STM32MP15x linesย More info.png[edit source]

Click on How to.png to expand or collapse the legend...

STM32MP15 internal peripherals

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.
  • โ˜‘ means that the peripheral is assigned by default to the given runtime context and that the peripheral is mandatory for the STM32 MPU Embedded Software distribution.
  • โฌš means that the peripheral can be assigned to the given runtime context, but this configuration is not supported in STM32 MPU Embedded Software distribution.
  • โœ“ is used for system peripherals that cannot be unchecked because they are hardware connected in the device.

Refer to How to assign an internal peripheral to an execution 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 How to.png
Instance Cortex-A7
secure
(OP-TEE)
Cortex-A7
non-secure
(Linux)
Cortex-M4

(STM32Cube)
Core/Interrupts EXTI EXTI โ˜ โ˜ โ˜ Shared
Info white.png Information
The EXTI peripheral is not listed in STM32CubeMX peripherals list because its configuration is partly embedded in the Device tree (for all internal EXTI sources, coming from peripherals with wake up capabilities) and completed with the GPIO configuration that comes from STM32CubeMX pinout view

The OP-TEE EXTI driver is not activated and not used by OpenSTLinux on STM32MP15x linesย More info.png.

3.2.3. On STM32MP25x linesย More info.png[edit source]

Click on How to.png to expand or collapse the legend...

STM32MP25 internal peripherals

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.
  • โ˜‘ means that the peripheral is assigned by default to the given runtime context and that the peripheral is mandatory for the STM32 MPU Embedded Software distribution.
  • โฌš means that the peripheral can be assigned to the given runtime context, but this configuration is not supported in STM32 MPU Embedded Software distribution.
  • โœ“ is used for system peripherals that cannot be unchecked because they are hardware connected in the device.

The present chapter describes STMicroelectronics recommendations or choice of implementation. Additional possibilities might be described in STM32MP25 reference manuals.

Domain Peripheral Runtime allocation Comment How to.png
Instance Cortex-A35
secure
(OP-TEE /
TF-A BL31)
Cortex-A35
non-secure
(Linux)
Cortex-M33
secure
(TF-M)
Cortex-M33
non-secure
(STM32Cube)
Cortex-M0+
Warning.png
(STM32Cube)
Core/Interrupts EXTI Info.png EXTI1 โ˜OP-TEE โ˜ โ˜ โ˜ โ˜ Shareable at internal peripheral level thanks to the RIF: see the runtime allocation per feature
EXTI2 โ˜OP-TEE โ˜ โ˜ โ˜ โ˜ Shareable at internal peripheral level thanks to the RIF: see the runtime allocation per feature

The below table shows the possible runtime allocations for the features of the EXTI1 instance.

Feature Runtime allocation Info.png Comment
Cortex-A35
secure
(OP-TEE /
TF-A BL31)
Cortex-A35
non-secure
(Linux)
Cortex-M33
secure
(TF-M)
Cortex-M33
non-secure
(STM32Cube)
Cortex-M0+
Warning.png
(STM32Cube)
EXTI1[0] โ˜OP-TEE โ˜ โ˜ โ˜
EXTI1[1] โ˜OP-TEE โ˜ โ˜ โ˜
EXTI1[2] โ˜OP-TEE โ˜ โ˜ โ˜
EXTI1[3] โ˜OP-TEE โ˜ โ˜ โ˜
EXTI1[4] โ˜OP-TEE โ˜ โ˜ โ˜
EXTI1[5] โ˜OP-TEE โ˜ โ˜ โ˜
EXTI1[6] โ˜OP-TEE โ˜ โ˜ โ˜
EXTI1[7] โ˜OP-TEE โ˜ โ˜ โ˜
EXTI1[8] โ˜OP-TEE โ˜ โ˜ โ˜
EXTI1[9] โ˜OP-TEE โ˜ โ˜ โ˜
EXTI1[10] โ˜OP-TEE โ˜ โ˜ โ˜
EXTI1[11] โ˜OP-TEE โ˜ โ˜ โ˜
EXTI1[12] โ˜OP-TEE โ˜ โ˜ โ˜
EXTI1[13] โ˜OP-TEE โ˜ โ˜ โ˜
EXTI1[14] โ˜OP-TEE โ˜ โ˜ โ˜
EXTI1[15] โ˜OP-TEE โ˜ โ˜ โ˜
PVD โ˜‘OP-TEE โฌš โ˜ โฌš
PVM โ˜‘OP-TEE โฌš โ˜ โฌš
VDDGPU_VD โ˜‘OP-TEE โฌš โฌš โฌš
RCC_HSI_FMON โ˜‘OP-TEE โฌš โ˜ โฌš
I2C1 โ˜OP-TEE โ˜ โ˜ โ˜
I2C2 โ˜OP-TEE โ˜ โ˜ โ˜
I2C3 โ˜OP-TEE โ˜ โ˜ โ˜
I2C4 โ˜OP-TEE โ˜ โ˜ โ˜
I2C5 โ˜OP-TEE โ˜ โ˜ โ˜
USART1 โ˜OP-TEE โ˜ โ˜ โ˜
USART2 โ˜OP-TEE โ˜ โ˜ โ˜
USART3 โ˜OP-TEE โ˜ โ˜ โ˜
USART6 โ˜OP-TEE โ˜ โ˜ โ˜
UART4 โ˜OP-TEE โ˜ โ˜ โ˜
UART5 โ˜OP-TEE โ˜ โ˜ โ˜
UART7 โ˜OP-TEE โ˜ โ˜ โ˜
UART8 โ˜OP-TEE โ˜ โ˜ โ˜
UART9 โ˜OP-TEE โ˜ โ˜ โ˜
SPI1 โ˜OP-TEE โ˜ โ˜ โ˜
SPI2 โ˜OP-TEE โ˜ โ˜ โ˜
SPI3 โ˜OP-TEE โ˜ โ˜ โ˜
SPI4 โ˜OP-TEE โ˜ โ˜ โ˜
SPI5 โ˜OP-TEE โ˜ โ˜ โ˜
SPI6 โ˜OP-TEE โ˜ โ˜ โ˜
SPI7 โ˜OP-TEE โ˜ โ˜ โ˜
USBH โฌšOP-TEE โ˜ โ˜ โ˜
USB3DR โฌšOP-TEE โ˜ โ˜ โ˜
COMBOPHY โฌšOP-TEE โ˜‘ โฌš โฌš
UCPD โฌšOP-TEE โฌš โฌš โ˜‘
LPTIM1 โ˜OP-TEE โ˜ โ˜ โ˜
LPTIM2 โ˜OP-TEE โ˜ โ˜ โ˜
I2C6 โ˜OP-TEE โ˜ โ˜ โ˜
I2C7 โ˜OP-TEE โ˜ โ˜ โ˜
WKUP1 wakeup โ˜OP-TEE โ˜ โ˜ โ˜
WKUP2 wakeup โ˜OP-TEE โ˜ โ˜ โ˜
WKUP3 wakeup โ˜OP-TEE โ˜ โ˜ โ˜
WKUP4 wakeup โ˜OP-TEE โ˜ โ˜ โ˜
WKUP5 wakeup โ˜OP-TEE โ˜ โ˜ โ˜
WKUP6 wakeup โ˜OP-TEE โ˜ โ˜ โ˜
IPCC1 non secure interrupt CPU1 โœ“
IPCC1 non secure interrupt CPU2 โœ“
IPCC1 secure interrupt CPU1 โœ“OP-TEE
IPCC1 secure interrupt CPU2 โœ“
CPU2 SEV interrupt โ˜OP-TEE โ˜
CPU1 SEV interrupt โ˜ โ˜
WWDG1 Reset โฌšOP-TEE โ˜
ETH1_PMT wakeup โฌšOP-TEE โ˜ โฌš โ˜
ETH1_SBD โฌšOP-TEE โ˜ โฌš โ˜
ETH2_PMT wakeup โฌšOP-TEE โ˜ โฌš โ˜
ETH2_SBD โฌšOP-TEE โ˜ โฌš โ˜
DTS โ˜OP-TEE โฌš โ˜ โฌš
CPU2 SYSRESETREQ local CPU2 reset
I3C1 โ˜OP-TEE โ˜ โ˜ โ˜
I3C2 โ˜OP-TEE โ˜ โ˜ โ˜
I3C3 โ˜OP-TEE โ˜ โ˜ โ˜
HPDMA1 Channel 0 to 15 CPU1 irq โ˜OP-TEE โ˜
HPDMA2 Channel 0 to 15 CPU1 irq โ˜OP-TEE โ˜
HPDMA3 Channel 0 to 15 CPU1 irq โ˜OP-TEE โ˜
HPDMA1 Channel 0 to 15 CPU2 irq โ˜ โ˜
HPDMA2 Channel 0 to 15 CPU2 irq โ˜ โ˜
HPDMA3 Channel 0 to 15 CPU2 irq โ˜ โ˜
UCPD VBUS DETECT โฌšOP-TEE โฌš โฌš โ˜‘
UCPD VBUS VSAFE5V โฌšOP-TEE โฌš โฌš โ˜‘

The below table shows the possible runtime allocations for the features of the EXTI2 instance.

Feature Runtime allocation Info.png Comment
Cortex-A35
secure
(OP-TEE /
TF-A BL31)
Cortex-A35
non-secure
(Linux)
Cortex-M33
secure
(TF-M)
Cortex-M33
non-secure
(STM32Cube)
Cortex-M0+
Warning.png
(STM32Cube)
EXTI2[0] โ˜OP-TEE โ˜ โ˜ โ˜ โ˜
EXTI2[1] โ˜OP-TEE โ˜ โ˜ โ˜ โ˜
EXTI2[2] โ˜OP-TEE โ˜ โ˜ โ˜ โ˜
EXTI2[3] โ˜OP-TEE โ˜ โ˜ โ˜ โ˜
EXTI2[4] โ˜OP-TEE โ˜ โ˜ โ˜ โ˜
EXTI2[5] โ˜OP-TEE โ˜ โ˜ โ˜ โ˜
EXTI2[6] โ˜OP-TEE โ˜ โ˜ โ˜ โ˜
EXTI2[7] โ˜OP-TEE โ˜ โ˜ โ˜ โ˜
EXTI2[8] โ˜OP-TEE โ˜ โ˜ โ˜ โ˜
EXTI2[9] โ˜OP-TEE โ˜ โ˜ โ˜ โ˜
EXTI2[10] โ˜OP-TEE โ˜ โ˜ โ˜ โ˜
EXTI2[11] โ˜OP-TEE โ˜ โ˜ โ˜ โ˜
EXTI2[12] โ˜OP-TEE โ˜ โ˜ โ˜ โ˜
EXTI2[13] โ˜OP-TEE โ˜ โ˜ โ˜ โ˜
EXTI2[14] โ˜OP-TEE โ˜ โ˜ โ˜ โ˜
EXTI2[15] โ˜OP-TEE โ˜ โ˜ โ˜
TAMP non secure tamper CPU1 โฌš
RTC global non secure Wakeup CPU1 โœ“
TAMP non secure tamper CPU2 โ˜
RTC global non secure Wakeup CPU2 โ˜
TAMP non secure tamper CPU3 โ˜
TAMP secure tamper CPU1 โœ“OP-TEE
RTC global secure Wakeup CPU1 โœ“OP-TEE
TAMP secure tamper CPU2 โ˜
RTC global secure Wakeup CPU2 โ˜
I2C8 โ˜OP-TEE โ˜ โ˜ โ˜ โ˜
LPUART1 โ˜OP-TEE โ˜ โ˜ โ˜ โ˜
SPI8 โ˜OP-TEE โ˜ โ˜ โ˜ โ˜
LPTIM3 โ˜OP-TEE โ˜ โ˜ โ˜ โ˜
LPTIM4 โ˜OP-TEE โ˜ โ˜ โ˜ โ˜
LPTIM5 โ˜OP-TEE โ˜ โ˜ โ˜ โ˜
ADF1 โ˜OP-TEE โ˜ โ˜ โ˜ โ˜
IPCC2 non secure interrupt CPU1 โ˜‘
IPCC2 non secure interrupt CPU2 โ˜‘
IPCC2 non secure interrupt CPU3 โ˜‘
IPCC2 secure interrupt CPU1 โ˜‘OP-TEE
IPCC2 secure interrupt CPU2 โ˜‘
HSEM1 non secure interrupt โ˜‘
HSEM2 non secure interrupt โ˜‘
HSEM3 non secure interrupt โ˜‘
HSEM1 secure interrupt โ˜‘OP-TEE
HSEM2 secure interrupt โ˜‘
WWDG2 reset โ˜OP-TEE โ˜ โ˜ โ˜
IWDG1 reset
IWDG2 reset โ˜‘OP-TEE โ˜ โ˜
IWDG3 reset โ˜OP-TEE โ˜
IWDG4 reset โ˜OP-TEE โ˜ โ˜‘
IWDG5 reset โ˜OP-TEE โ˜ โ˜ โ˜
IWDG1 early wake โ˜‘OP-TEE โ˜
IWDG2 early wake โ˜OP-TEE โ˜‘
IWDG3 early wake โ˜‘ โ˜
IWDG4 early wake โ˜ โ˜‘
IWDG5 early wake โ˜‘
CM33 SEV interrupt to CPU3 โ˜‘
CA35 SEV interrupt to CPU3 โ˜‘
CM0 SEV interrupt โ˜OP-TEE โ˜ โ˜ โ˜
IAC interrupt CPU1 โœ“OP-TEE
IAC interrupt CPU2
VDDCPU_VD โ˜OP-TEE โฌš โ˜ โ˜
VDDCORE_VD โ˜OP-TEE โฌš โ˜ โ˜ โ˜
RETRAM CRC error wakeup
lpdma_ch0123_cpu1_irq โฌšOP-TEE โฌš
lpdma_ch0123_cpu2_irq โ˜ โ˜
lpdma_ch0123_cpu3_irq โ˜
I3C4 โ˜OP-TEE โ˜ โ˜ โ˜ โ˜
CDBGPWRUPREQ โ˜OP-TEE โ˜ โ˜ โ˜ โ˜

4. Software frameworks and drivers[edit source]

Below are listed the software frameworks and drivers managing the EXTI peripheral for the embedded software components listed in the above tables.


5. How to assign and configure the peripheral[edit source]

The peripheral assignment can be done via the STM32CubeMX graphical tool (and manually completed if needed).
This tool also helps to configure the peripheral:

  • partial device trees (pin control and clock tree) generation for the OpenSTLinux software components,
  • HAL initialization code generation for the STM32CubeMPU Package.

The configuration is applied by the firmware running in the context in which the peripheral is assigned.

See also additional information in the Interrupt device tree configuration article for Linuxยฎ.