[PATCH v2 00/11] ARM64: layerscape: make LS1046 DMA coherent
Ahmad Fatoum
a.fatoum at pengutronix.de
Wed Jan 10 08:01:02 PST 2024
Upstream DT changed /soc of NXP Layerscape LS1046A to be dma-coherent.
This means that:
1) Linux v6.1 expects bootloader to configure DMA masters to snoop
caches
2) bootloader needs to skip cache maintenance when talking to DMA
master when it has set snoop bits
This series does that and thereby restores USB functionality when
booting Linux v6.1 with barebox. For older kernels, dma-coherent
is fixed up into kernel DT, so newer barebox versions can boot both
kernels.
This v2 incorporates Sascha's feedback on v1 and fixes bugs that
I noticed after further testing on LS1046A boards. I tested against
Linux v6.6.4.
v1 was here:
https://lore.barebox.org/barebox/20230221080524.607241-1-a.fatoum@pengutronix.de/
Ahmad Fatoum (11):
dma: rename OF_DMA_DEFAULT_COHERENT to ARCH_DMA_DEFAULT_COHERENT
dma: select ARCH_DMA_DEFAULT_COHERENT for x86 and sandbox
dma: introduce CONFIG_OF_DMA_COHERENCY
RISC-V: StarFive: J7100: set /soc/dma-noncoherent
ARM: dts: layerscape: add header for barebox DT overrides
ARM: dts: layerscape: mark ls1046a SoC DMA incoherent in DT
of: populate new device_d::dma_coherent attribute
dma: fix dma_sync when not all device DMA is equally coherent
dma: align barebox DMA coherency setting with kernel's
ARM: layerscape: configure all DMA masters to be cache-coherent
ARM: layerscape: enable DWC3 snooping on ls1046a
arch/Kconfig | 7 ++++
arch/arm/Kconfig | 1 +
arch/arm/dts/fsl-ls1046a-rdb.dts | 2 +-
arch/arm/dts/fsl-ls1046a.dtsi | 7 ++++
arch/arm/dts/fsl-tqmls1046a-mbls10xxa.dts | 2 +-
arch/arm/mach-layerscape/lowlevel-ls1046a.c | 10 +++---
arch/arm/mach-layerscape/soc.c | 32 +++++++++++++++++
arch/riscv/Kconfig | 2 +-
arch/riscv/Kconfig.socs | 1 +
arch/riscv/dts/jh7100.dtsi | 1 +
arch/sandbox/Kconfig | 1 +
arch/x86/Kconfig | 1 +
commands/devinfo.c | 4 +++
drivers/dma/Kconfig | 13 +++++++
drivers/dma/Makefile | 1 +
drivers/dma/map.c | 12 ++++---
drivers/dma/of_fixups.c | 40 +++++++++++++++++++++
drivers/of/Kconfig | 4 ---
drivers/of/platform.c | 17 +++++----
include/driver.h | 22 ++++++++++++
include/soc/fsl/immap_lsch2.h | 7 ++++
21 files changed, 165 insertions(+), 22 deletions(-)
create mode 100644 arch/arm/dts/fsl-ls1046a.dtsi
create mode 100644 drivers/dma/of_fixups.c
--
2.39.2
More information about the barebox
mailing list