diff --git a/debian/changelog b/debian/changelog index 5bd0db110..c45f0c904 100644 --- a/debian/changelog +++ b/debian/changelog @@ -11,6 +11,10 @@ linux (4.19.67-2) UNRELEASED; urgency=medium * netfilter: conntrack: Use consistent ct id hash calculation (fixes regression in 4.19.44) + [ Cyril Brulebois ] + * [arm] Backport DTB support for Rasperry Pi Compute Module 3. + * [arm64] Backport DTB support for Rasperry Pi Compute Module 3. + -- Ben Hutchings Wed, 21 Aug 2019 23:37:56 +0100 linux (4.19.67-1) buster; urgency=medium diff --git a/debian/patches/features/arm/ARM-dts-add-Raspberry-Pi-Compute-Module-3-and-IO-boa.patch b/debian/patches/features/arm/ARM-dts-add-Raspberry-Pi-Compute-Module-3-and-IO-boa.patch new file mode 100644 index 000000000..bed22fe2e --- /dev/null +++ b/debian/patches/features/arm/ARM-dts-add-Raspberry-Pi-Compute-Module-3-and-IO-boa.patch @@ -0,0 +1,185 @@ +From: Stefan Wahren +Date: Mon, 27 Aug 2018 19:31:17 +0200 +Subject: ARM: dts: add Raspberry Pi Compute Module 3 and IO board +Origin: https://git.kernel.org/linus/a54fe8a6cf66828499b121c3c39c194b43b8ed94 + +The Raspberry Pi Compute Module 3 (CM3) and the Raspberry Pi +Compute Module 3 Lite (CM3L) are SoMs which contains a BCM2837 processor, +1 GB RAM and a GPIO expander. The CM3 has a 4 GB eMMC, but on the CM3L +the eMMC is unpopulated and it's up to the user to connect their +own SD/MMC device. The dtsi file is designed to work for both modules. +There is also a matching carrier board which is called +Compute Module IO Board V3. + +Signed-off-by: Stefan Wahren +--- + arch/arm/boot/dts/Makefile | 1 + + arch/arm/boot/dts/bcm2837-rpi-cm3-io3.dts | 87 +++++++++++++++++++++++++++++++ + arch/arm/boot/dts/bcm2837-rpi-cm3.dtsi | 52 ++++++++++++++++++ + 3 files changed, 140 insertions(+) + create mode 100644 arch/arm/boot/dts/bcm2837-rpi-cm3-io3.dts + create mode 100644 arch/arm/boot/dts/bcm2837-rpi-cm3.dtsi + +diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile +index b5bd3de87c33..35c749fe22eb 100644 +--- a/arch/arm/boot/dts/Makefile ++++ b/arch/arm/boot/dts/Makefile +@@ -81,6 +81,7 @@ dtb-$(CONFIG_ARCH_BCM2835) += \ + bcm2836-rpi-2-b.dtb \ + bcm2837-rpi-3-b.dtb \ + bcm2837-rpi-3-b-plus.dtb \ ++ bcm2837-rpi-cm3-io3.dtb \ + bcm2835-rpi-zero.dtb \ + bcm2835-rpi-zero-w.dtb + dtb-$(CONFIG_ARCH_BCM_5301X) += \ +diff --git a/arch/arm/boot/dts/bcm2837-rpi-cm3-io3.dts b/arch/arm/boot/dts/bcm2837-rpi-cm3-io3.dts +new file mode 100644 +index 000000000000..6c8233a36d86 +--- /dev/null ++++ b/arch/arm/boot/dts/bcm2837-rpi-cm3-io3.dts +@@ -0,0 +1,87 @@ ++// SPDX-License-Identifier: GPL-2.0 ++/dts-v1/; ++#include "bcm2837-rpi-cm3.dtsi" ++#include "bcm283x-rpi-usb-host.dtsi" ++ ++/ { ++ compatible = "raspberrypi,3-compute-module", "brcm,bcm2837"; ++ model = "Raspberry Pi Compute Module 3 IO board V3.0"; ++}; ++ ++&gpio { ++ /* ++ * This is based on the official GPU firmware DT blob. ++ * ++ * Legend: ++ * "NC" = not connected (no rail from the SoC) ++ * "FOO" = GPIO line named "FOO" on the schematic ++ * "FOO_N" = GPIO line named "FOO" on schematic, active low ++ */ ++ gpio-line-names = "GPIO0", ++ "GPIO1", ++ "GPIO2", ++ "GPIO3", ++ "GPIO4", ++ "GPIO5", ++ "GPIO6", ++ "GPIO7", ++ "GPIO8", ++ "GPIO9", ++ "GPIO10", ++ "GPIO11", ++ "GPIO12", ++ "GPIO13", ++ "GPIO14", ++ "GPIO15", ++ "GPIO16", ++ "GPIO17", ++ "GPIO18", ++ "GPIO19", ++ "GPIO20", ++ "GPIO21", ++ "GPIO22", ++ "GPIO23", ++ "GPIO24", ++ "GPIO25", ++ "GPIO26", ++ "GPIO27", ++ "GPIO28", ++ "GPIO29", ++ "GPIO30", ++ "GPIO31", ++ "GPIO32", ++ "GPIO33", ++ "GPIO34", ++ "GPIO35", ++ "GPIO36", ++ "GPIO37", ++ "GPIO38", ++ "GPIO39", ++ "GPIO40", ++ "GPIO41", ++ "GPIO42", ++ "GPIO43", ++ "GPIO44", ++ "GPIO45", ++ "GPIO46", ++ "GPIO47", ++ /* Used by eMMC */ ++ "SD_CLK_R", ++ "SD_CMD_R", ++ "SD_DATA0_R", ++ "SD_DATA1_R", ++ "SD_DATA2_R", ++ "SD_DATA3_R"; ++ ++ pinctrl-0 = <&gpioout &alt0>; ++}; ++ ++&hdmi { ++ hpd-gpios = <&expgpio 1 GPIO_ACTIVE_LOW>; ++}; ++ ++&uart0 { ++ pinctrl-names = "default"; ++ pinctrl-0 = <&uart0_gpio14>; ++ status = "okay"; ++}; +diff --git a/arch/arm/boot/dts/bcm2837-rpi-cm3.dtsi b/arch/arm/boot/dts/bcm2837-rpi-cm3.dtsi +new file mode 100644 +index 000000000000..7b7ab6aea988 +--- /dev/null ++++ b/arch/arm/boot/dts/bcm2837-rpi-cm3.dtsi +@@ -0,0 +1,52 @@ ++// SPDX-License-Identifier: GPL-2.0 ++/dts-v1/; ++#include "bcm2837.dtsi" ++#include "bcm2835-rpi.dtsi" ++ ++/ { ++ memory { ++ reg = <0 0x40000000>; ++ }; ++ ++ reg_3v3: fixed-regulator { ++ compatible = "regulator-fixed"; ++ regulator-name = "3V3"; ++ regulator-min-microvolt = <3300000>; ++ regulator-max-microvolt = <3300000>; ++ regulator-always-on; ++ }; ++ ++ reg_1v8: fixed-regulator { ++ compatible = "regulator-fixed"; ++ regulator-name = "1V8"; ++ regulator-min-microvolt = <1800000>; ++ regulator-max-microvolt = <1800000>; ++ regulator-always-on; ++ }; ++}; ++ ++&firmware { ++ expgpio: gpio { ++ compatible = "raspberrypi,firmware-gpio"; ++ gpio-controller; ++ #gpio-cells = <2>; ++ gpio-line-names = "HDMI_HPD_N", ++ "EMMC_EN_N", ++ "NC", ++ "NC", ++ "NC", ++ "NC", ++ "NC", ++ "NC"; ++ status = "okay"; ++ }; ++}; ++ ++&sdhost { ++ pinctrl-names = "default"; ++ pinctrl-0 = <&sdhost_gpio48>; ++ bus-width = <4>; ++ vmmc-supply = <®_3v3>; ++ vqmmc-supply = <®_1v8>; ++ status = "okay"; ++}; diff --git a/debian/patches/features/arm64/arm64-dts-broadcom-Add-reference-to-Compute-Module-I.patch b/debian/patches/features/arm64/arm64-dts-broadcom-Add-reference-to-Compute-Module-I.patch new file mode 100644 index 000000000..bf1739a06 --- /dev/null +++ b/debian/patches/features/arm64/arm64-dts-broadcom-Add-reference-to-Compute-Module-I.patch @@ -0,0 +1,36 @@ +From: Stefan Wahren +Date: Mon, 27 Aug 2018 19:33:28 +0200 +Subject: arm64: dts: broadcom: Add reference to Compute Module IO Board V3 +Origin: https://git.kernel.org/linus/a7eb26392b893bff92b1eb6483f4af3d2eb19510 + +This adds a reference to the dts of the Compute Module IO Board V3 in arm, +so we don't need to maintain the content in arm64. + +Signed-off-by: Stefan Wahren +--- + arch/arm64/boot/dts/broadcom/Makefile | 3 ++- + arch/arm64/boot/dts/broadcom/bcm2837-rpi-cm3-io3.dts | 2 ++ + 2 files changed, 4 insertions(+), 1 deletion(-) + create mode 100644 arch/arm64/boot/dts/broadcom/bcm2837-rpi-cm3-io3.dts + +diff --git a/arch/arm64/boot/dts/broadcom/Makefile b/arch/arm64/boot/dts/broadcom/Makefile +index 1193a9e34bbb..3d98f5f5ab88 100644 +--- a/arch/arm64/boot/dts/broadcom/Makefile ++++ b/arch/arm64/boot/dts/broadcom/Makefile +@@ -1,6 +1,7 @@ + # SPDX-License-Identifier: GPL-2.0 + dtb-$(CONFIG_ARCH_BCM2835) += bcm2837-rpi-3-b.dtb \ +- bcm2837-rpi-3-b-plus.dtb ++ bcm2837-rpi-3-b-plus.dtb \ ++ bcm2837-rpi-cm3-io3.dts + + subdir-y += northstar2 + subdir-y += stingray +diff --git a/arch/arm64/boot/dts/broadcom/bcm2837-rpi-cm3-io3.dts b/arch/arm64/boot/dts/broadcom/bcm2837-rpi-cm3-io3.dts +new file mode 100644 +index 000000000000..b1c4ab212c64 +--- /dev/null ++++ b/arch/arm64/boot/dts/broadcom/bcm2837-rpi-cm3-io3.dts +@@ -0,0 +1,2 @@ ++// SPDX-License-Identifier: GPL-2.0 ++#include "arm/bcm2837-rpi-cm3-io3.dts" diff --git a/debian/patches/features/arm64/arm64-dts-broadcom-Use-the-.dtb-name-in-the-rule-rat.patch b/debian/patches/features/arm64/arm64-dts-broadcom-Use-the-.dtb-name-in-the-rule-rat.patch new file mode 100644 index 000000000..c2fa1d527 --- /dev/null +++ b/debian/patches/features/arm64/arm64-dts-broadcom-Use-the-.dtb-name-in-the-rule-rat.patch @@ -0,0 +1,32 @@ +From: Liviu Dudau +Date: Mon, 24 Sep 2018 11:22:28 +0100 +Subject: arm64: dts: broadcom: Use the .dtb name in the rule, rather than .dts +Origin: https://git.kernel.org/linus/74cf77e8be35795b4cc57b7010bc348295e421b9 + +Commit a7eb26392b893 ("arm64: dts: broadcom: Add reference to Compute +Module IO Board V3") adds the bcm2837-rpi-cm3-io3.dts file as a target +in the Makefile, rather than the .dtb name. This will skip the +generation of the .dtb file at compile time and will fail the dtbs_install +target. + +Fixes: a7eb26392b893 ("arm64: dts: broadcom: Add reference to Compute Module IO Board V3") +Signed-off-by: Liviu Dudau +Acked-by: Stefan Wahren +Signed-off-by: Olof Johansson +--- + arch/arm64/boot/dts/broadcom/Makefile | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/arch/arm64/boot/dts/broadcom/Makefile b/arch/arm64/boot/dts/broadcom/Makefile +index 3d98f5f5ab88..667ca989c11b 100644 +--- a/arch/arm64/boot/dts/broadcom/Makefile ++++ b/arch/arm64/boot/dts/broadcom/Makefile +@@ -1,7 +1,7 @@ + # SPDX-License-Identifier: GPL-2.0 + dtb-$(CONFIG_ARCH_BCM2835) += bcm2837-rpi-3-b.dtb \ + bcm2837-rpi-3-b-plus.dtb \ +- bcm2837-rpi-cm3-io3.dts ++ bcm2837-rpi-cm3-io3.dtb + + subdir-y += northstar2 + subdir-y += stingray diff --git a/debian/patches/series b/debian/patches/series index 26ce098f7..9146837ec 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -248,5 +248,10 @@ bugfix/arm64/huawei-taishan/0031-RDMA-hns-RDMA-hns-Assign-rq-head-pointer-when-e bugfix/arm64/huawei-taishan/0032-scsi-hisi_sas-Fix-NULL-pointer-dereference.patch bugfix/arm64/huawei-taishan/0033-scsi-hisi_sas-fix-calls-to-dma_set_mask_and_coherent.patch +# Backported DTB support for Raspberry Pi Compute Module 3 from 4.20-rc1: +features/arm/ARM-dts-add-Raspberry-Pi-Compute-Module-3-and-IO-boa.patch +features/arm64/arm64-dts-broadcom-Add-reference-to-Compute-Module-I.patch +features/arm64/arm64-dts-broadcom-Use-the-.dtb-name-in-the-rule-rat.patch + # ABI maintenance debian/abi/powerpc-avoid-abi-change-for-disabling-tm.patch