[PATCH v3 0/9] STM32 DMA3 updates for STM32MP25

Amelie Delaunay posted 9 patches 1 month, 1 week ago
.../bindings/dma/stm32/st,stm32-dma3.yaml          |   6 ++
arch/arm64/boot/dts/st/stm32mp251.dtsi             |  75 +++++++++++++
arch/arm64/boot/dts/st/stm32mp257f-ev1.dts         |   2 +
drivers/dma/stm32/stm32-dma3.c                     | 119 +++++++++++++++++----
4 files changed, 182 insertions(+), 20 deletions(-)
[PATCH v3 0/9] STM32 DMA3 updates for STM32MP25
Posted by Amelie Delaunay 1 month, 1 week ago
The HW version of STM32 DMA3 inside STM32MP25 requires some tunings to
meet the needs of the interconnect. This series adds the linked list
refactoring feature to have optimal performance when addressing the
memory, and it adds the use of two new bits in the third cell specifying
the DMA transfer requirements:
- bit[16] to prevent packing/unpacking mode to avoid bytes loss in case
of interrupting an ongoing transfer (e.g. UART RX),
- bit[17] to prevent linked-list refactoring because some peripherals
(e.g. FMC ECC) require a one-shot transfer, they trigger the DMA only
once.
It also adds platform data to clamp the burst length on AXI port,
especially when it is interconnected to AXI3 bus, such as on STM32MP25.
Finally this series also contains STM32MP25 device tree updates, to add
DMA support on SPI, I2C, UART and apply the tunings introduced.

Signed-off-by: Amelie Delaunay <amelie.delaunay@foss.st.com>
---
Changes in v3:
- Refine commit description of patch 4 about preventing
  additionnal transfers, as per Rob's suggestion.
- Link to v2: https://lore.kernel.org/r/20241015-dma3-mp25-updates-v2-0-b63e21556ec8@foss.st.com

Changes in v2:
- Reword commit title/message/content of patch 4 about preventing
  additionnal transfers, as per Rob's suggestion
- Rework AXI maximum burst length management using SoC specific
  compatible, as pointed out by Rob
- Drop former patches 6 and 8, which are no longer relevant
- Link to v1: https://lore.kernel.org/r/20241010-dma3-mp25-updates-v1-0-adf0633981ea@foss.st.com

---
Amelie Delaunay (9):
      dt-bindings: dma: stm32-dma3: prevent packing/unpacking mode
      dmaengine: stm32-dma3: prevent pack/unpack thanks to DT configuration
      dmaengine: stm32-dma3: refactor HW linked-list to optimize memory accesses
      dt-bindings: dma: stm32-dma3: prevent additional transfers
      dmaengine: stm32-dma3: prevent LL refactoring thanks to DT configuration
      dmaengine: stm32-dma3: clamp AXI burst using match data
      arm64: dts: st: add DMA support on U(S)ART instances of stm32mp25
      arm64: dts: st: add DMA support on I2C instances of stm32mp25
      arm64: dts: st: add DMA support on SPI instances of stm32mp25

 .../bindings/dma/stm32/st,stm32-dma3.yaml          |   6 ++
 arch/arm64/boot/dts/st/stm32mp251.dtsi             |  75 +++++++++++++
 arch/arm64/boot/dts/st/stm32mp257f-ev1.dts         |   2 +
 drivers/dma/stm32/stm32-dma3.c                     | 119 +++++++++++++++++----
 4 files changed, 182 insertions(+), 20 deletions(-)
---
base-commit: 76355c25e4f71ee4667ebaadd9faf8ec29d18f23
change-id: 20241015-dma3-mp25-updates-d7f26753b0dd

Best regards,
-- 
Amelie Delaunay <amelie.delaunay@foss.st.com>
Re: [PATCH v3 0/9] STM32 DMA3 updates for STM32MP25
Posted by Alexandre TORGUE 3 weeks, 6 days ago
Hi

On 10/16/24 14:39, Amelie Delaunay wrote:
> The HW version of STM32 DMA3 inside STM32MP25 requires some tunings to
> meet the needs of the interconnect. This series adds the linked list
> refactoring feature to have optimal performance when addressing the
> memory, and it adds the use of two new bits in the third cell specifying
> the DMA transfer requirements:
> - bit[16] to prevent packing/unpacking mode to avoid bytes loss in case
> of interrupting an ongoing transfer (e.g. UART RX),
> - bit[17] to prevent linked-list refactoring because some peripherals
> (e.g. FMC ECC) require a one-shot transfer, they trigger the DMA only
> once.
> It also adds platform data to clamp the burst length on AXI port,
> especially when it is interconnected to AXI3 bus, such as on STM32MP25.
> Finally this series also contains STM32MP25 device tree updates, to add
> DMA support on SPI, I2C, UART and apply the tunings introduced.
> 
> Signed-off-by: Amelie Delaunay <amelie.delaunay@foss.st.com>
> ---
> Changes in v3:
> - Refine commit description of patch 4 about preventing
>    additionnal transfers, as per Rob's suggestion.
> - Link to v2: https://lore.kernel.org/r/20241015-dma3-mp25-updates-v2-0-b63e21556ec8@foss.st.com
> 
> Changes in v2:
> - Reword commit title/message/content of patch 4 about preventing
>    additionnal transfers, as per Rob's suggestion
> - Rework AXI maximum burst length management using SoC specific
>    compatible, as pointed out by Rob
> - Drop former patches 6 and 8, which are no longer relevant
> - Link to v1: https://lore.kernel.org/r/20241010-dma3-mp25-updates-v1-0-adf0633981ea@foss.st.com
> 
> ---
> Amelie Delaunay (9):
>        dt-bindings: dma: stm32-dma3: prevent packing/unpacking mode
>        dmaengine: stm32-dma3: prevent pack/unpack thanks to DT configuration
>        dmaengine: stm32-dma3: refactor HW linked-list to optimize memory accesses
>        dt-bindings: dma: stm32-dma3: prevent additional transfers
>        dmaengine: stm32-dma3: prevent LL refactoring thanks to DT configuration
>        dmaengine: stm32-dma3: clamp AXI burst using match data
>        arm64: dts: st: add DMA support on U(S)ART instances of stm32mp25
>        arm64: dts: st: add DMA support on I2C instances of stm32mp25
>        arm64: dts: st: add DMA support on SPI instances of stm32mp25
> 

Patches [7], [8], and [9] applied on stm32-next.

Thanks
Alex



>   .../bindings/dma/stm32/st,stm32-dma3.yaml          |   6 ++
>   arch/arm64/boot/dts/st/stm32mp251.dtsi             |  75 +++++++++++++
>   arch/arm64/boot/dts/st/stm32mp257f-ev1.dts         |   2 +
>   drivers/dma/stm32/stm32-dma3.c                     | 119 +++++++++++++++++----
>   4 files changed, 182 insertions(+), 20 deletions(-)
> ---
> base-commit: 76355c25e4f71ee4667ebaadd9faf8ec29d18f23
> change-id: 20241015-dma3-mp25-updates-d7f26753b0dd
> 
> Best regards,
Re: (subset) [PATCH v3 0/9] STM32 DMA3 updates for STM32MP25
Posted by Vinod Koul 1 month ago
On Wed, 16 Oct 2024 14:39:52 +0200, Amelie Delaunay wrote:
> The HW version of STM32 DMA3 inside STM32MP25 requires some tunings to
> meet the needs of the interconnect. This series adds the linked list
> refactoring feature to have optimal performance when addressing the
> memory, and it adds the use of two new bits in the third cell specifying
> the DMA transfer requirements:
> - bit[16] to prevent packing/unpacking mode to avoid bytes loss in case
> of interrupting an ongoing transfer (e.g. UART RX),
> - bit[17] to prevent linked-list refactoring because some peripherals
> (e.g. FMC ECC) require a one-shot transfer, they trigger the DMA only
> once.
> It also adds platform data to clamp the burst length on AXI port,
> especially when it is interconnected to AXI3 bus, such as on STM32MP25.
> Finally this series also contains STM32MP25 device tree updates, to add
> DMA support on SPI, I2C, UART and apply the tunings introduced.
> 
> [...]

Applied, thanks!

[1/9] dt-bindings: dma: stm32-dma3: prevent packing/unpacking mode
      commit: 689f05586e7ea620c8fc1066c067809e52ffc2f3
[2/9] dmaengine: stm32-dma3: prevent pack/unpack thanks to DT configuration
      commit: 12eb621e1abff65d89aeb4c92a4f3436225971d0
[3/9] dmaengine: stm32-dma3: refactor HW linked-list to optimize memory accesses
      commit: cb467c451163bacad4cbb7540ce7d731946f13f9
[4/9] dt-bindings: dma: stm32-dma3: prevent additional transfers
      commit: e18a9830233e739ae7045700232c53b4cb2e98eb
[5/9] dmaengine: stm32-dma3: prevent LL refactoring thanks to DT configuration
      commit: 2ff0fb9474eefa7149c199fb3f79e54355a6c184
[6/9] dmaengine: stm32-dma3: clamp AXI burst using match data
      commit: e713468e7c104a0598a7ec31ab7ec0bec94a174d

Best regards,
-- 
~Vinod