diff options
Diffstat (limited to 'target/linux/bcm27xx/patches-5.10/950-0508-overlays-Add-pcie-32bit-dma-overlay.patch')
-rw-r--r-- | target/linux/bcm27xx/patches-5.10/950-0508-overlays-Add-pcie-32bit-dma-overlay.patch | 86 |
1 files changed, 86 insertions, 0 deletions
diff --git a/target/linux/bcm27xx/patches-5.10/950-0508-overlays-Add-pcie-32bit-dma-overlay.patch b/target/linux/bcm27xx/patches-5.10/950-0508-overlays-Add-pcie-32bit-dma-overlay.patch new file mode 100644 index 0000000000..0186a0b81b --- /dev/null +++ b/target/linux/bcm27xx/patches-5.10/950-0508-overlays-Add-pcie-32bit-dma-overlay.patch @@ -0,0 +1,86 @@ +From ce2860020c57a59c543139ad7b260624cd930dff Mon Sep 17 00:00:00 2001 +From: Nicolas Saenz Julienne <nsaenzjulienne@suse.de> +Date: Mon, 15 Mar 2021 17:25:02 +0100 +Subject: [PATCH] overlays: Add pcie-32bit-dma overlay + +In order to accommodate full PCI DMA access to memory on newer BCM2711 +revisions, we're forced to map PCIe's view of physical memory with an +offset. This offset makes DMA addressing dependent on having 64bit +support on the PCI device's side. Which isn't always the case. + +In order to mitigate this, introduce the pcie-32bit-dma overlay which +will forbid firmware from updating the default inbound memory window. +The default setting, albeit limited to accessing the lower 3GB of +memory, will allow for 32bit DMA addresses at the expense of having to +bounce buffers. + +Link: https://github.com/raspberrypi/linux/issues/4197 +Signed-off-by: Nicolas Saenz Julienne <nsaenzjulienne@suse.de> +--- + arch/arm/boot/dts/overlays/Makefile | 1 + + arch/arm/boot/dts/overlays/README | 7 +++++++ + arch/arm/boot/dts/overlays/overlay_map.dts | 4 ++++ + .../dts/overlays/pcie-32bit-dma-overlay.dts | 18 ++++++++++++++++++ + 4 files changed, 30 insertions(+) + create mode 100644 arch/arm/boot/dts/overlays/pcie-32bit-dma-overlay.dts + +--- a/arch/arm/boot/dts/overlays/Makefile ++++ b/arch/arm/boot/dts/overlays/Makefile +@@ -128,6 +128,7 @@ dtbo-$(CONFIG_ARCH_BCM2835) += \ + ov9281.dtbo \ + papirus.dtbo \ + pca953x.dtbo \ ++ pcie-32bit-dma.dtbo \ + pibell.dtbo \ + pifacedigital.dtbo \ + pifi-40.dtbo \ +--- a/arch/arm/boot/dts/overlays/README ++++ b/arch/arm/boot/dts/overlays/README +@@ -2135,6 +2135,13 @@ Params: addr I2C addr + xra1202 Select the Exar XRA1202 (8 bit) + + ++Name: pcie-32bit-dma ++Info: Force PCIe config to support 32bit DMA addresses at the expense of ++ having to bounce buffers. ++Load: dtoverlay=pcie-32bit-dma ++Params: <None> ++ ++ + [ The pcf2127-rtc overlay has been deleted. See i2c-rtc. ] + + +--- a/arch/arm/boot/dts/overlays/overlay_map.dts ++++ b/arch/arm/boot/dts/overlays/overlay_map.dts +@@ -37,6 +37,10 @@ + deprecated = "use gpio-ir"; + }; + ++ pcie-32bit-dma { ++ bcm2711; ++ }; ++ + pi3-act-led { + renamed = "act-led"; + }; +--- /dev/null ++++ b/arch/arm/boot/dts/overlays/pcie-32bit-dma-overlay.dts +@@ -0,0 +1,18 @@ ++/* ++ * pcie-32bit-dma-overlay.dts ++ */ ++ ++/dts-v1/; ++/plugin/; ++ ++/ { ++ compatible = "brcm,bcm2711"; ++ ++ fragment@0 { ++ target-path = "/aliases"; ++ __overlay__ { ++ pcie0 = ""; ++ }; ++ }; ++ ++}; |