* [PATCH 0/3] arm/arm64: Backport DTB support for Raspberry Pi Compute Module 3 to 4.19.y
@ 2019-07-15 14:01 Cyril Brulebois
2019-07-15 14:01 ` [PATCH 1/3] ARM: dts: add Raspberry Pi Compute Module 3 and IO board Cyril Brulebois
` (2 more replies)
0 siblings, 3 replies; 8+ messages in thread
From: Cyril Brulebois @ 2019-07-15 14:01 UTC (permalink / raw)
To: stable; +Cc: charles.fendt, Cyril Brulebois
The Raspberry Pi Compute Module 3 gathers components that are already
supported in 4.19.y kernels except there's no DTB for it. This small
series of patches backports:
1. the DTB addition on the arm platform
2. the extension of this addition to the arm64 platform
3. the correction of this extension.
I chose to backport patch 2 and 3 separately instead of squashing them
together but I can resubmit with patches 2 and 3 merged if that's
desirable.
This was successfully tested on bare metal, in 64-bit mode, with an
extra patch to the raspi3-firmware packages to get the DTB installed
in the right place, under the right name (bcm2710-rpi-cm3.dtb) so that
the bootloader finds it. The base kernel was 4.19.37-5 as packaged in
Debian.
The summary of changes follows.
Liviu Dudau (1):
arm64: dts: broadcom: Use the .dtb name in the rule, rather than .dts
Stefan Wahren (2):
ARM: dts: add Raspberry Pi Compute Module 3 and IO board
arm64: dts: broadcom: Add reference to Compute Module IO Board V3
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 +++++++++++++
arch/arm64/boot/dts/broadcom/Makefile | 3 +-
.../boot/dts/broadcom/bcm2837-rpi-cm3-io3.dts | 2 +
5 files changed, 144 insertions(+), 1 deletion(-)
create mode 100644 arch/arm/boot/dts/bcm2837-rpi-cm3-io3.dts
create mode 100644 arch/arm/boot/dts/bcm2837-rpi-cm3.dtsi
create mode 100644 arch/arm64/boot/dts/broadcom/bcm2837-rpi-cm3-io3.dts
^ permalink raw reply [flat|nested] 8+ messages in thread* [PATCH 1/3] ARM: dts: add Raspberry Pi Compute Module 3 and IO board 2019-07-15 14:01 [PATCH 0/3] arm/arm64: Backport DTB support for Raspberry Pi Compute Module 3 to 4.19.y Cyril Brulebois @ 2019-07-15 14:01 ` Cyril Brulebois 2019-07-15 15:26 ` Stefan Wahren 2019-07-15 14:01 ` [PATCH 2/3] arm64: dts: broadcom: Add reference to Compute Module IO Board V3 Cyril Brulebois 2019-07-15 14:01 ` [PATCH 3/3] arm64: dts: broadcom: Use the .dtb name in the rule, rather than .dts Cyril Brulebois 2 siblings, 1 reply; 8+ messages in thread From: Cyril Brulebois @ 2019-07-15 14:01 UTC (permalink / raw) To: stable; +Cc: charles.fendt, Stefan Wahren, Cyril Brulebois From: Stefan Wahren <stefan.wahren@i2se.com> commit a54fe8a6cf66828499b121c3c39c194b43b8ed94 upstream. 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 <stefan.wahren@i2se.com> Tested-by: Charles Fendt <charles.fendt@me.com> Signed-off-by: Cyril Brulebois <cyril@debamax.com> --- 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"; +}; -- 2.11.0 ^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [PATCH 1/3] ARM: dts: add Raspberry Pi Compute Module 3 and IO board 2019-07-15 14:01 ` [PATCH 1/3] ARM: dts: add Raspberry Pi Compute Module 3 and IO board Cyril Brulebois @ 2019-07-15 15:26 ` Stefan Wahren 2019-07-16 9:11 ` Greg KH 0 siblings, 1 reply; 8+ messages in thread From: Stefan Wahren @ 2019-07-15 15:26 UTC (permalink / raw) To: Cyril Brulebois, stable; +Cc: charles.fendt Hi Cyril, On 15.07.19 16:01, Cyril Brulebois wrote: > From: Stefan Wahren <stefan.wahren@i2se.com> > > commit a54fe8a6cf66828499b121c3c39c194b43b8ed94 upstream. > > 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. this patch series doesn't apply to the stable kernel rules. Regards Stefan ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH 1/3] ARM: dts: add Raspberry Pi Compute Module 3 and IO board 2019-07-15 15:26 ` Stefan Wahren @ 2019-07-16 9:11 ` Greg KH 2019-07-17 2:04 ` Cyril Brulebois 0 siblings, 1 reply; 8+ messages in thread From: Greg KH @ 2019-07-16 9:11 UTC (permalink / raw) To: Stefan Wahren; +Cc: Cyril Brulebois, stable, charles.fendt On Mon, Jul 15, 2019 at 05:26:16PM +0200, Stefan Wahren wrote: > Hi Cyril, > > On 15.07.19 16:01, Cyril Brulebois wrote: > > From: Stefan Wahren <stefan.wahren@i2se.com> > > > > commit a54fe8a6cf66828499b121c3c39c194b43b8ed94 upstream. > > > > 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. > > this patch series doesn't apply to the stable kernel rules. I'm with Stefan. Cyril, how do you think this matches up with what: https://www.kernel.org/doc/html/latest/process/stable-kernel-rules.html says? thanks, greg k-h ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH 1/3] ARM: dts: add Raspberry Pi Compute Module 3 and IO board 2019-07-16 9:11 ` Greg KH @ 2019-07-17 2:04 ` Cyril Brulebois 2019-07-17 4:24 ` Greg KH 0 siblings, 1 reply; 8+ messages in thread From: Cyril Brulebois @ 2019-07-17 2:04 UTC (permalink / raw) To: Greg KH; +Cc: Stefan Wahren, stable, charles.fendt Hi Greg, Stefan, Greg KH <greg@kroah.com> (2019-07-16): > On Mon, Jul 15, 2019 at 05:26:16PM +0200, Stefan Wahren wrote: > > Hi Cyril, > > > > On 15.07.19 16:01, Cyril Brulebois wrote: > > > From: Stefan Wahren <stefan.wahren@i2se.com> > > > > > > commit a54fe8a6cf66828499b121c3c39c194b43b8ed94 upstream. > > > > > > 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. > > > > this patch series doesn't apply to the stable kernel rules. > > I'm with Stefan. Cyril, how do you think this matches up with what: > https://www.kernel.org/doc/html/latest/process/stable-kernel-rules.html > says? First off, I'm sorry to have wasted everyone's time with this attempt at getting the DTB addition upstream'd so that other distributions/users could benefit from it as well; it's now been included downstream instead. stable-kernel-rules has this entry that made me think this would be acceptable: - New device IDs and quirks are also accepted. To my non-expert eyes, a DTB looked similar to a bunch of device IDs, mapping specific hardware to the right modules and parameters. I thought that allowing device IDs to be added, mapping new HW to existing and known-to-be-working modules, was similar to what's happening with a DTB. In hindsight, looking at say 4.9 or 4.19 (baselines for Debian kernels), I see that DTBs were fixed but never added. Maybe having an extra “(DTBs don't qualify)” in the documentation might prevent others from making the same mistake? Cheers, -- Cyril Brulebois -- Debian Consultant @ DEBAMAX -- https://debamax.com/ ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH 1/3] ARM: dts: add Raspberry Pi Compute Module 3 and IO board 2019-07-17 2:04 ` Cyril Brulebois @ 2019-07-17 4:24 ` Greg KH 0 siblings, 0 replies; 8+ messages in thread From: Greg KH @ 2019-07-17 4:24 UTC (permalink / raw) To: Cyril Brulebois; +Cc: Stefan Wahren, stable, charles.fendt On Wed, Jul 17, 2019 at 04:04:59AM +0200, Cyril Brulebois wrote: > Hi Greg, Stefan, > > Greg KH <greg@kroah.com> (2019-07-16): > > On Mon, Jul 15, 2019 at 05:26:16PM +0200, Stefan Wahren wrote: > > > Hi Cyril, > > > > > > On 15.07.19 16:01, Cyril Brulebois wrote: > > > > From: Stefan Wahren <stefan.wahren@i2se.com> > > > > > > > > commit a54fe8a6cf66828499b121c3c39c194b43b8ed94 upstream. > > > > > > > > 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. > > > > > > this patch series doesn't apply to the stable kernel rules. > > > > I'm with Stefan. Cyril, how do you think this matches up with what: > > https://www.kernel.org/doc/html/latest/process/stable-kernel-rules.html > > says? > > First off, I'm sorry to have wasted everyone's time with this attempt at > getting the DTB addition upstream'd so that other distributions/users > could benefit from it as well; it's now been included downstream > instead. > > > stable-kernel-rules has this entry that made me think this would be > acceptable: > > - New device IDs and quirks are also accepted. > > To my non-expert eyes, a DTB looked similar to a bunch of device IDs, > mapping specific hardware to the right modules and parameters. I thought > that allowing device IDs to be added, mapping new HW to existing and > known-to-be-working modules, was similar to what's happening with a DTB. > > > In hindsight, looking at say 4.9 or 4.19 (baselines for Debian kernels), > I see that DTBs were fixed but never added. Maybe having an extra “(DTBs > don't qualify)” in the documentation might prevent others from making > the same mistake? I don't think that anyone has made that same mistake in the past 5+ years that I can recall at the moment, so adding more text to the file probably will not really save us many issues like this :) thanks, greg k-h ^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH 2/3] arm64: dts: broadcom: Add reference to Compute Module IO Board V3 2019-07-15 14:01 [PATCH 0/3] arm/arm64: Backport DTB support for Raspberry Pi Compute Module 3 to 4.19.y Cyril Brulebois 2019-07-15 14:01 ` [PATCH 1/3] ARM: dts: add Raspberry Pi Compute Module 3 and IO board Cyril Brulebois @ 2019-07-15 14:01 ` Cyril Brulebois 2019-07-15 14:01 ` [PATCH 3/3] arm64: dts: broadcom: Use the .dtb name in the rule, rather than .dts Cyril Brulebois 2 siblings, 0 replies; 8+ messages in thread From: Cyril Brulebois @ 2019-07-15 14:01 UTC (permalink / raw) To: stable; +Cc: charles.fendt, Stefan Wahren, Cyril Brulebois From: Stefan Wahren <stefan.wahren@i2se.com> commit a7eb26392b893bff92b1eb6483f4af3d2eb19510 upstream. 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 <stefan.wahren@i2se.com> Tested-by: Charles Fendt <charles.fendt@me.com> Signed-off-by: Cyril Brulebois <cyril@debamax.com> --- 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" -- 2.11.0 ^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH 3/3] arm64: dts: broadcom: Use the .dtb name in the rule, rather than .dts 2019-07-15 14:01 [PATCH 0/3] arm/arm64: Backport DTB support for Raspberry Pi Compute Module 3 to 4.19.y Cyril Brulebois 2019-07-15 14:01 ` [PATCH 1/3] ARM: dts: add Raspberry Pi Compute Module 3 and IO board Cyril Brulebois 2019-07-15 14:01 ` [PATCH 2/3] arm64: dts: broadcom: Add reference to Compute Module IO Board V3 Cyril Brulebois @ 2019-07-15 14:01 ` Cyril Brulebois 2 siblings, 0 replies; 8+ messages in thread From: Cyril Brulebois @ 2019-07-15 14:01 UTC (permalink / raw) To: stable; +Cc: charles.fendt, Liviu Dudau, Olof Johansson, Cyril Brulebois From: Liviu Dudau <liviu@dudau.co.uk> commit 74cf77e8be35795b4cc57b7010bc348295e421b9 upstream. 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 <liviu@dudau.co.uk> Acked-by: Stefan Wahren <stefan.wahren@i2se.com> Signed-off-by: Olof Johansson <olof@lixom.net> Tested-by: Charles Fendt <charles.fendt@me.com> Signed-off-by: Cyril Brulebois <cyril@debamax.com> --- 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 -- 2.11.0 ^ permalink raw reply related [flat|nested] 8+ messages in thread
end of thread, other threads:[~2019-07-17 4:25 UTC | newest] Thread overview: 8+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2019-07-15 14:01 [PATCH 0/3] arm/arm64: Backport DTB support for Raspberry Pi Compute Module 3 to 4.19.y Cyril Brulebois 2019-07-15 14:01 ` [PATCH 1/3] ARM: dts: add Raspberry Pi Compute Module 3 and IO board Cyril Brulebois 2019-07-15 15:26 ` Stefan Wahren 2019-07-16 9:11 ` Greg KH 2019-07-17 2:04 ` Cyril Brulebois 2019-07-17 4:24 ` Greg KH 2019-07-15 14:01 ` [PATCH 2/3] arm64: dts: broadcom: Add reference to Compute Module IO Board V3 Cyril Brulebois 2019-07-15 14:01 ` [PATCH 3/3] arm64: dts: broadcom: Use the .dtb name in the rule, rather than .dts Cyril Brulebois
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).