riscv: dts: starfive: Add pool for coherent DMA memory on JH7100 boards
authorEmil Renner Berthing <emil.renner.berthing@canonical.com>
Thu, 30 Nov 2023 15:19:29 +0000 (16:19 +0100)
committerConor Dooley <conor.dooley@microchip.com>
Wed, 13 Dec 2023 15:50:23 +0000 (15:50 +0000)
commit0a99b562e81554c4397ba6331e9b00501c88b15c
treef15c4d4fb823826fae541b383c013a6093f4e510
parentd4b95c445cab0fb583eed7caafbc1b734f6a3a59
riscv: dts: starfive: Add pool for coherent DMA memory on JH7100 boards

The StarFive JH7100 SoC has non-coherent device DMAs, but most drivers
expect to be able to allocate coherent memory for DMA descriptors and
such. However on the JH7100 DDR memory appears twice in the physical
memory map, once cached and once uncached:

  0x00_8000_0000 - 0x08_7fff_ffff : Off chip DDR memory, cached
  0x10_0000_0000 - 0x17_ffff_ffff : Off chip DDR memory, uncached

To use this uncached region we create a global DMA memory pool there and
reserve the corresponding area in the cached region.

However the uncached region is fully above the 32bit address limit, so add
a dma-ranges map so the DMA address used for peripherals is still in the
regular cached region below the limit.

Link: https://github.com/starfive-tech/JH7100_Docs/blob/main/JH7100%20Data%20Sheet%20V01.01.04-EN%20(4-21-2021).pdf
Signed-off-by: Emil Renner Berthing <emil.renner.berthing@canonical.com>
Signed-off-by: Conor Dooley <conor.dooley@microchip.com>
arch/riscv/boot/dts/starfive/jh7100-common.dtsi