mail archive of the barebox mailing list
 help / color / mirror / Atom feed
From: Ahmad Fatoum <a.fatoum@pengutronix.de>
To: barebox@lists.infradead.org
Subject: [PATCH v2 00/11] ARM64: layerscape: make LS1046 DMA coherent
Date: Wed, 10 Jan 2024 17:01:02 +0100	[thread overview]
Message-ID: <20240110160112.4134162-1-a.fatoum@pengutronix.de> (raw)

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




             reply	other threads:[~2024-01-10 16:02 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-01-10 16:01 Ahmad Fatoum [this message]
2024-01-10 16:01 ` [PATCH v2 01/11] dma: rename OF_DMA_DEFAULT_COHERENT to ARCH_DMA_DEFAULT_COHERENT Ahmad Fatoum
2024-01-10 16:01 ` [PATCH v2 02/11] dma: select ARCH_DMA_DEFAULT_COHERENT for x86 and sandbox Ahmad Fatoum
2024-01-10 16:01 ` [PATCH v2 03/11] dma: introduce CONFIG_OF_DMA_COHERENCY Ahmad Fatoum
2024-01-10 16:01 ` [PATCH v2 04/11] RISC-V: StarFive: J7100: set /soc/dma-noncoherent Ahmad Fatoum
2024-01-10 16:01 ` [PATCH v2 05/11] ARM: dts: layerscape: add header for barebox DT overrides Ahmad Fatoum
2024-01-10 16:01 ` [PATCH v2 06/11] ARM: dts: layerscape: mark ls1046a SoC DMA incoherent in DT Ahmad Fatoum
2024-01-10 16:01 ` [PATCH v2 07/11] of: populate new device_d::dma_coherent attribute Ahmad Fatoum
2024-01-10 16:01 ` [PATCH v2 08/11] dma: fix dma_sync when not all device DMA is equally coherent Ahmad Fatoum
2024-01-10 16:01 ` [PATCH v2 09/11] dma: align barebox DMA coherency setting with kernel's Ahmad Fatoum
2024-01-10 16:01 ` [PATCH v2 10/11] ARM: layerscape: configure all DMA masters to be cache-coherent Ahmad Fatoum
2024-01-10 16:01 ` [PATCH v2 11/11] ARM: layerscape: enable DWC3 snooping on ls1046a Ahmad Fatoum
2024-01-11 14:11 ` [PATCH v2 00/11] ARM64: layerscape: make LS1046 DMA coherent Sascha Hauer
2024-01-11 14:15   ` Ahmad Fatoum
2024-01-11 14:44     ` Sascha Hauer

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20240110160112.4134162-1-a.fatoum@pengutronix.de \
    --to=a.fatoum@pengutronix.de \
    --cc=barebox@lists.infradead.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox