diff --git a/raspberrypi-firmware-dt.changes b/raspberrypi-firmware-dt.changes index 6744e38..dc77821 100644 --- a/raspberrypi-firmware-dt.changes +++ b/raspberrypi-firmware-dt.changes @@ -1,3 +1,23 @@ +------------------------------------------------------------------- +Tue Mar 31 21:34:26 UTC 2020 - Petr Tesařík + +- Use proper quoting for the modalias Supplements (see also + https://github.com/openSUSE/libzypp/issues/216). + +------------------------------------------------------------------- +Fri Mar 27 12:30:54 UTC 2020 - Petr Tesařík + +- Add a modalias Supplements, so the package gets selected + automatically on a Raspberry Pi. + +------------------------------------------------------------------- +Thu Mar 26 10:35:55 UTC 2020 - Nicolas Patricio Saenz Julienne + +- Add upstream-cma.patch unifying CMA handling on all RPis (bsc#1167761) +- Remove rpi4-cma-overlay.dts since not needed anymore (bsc#1167761) +- Rename emmc2bus.patch to upstream-emmc2bus.patch to mark this is a reality upstream +- Rename pcie-dma-ranges.patch to upstream-pcie-dma-ranges.patch to mark this is a reality upstream + ------------------------------------------------------------------- Fri Mar 20 13:58:19 UTC 2020 - Nicolas Patricio Saenz Julienne diff --git a/raspberrypi-firmware-dt.spec b/raspberrypi-firmware-dt.spec index 09bb3d0..efccac3 100644 --- a/raspberrypi-firmware-dt.spec +++ b/raspberrypi-firmware-dt.spec @@ -25,19 +25,20 @@ Group: System/Boot URL: https://github.com/raspberrypi/linux/ Source: raspberrypi-firmware-dt-%{version}.tar.xz Source1: disable-vc4-overlay.dts -Source2: rpi4-cma-overlay.dts -Source3: rpi4-thermal.dts -Source4: rpi4-gpio-names-overlay.dts -Source5: uboot-bcm2835-pl011-overlay.dts -Source6: rpi4-firmware-dma-ranges-overlay.dts +Source2: rpi4-thermal.dts +Source3: rpi4-gpio-names-overlay.dts +Source4: uboot-bcm2835-pl011-overlay.dts +Source5: rpi4-firmware-dma-ranges-overlay.dts Source100: get-from-git.sh -Patch0: pcie-dma-ranges.patch -Patch1: emmc2bus.patch +Patch0: upstream-pcie-dma-ranges.patch +Patch1: upstream-emmc2bus.patch +Patch2: upstream-cma.patch Requires: raspberrypi-firmware BuildRequires: dtc BuildRequires: raspberrypi-firmware BuildArch: noarch Conflicts: kernel < 4.12.14 +Supplements: modalias(of:NfirmwareT*Craspberrypi%2Cbcm2835-firmwareC*) %description This package provides additional device tree base files as well as overlays @@ -47,6 +48,7 @@ for the Raspberry Pi boot process. %setup %patch0 -p1 %patch1 -p1 +%patch2 -p1 %build SRCDIR=`pwd` @@ -61,7 +63,7 @@ for dts in arch/arm/boot/dts/bcm27*dts arch/arm64/boot/dts/broadcom/bcm27*dts; d done export DTC_FLAGS="-R 0 -p 0 -@ -H epapr" -for dts in arch/arm/boot/dts/overlays/*dts %{SOURCE1} %{SOURCE2} %{SOURCE3} %{SOURCE4} %{SOURCE5} %{SOURCE6}; do +for dts in arch/arm/boot/dts/overlays/*dts %{SOURCE1} %{SOURCE2} %{SOURCE3} %{SOURCE4} %{SOURCE5}; do target=$(basename ${dts%*.dts}) target=${target%*-overlay} mkdir -p $PPDIR/overlays diff --git a/rpi4-cma-overlay.dts b/rpi4-cma-overlay.dts deleted file mode 100644 index e790c77..0000000 --- a/rpi4-cma-overlay.dts +++ /dev/null @@ -1,31 +0,0 @@ -/* - * arm64 reserves the CMA by default somewhere - * in ZONE_DMA32, that's not good enough for the - * bcm2711 as some devices can only address the - * lower 1G of memory (ZONE_DMA). - */ -/dts-v1/; -/plugin/; - -/{ - compatible = "brcm,bcm2711"; - - fragment@0 { - target-path = "/"; - __overlay__ { - reserved-memory { - #address-cells = <2>; - #size-cells = <1>; - ranges; - - linux,cma { - compatible = "shared-dma-pool"; - size = <0x2000000>; /* 32MB */ - alloc-ranges = <0x0 0x00000000 0x40000000>; - reusable; - linux,cma-default; - }; - }; - }; - }; -}; diff --git a/upstream-cma.patch b/upstream-cma.patch new file mode 100644 index 0000000..c39643c --- /dev/null +++ b/upstream-cma.patch @@ -0,0 +1,117 @@ +From d857f139e84b419d8a68bcaf3ce7ad3bf3d0fc11 Mon Sep 17 00:00:00 2001 +From: Nicolas Saenz Julienne +Date: Thu, 26 Mar 2020 11:30:30 +0100 +Subject: [PATCH] ARM: dts: bcm283x: Unify CMA configuration + +With the introduction of the Raspberry Pi 4 we were forced to explicitly +configure CMA's location, since arm64 defaults it into the ZONE_DMA32 +memory area, which is not good enough to perform DMA operations on that +device. To bypass this limitation a dedicated CMA DT node was created, +explicitly indicating the acceptable memory range and size. + +That said, compatibility between boards is a must on the Raspberry Pi +ecosystem so this creates a common CMA DT node so as for DT overlays to +be able to update CMA's properties regardless of the board being used. + +Signed-off-by: Nicolas Saenz Julienne +Reviewed-by: Phil Elwell +Signed-off-by: Florian Fainelli +--- + arch/arm/boot/dts/bcm2711-rpi-4-b.dts | 4 ---- + arch/arm/boot/dts/bcm2711.dtsi | 33 +++++++++++---------------- + arch/arm/boot/dts/bcm283x.dtsi | 13 +++++++++++ + 3 files changed, 26 insertions(+), 24 deletions(-) + +diff --git a/arch/arm/boot/dts/bcm2711-rpi-4-b.dts b/arch/arm/boot/dts/bcm2711-rpi-4-b.dts +index b42e23beacc9..8eb8abdf98ac 100644 +--- a/arch/arm/boot/dts/bcm2711-rpi-4-b.dts ++++ b/arch/arm/boot/dts/bcm2711-rpi-4-b.dts +@@ -167,10 +167,6 @@ aliases { + }; + + /delete-node/ wifi-pwrseq; +- +- reserved-memory { +- /delete-node/ linux,cma; +- }; + }; + + &mmcnr { +diff --git a/arch/arm/boot/dts/bcm2711.dtsi b/arch/arm/boot/dts/bcm2711.dtsi +index b56388ce1216..3fcfd3480c17 100644 +--- a/arch/arm/boot/dts/bcm2711.dtsi ++++ b/arch/arm/boot/dts/bcm2711.dtsi +@@ -12,26 +12,6 @@ / { + + interrupt-parent = <&gicv2>; + +- reserved-memory { +- #address-cells = <2>; +- #size-cells = <1>; +- ranges; +- +- /* +- * arm64 reserves the CMA by default somewhere in ZONE_DMA32, +- * that's not good enough for the BCM2711 as some devices can +- * only address the lower 1G of memory (ZONE_DMA). +- */ +- linux,cma { +- compatible = "shared-dma-pool"; +- size = <0x2000000>; /* 32MB */ +- alloc-ranges = <0x0 0x00000000 0x40000000>; +- reusable; +- linux,cma-default; +- }; +- }; +- +- + soc { + /* + * Defined ranges: +@@ -857,6 +837,19 @@ pin-rts { + }; + }; + ++&rmem { ++ #address-cells = <2>; ++}; ++ ++&cma { ++ /* ++ * arm64 reserves the CMA by default somewhere in ZONE_DMA32, ++ * that's not good enough for the BCM2711 as some devices can ++ * only address the lower 1G of memory (ZONE_DMA). ++ */ ++ alloc-ranges = <0x0 0x00000000 0x40000000>; ++}; ++ + &i2c0 { + compatible = "brcm,bcm2711-i2c", "brcm,bcm2835-i2c"; + interrupts = ; +diff --git a/arch/arm/boot/dts/bcm283x.dtsi b/arch/arm/boot/dts/bcm283x.dtsi +index 839491628e87..6128baed83c2 100644 +--- a/arch/arm/boot/dts/bcm283x.dtsi ++++ b/arch/arm/boot/dts/bcm283x.dtsi +@@ -30,6 +30,19 @@ chosen { + stdout-path = "serial0:115200n8"; + }; + ++ rmem: reserved-memory { ++ #address-cells = <1>; ++ #size-cells = <1>; ++ ranges; ++ ++ cma: linux,cma { ++ compatible = "shared-dma-pool"; ++ size = <0x4000000>; /* 64MB */ ++ reusable; ++ linux,cma-default; ++ }; ++ }; ++ + thermal-zones { + cpu_thermal: cpu-thermal { + polling-delay-passive = <0>; +-- +2.25.1 + diff --git a/emmc2bus.patch b/upstream-emmc2bus.patch similarity index 100% rename from emmc2bus.patch rename to upstream-emmc2bus.patch diff --git a/pcie-dma-ranges.patch b/upstream-pcie-dma-ranges.patch similarity index 100% rename from pcie-dma-ranges.patch rename to upstream-pcie-dma-ranges.patch