* [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 an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.