Difference between revisions of "STM32MP15 ecosystem errata sheet"

[checked revision] [quality revision]

The STM32MP15xx device errata sheet[1] lists the different device limitations and explains the corresponding workarounds (software and/or hardware) if any.

The objective of this article is to explain which of the workarounds describe described in this errata sheet are implemented in STM32MP15 ecosystem releases.

Here is the legend used in the columns "Status STM32MP15xx Rev.B" and "Status STM32MP15xx Rev.Z" of the table below. It refers to the availability and status of a given errata workaround for the described erratum:

  • A = workaround available
  • P = partial workaround available
  • - = no workaround needed because the limitation is absent in the given revision

Here is the legend used in the column "STM32MP15-Ecosystem-vx.x.x Status" of the table below. It refers to the availability of a workaround for a given STM32MP15 ecosystem release:

  • I = workaround Implemented
  • P = workaround Partialy implemented
  • N= workaround Not implemented
  • NA= workaround Not Applicable

Wave your mouse over a status in the table to display the corresponding legend.

Previous ecosystem releases [Expand/Collapse] Previous ecosystem releases [Expand/Collapse]
Function Section Limitation Status for STM32MP15xx Rev.B Status for STM32MP15xx Rev.Z Status for ecosystem release ≤ v1.1.0 More info.png Status for ecosystem release v1.2.0 More info.png Comment about the workaround implemented in STM32MP15 ecosystem
Arm® Cortex®-A7 core 2.1.1 Memory locations might be accessed speculatively due to instruction fetches when HCR.VM is set A A N N Workaround not implemented: STM32MPU Embedded Software distribution does not activate Arm® Cortex®-A7 Hypervisor mode and hence the Virtual Memory second stage of translation.

It is customer responsibility to implement the workaround if the Hypervisor mode is used in his/her product.

2.1.2 Cache maintenance by set/way operations can execute out of order A A N N Limited impact on the system. Implementation accepted by the community since Linux® kernel v5.3 in arch/arm/Kconfig (refer to ARM_ERRATA_814220) so it can already be backported if need be.
2.1.4 PMU event counter 0x14 does not increment correctly A A N N No impact on the system. Minor impact on performance measurement.

No workaround provided by Arm for Linux kernel PMU driver.

Arm® Cortex®-M4 core 2.2.1 Interrupted loads to SP can cause erroneous behavior A A N N Limitation only on hand-written assembly code. The customer must implement the workaround in the product assembly code.
2.2.2 VDIV or VSQRT instructions might not complete correctly when very short ISRs are used A A N N STM32CubeMP1 Package provided as example. It is customer responsibility to implement one of the proposed workarounds according to the user code and product configuration.
2.2.3 Store immediate overlapping exception return operation might vector to incorrect interrupt A A N N Minor impact on the system.Workaround to be implemented by customer according to the MPU configuration.
System 2.3.1 TPIU fails to output sync after the pattern generator is disabled in Normal mode A A N N No workaround implemented.

No impact on the system since this issue occurs only on the trace port.

2.3.3 HSE external oscillator required in some LTDC use cases P P I I Hardware implementation of the external oscillator connected to the HSE pins available on STM32MP157C-EV1 MB1263 Rev.C (aka "MB1263C") and STM32MP157X-DKX MB1272 Rev.C (aka "MB1272C").

HSE configuration implemented in TF-A fdts/stm32mp157c-ed1.dts for STM32MP157C-EV1 MB1263 and fdts/stm32mp157c-dk1.dts for STM32MP157X-DKX MB1272.

2.3.4 RCC cannot exit Stop and Low-power Stop modes A A I I Implemented in TF-A plat/st/stm32mp1/bl2_plat_setup.c
2.3.5 Incorrect reset of glitch-free kernel clock switch P P I I By default, STPMIC1 performs a VDDCORE reset on NRST activation.
2.3.6 Limitation of aclk/hclk5/hclk6 to 200 MHz when used as SDMMC1/2 kernel clock P P I I Implemented in TF-A fdts with a clock tree that uses a SDMMC1/SDMMC2 kernel clock source different from the aclk/hclk5/hclk6 bus clock.
2.3.8 eMMC boot timeout too short A - I I Rev.B workaround implemented in STM32MP157C-EV1 MB1263 Rev.C (aka "MB1263C") that uses an eMMC that meets the required timing.
2.3.9 Cortex-M4 cannot use I/O compensation on Standby mode exit A A I I The examples delivered with STM32Cube use only IOSPEEDR[1:0] settings 00 and 01.
DDRPHYC 2.4.1 DDRPHYC overconsumption upon reset or Standby mode exit A - P NA DDRPHYC is correctly reinitialized by TF-A after reset and Standby mode exit.

On Rev.B, the issue is present if Cortex®-M4 standalone wakeup as TF-A is not executed and hence DDRPHYC not reinitialized.

2.4.2 DDR_CLK jitter out of JEDEC requirement for 32-bit LPDDR2/LPDDR3 at low device Tj A A NA NA ST boards use DDR3 instead of LPDDR2/3.
2.4.3 Data corruption at low device Tj combined with low 32-bit LPDDR2/LPDDR3 I/O supply voltage A A NA NA ST boards use DDR3 instead of LPDDR2/3.
DMAMUX 2.6.4 Wrong input DMA request routed upon specific DMAMUX_CxCR register write coinciding with synchronization event A A P P Not applicable to OpenSTLinux distribution since DMA Synchronous mode is not used.

It is customer responsibility to provide the right DMAMUX signal polarity configuration when calling the HAL_DMAEx_ConfigMuxSync() function provided in STM32CubeMP1 PackageSrc/stm32mp1xx_hal_dma_ex.c .

QUADSPI 2.7.1 Memory-mapped read of last memory byte fails P P A A Implemented in OpenSTLinux distribution drivers/spi/spi-stm32-qspi.c
ADC 2.8.1 New context conversion initiated without waiting for trigger when writing new context in ADC_JSQR with JQDIS = 0 and JQM = 0 A A Not applicable to Linux stm32-adc driver , since JQDIS = 1.
2.8.2 Two consecutive context conversions fail when writing new context in ADC_JSQR just after previous context completion with JQDIS = 0 and JQM = 0 P P Not applicable to Linux stm32-adc driver , since JQDIS = 1.
2.8.3 Unexpected regular conversion when two consecutive injected conversions are performed in Dual interleaved mode A A Not applicable to Linux stm32-adc driver , since Dual mode is not used.
2.8.4 ADC ANA0/ANA1 resolution limited when Gigabit Ethernet is used P P P P The customer must implement this workaround by limiting the ADC data resolution in OpenSTLinux distribution device tree configuration or in the STM32CubeMP1 Package application.
2.8.5 ADC missing codes in differential 16-bit static acquisition P P P P The customer must implement this workaround by limiting the ADC data resolution in OpenSTLinux distribution device tree configuration or in the STM32CubeMP1 Package application.
DAC 2.9.1 Invalid DAC channel analog output if the DAC channel MODE bitfield is programmed before DAC initialization A A P P The Linux DAC driver uses only the Normal mode. It never needs to modify the MODE bitfield.

Both Normal and Sample and hold modes are supported by the HAL drivers. It is up to the user to properly call HAL_DAC_Init before HAL_DAC_ConfigChannel to avoid the issue.

DTS 2.10.1 Mode using PCLK & LSE (REFCLK_SEL = 1) should not be used P P I I Implemented in OpenSTLinux distribution drivers/thermal/st/stm_thermal.c
TIM 2.12.1 One-pulse mode trigger not detected in master-slave reset + trigger configuration P P N N This workaround is proposed only as a recommendation.
LPTIM 2.13.1 MCU may remain stuck in LPTIM interrupt when entering Stop mode A A N N The LPTIM interrupt is not used in OpenSTLinux distribution.

This workaround is not implemented in STM32CubeMP1 Package. It is customer responsibility to implement it in MspDeinit().

2.13.2 MCU may remain stuck in LPTIM interrupt when clearing event flag P P I I The LPTIM interrupt is not used in OpenSTLinux distribution.

It is implemented in STM32CubeMP1 Package Src/stm32mp1xx_hal_lptim.c .

RTC and TAMP 2.14.2 Calendar initialization may fail in case of consecutive INIT mode entry A A I I This workaround is implemented in OpenSTLinux distribution drivers/rtc/rtc-stm32.c .
I2C 2.15.1 Wrong data sampling when data setup time (tSU;DAT) is shorter than one I2C kernel clock period P P I I This workaround is implemented in TF-A fdts with a clock tree that configures the I2C kernel clock source to a frequency higher than 20 MHz.

It is valid for both OpenSTLinux distribution and STM32CubeMP1 Package.

2.15.2 Spurious bus error detection in master mode A A N N In order to get real bus error notifications, this workaround is implemented neither within OpenSTLinux distribution nor within STM32CubeMP1 Package.
2.15.3 Spurious master transfer upon own slave address match P P NA NA The multimaster mode implementation of STM32CubeMP1 Package I2C HAL driver prevents such case from happening.
2.15.5 Transmission stalled after first byte transfer A A N N
SPI 2.17.1 Master data transfer stall at system clock much faster than SCK A A I I SPI is disabled after each EOT in OpenSTLinux distribution drivers/spi/spi-stm32.c and in STM32CubeMP1 Package Src/stm32mp1xx_hal_spi.c .
2.17.2 Corrupted CRC return at non-zero UDRDET setting P P N N Slave mode and CRC are not supported in OpenSTLinux distribution.

This workaround is not implemented in STM32CubeMP1 Package.

2.17.3 TXP interrupt occurring while SPI disabled A A I I This workaround is implemented in OpenSTLinux distribution, drivers/spi/spi-stm32.c ensures that all interrupts are disabled before the SPI is disabled.

This workaround is implemented in STM32CubeMP1 Package Src/stm32mp1xx_hal_spi.c .

2.17.4 Possible corruption of last-received data depending on CRCSIZE setting A A N N CRC is not supported in OpenSTLinux distribution.
FDCAN 2.18.1 Desynchronization under specific condition with edge filtering enabled A A N N
2.18.2 Tx FIFO messages inverted under specific buffer usage and priority setting A A N N
2.18.3 DAR mode transmission failure due to lost arbitration A A N N
ETH 2.20.2 Rx DMA may fail to recover upon DMA restart following a bus error, with Rx timestamping enabled A A N N
2.20.3 Tx DMA may halt while fetching TSO header under specific conditions A A N N
2.20.4 Spurious receive watchdog timeout interrupt A A N N
2.20.5 Incorrect flexible PPS output interval under specific conditions A A N N
2.20.6 Packets dropped in RMII 10Mbps mode due to fake dribble and CRC error A A N N
2.20.7 ARP offload function not effective A A I I ARP software support is used in OpenSTLinux distribution.

References[edit]


The STM32MP15xx device errata sheet<ref  name=errata>[[STM32MP15 resources#Errata sheets|STM32MP15 Errata sheets]]</ref> lists the different device limitations and explains the corresponding workarounds (software and/or hardware) if any.</br>


The objective of this article is to explain which of the workarounds describedescribed in this errata sheet are implemented in STM32MP15 ecosystem releases.<br />


Here is the legend used in the columns "Status STM32MP15xx Rev.B" and "Status STM32MP15xx Rev.Z" of the table below. It refers to the availability and status of a given errata workaround for the described erratum:
* A = workaround available
* P = partial workaround available
* - = no workaround needed because the limitation is absent in the given revision

Here is the legend used in the column "STM32MP15-Ecosystem-vx.x.x Status" of the table below. It refers to the availability of a workaround for a given STM32MP15 ecosystem release:
* I = workaround '''I'''mplemented
* P = workaround '''P'''artialy implemented
* N= workaround '''N'''ot implemented
* NA= workaround '''N'''ot '''A'''pplicable

Wave your mouse over a status in the table to display the corresponding legend.

{| class="st-table"
|+ style="caption-side:top;" | <span class="mw-customtoggle-col-ex">Previous ecosystem releases <span style="color: {{STLightBlue}};">[Expand/Collapse]</span></span>

|+ style="caption-side:bottom;" | <span class="mw-customtoggle-col-ex">Previous ecosystem releases <span style="color: {{STLightBlue}};">[Expand/Collapse]</span></span>

! style="text-align: center" | Function
! style="text-align: center" | Section
! style="text-align: center" | Limitation
! style="text-align: center" id="mw-customcollapsible-col-ex" class="mw-collapsible mw-collapsed" | Status for </br>STM32MP15xx Rev.B
! style="text-align: center" | Status for </br>STM32MP15xx Rev.Z
! style="text-align: center" id="mw-customcollapsible-col-ex" class="mw-collapsible mw-collapsed" | Status for </br>{{EcosystemRelease | revision=1.1.0 | range=and before}}
! style="text-align: center" | Status for </br>{{EcosystemRelease | revision=1.2.0}}
! style="text-align: center" | Comment about the workaround implemented in STM32MP15 ecosystem
|-
| rowspan="3" | [[Arm Cortex-A7|Arm<sup>&reg;</sup> Cortex<sup>&reg;</sup>-A7 core]]
| style="text-align: center;" | 2.1.1
| Memory locations might be accessed speculatively due to instruction fetches when HCR.VM is set
| style="text-align: center;" id="mw-customcollapsible-col-ex" class="mw-collapsible mw-collapsed" | <span title="workaround available" >A</span>

| style="text-align: center;" | <span title="workaround available" >A</span>

| style="text-align: center;" id="mw-customcollapsible-col-ex" class="mw-collapsible mw-collapsed" | <span title="workaround not implemented" >N</span>

| style="text-align: center;" | <span title="workaround not implemented" >N</span>

| Workaround not implemented: [[STM32MPU Embedded Software distribution]] does not activate Arm<sup>&reg;</sup> Cortex<sup>&reg;</sup>-A7 Hypervisor mode and hence the Virtual Memory second stage of translation.</br>

It is customer responsibility to implement the workaround if the Hypervisor mode is used in his/her product.
|-
| style="text-align: center;" | 2.1.2
| Cache maintenance by set/way operations can execute out of order
| style="text-align: center;" id="mw-customcollapsible-col-ex" class="mw-collapsible mw-collapsed" | <span title="workaround available" >A</span>

| style="text-align: center;" | <span title="workaround available" >A</span>

| style="text-align: center;" id="mw-customcollapsible-col-ex" class="mw-collapsible mw-collapsed" | <span title="workaround not implemented" >N</span>

| style="text-align: center;" | <span title="workaround not implemented" >N</span>

| Limited impact on the system. Implementation accepted by the community since Linux<sup>&reg;</sup> kernel v5.3 in arch/arm/Kconfig (refer to ARM_ERRATA_814220) so it can already be backported if need be.
|-
| style="text-align: center;" | 2.1.4
| PMU event counter 0x14 does not increment correctly
| style="text-align: center;" id="mw-customcollapsible-col-ex" class="mw-collapsible mw-collapsed" | <span title="workaround available" >A</span>

| style="text-align: center;" | <span title="workaround available" >A</span>

| style="text-align: center;" id="mw-customcollapsible-col-ex" class="mw-collapsible mw-collapsed" | <span title="workaround not implemented" >N</span>

| style="text-align: center;" | <span title="workaround not implemented" >N</span>

| No impact on the system. Minor impact on performance measurement.</br> 

No workaround provided by Arm for Linux kernel PMU driver.
|-
| rowspan="3" | [[Arm Cortex-M4|Arm<sup>&reg;</sup> Cortex<sup>&reg;</sup>-M4 core]]
| style="text-align: center;" | 2.2.1
| Interrupted loads to SP can cause erroneous behavior
| style="text-align: center;" id="mw-customcollapsible-col-ex" class="mw-collapsible mw-collapsed" | <span title="workaround available" >A</span>

| style="text-align: center;" | <span title="workaround available" >A</span>

| style="text-align: center;" id="mw-customcollapsible-col-ex" class="mw-collapsible mw-collapsed" | <span title="workaround not implemented" >N</span>

| style="text-align: center;" | <span title="workaround not implemented" >N</span>

| Limitation only on hand-written assembly code.</br> The customer must implement the workaround in the product assembly code.
|-
| style="text-align: center;" | 2.2.2
| VDIV or VSQRT instructions might not complete correctly when very short ISRs are used
| style="text-align: center;" id="mw-customcollapsible-col-ex" class="mw-collapsible mw-collapsed" | <span title="workaround available" >A</span>

| style="text-align: center;" | <span title="workaround available" >A</span>

| style="text-align: center;" id="mw-customcollapsible-col-ex" class="mw-collapsible mw-collapsed" | <span title="workaround not implemented" >N</span>

| style="text-align: center;" | <span title="workaround not implemented" >N</span>

| [[STM32CubeMP1 Package]] provided as example.</br> It is customer responsibility to implement one of the proposed workarounds according to the user code and product configuration.
|-
| style="text-align: center;" | 2.2.3
| Store immediate overlapping exception return operation might vector to incorrect interrupt
| style="text-align: center;" id="mw-customcollapsible-col-ex" class="mw-collapsible mw-collapsed" | <span title="workaround available" >A</span>

| style="text-align: center;" | <span title="workaround available" >A</span>

| style="text-align: center;" id="mw-customcollapsible-col-ex" class="mw-collapsible mw-collapsed" | <span title="workaround not implemented" >N</span>

| style="text-align: center;" | <span title="workaround not implemented" >N</span>

| Minor impact on the system.</br>Workaround to be implemented by customer according to the MPU configuration.
|-
| rowspan="7" | System
| style="text-align: center;" | 2.3.1
| TPIU fails to output sync after the pattern generator is disabled in Normal mode
| style="text-align: center;" id="mw-customcollapsible-col-ex" class="mw-collapsible mw-collapsed" | <span title="workaround available" >A</span>

| style="text-align: center;" | <span title="workaround available" >A</span>

| style="text-align: center;" id="mw-customcollapsible-col-ex" class="mw-collapsible mw-collapsed" | <span title="workaround not implemented" >N</span>

| style="text-align: center;" | <span title="workaround not implemented" >N</span>

| No workaround implemented.</br>

No impact on the system since this issue occurs only on the trace port.
|-
| style="text-align: center;" | 2.3.3
| [[RCC internal peripheral|HSE]] external oscillator required in some [[LTDC internal peripheral|LTDC]] use cases
| style="text-align: center;" id="mw-customcollapsible-col-ex" class="mw-collapsible mw-collapsed" | <span title="partial workaround available" >P</span>

| style="text-align: center;" | <span title="partial workaround available" >P</span>

| style="text-align: center;" id="mw-customcollapsible-col-ex" class="mw-collapsible mw-collapsed" | <span title="workaround implemented" >I</span>

| style="text-align: center;" | <span title="workaround implemented" >I</span>

| Hardware implementation of the external oscillator connected to the HSE pins available on [[STM32MP157C-EV1 - hardware description|STM32MP157C-EV1]] [[MB1263]] Rev.C (aka "MB1263C") and [[STM32MP157X-DKX - hardware description|STM32MP157X-DKX]] [[MB1272]] Rev.C (aka "MB1272C").</br>

HSE configuration implemented in [[TF-A overview|TF-A]] {{CodeSource | TF-A | fdts/stm32mp157c-ed1.dts | fdts/stm32mp157c-ed1.dts}} for  [[STM32MP157C-EV1 - hardware description|STM32MP157C-EV1]] [[MB1263]]  and {{CodeSource | TF-A | fdts/stm32mp157c-dk1.dts | fdts/stm32mp157c-dk1.dts}} for  [[STM32MP157X-DKX - hardware description|STM32MP157X-DKX]] [[MB1272]]. 
|-
| style="text-align: center;" | 2.3.4
| [[RCC internal peripheral|RCC]] cannot exit Stop and Low-power Stop modes
| style="text-align: center;" id="mw-customcollapsible-col-ex" class="mw-collapsible mw-collapsed" | <span title="workaround available" >A</span>

| style="text-align: center;" | <span title="workaround available" >A</span>

| style="text-align: center;" id="mw-customcollapsible-col-ex" class="mw-collapsible mw-collapsed" | <span title="workaround implemented" >I</span>

| style="text-align: center;" | <span title="workaround implemented" >I</span>

| Implemented in [[TF-A overview|TF-A]] {{CodeSource | TF-A | plat/st/stm32mp1/bl2_plat_setup.c#L279 | plat/st/stm32mp1/bl2_plat_setup.c}}
|-
| style="text-align: center;" | 2.3.5
| Incorrect [[RCC internal peripheral|reset]] of glitch-free kernel clock switch
| style="text-align: center;" id="mw-customcollapsible-col-ex" class="mw-collapsible mw-collapsed" | <span title="partial workaround available" >P</span>

| style="text-align: center;" | <span title="partial workaround available" >P</span>

| style="text-align: center;" id="mw-customcollapsible-col-ex" class="mw-collapsible mw-collapsed" | <span title="workaround implemented" >I</span>

| style="text-align: center;" | <span title="workaround implemented" >I</span>

| By default, [[PMIC_hardware_components#STPMIC1|STPMIC1]] performs a VDDCORE reset on NRST activation.
|-
| style="text-align: center;" | 2.3.6
| Limitation of aclk/hclk5/hclk6 to 200 MHz when used as SDMMC1/2 [[RCC internal peripheral|kernel clock]]
| style="text-align: center;" id="mw-customcollapsible-col-ex" class="mw-collapsible mw-collapsed" | <span title="partial workaround available" >P</span>

| style="text-align: center;" | <span title="partial workaround available" >P</span>

| style="text-align: center;" id="mw-customcollapsible-col-ex" class="mw-collapsible mw-collapsed" | <span title="workaround implemented" >I</span>

| style="text-align: center;" | <span title="workaround implemented" >I</span>

| Implemented in [[TF-A overview|TF-A]] {{CodeSource | TF-A | fdts | fdts}} with a [[STM32MP15 clock tree|clock tree]] that uses a SDMMC1/SDMMC2 kernel clock source different from the aclk/hclk5/hclk6 bus clock.
|-
| style="text-align: center;" | 2.3.8
| eMMC boot timeout too short
| style="text-align: center;" id="mw-customcollapsible-col-ex" class="mw-collapsible mw-collapsed" | <span title="workaround available" >A</span>

| style="text-align: center;" | <span title="no workaround needed because the limitation is absent on the given revision" >-</span>

| style="text-align: center;" id="mw-customcollapsible-col-ex" class="mw-collapsible mw-collapsed" | <span title="workaround implemented" >I</span>

| style="text-align: center;" | <span title="workaround implemented" >I</span>

| Rev.B workaround implemented in [[STM32MP157C-EV1 - hardware description|STM32MP157C-EV1]] [[MB1263]] Rev.C (aka "MB1263C") that uses an eMMC that meets the required timing.
|-
| style="text-align: center;" | 2.3.9
| Cortex-M4 cannot use I/O compensation on Standby mode exit
| style="text-align: center;" id="mw-customcollapsible-col-ex" class="mw-collapsible mw-collapsed" | <span title="workaround available" >A</span>

| style="text-align: center;" | <span title="workaround available" >A</span>

| style="text-align: center;" id="mw-customcollapsible-col-ex" class="mw-collapsible mw-collapsed" | <span title="workaround implemented" >I</span>

| style="text-align: center;" | <span title="workaround implemented" >I</span>

| The examples delivered with STM32Cube use only IOSPEEDR[1:0] settings 00 and 01.
|-
| rowspan="3" | [[DDRCTRL and DDRPHYC internal peripherals|DDRPHYC]]
| style="text-align: center;" | 2.4.1
| DDRPHYC overconsumption upon reset or Standby mode exit
| style="text-align: center;" id="mw-customcollapsible-col-ex" class="mw-collapsible mw-collapsed" | <span title="workaround available" >A</span>

| style="text-align: center;" | <span title="no workaround needed because the limitation is absent on the given revision" >-</span>

| style="text-align: center;" id="mw-customcollapsible-col-ex" class="mw-collapsible mw-collapsed" | <span title="workaround partially implemented" >P</span>

| style="text-align: center;" | <span title="workaround not applicable" >NA</span>

| DDRPHYC is correctly reinitialized by TF-A after reset and Standby mode exit.</br>

On Rev.B, the issue is present if Cortex<sup>&reg;</sup>-M4 standalone wakeup as TF-A is not executed and hence DDRPHYC not reinitialized.
|-
| style="text-align: center;" | 2.4.2
| DDR_CLK jitter out of JEDEC requirement for 32-bit LPDDR2/LPDDR3 at low device Tj
| style="text-align: center;" id="mw-customcollapsible-col-ex" class="mw-collapsible mw-collapsed" | <span title="workaround available" >A</span>

| style="text-align: center;" | <span title="workaround available" >A</span>

| style="text-align: center;" id="mw-customcollapsible-col-ex" class="mw-collapsible mw-collapsed" | <span title="workaround not applicable" >NA</span>

| style="text-align: center;" | <span title="workaround not applicable" >NA</span>

| ST boards use DDR3 instead of LPDDR2/3.
|-
| style="text-align: center;" | 2.4.3
| Data corruption at low device Tj combined with low 32-bit LPDDR2/LPDDR3 I/O supply voltage
| style="text-align: center;" id="mw-customcollapsible-col-ex" class="mw-collapsible mw-collapsed" | <span title="workaround available" >A</span>

| style="text-align: center;" | <span title="workaround available" >A</span>

| style="text-align: center;" id="mw-customcollapsible-col-ex" class="mw-collapsible mw-collapsed" | <span title="workaround not applicable" >NA</span>

| style="text-align: center;" | <span title="workaround not applicable" >NA</span>

| ST boards use DDR3 instead of LPDDR2/3.
|-
| rowspan="1" | [[DMAMUX internal peripheral|DMAMUX]]
| style="text-align: center;" | 2.6.4
| Wrong input DMA request routed upon specific DMAMUX_CxCR register write coinciding with synchronization event
| style="text-align: center;" id="mw-customcollapsible-col-ex" class="mw-collapsible mw-collapsed" | <span title="workaround available" >A</span>

| style="text-align: center;" | <span title="workaround available" >A</span>

| style="text-align: center;" id="mw-customcollapsible-col-ex" class="mw-collapsible mw-collapsed" | <span title="workaround partially implemented" >P</span>

| style="text-align: center;" | <span title="workaround partially implemented" >P</span>

| Not applicable to [[OpenSTLinux distribution]] since DMA Synchronous mode is not used. <br />

It is customer responsibility to provide the right DMAMUX signal polarity configuration when calling the HAL_DMAEx_ConfigMuxSync() function provided in [[STM32CubeMP1 Package]]{{CodeSource | STM32CubeMP1 | Drivers/STM32MP1xx_HAL_Driver/Src/stm32mp1xx_hal_dma_ex.c#L320 | Src/stm32mp1xx_hal_dma_ex.c}}.
|-
| rowspan="1" | [[QUADSPI internal peripheral|QUADSPI]]
| style="text-align: center;" | 2.7.1
| Memory-mapped read of last memory byte fails
| style="text-align: center;" id="mw-customcollapsible-col-ex" class="mw-collapsible mw-collapsed" | <span title="partial workaround available" >P</span>

| style="text-align: center;" | <span title="partial workaround available" >P</span>

| style="text-align: center;" id="mw-customcollapsible-col-ex" class="mw-collapsible mw-collapsed" | <span title="workaround implemented" >A</span>

| style="text-align: center;" | <span title="workaround implemented" >A</span>

| Implemented in [[OpenSTLinux distribution]] {{CodeSource | Linux kernel | drivers/spi/spi-stm32-qspi.c#L452 | drivers/spi/spi-stm32-qspi.c}}
|-
| rowspan="5" | [[ADC internal peripheral|ADC]]
| style="text-align: center;" | 2.8.1
| New context conversion initiated without waiting for trigger when writing new context in ADC_JSQR with JQDIS = 0 and JQM = 0
| style="text-align: center;" id="mw-customcollapsible-col-ex" class="mw-collapsible mw-collapsed" | <span title="workaround available" >A</span>

| style="text-align: center;" | <span title="workaround available" >A</span>

| style="text-align: center;" id="mw-customcollapsible-col-ex" class="mw-collapsible mw-collapsed" |
| style="text-align: center;" | 
| Not applicable to Linux {{CodeSource | Linux kernel | drivers/iio/adc/stm32-adc.c | stm32-adc driver}}, since JQDIS = 1. {{ReviewsComments|FGA: To be checked for cube}}
|-
| style="text-align: center;" | 2.8.2
| Two consecutive context conversions fail when writing new context in ADC_JSQR just after previous context completion with JQDIS = 0 and JQM = 0
| style="text-align: center;" id="mw-customcollapsible-col-ex" class="mw-collapsible mw-collapsed" | <span title="partial workaround available" >P</span>

| style="text-align: center;" | <span title="partial workaround available" >P</span>

| style="text-align: center;" id="mw-customcollapsible-col-ex" class="mw-collapsible mw-collapsed" | 
| style="text-align: center;" | 
| Not applicable to Linux {{CodeSource | Linux kernel | drivers/iio/adc/stm32-adc.c | stm32-adc driver}}, since JQDIS = 1. {{ReviewsComments|FGA: To be checked for cube}}
|-
| style="text-align: center;" | 2.8.3
| Unexpected regular conversion when two consecutive injected conversions are performed in Dual interleaved mode
| style="text-align: center;" id="mw-customcollapsible-col-ex" class="mw-collapsible mw-collapsed" | <span title="workaround available" >A</span>

| style="text-align: center;" | <span title="workaround available" >A</span>

| style="text-align: center;" id="mw-customcollapsible-col-ex" class="mw-collapsible mw-collapsed" | 
| style="text-align: center;" | 
| Not applicable to Linux {{CodeSource | Linux kernel | drivers/iio/adc/stm32-adc.c | stm32-adc driver}}, since Dual mode is not used. {{ReviewsComments|FGA: To be checked for cube}}
|-
| style="text-align: center;" | 2.8.4
| ADC ANA0/ANA1 resolution limited when Gigabit Ethernet is used
| style="text-align: center;" id="mw-customcollapsible-col-ex" class="mw-collapsible mw-collapsed" | <span title="partial workaround available" >P</span>

| style="text-align: center;" | <span title="partial workaround available" >P</span>

| style="text-align: center;" id="mw-customcollapsible-col-ex" class="mw-collapsible mw-collapsed" | <span title="workaround partially implemented" >P</span>

| style="text-align: center;" | <span title="workaround partially implemented" >P</span>

| The customer must implement this workaround by limiting the ADC data resolution in [[OpenSTLinux distribution]] device tree configuration or in the [[STM32CubeMP1 Package]] application.
|-
| style="text-align: center;" | 2.8.5
| ADC missing codes in differential 16-bit static acquisition
| style="text-align: center;" id="mw-customcollapsible-col-ex" class="mw-collapsible mw-collapsed" | <span title="partial workaround available" >P</span>

| style="text-align: center;" | <span title="partial workaround available" >P</span>

| style="text-align: center;" id="mw-customcollapsible-col-ex" class="mw-collapsible mw-collapsed" | <span title="workaround partially implemented" >P</span>

| style="text-align: center;" | <span title="workaround partially implemented" >P</span>

| The customer must implement this workaround by limiting the ADC data resolution in [[OpenSTLinux distribution]] device tree configuration or in the [[STM32CubeMP1 Package]] application.
|-
| rowspan="1" | [[DAC internal peripheral|DAC]]
| style="text-align: center;" | 2.9.1
| Invalid DAC channel analog output if the DAC channel MODE bitfield is programmed before DAC initialization
| style="text-align: center;" id="mw-customcollapsible-col-ex" class="mw-collapsible mw-collapsed" | <span title="workaround available" >A</span>

| style="text-align: center;" | <span title="workaround available" >A</span>

| style="text-align: center;" id="mw-customcollapsible-col-ex" class="mw-collapsible mw-collapsed" | <span title="partial workaround available" >P</span>

| style="text-align: center;" | <span title="partial workaround available" >P</span>

| The Linux DAC driver uses only the Normal mode. It never needs to modify the MODE bitfield.<br><br>

Both Normal and Sample and hold modes are supported by the HAL drivers. It is up to the user to properly call HAL_DAC_Init before HAL_DAC_ConfigChannel to avoid the issue.
|-
| rowspan="1" | [[DTS internal peripheral|DTS]]
| style="text-align: center;" | 2.10.1
| Mode using PCLK & LSE (REFCLK_SEL = 1) should not be used
| style="text-align: center;" id="mw-customcollapsible-col-ex" class="mw-collapsible mw-collapsed" | <span title="partial workaround available" >P</span>

| style="text-align: center;" | <span title="partial workaround available" >P</span>

| style="text-align: center;" id="mw-customcollapsible-col-ex" class="mw-collapsible mw-collapsed" | <span title="workaround implemented" >I</span>

| style="text-align: center;" | <span title="workaround implemented" >I</span>

| Implemented in [[OpenSTLinux distribution]] {{CodeSource | Linux kernel | drivers/thermal/st/stm_thermal.c#L215 | drivers/thermal/st/stm_thermal.c}}
|-
| rowspan="1" | [[TIM internal peripheral|TIM]]
| style="text-align: center;" | 2.12.1
| One-pulse mode trigger not detected in master-slave reset + trigger configuration
| style="text-align: center;" id="mw-customcollapsible-col-ex" class="mw-collapsible mw-collapsed" | <span title="partial workaround available" >P</span>

| style="text-align: center;" | <span title="partial workaround available" >P</span>

| style="text-align: center;" id="mw-customcollapsible-col-ex" class="mw-collapsible mw-collapsed" | <span title="workaround not implemented" >N</span>

| style="text-align: center;" | <span title="workaround not implemented" >N</span>

| This workaround is proposed only as a recommendation.
|-
| rowspan="2" | [[LPTIM internal peripheral|LPTIM]]
| style="text-align: center;" | 2.13.1
| MCU may remain stuck in LPTIM interrupt when entering Stop mode
| style="text-align: center;" id="mw-customcollapsible-col-ex" class="mw-collapsible mw-collapsed" | <span title="workaround available" >A</span>

| style="text-align: center;" | <span title="workaround available" >A</span>

| style="text-align: center;" id="mw-customcollapsible-col-ex" class="mw-collapsible mw-collapsed" | <span title="workaround not implemented" >N</span>

| style="text-align: center;" | <span title="workaround not implemented" >N</span>

| The LPTIM interrupt is not used in [[OpenSTLinux distribution]]. <br />

This workaround is not implemented in [[STM32CubeMP1 Package]]. It is customer responsibility to implement it in MspDeinit().
|-
| style="text-align: center;" | 2.13.2
| MCU may remain stuck in LPTIM interrupt when clearing event flag
| style="text-align: center;" id="mw-customcollapsible-col-ex" class="mw-collapsible mw-collapsed" | <span title="partial workaround available" >P</span>

| style="text-align: center;" | <span title="partial workaround available" >P</span>

| style="text-align: center;" id="mw-customcollapsible-col-ex" class="mw-collapsible mw-collapsed" | <span title="workaround implemented" >I</span>

| style="text-align: center;" | <span title="workaround implemented" >I</span>

|The LPTIM interrupt is not used in [[OpenSTLinux distribution]]. </br>

It is implemented in [[STM32CubeMP1 Package]] {{CodeSource | STM32CubeMP1 | Drivers/STM32MP1xx_HAL_Driver/Src/stm32mp1xx_hal_lptim.c#L1413 | Src/stm32mp1xx_hal_lptim.c}}.
|-
| rowspan="1" | [[RTC internal peripheral|RTC]] and [[TAMP internal peripheral|TAMP]]
| style="text-align: center;" | 2.14.2
| Calendar initialization may fail in case of consecutive INIT mode entry
| style="text-align: center;" id="mw-customcollapsible-col-ex" class="mw-collapsible mw-collapsed" | <span title="workaround available" >A</span>

| style="text-align: center;" | <span title="workaround available" >A</span>

| style="text-align: center;" id="mw-customcollapsible-col-ex" class="mw-collapsible mw-collapsed" | <span title="workaround implemented" >I</span>

| style="text-align: center;" | <span title="workaround implemented" >I</span>

| This workaround is implemented in [[OpenSTLinux distribution]] {{CodeSource | Linux kernel | drivers/rtc/rtc-stm32.c#L276 | drivers/rtc/rtc-stm32.c}}.
|-
| rowspan="4" | [[I2C internal peripheral|I2C]]
| style="text-align: center;" | 2.15.1
| Wrong data sampling when data setup time (tSU;DAT) is shorter than one I2C kernel clock period
| style="text-align: center;" id="mw-customcollapsible-col-ex" class="mw-collapsible mw-collapsed" | <span title="partial workaround available" >P</span>

| style="text-align: center;" | <span title="partial workaround available" >P</span>

| style="text-align: center;" id="mw-customcollapsible-col-ex" class="mw-collapsible mw-collapsed" | <span title="workaround implemented" >I</span>

| style="text-align: center;" | <span title="workaround implemented" >I</span>

| This workaround is implemented in [[TF-A overview|TF-A]] {{CodeSource | TF-A | fdts | fdts}} with a [[STM32MP15 clock tree|clock tree]] that configures the I2C kernel clock source to a frequency higher than 20 MHz.
It is valid for both [[OpenSTLinux distribution]] and [[STM32CubeMP1 Package]].
|-
| style="text-align: center;" | 2.15.2
| Spurious bus error detection in master mode
| style="text-align: center;" id="mw-customcollapsible-col-ex" class="mw-collapsible mw-collapsed" | <span title="workaround available" >A</span>

| style="text-align: center;" | <span title="workaround available" >A</span>

| style="text-align: center;" id="mw-customcollapsible-col-ex" class="mw-collapsible mw-collapsed" | <span title="workaround not implemented" >N</span>

| style="text-align: center;" | <span title="workaround not implemented" >N</span>

| In order to get real bus error notifications, this workaround is implemented neither within [[OpenSTLinux distribution]] nor within [[STM32CubeMP1 Package]].
|-
| style="text-align: center;" | 2.15.3
| Spurious master transfer upon own slave address match
| style="text-align: center;" id="mw-customcollapsible-col-ex" class="mw-collapsible mw-collapsed" | <span title="partial workaround available" >P</span>

| style="text-align: center;" | <span title="partial workaround available" >P</span>

| style="text-align: center;" id="mw-customcollapsible-col-ex" class="mw-collapsible mw-collapsed" | <span title="workaround not applicable" >NA</span>

| style="text-align: center;" | <span title="workaround not applicable" >NA</span>

| The multimaster mode implementation of [[STM32CubeMP1 Package]] I2C HAL driver prevents such case from happening.
|-
| style="text-align: center;" | 2.15.5
| Transmission stalled after first byte transfer
| style="text-align: center;" id="mw-customcollapsible-col-ex" class="mw-collapsible mw-collapsed" | <span title="workaround available" >A</span>

| style="text-align: center;" | <span title="workaround available" >A</span>

| style="text-align: center;" id="mw-customcollapsible-col-ex" class="mw-collapsible mw-collapsed" | <span title="workaround not implemented" >N</span>

| style="text-align: center;" | <span title="workaround not implemented" >N</span>

|
|-
| rowspan="4" | [[SPI internal peripheral|SPI]]
| style="text-align: center;" | 2.17.1
| Master data transfer stall at system clock much faster than SCK
| style="text-align: center;" id="mw-customcollapsible-col-ex" class="mw-collapsible mw-collapsed" | <span title="workaround available" >A</span>

| style="text-align: center;" | <span title="workaround available" >A</span>

| style="text-align: center;" id="mw-customcollapsible-col-ex" class="mw-collapsible mw-collapsed" | <span title="workaround implemented" >I</span>

| style="text-align: center;" | <span title="workaround implemented" >I</span>

| SPI is disabled after each EOT in [[OpenSTLinux distribution]] {{CodeSource | Linux kernel | drivers/spi/spi-stm32.c | drivers/spi/spi-stm32.c}} and in [[STM32CubeMP1 Package]] {{CodeSource | STM32CubeMP1 | Drivers/STM32MP1xx_HAL_Driver/Src/stm32mp1xx_hal_spi.c | Src/stm32mp1xx_hal_spi.c}}.
|-
| style="text-align: center;" | 2.17.2
| Corrupted CRC return at non-zero UDRDET setting
| style="text-align: center;" id="mw-customcollapsible-col-ex" class="mw-collapsible mw-collapsed" | <span title="partial workaround available" >P</span>

| style="text-align: center;" | <span title="partial workaround available" >P</span>

| style="text-align: center;" id="mw-customcollapsible-col-ex" class="mw-collapsible mw-collapsed" | <span title="workaround not implemented" >N</span>

| style="text-align: center;" | <span title="workaround not implemented" >N</span>

| Slave mode and CRC are not supported in [[OpenSTLinux distribution]]. <br />

This workaround is not implemented in [[STM32CubeMP1 Package]].
|-
| style="text-align: center;" | 2.17.3
| TXP interrupt occurring while SPI disabled
| style="text-align: center;" id="mw-customcollapsible-col-ex" class="mw-collapsible mw-collapsed" | <span title="workaround available" >A</span>

| style="text-align: center;" | <span title="workaround available" >A</span>

| style="text-align: center;" id="mw-customcollapsible-col-ex" class="mw-collapsible mw-collapsed" | <span title="workaround implemented" >I</span>

| style="text-align: center;" | <span title="workaround implemented" >I</span>

| This workaround is implemented in [[OpenSTLinux distribution]], {{CodeSource | Linux kernel | drivers/spi/spi-stm32.c | drivers/spi/spi-stm32.c}} ensures that all interrupts are disabled before the SPI is disabled.<br />

This workaround  is implemented in [[STM32CubeMP1 Package]] {{CodeSource | STM32CubeMP1 | Drivers/STM32MP1xx_HAL_Driver/Src/stm32mp1xx_hal_spi.c | Src/stm32mp1xx_hal_spi.c}}.
|-
| style="text-align: center;" | 2.17.4
| Possible corruption of last-received data depending on CRCSIZE setting
| style="text-align: center;" id="mw-customcollapsible-col-ex" class="mw-collapsible mw-collapsed" | <span title="workaround available" >A</span>

| style="text-align: center;" | <span title="workaround available" >A</span>

| style="text-align: center;" id="mw-customcollapsible-col-ex" class="mw-collapsible mw-collapsed" | <span title="workaround not implemented" >N</span>

| style="text-align: center;" | <span title="workaround not implemented" >N</span>

| CRC is not supported in [[OpenSTLinux distribution]].
|-
| rowspan="3" | [[FDCAN internal peripheral|FDCAN]]
| style="text-align: center;" | 2.18.1
| Desynchronization under specific condition with edge filtering enabled
| style="text-align: center;" id="mw-customcollapsible-col-ex" class="mw-collapsible mw-collapsed" | <span title="workaround available" >A</span>

| style="text-align: center;" | <span title="workaround available" >A</span>

| style="text-align: center;" id="mw-customcollapsible-col-ex" class="mw-collapsible mw-collapsed" | <span title="workaround not implemented" >N</span>

| style="text-align: center;" | <span title="workaround not implemented" >N</span>

| {{ReviewsComments|GeraldB: 1.1.0 check on going}}
|-
| style="text-align: center;" | 2.18.2
| Tx FIFO messages inverted under specific buffer usage and priority setting
| style="text-align: center;" id="mw-customcollapsible-col-ex" class="mw-collapsible mw-collapsed" | <span title="workaround available" >A</span>

| style="text-align: center;" | <span title="workaround available" >A</span>

| style="text-align: center;" id="mw-customcollapsible-col-ex" class="mw-collapsible mw-collapsed" | <span title="workaround not implemented" >N</span>

| style="text-align: center;" | <span title="workaround not implemented" >N</span>

| {{ReviewsComments|GeraldB: 1.1.0 check ongoing}}
|-
| style="text-align: center;" | 2.18.3
| DAR mode transmission failure due to lost arbitration
| style="text-align: center;" id="mw-customcollapsible-col-ex" class="mw-collapsible mw-collapsed" | <span title="workaround available" >A</span>

| style="text-align: center;" | <span title="workaround available" >A</span>

| style="text-align: center;" id="mw-customcollapsible-col-ex" class="mw-collapsible mw-collapsed" | <span title="workaround not implemented" >N</span>

| style="text-align: center;" | <span title="workaround not implemented" >N</span>

| {{ReviewsComments|GeraldB: 1.1.0 check ongoing}}
|-
| rowspan="6" | [[ETH internal peripheral|ETH]]
| style="text-align: center;" | 2.20.2
| Rx DMA may fail to recover upon DMA restart following a bus error, with Rx timestamping enabled
| style="text-align: center;" id="mw-customcollapsible-col-ex" class="mw-collapsible mw-collapsed" | <span title="workaround available" >A</span>

| style="text-align: center;" | <span title="workaround available" >A</span>

| style="text-align: center;" id="mw-customcollapsible-col-ex" class="mw-collapsible mw-collapsed" | <span title="workaround not implemented" >N</span>

| style="text-align: center;" | <span title="workaround not implemented" >N</span>

|
|-
| style="text-align: center;" | 2.20.3
| Tx DMA may halt while fetching TSO header under specific conditions
| style="text-align: center;" id="mw-customcollapsible-col-ex" class="mw-collapsible mw-collapsed" | <span title="workaround available" >A</span>

| style="text-align: center;" | <span title="workaround available" >A</span>

| style="text-align: center;" id="mw-customcollapsible-col-ex" class="mw-collapsible mw-collapsed" | <span title="workaround not implemented" >N</span>

| style="text-align: center;" | <span title="workaround not implemented" >N</span>

|
|-
| style="text-align: center;" | 2.20.4
| Spurious receive watchdog timeout interrupt
| style="text-align: center;" id="mw-customcollapsible-col-ex" class="mw-collapsible mw-collapsed" | <span title="workaround available" >A</span>

| style="text-align: center;" | <span title="workaround available" >A</span>

| style="text-align: center;" id="mw-customcollapsible-col-ex" class="mw-collapsible mw-collapsed" | <span title="workaround not implemented" >N</span>

| style="text-align: center;" | <span title="workaround not implemented" >N</span>

|
|-
| style="text-align: center;" | 2.20.5
| Incorrect flexible PPS output interval under specific conditions
| style="text-align: center;" id="mw-customcollapsible-col-ex" class="mw-collapsible mw-collapsed" | <span title="workaround available" >A</span>

| style="text-align: center;" | <span title="workaround available" >A</span>

| style="text-align: center;" id="mw-customcollapsible-col-ex" class="mw-collapsible mw-collapsed" | <span title="workaround not implemented" >N</span>

| style="text-align: center;" | <span title="workaround not implemented" >N</span>

|
|-
| style="text-align: center;" | 2.20.6
| Packets dropped in RMII 10Mbps mode due to fake dribble and CRC error
| style="text-align: center;" id="mw-customcollapsible-col-ex" class="mw-collapsible mw-collapsed" | <span title="workaround available" >A</span>

| style="text-align: center;" | <span title="workaround available" >A</span>

| style="text-align: center;" id="mw-customcollapsible-col-ex" class="mw-collapsible mw-collapsed" | <span title="workaround not implemented" >N</span>

| style="text-align: center;" | <span title="workaround not implemented" >N</span>

|
|-
| style="text-align: center;" | 2.20.7
| ARP offload function not effective
| style="text-align: center;" id="mw-customcollapsible-col-ex" class="mw-collapsible mw-collapsed" | <span title="workaround available" >A</span>

| style="text-align: center;" | <span title="workaround available" >A</span>

| style="text-align: center;" id="mw-customcollapsible-col-ex" class="mw-collapsible mw-collapsed" | <span title="workaround implemented" >I</span>

| style="text-align: center;" | <span title="workaround implemented" >I</span>

| ARP software support is used in [[OpenSTLinux distribution]].

|-
|}

=References=<references/>

<noinclude>

[[Category:Release notes archives]]
{{PublicationRequestId | 15039 | 2020-02-21}}</noinclude>
Line 1: Line 1:
 
The STM32MP15xx device errata sheet<ref  name=errata>[[STM32MP15 resources#Errata sheets|STM32MP15 Errata sheets]]</ref> lists the different device limitations and explains the corresponding workarounds (software and/or hardware) if any.</br>
 
The STM32MP15xx device errata sheet<ref  name=errata>[[STM32MP15 resources#Errata sheets|STM32MP15 Errata sheets]]</ref> lists the different device limitations and explains the corresponding workarounds (software and/or hardware) if any.</br>
   
The objective of this article is to explain which of the workarounds describe in this errata sheet are implemented in STM32MP15 ecosystem releases.<br />
+
The objective of this article is to explain which of the workarounds described in this errata sheet are implemented in STM32MP15 ecosystem releases.<br />
   
 
Here is the legend used in the columns "Status STM32MP15xx Rev.B" and "Status STM32MP15xx Rev.Z" of the table below. It refers to the availability and status of a given errata workaround for the described erratum:
 
Here is the legend used in the columns "Status STM32MP15xx Rev.B" and "Status STM32MP15xx Rev.Z" of the table below. It refers to the availability and status of a given errata workaround for the described erratum:
Line 44: Line 44:
 
| style="text-align: center;" id="mw-customcollapsible-col-ex" class="mw-collapsible mw-collapsed" | <span title="workaround not implemented" >N</span>
 
| style="text-align: center;" id="mw-customcollapsible-col-ex" class="mw-collapsible mw-collapsed" | <span title="workaround not implemented" >N</span>
 
| style="text-align: center;" | <span title="workaround not implemented" >N</span>
 
| style="text-align: center;" | <span title="workaround not implemented" >N</span>
| Limited impact on the system. Implementation accepted by the community since Linux<sup>&reg;</sup> kernel v5.3 in arch/arm/Kconfig (refer to ARM_ERRATA_814220) so it can already be backported if be.
+
| Limited impact on the system. Implementation accepted by the community since Linux<sup>&reg;</sup> kernel v5.3 in arch/arm/Kconfig (refer to ARM_ERRATA_814220) so it can already be backported if need be.
 
|-
 
|-
 
| style="text-align: center;" | 2.1.4
 
| style="text-align: center;" | 2.1.4